ANSIBLE - A problem solver for industry
AUTOMATION
Automation is the hot topic of today's world. Be it be the promise of self-driving cars or automated households. While people may believe that automating the everyday task of driving the car to your office or any other workspace, may have a lot of societal benefits like decrease in probability of accidents, better management of traffic, etc. I believe automating everyday tasks is all about getting your life back from the demon i.e. the repetative tasks we all do everyday tediously without giving a single thought.
AUTOMATION TECHNOLOGY
Automation in locomotive industry or the manufacturing industry isn’t new. Automating tasks to reduce human efforts has been in the market ever since the industrial revolution. But automation in the software industry is as novel as the software industry itself. But in a sense both types of automation are the same. In locomotive instudries automation is used for all the heavy lifting tasks. And the same happens in Software industries also. Or the repetative tasks too.
While there are various customized ways (scripts) for automating the tasks in the industry they are specific to OS or system. Generalization in automation is very new and Ansible is one of the popular softwares available that has made automating tasks more generalized.
Be it provisioning(the heavy lifting task that I mentioned earlier) or configuration management(repetative tasks), Ansible has such a large cummunity of contributors that almost all the tasks that a developer may want to automate has already been automated by it or will be automated very soon. It is the most popular open source automation tool on GitHub and has over 3550 contributors. And as the day goes by its growth rate increases.
ANSIBLE @ WORK
Ansible is the best configuration management, deployment, orchestration open-source tool and also automation engine.
It is a push-based configuration tool. It helps to automate the entire IT infrastructure by providing large productivity gains. Ansible generally connects through SSH, remote PowerShell or via other remote APIs.
Ansible is agentless :
Ansible is based on SSH, so it doesn’t require to install any agents on remote nodes. Ansible works by connecting to your nodes and pushing out small programs, called "Ansible modules" to them. These programs are written to be resource models of the desired state of the system. Ansible then executes these modules (over SSH by default), and removes them when finished.
Ansible is simple:
Ansible playbook structure is easy and crystal clear structured. Playbooks are human readiable and easy to understand. You can maintain the list of Host vary easily on the inventory which is essentially a text file. To add new machines, there is no additional SSL signing server involved, so there's never any hassle deciding why a particular machine didn’t get linked up due to obscure NTP or DNS issues.
Ansible is idempotent :
Ansible Playbooks can be run on the hosts for any nymber of times, but they are executed only once. This principle of Ansible makes it declarative and yet reliable. Ansible module are idempotent and hence they execute a task on a spefific host only once. It won’t matter if the host i sspecified more than once in the inventory or if the playbook is executed multiple times.
Some use cases of Ansible:
Provisioning : Ansible can provision the latest cloud platforms, virtualized hosts and hypervisors, network devices and bare-metal servers. Provisioning with Ansible allows you to seamlessly transition into configuration management, orchestration and application deployment using the same simple, human readable, automation language.
Configuration Management : Ansible is the simplest solution for configuration management available. It's designed to be minimal in nature, consistent, secure and highly reliable, with an extremely low learning curve for administrators, developers and IT managers. Ansible configurations are simple data descriptions of your infrastructure (both human-readable and machine-parsable) - ensuring everyone on your team will be able to understand the meaning of each configuration task.
App Deployment : Ansible provides a simple solution for repetative app depolyment task – Playbook. Deploying apps essentially follows the same process as long as no changes are made to the app itself. So, Configuring multiple server to provides that same services is easily be done with playbooks. They are easy to write, easy to understand and easy to make changes too.
Continous Delivery: Continous delivery of quality services is a must in the sofware industry. And releasing updates as fast as posssible is necessary. Ansible allows a simple inventory to slice up your servers into groups for test new set-up and after testing deploying them all over the srvers on just a click.
Some Companies using Ansible :
Microsoft Azure platform uses Ansible :-
Microsoft needed to address increasing complexity across their corporate network infrastructure—comprised of tens of thousands of endpoints—that connects Microsoft locations worldwide.
“We have thousands of devices of various makes and models and software versions, so at times, it’s hard to keep up with all the different vendors and ways that we interact with those devices,” said Bart Dworak, Software Engineering Manager at Microsoft.
Their issues were compounded as code created by development and engineering teams was not version-controlled or peer-reviewed, leading to duplication and quality issues.
Using Red Hat Ansible Automation Platform and working with Red Hat Consulting, Microsoft created a standardized, centralized network automation environment that reduces routine, repeatable tasks and complexity.
By focusing on people, process, and technology, Microsoft has evolved its automation journey from manual scripting and changes to a continuous integration and delivery (CI/CD) approach supported by a centralized, service-based architecture. Their DevOps teams can now focus on sharing knowledge, building skills, and creating innovative technology solutions.
CONCLUSION
While searching for Ansible implementations in major industries I found the number of examples were less than I had expected, But then again I think that is due to novelty of the technology itself. People do not have such trust over Ansible to implement it in major backbone tasks just yet.
Or they have already created scripts that are working quite well for them to bother with transferring all their work onto a newly coined tech like Ansible. But I observed that new projects and ventures or new companies are more likely to set up there work on Ansible, with a slow migration for already established companies. It is true for other automation technologies too.