According to a recent study, 74% of companies pursuing a cloud-based solution fail to achieve their desired results and end up rolling back their implementation. What’s behind all this failure? For the most part, IT leaders tasked with setting up cloud tools find themselves struggling because they’re unprepared to handle the complexity that comes along with incorporating these services into their existing infrastructure.
As the cloud matures, infrastructure provisioning, application configuration, and secrets management are getting more complex instead of simpler.
Of course, as any organization scales and expands its operations, it’s natural to experience growing pains associated with rising complexity levels. But the cloud takes that complexity to a whole new level. To make the most of your cloud systems, it’s important to go in with open eyes and be aware of the various potential sources of complexity that come along with these new tools and services. Below, we provide an overview of some of the main ways in which cloud configuration tools can create new dimensions of complexity for you and your organization.
In addition to setting up your cloud systems to support all of these different phases, many systems are further differentiated along other axes, such as geographic region or team. Similarly, many developers want a personal sandbox environment to test their work before pushing code to a common space. Unsurprisingly, working with all of these different environments — and ensuring that configuration data is shared between them in a reliable, secure fashion — can lead to a fair amount of confusion between different stakeholders across the organization.
Like environments, multiple namespaces can pose a similar challenge when it comes to implementing a cloud-based tech stack. Within any given environment, it’s typical for organizations to segment out the relevant configuration variables into a unique namespace. Each of these namespaces adds another dimension of complexity to the configuration matrix, further complicating your entire setup.
For example, if you’re working with Kubernetes, developing a variety of different namespaces can be an effective strategy to improve organization, security, and overall performance. However, those benefits incur a cost. Although it can be helpful to segment your services into smaller, more manageable chunks, this does bring significant new layers of complexity to the overall system.
This complexity presents in numerous ways:
Finally, all of these different layers of complexity are likely to add up to a whole lot more than the sum of their parts. According to recent studies, 93% of modern companies are developing a multi-cloud strategy, and each of those systems (and their various sub-systems, configurations, and environments) has the potential to interact with any other system in unpredictable ways. That means that the overall complexity of the cloud-based tech stack has the potential to balloon at exponential rates, compounding with each new tool or customization.