USE CASE:

Continuous Delivery

RELEASE EARLY & OFTEN...
BUT KEEP IT SIMPLE

We come from a long history of building software the "release early, release often" way. If release often is an ideal, continuous application delivery may be nirvana.

To do it right, automation is key - but so is simplicity. Your team needs the tools that enable quick turnaround, requiring human intervention only when necessary. That's what Ansible does with one of the easiest paths to continuous delivery in the industry.

ROLLING UPDATES. ZERO DOWNTIME.

Ansible provides true multi-tier, multi-step orchestration. Ansible's push-based architecture allows very fine grained control over operations, able to orchestrate configuration of servers in batches, all while working with load balancers, monitoring systems, and cloud or web services. Slicing thousands of servers into manageable groups and updating them 100 at a time is incredibly simple, and can be done in a half page of automation content.

CALL YOUR PLAY

Ansible let you define "plays", which select a particular group of hosts and assign tasks to execute or roles for them to fulfill. The order in which these plays run, and the hosts on which they run, is tightly controlled by Ansible. For example, you might migrate a database schema and flush the caching servers prior to updating application servers by running one simple play. This is far better than just blasting out orders to servers.

POWER+SIMPLICITY, ACROSS YOUR ENVIRONMENT

STAGE & TEST

Your Ansible inventory can be easily split to slice your environment up into different groups of machines. You can then easily test your plays with a staging machine and if tests pass, that can then be instantly run against production if you so choose.

BEYOND JUST SERVERS

We don’t stop at just servers. Ansible can work with networks, load balancers, monitoring systems, web services and other devices that might need touching during a rolling update. For example, you can add or remove servers from your load balancing pool and disable monitoring alerts for each machine that is being updated.


continuous delivery diagram

SIMPLE INTEGRATION

Ansible fits into any existing development practice and can be integrated into any workflow by utilizing the Tower API and the command-line interface. One common way to use Ansible is by calling it from a continuous integration (CI) system upon a successful application build:

 

  • The CI asks Ansible to run a playbook that deploys a staging environment with the application.
  • When the stage tests pass, it might then be asked to run a production deployment.
  • Ansible can check out your artifacts from version control on each machine, or pull artifacts from the CI server, or from a package mirror.

 

We want to build out 'Devops' at HootSuite, and our vision is to have software engineers engaged in the entire cycle of designing, implementing, deploying and maintaining their software across all environments. Ansible will play a key part in terms of building repeatable and immutable infrastructure, building tools for automation and giving engineers the ability to provision and manage servers in any environment.

Beier Cai, Director of Technology
HootSuite Media
DOWNLOAD CASE STUDY