One of the biggest selling points of cloud is agility. Cloud on it’s own doesn’t make organizations agile. Organizations must look beyond the marketing hype to maximize agility when adopting cloud technologies. If organizations embrace cloud technology without changing traditional IT practices or processes the return on investment and iterative improvement is minimal. This article explains how DevOps and PaaS helps organizations maximize agility and return on investment on their their journey to IT modernization.
In traditional IT, a wide gap exists between developers and operations. The priorities and goals of these teams are often misaligned, causing a wall of confusion. Developers want to move quickly from idea, to code, to production. Operations wants predictable production deployments to remain stable. Developers need rapid change and operations needs stability (and hence a desire for minimal change).
The great wall of confusion between development and operations leads to typical enterprise slowdowns. Next comes the typical finger pointing between various stakeholders, each protecting the success they are responsible for. This wall between development and operations is cultural and a byproduct of their misaligned goals. It’s also aggravated by the lack of good available tools. Another source of misalignment is the lack of standardized tooling for development, testing, and production. To aggravate things further, for many teams, the development and test environments are different from production.
In addition, add the friction between development and operations because of monolithic application development and deployment patterns. It’s harder to perform accurate root cause analysis in monolithic application code which also increases mistrust and fighting between development and operations. As a result of all of these factors, many organizations end up with paralysis, unable to make forward progress.
The key to avoiding this paralysis is understanding the consequences and embracing newer methods and tools.
Paralysis hurts the financial bottom line, stalls important projects, and ruins team morale. Additional consequences include:
- Unpredictability creeping into the process
- Unreliable production deployments leading to dramatic IT failures
- Too much time identifying and troubleshooting problems rather than enabling newer features
- Increase in release cycle times
- Breaking business promises
- Losing customers
Moving to cloud doesn’t automatically avoid these consequences. Unless the existing culture and processes change, you’ll only experience iterative improvement over traditional IT as the wall of confusion continues to slow down the application delivery process.
DevOps and PaaS to the rescue
To get the most from cloud, it’s important for organizations to embrace DevOps. This is an IT culture where operations and development works closely together and where both share the risks and benefits from accelerated innovation. Agile methodologies bring developers closer to business users by meeting their needs through rapid release cycles. DevOps brings developers and operations together through collaboration and sharing. In short, DevOps and agile helps everyone in the organization work together to meet customer needs.
Gartner describes DevOps as follows:
DevOps represent a change in IT culture that accepts additional risk as a trade-off for rapid IT service delivery through the adoption of agile and lean practices in the context of a systems-oriented approach
According to Gartner, the overall goal of DevOps is to improve the business value of the work done within IT. This happens through cultural change that aligns the goals of all the stakeholders in an organization.
Many organizations approach DevOps as a cultural change and ignore the tools. Unless cultural change accompanies the right set of tools, the benefits will be limited. DevOps is not just about culture or tools.
DevOps is how organizations change the culture and align the right tools with that culture so that they can meet their goals in a seamless manner. There is no point in changing the culture if the tools hold the stakeholders back. Conversely, embracing modern tools doesn’t automatically change the culture.
Typically, the right tools for DevOps fall into two categories:
- IaaS+ – Infrastructure as a Service + tools like Chef, Puppet, etc. which help organizations manage the environment needed for deploying applications, including orchestration and scaling
- PaaS – Platform as a Service where the platform layer is deployed on top of an elastic infrastructure layer and scales seamlessly to meet the needs of the applications
PaaS is a better choice than IaaS+ for fully maximizing the benefits of DevOps. PaaS helps IT deploy uniform development, test, and production environments.
As I noted earlier, the wall of confusion happens because accurate root cause analysis is difficult. When development and test environments are different from the production environment, things often don’t turn out well. Historically it’s been too complex and expensive to maintain consistency between all these environments.
With IaaS+, it’s still up to individual development, test, and production teams to configure each environment. Even with IaaS+ these teams suffer the same fate of inconsistent environments. PaaS is a layer above the elastic infrastructure provided by IaaS and is completely standardized. PaaS makes it easy for enterprise IT to provide uniform development, test and production environments.
Platform uniformity reduces the risks and impact of configuration differences while maximizing the benefits of DevOps.
Traditional monolithic applications deployed by traditional IT also contributes to the wall of confusion. Cloud computing lets developers build modern applications using a distributed model or framework of Microservices (a model on the rise which breaks large applications into smaller services).
Although IaaS+ is suitable for building modern applications, a container based approach (implemented by modern enterprise PaaS offerings like OpenShift), makes development and deployment of modern applications much easier. PaaS and DevOps topples the wall of confusion and increases agility of the entire organization.
Benefits of PaaS and DevOps:
- Process optimization from Development to Production–instead of waiting for weeks, months, or years to move from idea to production, it is only minutes, hours, or days.
- Businesses deliver faster, exceeding customer expectations, thereby increasing the customer retention.
- Code deployment is faster, errors are vastly reduced and quickly detected resulting in dramatic Mean Time To Recover (MTTR).
- Operations, in addition to development, operates at the speed of business.
- PaaS makes DevOps possible without hiring specialized skill sets. PaaS brings closer collaboration between developers and operations with less effort.
- Combining PaaS (tools) and DevOps (culture) reduces operational overhead, freeing up resources for new products.
Cloud computing gives agility and competitive advantages to enterprises in today’s global economy. To maximize the benefit of the cloud, organizations must embrace DevOps and modern tools like PaaS. Any organization wanting to modernize their IT infrastructure needs to include DevOps and PaaS as basic building blocks in their strategy.