Future State - The Oracle Consulting Blog

Why do you need to think DevOps if you are adopting Cloud?

Guest Author
By Luis Gonzalez, Consulting Director SOA at Oracle

Let’s gather the CEOs, CIOs and CTOs together, and ask them about the headlines of the game plan for the next year. No wonder most CEOs will say “faster”. And surely CTOs will say “cloud”. But if you ask the CIOs you can expect they will likely go for “DevOps”.

Of course we all understand what “faster” implies in this context. CEOs needs to make sure that business is fast and adapts quickly to a rapidly changing scenario. Enterprise Applications need to be implemented faster, and frequent updates to these applications need to be transitioned into production, moving from traditional release cycles of several months into release cycles of weeks or even days.

And we would all probably acknowledge that “cloud” seems to be the logical architectural answer to achieve that business agility.
  • SaaS services can help deliver Enterprise Applications without the need to increase Capex and install expensive on-premises hardware, and saving precious time in bringing up key new business capabilities, and more effective interactions with customers.
  • And cloud is also PaaS and IaaS, which are quickly replacing on-premises hardware and software by virtualized cloud infrastructures. And also the tedious, laborious, and slow way that most enterprises roll out technology infrastructure and applications, stacking hardware in an on-premises data center and taking as long as one year to develop, test, and deploy each major code release

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

Join the discussion

Comments ( 1 )
  • Jaime Friday, September 14, 2018
    So easy to understand,very well explained
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.