Why Use Ansible for DevOps?
Using Ansible for DevOps is becoming increasingly popular due to its versatility as an IT automation tool. In this blog, we break down why you should consider using Ansible for DevOps.
What Is Ansible and What Is Ansible Used For?
Ansible is an open source automation tool used for effective server and configuration management.
Considerations in Choosing Ansible For DevOps
Before choosing Ansible for DevOps, you need to consider the necessity of utilizing open source cloud orchestration. In general, it has always made sense to automate repetitive tasks. And systems have always been full of repetitive tasks. The scope of what is considered a “task” has increased significantly as we have developed modern deployment methods.
Many things can and should be automated like:
- Spinning up a whole compute environment.
- Provisioning all the software in that environment.
- Deploying that environment into production.
For example, if you look at microservices architecture, it becomes apparent quickly that none of this can be achieved at scale without automation. Imagine having to deploy 1,000 new containers by hand when additional load is detected in a system.
Stop Using Shell Scripts For Automation
In the past, to automate less sophisticated tasks such as rotating log files or archiving backup data, system admins usually wrote shell scripts. You can achieve automation and orchestration with shell scripts. But they present a lot of problems for businesses as automation needs to grow. Shell scripts are free-form languages. And code style varies across developers.
Disadvantages of shell scripts include:
- They are time-consuming and often require a lot of bespoke code to be written, leading to a lack of standardization.
- They can easily spin out of control and become overwhelmingly complex.
- They are often tightly coupled to the current ‘state’ of the underlying operating system, so things like system upgrades can break them easily.
- They are cumbersome to scale and deploy out to new machines.
- There is no standard protocol nor method for central management, monitoring, and/or governance.
- Failed operations and exception handling/rollback must be considered and manually implemented.
Why Use Ansible For DevOps?
Use Ansible for DevOps to achieve greater automation and flexibility.
At OpenLogic by Perforce, we work with customers of all organization sizes. Our team has had the chance to see Ansible architecture operate at all different levels of scale. Below are some actual customer use cases that demonstrate Ansible’s flexibility as an orchestration provider.
Small Appliance ISV
Example: A software company wants to make it easy for people to install their appliance application on a small piece of hardware, such as an Intel NUC.
You could distribute an inflexible image of the appliance software, forcing the user to adopt a particular OS. Or you could distribute an Ansible Playbook for end users to run against their own machines.
This would prepare any mainstream operating system for the company’s product. And it would allow the user to BYO-OS and maintain the OS according to their own internal standards.
Mid-Size On-Prem VMWare Farm
Example: A business maintains an on-prem VMWare implementation for the purpose of running various local intranet applications.
A few thousand VMs are deployed. They must be configured for various business applications. New machines need to have particular OSes, environment configuration, and software dependencies installed.
You can run Ansible servers which will run Ansible playbooks against target VMs with SSH. Those playbooks can enforce configuration, dependencies, etc. across new and existing resources by just updating a central inventory.
Large On-Prem Enterprise
Example: Large enterprise has built a very large, geographically distributed cloud and on-prem infrastructure for public and private consumption.
- Hundreds of thousands of VMs, containers, bare metal assets, software applications, services, etc.
- Hundreds of new assets added/decommissioned/changed daily.
- Responsibilities stretch across many different ops and infrastructure teams across the company, as well as outsourced resources.
Ansible AWX and Ansible Tower can be used to centrally manage numerous Ansible servers. In addition, many different playbooks can be stored, deployed, altered, and managed in general through AWX/Tower. This is done with role-based access control and other semantics necessary for larger organizations.
Benefits of Ansible Orchestration
Learn why and how to use Ansible for DevOps — and maximize the benefits of an Ansible orchestration. This free white paper compares Ansible vs. Chef and Ansible vs. Puppet, and explains how to complete a migration to Ansible.