FOUR PRINCIPLES OF DEVOPS FOR CONTINUOUS CLOUD COST CONTROL Understanding the link between DevOps processes and cloud waste is key to optimizing cloud resources and cost management.
1 EXECUTIVE SUMMARY The evolution of DevOps might be the biggest gamechanger in the IT process. A team of developers, IT operations, and business people must combine strengths to effectively streamline and stabilize operations for rolling out new apps and updating code to support and improve the whole business. It s this partnership of software development and infrastructure management that paves the way for constant innovation and improvement, creating better tools and experiences for customers, and driving competition in the market. In the same way that DevOps transformed the IT process, the shift to the cloud has transformed IT operations. The public cloud has turned infrastructure into a utility, and with every utility, there is potential for waste. Preventing cloud waste requires optimizing your cloud resources, and since DevOps teams are the primary cloud users in many companies, control processes must become a priority. To reduce cloud waste, organizations should apply the following DevOps principles to cloud resources and cost management: 1. Holistic Thinking 2. No Silos 3. Rapid, Useful feedback 4. Automation Understanding the link between DevOps processes and cloud waste is key to optimizing cloud resources and cost management. DevOps, after all, is in a unique position to directly manage the use of cloud resources. By applying the same principles that streamline and stabilize development and support of the business, DevOps also has the power to utilize cost control and eliminate cloud waste.
2 STATE OF THE CLOUD Cloud computing was a gradual evolution that started with mainframe computing in the 1950s. Over the next few decades, as compute power became better and cheaper, companies and organizations often ran their own data centers with physical servers that constituted one host each. This came with a type of waste, as servers were often underutilized due to purchasing more capacity than necessary. Later came the idea of a virtual machine (VM) running on a hypervisor, thanks to virtualization software like VMware, making it possible for multiple VMs to operate on one piece of hardware. This still required purchasing hardware up-front, but had much higher utilization of each physical server. Now, with the public cloud, we can rent VMs on someone else s hardware, which reduces the up-front cost of scaling your infrastructure. Cloud providers like Amazon Web Services, Google Cloud Platform, and Microsoft Azure have transformed cloud computing, giving businesses access to IT resources anytime, anywhere. The cloud is a per-use utility that must be monitored like electricity, heating, or any other utility that a business pays for. Why does this all matter? Because the cloud isn t going anywhere... In February of 2017, Gartner predicted that the public cloud service market would total at $246.8 billion, an 18 percent increase from the 2016 total of $209.2 billion. Later, in October 2017, Gartner updated their prediction of public cloud market revenue to $260.2 billion, an 18.5 percent growth from 2016. The growth in public cloud revenue is not only more than expected, but predicted to continue even into 2018. Sid Nag, research director at Gartner, said As of 2016, approximately 17 percent of the total market revenue for infrastructure, middleware, application and business process services had shifted to cloud. Through 2021, this will increase to approximately 28 percent. By 2020, the worldwide public cloud services revenue is forecasted to reach $411.4 billion, up from the original prediction of $383.3 billion.
3 FOUR PRINCIPLES OF DEVOPS & HOW THEY APPLY TO REDUCING CLOUD WASTE To make the connection between DevOps and reducing cloud waste, consider what s in it for DevOps teams. At first glance, and among primary concerns that include speed of delivery, integration, and automation, cloud cost management might not seem like the first thing to be thinking about. However, once we examine the framework of some of the core principles of DevOps, the connection is clear. 1. HOLISTIC THINKING Since DevOps lies somewhere between development, operations, and business management, there cannot be a single focus. DevOps must think about the whole environment, and not just their part of the team. Holistic thinking requires utilizing a variety of approaches to a problem, balancing long and short-term goals, and using all the tools at your disposal. Thinking about the entire business means that cost is a concern as important as delivery and integration. All businesses have budgets, as do all technology teams, and yes, DevOps. Whether it s an initial concern or one that is brought up by your CTO or CFO, at some point, infrastructure cost is going to come up in the conversation, and is an important piece in the larger picture of the business as a whole. To reduce cloud waste: Use holistic thinking by exposing environments and solutions to other groups and teams to combine efforts and reduce duplication. Consider the cost and benefit of SaaS and PaaS in addition to IaaS to make informed decisions.
4 2. NO SILOS By giving the keys to only one person, no one else can drive the car. If another team member wants to use an instance that is scheduled to be turned off, they re going to have to wait. If a test environment is needed to spin up new instances, it has to wait. The solution is to eliminate the control silo by granting access to multiple team members, allowing individuals to turn instances on and off as needed of course, using governance via user roles and policies to ensure that cost control tactics remain uninhibited. Eliminating silos makes knowledge accessible to all, ensuring that one team member s task is not making another team member s task harder. No silos means not only no communication silos, but also, no silos of access. Consider the problem of running resources when they re not in use and how this contributes to cloud waste. If access is limited and only one person has the ability to turn instances on and off, then one individual is solely responsible for ensuring that cloud resources are used optimally. To reduce cloud waste: Eliminate silos by making cost reports available to all for a full view of compute resource spending. Reuse resources when appropriate. 3. RAPID, USEFUL FEEDBACK When it comes to DevOps, monitoring and alerting is critical to getting the feedback you need for optimal efficiency. Let s consider cloud waste and how the principle of feedback comes into play. To reduce cloud waste, you need to know where and when it is occurring. Are your instances sized properly? Are they running when they don t need to be? Are there orphaned resources eating away at your budget?
5 To answer the question of how to reduce cloud spend and where your waste problem is, having monitoring tools in place is essential. For a full view of your environment, you should seek to see all of your resources in a single dashboard to ensure that nothing is slipping through the cracks. This is even more important in a multi-cloud environment, where different providers use different pricing models and methods for providing compute resources. Beyond monitoring and alerting, feedback can also come from test-driven development, reporting errors, and open team communication. With rapid, useful feedback, you get a full understanding of total cost savings, percentages of time your instances were shut down over the past month, and overall coverage of your cost optimization efforts. Reporting on what is working for your environment will help decide how to continue addressing the problem, and could be key to what you are working on next. To reduce cloud waste: Provide rapid, useful feedback by reporting on current spending and alerting when costs exceed expectations. 4. AUTOMATION Automation is critical to DevOps because it saves time that would otherwise be wasted creating solutions when you don t have to, eliminates human error, and breaks down larger tasks into smaller, automated pieces. If there is an existing tool that does what you re trying to code, save yourself time and make the process simpler with automation.
6 Let s apply this principle to one of the biggest forms of cloud waste - running non-production resources when they re not in use. As mentioned before, 44% of workloads are classified as non-production (test, development, staging, QA) and don t need to run 24/7. Shutting down servers during off times ensures you don t pay for unused time. It s also an industry standard. One way to save really significant dollars in dev and test, says Amazon Web Services CTO Werner Vogels, is to switch your resources off when you go home. He points out that users can save up to 75% on development and test costs this way. So, what can DevOps do to automate the process? A tempting solution is to automate use of compute resources by writing your own scripts to create a start/stop scheduler. In theory, this could work, but you would need to consider the number of non-production instances or VMs deployed, and plan for a schedule that would allow developers to have access when needed, which could very well be at varying times throughout the day. All factors considered, the process of writing and maintaining scheduling scripts is one that takes extra time and costs money as well. If there s already an existing tool that does what you re trying to code, it could be a potential time-saver and process-simplifier. ParkMyCloud offers an automated solution to cloud waste by simply parking your idle cloud resources. Another option for improving cost optimization is to right-size your resources. AWS, for example, offers the EC2 Right Sizing solution, which analyzes utilization of EC2 instances running over a 2-week span. The EC2 Right Sizing solution analyzes all instances with a max CPU utilization less than 50% and determines a more costeffective instance type for that workload, if available. To reduce cloud waste: Schedule the shutdown of unused resources with an automated tool like ParkMyCloud and right-size your resources to more cost-effective instance types.
7 UTILIZING CONTINUOUS COST CONTROL Now that we ve examined DevOps principles and explained how they apply to reducing cloud waste, it s time to bring it all together in the same way that modern software development uses continuous delivery/continuous integration by implementing continuous cost control. Continuous integration & continuous delivery are fundamental to DevOps processes. Developers practice continuous integration by consistently merging their changes to the main branch, integrating new code regularly to detect errors quickly, and validating changes through building and running automated tests against the build. As an extension of continuous integration, continuous delivery ensures that new changes are released quickly and sustainably. In addition to automated testing, continuous delivery brings automation to the release process in order to deploy an application anytime with a simple click of a button. CONTINUOUS INTEGRATION/CONTINUOUS DELIVERY CONTINUOUS COST CONTROL Continuous cost control is essential to reducing cloud waste. The same approach of continuous integration/continuous delivery applies to maintaining a full view of your compute resources and how they re being used, empowering DevOps to make minor tweaks to services and processes that can save money. In this regard, costs should be a controlled factor, not a result. DevOps should utilize continuous cost control to regularly revisit past decisions and outputs to search for improvements and fine-tune processes. After all, sustainability is important for software development. INTEGRATE COST CONTROL THROUGHOUT THE PROCESS.
8 NEXT STEPS - WHAT THIS LOOKS LIKE IN AN ENTERPRISE: Code: Shut down instances when not working on them Build: Automated tools for minimal footprint Test: Use spot instances for optimal costs Deploy: Use Reserved Instances for lower price Operate: Auto Scaling Groups for elasticity Monitor: Track utilization to ensure proper instance sizes DevOps processes are essential to reducing cloud waste, as is continuous integration and delivery to continuous cost control. Encourage your technical team to start saving in minutes. Ready to easily integrate continuous cost control into your DevOps process? With ParkMyCloud, you can. Schedule start/stop times automatically for AWS, Azure, & Google Cloud resources Automate scheduling with policy engine - integrate into your DevOps process Govern user access and gain visibility across regions and public cloud accounts About ParkMyCloud ParkMyCloud is a SaaS platform that automatically identifies and eliminates public cloud resource waste, reducing spending by 65% or more think Nest for the cloud. AWS, Azure and Google users such as McDonald s, Capital One, Unilever, Avid, and Sage Software have used ParkMyCloud to cut their cloud spending by millions of dollars. ParkMyCloud helps companies like these optimize and govern cloud usage by integrating cost control into their DevOps processes. For more information, visit https://www.parkmycloud.com.