How not to waste time and nerves on manual initialization and maintenance of cloud resources, while keeping costs under control? The answer is automation. Cloud automation has a lot to do with automating your on-premises IT infrastructure. It can be seen as a more modern and larger variety, with the same principles, approaches and concepts. But there are still differences, and we will talk about them today – with the help of leading industry experts.
“Most of the automation that can be implemented in a hybrid cloud infrastructure will be similar or similar to that required in an on-premise environment,” said Gordon Hoff, technology evangelist at Red Hat. “For example, the CI / CD pipeline – it must constantly test and scan, no matter where the IT infrastructure is, on-premises or in the cloud.”
Many key concepts of IT infrastructure automation, such as containers, orchestration, microservice architecture, and automated build pipelines (CI / CD), are very relevant even in cloud automation. But there are also approaches that are unique to the cloud, five of which we will talk about today.
1. Visibility as the foundation of cloud automation
You cannot automate what you cannot see. At the very least, do it so that the result is positive.
“Above all, you need to be able to see all of the computing environments,” said Jesse Stockall, Chief Architect at Snow Software. "Inventory at the central control room is provided by the discovery capabilities of cloud management platforms." In his opinion, all major cloud platforms offer built-in discovery and visualization capabilities, which are sufficient if you work with only one cloud provider or with one environment.
“But in hybrid multi-cloud environments, or even in a mono environment, where you have multiple subscriptions or accounts, in-house tools cannot collect all the data into a coherent whole,” continues Jesse Stockcoll.
In other words, without automation, you will have to manually collate all the information using various tools. But when working with complex and varied environments, this will be very difficult. A cloud monitoring or management platform that offers what Jesse Stockell calls a "central dashboard" that automatically collects all the data you need in one place can greatly simplify long-term operations.
For example, there are many cloud-based tools available for the Kubernetes platform. They are either already part of the platform, or are in the process of integrating with it, or are available as additional open-source tools. In particular, these are Prometheus for monitoring and providing visibility, Jaeger for distributed tracing, and Grafana for creating management consoles.
2. Auto-zoom – wherever possible
One of the benefits of hybrid cloud and multi-cloud technologies is fast scalability. Thanks to it, you do not need to build up your own physical IT infrastructure to cope with peak or abnormally high loads. Actually, the hybrid cloud was conceived as a way, if necessary, to quickly transfer tasks from the on-premises infrastructure to the cloud, although today there are many more options for using a hybrid cloud.
But if you work the old-fashioned way and manually add cloud resources every time the need arises, you are missing out on one of the main foundations of cloud automation: autoscaling. Felipe Gimenez, Assistant Director of Cloud Operations at Mission, recommends autoscaling wherever possible.
“If, as a user, when you try to launch an application, at least a couple of times in a row you see the message“ Server is overloaded, please try later ”, then you are well aware of the impact that an insufficient number of instances inflicts on productivity and reputation,” says Felipe Gimenez. “But customers who use your apps to make purchases, or your employees, whose work is impossible without enterprise applications, simply do not have time to wait until you create additional instances manually. In turn, automation allows you to instantly scale cloud resources in response to growing requests and server load. ”
And this is one of the main advantages of Kubernetes – the platform offers many approaches to auto-scaling resources. In addition, all major cloud platforms also offer their own autoscaling tools.
Felipe Gimenez also notes that autoscaling helps keep cloud costs under control by adding resources only when you really need them, whether you're using a mono cloud, a hybrid cloud, or a multi-cloud environment. But strategic decisions will need to be made based on variables such as the platforms and tools used, and the goals of autoscaling.
“Do you want customers never to experience slow response times, or can you make trade-offs to keep costs down? – asks Felipe Gimenez. "These questions will help you choose the autoscaling strategy that is best for your business."
3. Planning monitoring and cost optimization
When it comes to costs, this is another area where automation can make a big difference in your favor. In addition, public clouds are very different in this regard from on-premise environments.
“There is one aspect in which public clouds are strikingly different from the IT infrastructure deployed in a corporate data center – this is the pay-as-you-go model,” says Gordon Hoff. "It forces you to carefully and necessarily track costs when using at least one public cloud."
There is no one-size-fits-all solution here, but there is some combination of tools and tactics, especially for hybrid and multi-cloud environments.
“To clearly understand the full range of costs associated with public clouds, and to optimize future costs, requires real know-how, which is not limited to pressing a magic button,” says Gordon Hoff. "Experienced administrators will use a combination of [mostly automated] policies and alerts here to redirect users to one type of resource or another, turn off inactive resources, and knowledge in a timely manner that resource usage has skyrocketed for some reason."
Cloud service providers offer a variety of reporting and scheduling tools, and there are third-party tools available to address these challenges. The general idea here is this: if you manage your cloud spending entirely by hand or ad-hoc, then most likely you will spend more than you need to, or simply waste people's time.
“There is no one-size-fits-all tool to automate the cost control of public clouds, especially when it comes to multi-cloud environments,” says Gordon Hoff. “So it’s important to review and use the many options available to keep costs from spiraling out of control, raising unpleasant questions from the CFO.”
Below we will look at two important approaches to help you deal with this.
4. Using (and automating) resource labels
Jesse Stockell points out that many of the most common cloud optimization goals or strategies, be it cost, resource utilization, or workload placement, require some way to manage classification and ownership issues.
And the role of such a method is played, firstly, resource tagging, and secondly, automation, especially in hybrid or multi-cloud environments.
“Resource optimization, decommissioning, cost allocation – these are questions that you simply cannot make informed decisions if you don’t know who owns the resources,” says Jesse Stockcall.
Resource labels are key to automation in and of themselves, but the bottom line is that you can automate the very process of labeling.
5. Conveyors – automation and repeatability
Resource autoscaling allows you to more dynamically and efficiently respond to user requests. However, this same principle can be successfully applied throughout the software pipeline by automating and repeating infrastructure and application provisioning wherever possible.
“This can be self-service deployment from the catalog or automated DevOps pipelines,” says Jesse Stockcall. “Automated provisioning ensures that standards and best practices are adhered to, avoids manual errors, and allows you to treat your infrastructure not as a collection of unique and unrepeatable servers, systems, and applications, but as a set of highly unified cogs.” (The so-called Pets vs. Cattle analogy.)
As with IT infrastructure automation, the idea here is to use standardization and automation wherever possible. Not only in production but at all stages of the pipeline (it doesn't matter if it's called CI / CD or not) through which your code and its dependencies pass. The goal is to get rid of so-called snowflake deployments that require human attention and effort.
Finally, remember that cloud automation, like most other forms of IT automation, does not work on a set-and-forget basis.
“Lifecycle management, including continuous optimization and automatic decommissioning, ensures that your workers do not become immortal and that they will constantly optimize their entire lives,” says Jesse Stockell.