This is a guest blog by Isaac Sacolick. Isaac @NYIke is the President and CIO of StarCIO, author of Driving Digital: The Leader’s Guide to Business Transformation Through Technology, and blogs at Social, Agile and Transformation.
Moving your infrastructure to the cloud is just the first step in the journey to a lower cost, nimble, more secure, and reliable computing environment.
After all, a virtual server running in the cloud is just a means to running a workload connected to storage and a network. What differentiates today’s cloud from data center and other multitenant infrastructures is the ability to automate all aspects of configuring the environment, data security, deploying applications, scaling up or down to meet computing demands, monitoring the environment’s health, managing administrative tasks, and responding to issues.
Automating a cloud computing environment is part of the DevOps objective. Engineers know that they can get to a higher level of reliability, responsiveness, and cost management when they can develop scripts and code that automate common infrastructure changes. Need a new computing instance deployed in development to test an application? Need to scale up additional instances to support load? Want to deploy a new version of the application? Have to patch a large number of instances? Today’s tools enable DevOps engineers to automate these and other tasks so that they can be executed reliably.
Why Invest in DevOps Automation?
Have you ever heard the following conversation between a developer and an engineer? The developer says, “The application is failing because you missed a step in the deployment task” and the engineer respond, “Your deployment process was missing some steps.” How about when the developer tells you, “The application is failing in production because those servers are configured differently than the development and test servers.” How about, “It took forty minutes to restore performance to the applications because we had to determine which server was failing and follow the manual procedures to restart it properly.”
There are clearly business issues when these problems occur and are resolved using traditional methods. You can see that having manual procedures can also create a culture of blame, and distrust when a request or incident comes up and there is friction in the process to resolve it. Automation enables DevOps engineers to think through critical or error-prone tasks and script them when there is more time and less stress to build and test the procedures. Automation addresses one of the key objectives of DevOps by aligning development teams and engineers so that agility in deploying changes and overall reliability of the infrastructure can be achieved.
DevOps Automation’s Business Impact
There’s also a very practical reason why organizations are automating their cloud infrastructure. Gartner’s revised IT spending forecast shows a very modest IT spend increases of 1.4 percent in 2017 and an optimistic 2.5-3 percent increase yearly from 2018 through 2021. At the same time, digital transformation is a top priority for many businesses that want to develop new and upgrade existing products with competitive user experiences. Digital transformation drives many organizations to develop new applications and software that require new platforms and infrastructure. Progressive CIO and technology leaders feel the pressure to move smarter and faster and it’s driving them to automate more as they develop and deploy.
The investment in DevOps and automation is paying off for the CIO and IT executives making this investment. In the 2016 State of DevOps report, high performing organizations “deploy 200 times more frequently, with 2,555 times faster lead times, recover 24 times faster, and have three times lower change failure rates.” These same organizations “spend 22 percent less time on unplanned work and rework and 29 percent more time on new work, such as new features or code.”
There’s a clear productivity, performance, and cultural ROI investing in automation.
What DevOps Automation to Target?
Digital Business Trends in 2017 identifies the key practices to automate that drive digital business:
To become a true digital business, the entire operation needs to function like a well-oiled DevOps practice, one that involves continuous delivery, automated testing, and constant, iterative updates and improvements. Infrastructure and systems should be viewed as code that’s program can be automated. If automation and DevOps become part of a business’s mindset and culture, they’ll become a source of competitive advantage.
What are These Automation Practices?
- Infrastructure as Code (IaC) enables engineers to define their infrastructure configurations and script out the steps to set up and shut down computing environments including cloud resources, operating system and host configurations and application configurations. Terraform, Ansible, Puppet, and Chef are examples of tools DevOps engineers can use to develop this level of automation. Organizations migrating to the cloud realize significant efficiencies, agility, and improved security by making the leap to IaC.
- Continuous integration and delivery automate the steps to package application changes and deploy them to various computing environments. These capabilities and the ability to automate testing are often part of an organization’s release management practice aimed to support faster and more frequent code pushes that competitive digital businesses require.
- Engineers are also automating the response to market conditions by configuring auto scaling to grow or shrink computing resources. They are also deploying to multiple compute zones and leveraging various monitoring solutions to detect and trigger failovers when required. For example, The University of Alberta overcame their growth challenges by leveraging elasticity in AWS.
- Lastly, many organizations are optimizing the overall management of their computing environment. This enables them to monitor costs and computing resource utilization and automate starting and stopping services to optimize costs and computing needs. Defining the governance and management of cloud computing workloads is an important step when considering mass cloud migrations.
Getting Started with DevOps Automation
Like any practice, CIOs, CTOs, and other technology executives should first consider organization responsibilities, governance, and availability of talent to drive and implement DevOps automation. In many situations, DevOps automation isn’t a single responsibility. For example, the development team may be responsible for continuous integration and automated testing, but a cloud DevOps partner and managed service provider and / or their Cloud Center of Excellence (Cloud COE) handles automating the infrastructure’s configuration, scaling, and management. The CIO should then align priorities with business objectives so that areas of greatest need are automated earlier and with greater capability.