But what is DevOps’contribution to this? Why is DevOps needed for this cloud wave to happen?
DevOps is a new school of thought about how to modernize IT. DevOps is all about delivering a better service to the Enterprise, bringing agility to development and also to infrastructure management and allowing faster releases of key business applications (especially what we call “Systems of Innovation”).
In a previous entry of this blog, Jo Pugh introduced DevOps in the context of the Digital Transformation process which many companies are undertaking to gain competitive advantage
And why is DevOps the key for a successful cloud adoption?
Provisioning in the cloud. A DevOps paradigm shift: Infrastructure as Code
The cloud changes dramatically the needs for provisioning IT infrastructure. Just a few years back, the Operations guys were responsible for a large collection of physical machines sitting in the datacenter. Provisioning meant to physically unpack and mount servers in racks, install OS and base middleware products, and then ask the development team to provide the application components that need to be deployed. Hard work but in many cases a one-off, since usually applications would sit on their production servers more or less forever, or at least until a new application release was issued several months later. A significant part of the IT infrastructure will consist of idle or underutilized hardware and software licenses due to this static application to hardware mapping.
But with the cloud (IaaS or PaaS), physical servers will soon be gone. The Operations guy sits literally on top of a pool of dynamic resources. A huge LEGO consisting of virtual CPUs, virtual storage, virtual VPNs and Middleware-as-a-Service components. Hundreds or thousands of virtual resources that can be assembled, configured and installed dynamically without any physical intervention, and that can be reconfigured and redeployed accordingly to the evolution of the IT architecture.
DevOps encourages and allows Automation of the provisioning process, and is key to making this happen. Virtual servers in the cloud should be created and configured automatically, using complex programs which will provide intelligent reconfiguration capabilities to the IT infrastructure, and the ability to adapt to continuously changing requirements.
DevOps popular tools like Chef and Puppet, in combination with platforms like Oracle Enterprise Manager, are the key building blocks for systems which implement this Infrastructure as a Code paradigm shift
Faster release cycles in the cloud: Continuous Delivery and Microservices
And if we look at the cloud from the perspective of Application Development, there are two new technology trends that cloud adoption is enabling: Continuous Delivery and Microservices
Continuous Delivery can be thought of as an extension of Continuous Integration, aiming at minimizing lead time, the time elapsed until changes to an application are actually moved into production. In a Continuous Delivery, development workflows are redesigned so developers can release small bits of code frequently (in a continuous delivery cycle) without disrupting the operational environment. The advantages of CD are not only the earlier return on the investment for each feature after it is developed, but also the earlier feedback from users on each new feature as it is released to production, which affords techniques such as parallel (or A/B) testing
Continuous Delivery often is based on Microservices architectures, an architectural paradigm in which business functionality is decomposed into a set of independent, self-contained services that communicate with each other via an API. Each of the services has their own application release cycle, and is developed and deployed independently often using different languages, technology stacks and tools that best fit the job.
By splitting the monolithic application into smaller services and decoupling interdependencies (between apps, dev teams, technologies, environments and tooling), Microservices allow for more flexibility and agility.
While things may move faster on the Dev side, Microservices and Continuous Delivery introduce architectural complexities and management overhead, particularly on the testing and Ops side. What was once one application with self-contained processes is now a complex set of orchestrated services deployed in the cloud with very short release time. This has impact on automated testing, monitoring, governance and compliance of the whole application infrastructure. And that is why you need DevOps
DevOps: A prerequisite for Cloud Native Applications
In his presentation “Building Cloud Native Applications”, Kelly Goetsch advocates a roadmap towards building Cloud Native Applications which positions DevOps as the first logical step in cloud adoption, which should serve as a starting point to create a Service Oriented strategy that will lead towards Distributed Computing by adopting the Microservices architectural paradigm
Positioning DevOps to customers of the Oracle Public Cloud
Most of the customers adopting the Oracle Public Cloud will have a significant challenge in translating the benefits of the cloud approach into a real business advantage. The true power of the cloud will only be achieved after redesigning the workflows which traditionally have implemented the governance of the IT infrastructure. In most cases the cloud adoption process will also bring virtualization with it. The main topics will be around setting up effective Monitoring and Instrumentation procedures and about dynamic provisioning
Oracle Consulting wants to provide a DevOps track to the Cloud Adoption Process. And we want to do it by providing a specific set of services which we can be positioned to help customers build a DevOps culture, process and platform in their IT so that Cloud Adoption is successful, and delivers the promise of more agility and speed in the business transformation. More details will be published in this blog soon.
For more information, please contact Luis Gonzalez Iglesias