Let’s revisit what we have covered till now and what our goal was in the first chapter. Our main objective is to create an end-to-end automated pipeline for application deployment. We considered source code repositories, build tools, continuous integration, configuration management to setup runtime environment, resource provisioning in the cloud and containers, continuous delivery, continuous deployment, continuous monitoring, continuous feedback, continuous improvement, and continuous innovation.
We want to use an end-to-end pipeline for our sample Spring application, PetClinic. In Chapter 4, Installing and Configuring Chef and Chapter 5, Installing and Configuring Docker, we covered the configuration management tool Chef and Docker containers in brief. Both could be topics for book on their own. Now we are at the stage where we understand the basics of configuration management and containers, so we can start with resource provisioning in a cloud environment using Chef and install the runtime environment required to run PetClinic. In this scenario, it will be an installation of Java and Tomcat. This chapter describes in detail how to install knife plugins used to manage cloud resources using Chef. It will cover creating instances in AWS and Azure using the knife EC2 and knife Azure plugins. It will also cover how Chef is used to manage Docker containers.
We will explore the following topics:
- Chef and cloud provisioning
- Installing knife plugins for Amazon EC2 and Microsoft Azure
- Creating and configuring a virtual machine in Amazon Web Services
- Creating and configuring a virtual machine in Microsoft Azure
- Managing Docker containers with Chef
Chef is a configuration management tool used to transform infrastructure into code. It automates the building, deploying, and managing of the infrastructure. By using Chef, infrastructure can be considered as code. The concept behind Chef is that of reusability. It uses recipes to automate the infrastructure. Recipes are instructions required for configuring databases, web servers, and load balances. It describes every part of the infrastructure and how it should be configured, deployed, and managed. It uses building blocks known as resources
Cloud computing is regarded as a groundbreaking innovation of recent years. It is reshaping the technology landscape. With breakthroughs made in appropriate service and business models, cloud computing has expanded to its role as a backbone for IT services.
Cloud computing is pivotal if we want to achieve our goals of automation to inculcate DevOps culture in any organization. Infrastructure can be treated similar to code while creating resources, configuring them, and managing resources using configuration management tools. Cloud resources play an essential role in the successful adoption of DevOps culture. Elastic, scalable, and pay-as-you-go resource consumption enables organizations to use the same type of cloud resources in different environments.
For more details get the DevOps for Web Development book.
It is also available at: