Demystifying Changing Roles of DevOps in a Cloud-Driven World
This article outlines the roles of cloud, DevOps, and IT when working together in an increasingly cloud-driven world, for quality software development.
Join the DZone community and get the full member experience.Join For Free
A recent survey by Commvault indicates that 56 percent of IT teams surveyed already moved or intend to move all of their processes to the cloud. Some of the key factors driving this decision were attributed to customer focus through business agility, cost savings, innovation and development of new apps, products & services.
Undoubtedly, the cloud is changing the landscape of how software companies are provisioning IT infrastructure. It is now removing those middle layers, unlike earlier times (where companies just delivered products using on-premises infra), thus making both production and service delivery a breeze.
On the other hand, DevOps has been in the fray for quite some time now. Many companies still consider it just as a set of tools or processes easing communication, collaboration, integration, automation, and cooperation. But, it’s not! It is an outlook, which facilitates companies prioritize user experience over complex product delivery processes. This facilitates for cautious product development as well as operations.
So, by embracing DevOps for cloud operations, several tasks like product development, operations, and catering to user experience become seamless. Like in the words of someone wise:
“If cloud is an instrument, then DevOps is the musician that plays it.” It’s a match made in heaven!
Before the rise of the cloud, companies were coerced to buy or lease servers for months at once. The role of a DevOps was limited to development and operations of applications on just these servers. However, with the increased adoption of cloud where companies can quickly provision instances in a minute & make use of various flexible cloud-based consumption models like Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), Everything-as-a-Service (XaaS), etc., the role of DevOps has transformed. It now spills across application management, capacity provisioning, automatic scaling, log management, monitoring resources, enforcing security protocols & best practices, etc., in general.
For instance, with IaaS model, DevOps are required to deploy each service, configure valid communications interfaces, and be responsible for scaling. Also, they are required to configure application runtime, manage each instance in a stateless environment, and more. However, with PaaS, the platform itself controls application lifecycles and scaling. It also automatically deploys the application runtime, uses containers to manage instances as isolated elements, and much more.
Thus, due to the availability of several ‘as-a-service’ on the cloud, DevOps are now re-inventing the wheel to stay focused.
Here’re the top adaptations made by DevOps for today’s cloud-driven world:
1. Transitioning to CloudOps
Just as DevOps calls for continuous innovation and delivery of software changes, right from development through operations, Cloud Operations (CloudOps) too calls for continuous operations & improvement — but in cloud environments.
Unlike traditional on-premise setup, CloudOps involves defining right operational procedures and practices around different cloud models or services a business is currently leveraging, be it a SaaS application, IaaS, or a PaaS, for the reason that the dynamics involved in development and operations using ‘as-a-service’ models are completely different. Even though, these services are offering the flexibility and convenience of quickly deploying and maintaining an application over an infrastructure, it can be a challenge to manage them all across teams.
So, today’s DevOps must know how to optimize the underlying distributed and stateless cloud infrastructure as they scale out, while also run applications that share common services and manage those operations concurrently. It doesn’t just stop there! DevOps need to keep a close watch on the metered cost of all the cloud-based services they are leveraging, which is where today several cloud management platforms have mushroomed to help them out.
Plus, they need to shift as much of the operational burden as possible to the vendor. In case of hybrid cloud, which provides maximum flexibility to deploy workloads, orchestration is key.
All in all, CloudOps is driving a fundamental change in the way IT Operations are being managed on cloud. And, much of the operations for cloud leverage a great deal of automation.
2. Augmenting DevOps Automation Processes
As a team or business moves more workloads to the cloud and scales out, CloudOps, as well as DevOps, will become even more complex. This calls for ‘automation’ as a way to fix common operational problems, without affecting the applications or users. This looks challenging, however, all cloud platforms offer APIs for provisioning and management of resources, making it far easier to automate the application delivery process.
“To evolve IT operations for cloud, organizations must embrace automation and change the way they think about resource provisioning.” — David Linthicum, Cloud analyst at SearchCloudComputing
True that! DevOps must embrace automating the self-healing capabilities of a cloud provider. They must also automate procedures to resolve minor issues, such as putting unused instances back to use, proactively look into network outages, etc. They must automate development processes, testing, staging, integration, deployment, and, operations.
That said, eventually, a role of a DevOps in a cloud-driven world is to automate all processes, until the cloud environment is just monitored.
On the other hand, with cloud’s elastic computing capability, a DevOps’ role is also taking a much more transformative role — enabling them to focus more on development rather than operations.
Nowadays, several companies have gone a notch higher by moving to ‘serverless computing.’ What does this mean to DevOps? They no longer have to worry about provisioning and maintaining servers!
Harry Trott of Syscon Media says: Cloud is the major reason why the DevOps world is so excited about server-less architecture.
3. Going Serverless: The Perks for DevOps?
One of the major benefits of serverless computing is the capability to focus more on application deployment, rather than capacity provisioning, automatic scaling, and log management. In essence, serverless computing does all the heavy lifting for DevOps.
Further, with serverless computing, building a web app is no longer about building a monolith of code, which is sitting somewhere in the cloud. It is about building a distributed system of loosely coupled units of the application.
So, with serverless computing, DevOps need not worry about leaving a virtual machine unused. They can leverage only the compute units, when there is a request for computation, like a call to an API, change in the database table, etc.
To bring in more clarity here, our IT friends at Loggly have put together an awesome infographic depicting the role differences in a server and serverless world.
The Final Word: Cloud-Centric DevOps Automation Is the Way Forward
Thanks to the cloud, there’s a paradigm shift across all verticals, with many companies transitioning from being product-oriented to service oriented, taking care of operations too. Now that cloud has made production and service delivery easier, it has incentivized many companies to adopt DevOps. To that end, the role of a DevOps in an organization is now changing, essentially to adopt all types of cloud models. Be it public clouds such as AWS, Azure or Google, private clouds such as Nutanix or VMware, or a hybrid model encompassing a combination of these.
It’s all about cloud-centric DevOps automation now!
But challenges exist: As DevOps and cloud continue to prove their collective value for a company, the team leads and DevOps continue to grapple with a pervasive and disparate ecosystem of cloud computing technologies. A more structured approach to govern all this is key. Probably a unified cloud monitoring and a management platform can help. One that can render the whole cloud inventory in a virtual environment, showing key insights at the right time!
Published at DZone with permission of Veer Abheek Singh Manhas, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.