How Microsoft is using Ansible.

Akshansh Singh
4 min readDec 5, 2020

Automation has made setting up of infrastructure available on one’s fingertips. Before the age of automation and configuration management, the setup and configuration of large scale infrastructure required a lot of manpower, extra working hours and a deeper understanding of code.

With the advent of tools which provide the facilities like infrastructure as a code and automated configuration management, these things have now been simplified and easy to learn for any individual. Even a user with no prior coding experience can get their hands dirty on setting up infrastructure and its maintenance. Tools like Chef, Puppet, Ansible provide us with such functionality with a gradual learning curve.

What is Ansible?

As stated by the official Ansible website, “Ansible is the simplest way to automate apps and IT infrastructure by providing a variety of features like Application Deployment, Configuration Management, Continuous Delivery and much more”. In simple words, since Ansible is all about automation, it requires all the actions to be performed in the form of a script. It consists of a system of controller node and managed node/s where controller node is responsible for the configuration of all the managed nodes. It is made using python programming language and supports YAML format for writing scripts.

The controller node is a computer that runs Ansible and is responsible for the setting up and execution of scripts. It connects the nodes on a network, and then sends a small program called an Ansible module to that node. Ansible executes these modules over SSH and removes them when finished. But in order to do so, the controller node must have a login access to the managed nodes. Ansible provides a number of authentication options with SSH being the default authentication protocol.

Why Ansible?

The automation sector is now filled with a lot of tools with their own set of syntax and functionalities, which are more than capable of handling today’s configuration management issues. Tools like Chef and Puppet provides us a lot of options and features and are also widely used today. But what makes Ansible different is it’s agent-less architecture. These tools depends upon an agent software which needs to be installed in the managed nodes before a connection is established between the controller node and managed nodes. This makes it very difficult to configure remote systems which are untouched and inaccessible for initial configuration.

Here Ansible shines by providing an agent-less architecture where Ansible software needs to be installed only on the controller node which can be your local machine.

Success Story of Microsoft actively using Ansible:

When it comes to Information Technology domain, Microsoft is a household name throughout the world. Being one of the top tech giants of the world, there is no technological domain where Microsoft haven’t had their hands dirty. Microsoft is literally everywhere and you know it! It does not require any extra description to make anyone understand the global impact this tech giant has had over a past few decades.

To match with the market demands, it worked with RedHat to create a scalable and technology-agnostic automation framework to reduce manual workloads with efficient tools and processes and improve performance and security with standardized and tested code. As a result, they have established collaborative and creative development mindset, and saves thousands of hours of operational work.

The problem: It needed to address increasing complexity across their corporate network infrastructure which comprised of tens of thousands of endpoints that connects Microsoft locations across the globe. Their issues increased by many folds when code created by their respective development and engineering teams were not version controlled or peer-reviewed, leading to the duplication of code and quality issues.

The solution: Microsoft worked alongside RedHat Consulting team and actively used RedHat Ansible Automation Platform to create a standardized and centralized network automation environment to reduce repetitive tasks and complexity. Earlier they used to manually do the same deployment again and again. Using Ansible, they can now create blueprints to deploy it multiple times and every time it gets deployed exactly the same as it was in its first attempt.

The result: Using Ansible and collaboration with RedHat Consulting team, they have evolved their automation journey from from manual scripting to a continuous integration and delivery (CI/CD) approach supported by centralized, service-based architecture. The Microsoft team established three main automation environments:

  • Development, where code is developed and tested on small scale
  • User Acceptance Testing (UAT), where code is peer-reviewed and tested at scale
  • Production

Using Ansible, they have successfully created a DevOps culture where team members can focus on learning new skills and collaborating across different teams.

--

--

Akshansh Singh

Final Year Undergrad from Indian Institute of Information Technology Ranchi interested in learning the ins and outs of Technology