SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
ansible.com
+1 919-667-9958
WHITEPAPER
CONTINUOUS
INTEGRATION & DELIVERY
WITH ANSIBLE
INTRODUCTION
Ansible is a very powerful open source automation language. What makes it unique from other
management tools, is that it is also a deployment and orchestration tool. In many respects, aiming to
provide large productivity gains to a wide variety of automation challenges. While Ansible provides
more productive drop-in replacements for many core capabilities in other automation solutions, it
also seeks to solve other major unsolved IT challenges.
One of these challenges is to enable continuous integration and continuous deployment (CI/CD)
with zero downtime. This goal has often required extensive custom coding, working with multiple
software packages, and lots of in-house-developed glue to achieve success. Ansible provides all of
these capabilities in one composition, being designed from the beginning to orchestrate exactly
these types of scenarios.
WHY CI/CD
Over the last decade, analysis of software and IT practices have taught us that longer release cycles
(“waterfall projects”) have dramatically higher overhead than more frequently released (“iterative” or
“agile”) shorter cycles. As a release begins, a quality assurance team is prepared, waiting for things
to test, and IT does not have anything to deploy. Towards the end of a release cycle, QA is running
at full force, as is IT, but development is split between bugs and planning the next major release.
Context switches are frequent.
Perhaps more urgently, longer release cycles also mean a longer delay between the time when
bugs are discovered and when they are addressed, which is especially a problem in large traffic web
properties where single issues can affect millions of users. To resolve this problem, the software
development industry is rapidly moving towards “release early, release often,” under the banner
of “Agile Software Development.” Releasing early and often means there is less switching of gears
between operation modes for any team members, and changes can be made, qualified, and
deployed in much shorter times. Various approaches such as QA automation engineering and
2
WHITEPAPER
CI/CD with Ansible
Test Driven Development (TDD) increase the effectiveness of these techniques. It stands to
reason that if “release early, release often” is progress, CI/CD may be nirvana. While agility is a
progressive spectrum, an organization’s movement in this direction can yield impressive results.
To achieve this, automation is key, so there is a huge focus around the technology that enables
quick turnaround, requiring human intervention only when necessary.
In this document, we’ll highlight why Ansible and Ansible Tower by Red Hat are the ideal tools to
connect your computer systems to enable these kind of processes.
WHY ZERO DOWNTIME?
Downtime and outage windows result in either lost revenue or customer unhappiness. For a
major web application with users in all time zones around the world, going down for an outage
is only to be reserved for the most dire and complicated of upgrade processes–certainly not
updating your application versions. Even for internal applications at large organizations (imagine
an accounting or intranet system), an outage in a critical system can mean major impacts on
productivity. The goal of any automation process should be to enable updates in a manner that
does not impact operational capacity.
Zero downtime is achievable, but it requires support from tooling– a strong multi-tier, multi-step
orchestration engine like Ansible– to make it manageable.
OTHER BUILD SYSTEMS
Before Continuous Delivery (CD) can be achieved, the first step is to achieve Continuous
Integration (CI). Simply put, CI systems are build systems that watch various source control
repositories for changes, run any applicable tests, and automatically build (and ideally test) the
latest version of the application from each source control change, such as Jenkins (jenkins.io).
The key handoff for CD is that the build system can invoke Ansible upon a successful build. Users
who also run unit or integration tests on code as a result of the build will also be one step ahead
of the game. Jenkins can utilize Tower to deploy the built artifact into multiple environments,
but a QA/stage environment modeled after production ups the ante and substantially improves
predictability along the lifecycle. The data provided back by Ansible can then be referenced, and
directly correlated to a Tower job in the Build Systems job.
In fact, as we’ll detail later, we can use Tower against a stage environment to do testing prior to a
production deployment.
The goal of any
automation process
should be to enable
updates in a manner
that does not impact
operational capacity.
3
WHITEPAPER
CI/CD with Ansible
Ansible’s unique
multi-tier, multi-step
orchestration
capabilities, combined
with its push-based
architecture, allow
for extremely rapid
execution of
these types of
complex workflows.
ROLLING UPDATES AND MULTI-TIER APPLICATIONS
The absolute requirement in a CD system is the ability to orchestrate rolling updates among
various architecture tiers in an application. Ansible’s unique multi-tier, multi-step orchestration
capabilities, combined with its push-based architecture, allow for extremely rapid execution
of these types of complex workflows. As soon as one tier is updated, the next can begin, easily
sharing data between tiers.
One of the core features of Ansible that enables this is the ability to define “plays,” which select
a particular fine-grained group of hosts and assign some tasks (or “roles”) for them to execute.
Tasks are typically declarations that a particular resource be in a particular state, such that a
package be installed at a specific version or that a source control repository be checked out at a
particular version.
In most web application topologies, it is necessary to update particular tiers in a tight sequence.
For instance, the database schema may need to be migrated and the caching servers flushed
prior to updating the application servers.
More importantly, it is vital to not be managing the applications and configuration of the system
for all systems in production at the same time.
When services restart, they may not be immediately available. Replacing an application version
may also not be instantaneous. It is important to be able to take machines out of a load balanced
pool prior to update. It is also then critical to be able to automate the actions of taking machines
in and out of the pool.
Ansible allows you to control of the size of a rolling update window through the ‘serial’ keyword.
Additionally, Ansible’s rolling update handling is smart enough so that if a batch fails, the rolling
update will stop, leaving the rest of your infrastructure online.
CONTINUOUS DEPLOYMENT OF MANAGEMENT CONTENT
In addition to CD of production services, it’s also possible to continuously deploy Ansible
Playbook content itself. This allows systems administrators and developers to commit their
Ansible Playbook code to a central repository, run some tests against a stage environment, and
automatically apply those configurations to production upon passing stage. This allows the
same software process used for deploying software to be applied to configuration management,
reaping many of the same benefits.
As software or configuration change is a significant cause of unintended outage, both automated
testing and human review can be useful measures to implement. This can be coupled with a code
review system, like Gerrit (gerritcodereview.com), to require sign off from multiple users before
changes are applied.
4
WHITEPAPER
CI/CD with Ansible
“Gawker uses
Ansible to automate
deployment for
the Kinja platform,
powering sites such as
jalopnik.com, where it
interacts with Jenkins
and our Netscaler
load-balancers to
carefully roll out new
builds across the
application servers.
Often more than ten
times a day.”
JIM BARTUS
DIRECTOR OF TECH OPERATIONS
GAWKER MEDIA
ROLLING UPDATES AS APPLIED TO LOAD BALANCING & MONITORING
Ansible is adept at working with tools such as load balancers in the course of executing a rolling
update. In the middle of any Playbook “host loop,” it is possible to say “do this action on system X
on behalf of host Y.”
This includes both communicating with load balancers of all kinds, as well as flagging outage
windows for particular hosts to disable monitoring alerts for the hosts currently being updated.
Simple idioms like “disable monitoring - remove from pool - update tier - add to pool - enable
monitoring” allow for updates without downtime or false alarm pager alerts that work in an
automated manner every time without manual intervention.
INTEGRATED STAGE TESTING WITH ANSIBLE
Using Tower with multiple inventory sources allows for testing an Ansible Playbook with a stage
environment and requiring successful execution of an update prior to rollout into production.
This setup, while optional, is ideal for modelling production update scenarios (perhaps at a
smaller scale) prior to updating systems in the real world. Just use the “-i” parameter to an Ansible
Playbook to specify what inventory source the Playbook should run against, and use the same
Playbook for both stage and production.
VERSION CONTROL BASED DEPLOYMENT
Various organizations like to package their applications with OS packages (RPM, debs, etc.) but
in many cases, particularly for dynamic web applications, such packaging is unnecessary. For
this reason Ansible contains numerous modules for deploying straight from version control. A
Playbook can request that a repository be checked out at a specific tag or version, and then the
system will make sure this is true across the various servers. Ansible can report change events
to trigger additional follow up actions when the version of software needed to change, so that
associated services are not restarted unnecessarily.
INTEGRATIONS WITH MONITORING TOOLS
Because Ansible is an orchestration system, integrations can be made with APM monitoring tools
as well. For instance, let’s assume that during an integration test or deployment, an APM system
has an agent that needs to be installed/updated on the application. Ansible can have a Role that
handles the install of the agent against the application stack. Once the agent is online, Ansible can
then set alerts up (if they don’t already exist) in the monitoring stack. This monitoring can then
provide immediate data back to teams interested in the deployment; letting them know if the
application is running without issue.
If something were to occur with the application in production after the upgrade, Ansible could
be invoked by the monitoring tool to revert to a previous known good build of the application.
Obviously this can be done if, and only if, the application will allow for the reverted build.
5
WHITEPAPER
CI/CD with Ansible
CALLBACKS AND PLUGGABILITY
When in a culture of CI/CD, it can often be useful to provide alerts when events occur. Ansible
includes several facilities to do this, including an integrated mail module. Additionally, a callback
facility allows for plugging in notifications with arbitrary systems, which can include chat
broadcasts (IRC, Campfire, etc), custom logging, or internal social media.
THE DESIRED STATE RESOURCE MODEL AS APPLIED TO DEPLOYMENT
One of the key features that makes Ansible interesting for software deployment is the use
of state-based resource model, made popular in configuration management tooling, within
the process of updating software. While traditionally some open source tooling has had to be
supplemented with additional deployment software and scripts, this is not the case for Ansible.
This is made possible by the ability for Ansible to finely control order of events between different
tiers of systems, to delegate actions to other systems, and also to mix resource model directives
(“the state of package X should be Y”) versus traditional command patterns (“run script.sh”) in the
same process.
Ansible also allows easily executing commands to test for various conditions, and then make
conditional decisions based on the results of those commands. By unifying configuration and
deployment under one toolchain, it is possible to reduce overhead of managing different tooling,
and also achieve better unification between OS and application policy.
EMBEDDED TESTS INTO DEPLOYMENT
With great power comes great responsibility. One of the dangers of setting up an automated CD
system is the chance for an bad configuration to be propagated to all of one’s systems. To help
protect against this, Ansible allows for adding tests directly in Playbooks that can abort a rolling
update if something goes wrong. Arbitrary tests, deployed with the ‘command’ or ‘script’ module,
or even written as native Ansible modules, can be deployed to check for various conditions. This
may include the functioning state of the service.
At any point, usage of the ‘fail’ module can abort execution for the host. Thus, it’s easy to catch
errors early on in a rolling update window. For instance, suppose a difference between stage and
production resulted in a configuration error that would only break a production deployment. In
this case, Ansible Playbooks can be written to stop the update process in the first stage of the
rolling update window. If there were 100 servers and the update window was 10, the update
window would stop and allow intervention. Once corrected, simply re-run the Playbook to
continue the update.
In the event of a failure, Ansible does not keep going and half-configure the system. It raises
the error to your attention so it can be managed, and produces summaries of what hosts in the
update cycle had problems and how many changes were executed on each platform.
By unifying
configuration and
deployment under
one toolchain,
it is possible to
reduce overhead
of managing
different tooling,
and also achieve
better unification
between OS and
application policy.
6
WHITEPAPER
CI/CD with Ansible
Ansible contains a
dry-run mode via a
“--check” flag that
will report on what
changes would
have been made by
running a
Playbook process.
COMPLIANCE TESTING
In many environments, a configuration change should not be applied unless some change is
actually needed. It should be first understood and agreed upon by a human prior to “pushing the
button.” In these cases, a CD system can still be leveraged with some caveats.
In this case, Ansible contains a dry-run mode via a “--check” flag that will report on what changes
would have been made by running a Playbook process. As this will skip the actual command
executions and not account for possibly failing scripts, this is just a guideline, but it is a very
useful guideline and a useful tool to have in one’s toolkit.
Even if deploying continuously when new build products are available, it is possible to run
compliance checks even more frequently, to report on when things in production might have
changed due to human invention and need to be corrected by another Playbook run. This can be
an easy way to detect that a software change may need to occur, a permission may need to be
corrected, and so on.
PUTTING DEPLOYMENT ON AUTOPILOT
Ansible contains numerous tools and features to make it an ideal CI/CD solution. These include
the ability to finely orchestrate multi-tier, multi-step processes in zero-downtime rolling update
workflows. This is made possible by Ansible’s unique architecture, and coupled with the agentless
system (which adds security and no need to manage the management), it is easy to establish
simple human-readable representations of what were previously complex manual IT processes.
The days of locking an ops team in a conference room to perform a mix of manual and
automated steps are gone. Ansible puts deployment on full autopilot.
“Full autopilot” of course means enabling the true promise of agile processes: delivering change
faster, with fewer errors, and with fewer expensive context shifts. Eliminating outage windows,
and especially manual change error, is something that is expressly critical for any core internal IT
service or high-traffic web property.
Through architectural features in Ansible, and the ability to tightly integrate with CI systems
like Jenkins, not only can configuration be automated, but all aspects of IT processes can be
automated. This is why we refer to Ansible as an orchestration engine, as opposed to filing it
under just configuration management or software deployment.
EXAMPLES AND FURTHER INFORMATION
Some basic examples of Ansible content can be found at:
github.com/ansible/ansible-examples
Try Ansible Tower now:
ansible.com/tower
READY TO AUTOMATE? info@ansible.com · +1 919.667.9958 · ansible.com
Copyright ©2016 Red Hat, Inc. Red Hat, the Shadowman logo, and Ansible are trademarks
or registered trademarks of Red Hat, Inc. or its subsidiaries in the United States and other countries.
ABOUT ANSIBLE
Ansible, an open source community project sponsored by Red Hat, is the simplest way to
automate IT. Ansible is the only automation language that can be used across entire IT teams
– from systems and network administrators to developers and managers. Ansible by Red Hat
provides enterprise-ready solutions to automate your entire application lifecycle – from servers
to clouds to containers and everything in between. Ansible Tower by Red Hat is a commercial
offering that helps teams manage complex multi-tier deployments by adding control, knowledge,
and delegation to Ansible-powered environments.

Weitere ähnliche Inhalte

Was ist angesagt?

Product Overview: The New IBM UrbanCode Deploy 6.0
Product Overview: The New IBM UrbanCode Deploy 6.0Product Overview: The New IBM UrbanCode Deploy 6.0
Product Overview: The New IBM UrbanCode Deploy 6.0
IBM UrbanCode Products
 
MesosCon_Asia_2016_DevOps_at_GSShop
MesosCon_Asia_2016_DevOps_at_GSShopMesosCon_Asia_2016_DevOps_at_GSShop
MesosCon_Asia_2016_DevOps_at_GSShop
Vivek Juneja
 

Was ist angesagt? (20)

Removing Barriers Between Dev and Ops
Removing Barriers Between Dev and OpsRemoving Barriers Between Dev and Ops
Removing Barriers Between Dev and Ops
 
Product Overview: The New IBM UrbanCode Deploy 6.0
Product Overview: The New IBM UrbanCode Deploy 6.0Product Overview: The New IBM UrbanCode Deploy 6.0
Product Overview: The New IBM UrbanCode Deploy 6.0
 
MesosCon_Asia_2016_DevOps_at_GSShop
MesosCon_Asia_2016_DevOps_at_GSShopMesosCon_Asia_2016_DevOps_at_GSShop
MesosCon_Asia_2016_DevOps_at_GSShop
 
DevOps, Open Source e Microsoft
DevOps, Open Source e MicrosoftDevOps, Open Source e Microsoft
DevOps, Open Source e Microsoft
 
Evolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial ToneEvolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial Tone
 
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps:  Standardizing Chaotic Culture at NBCUniversalEfficient DevOps:  Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
 
Devops: Who Does What? - Devops Enterprise Summit 2016
Devops: Who Does What? - Devops Enterprise Summit 2016Devops: Who Does What? - Devops Enterprise Summit 2016
Devops: Who Does What? - Devops Enterprise Summit 2016
 
Live demo: Protect your Data
Live demo: Protect your DataLive demo: Protect your Data
Live demo: Protect your Data
 
PuppetConf 2016: Puppet and vRealize Automation: The Next Generation – Ganesh...
PuppetConf 2016: Puppet and vRealize Automation: The Next Generation – Ganesh...PuppetConf 2016: Puppet and vRealize Automation: The Next Generation – Ganesh...
PuppetConf 2016: Puppet and vRealize Automation: The Next Generation – Ganesh...
 
The Next Generation of Continuous Delivery
The Next Generation of Continuous DeliveryThe Next Generation of Continuous Delivery
The Next Generation of Continuous Delivery
 
Journey toward3rdplatform
Journey toward3rdplatformJourney toward3rdplatform
Journey toward3rdplatform
 
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with BluemixAdopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
 
What's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode DeployWhat's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode Deploy
 
Introduction to IBM UrbanCode Deploy and Release
Introduction to IBM UrbanCode Deploy and ReleaseIntroduction to IBM UrbanCode Deploy and Release
Introduction to IBM UrbanCode Deploy and Release
 
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
 
Urban code - DevOps - cost reduction
Urban code - DevOps - cost reductionUrban code - DevOps - cost reduction
Urban code - DevOps - cost reduction
 
Cloud Infrastructure Modernisation Guide
Cloud Infrastructure Modernisation GuideCloud Infrastructure Modernisation Guide
Cloud Infrastructure Modernisation Guide
 
Evolving Infrastructure
Evolving InfrastructureEvolving Infrastructure
Evolving Infrastructure
 
Automation, Audits, and Apps Tour
Automation, Audits, and Apps TourAutomation, Audits, and Apps Tour
Automation, Audits, and Apps Tour
 
Robert Mircea & Virgil Chereches: Our Journey To Continuous Delivery at I T.A...
Robert Mircea & Virgil Chereches: Our Journey To Continuous Delivery at I T.A...Robert Mircea & Virgil Chereches: Our Journey To Continuous Delivery at I T.A...
Robert Mircea & Virgil Chereches: Our Journey To Continuous Delivery at I T.A...
 

Andere mochten auch

Andere mochten auch (17)

Deploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleDeploying Symfony2 app with Ansible
Deploying Symfony2 app with Ansible
 
Ansible 2.0
Ansible 2.0Ansible 2.0
Ansible 2.0
 
Database migration with flyway
Database migration  with flywayDatabase migration  with flyway
Database migration with flyway
 
Database migration
Database migrationDatabase migration
Database migration
 
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング  -OneViewの連携-AnsibleによるHWプロビジョニング  -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-
 
HP Advanced Technology Group: Docker and Ansible
HP Advanced Technology Group: Docker and AnsibleHP Advanced Technology Group: Docker and Ansible
HP Advanced Technology Group: Docker and Ansible
 
Jenkins and ansible reference
Jenkins and ansible referenceJenkins and ansible reference
Jenkins and ansible reference
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
 
Automation with Ansible and Containers
Automation with Ansible and ContainersAutomation with Ansible and Containers
Automation with Ansible and Containers
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧
 
Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with Ansible
 
database migration simple, cross-engine and cross-platform migrations with ...
database migration   simple, cross-engine and cross-platform migrations with ...database migration   simple, cross-engine and cross-platform migrations with ...
database migration simple, cross-engine and cross-platform migrations with ...
 
Ansible, best practices
Ansible, best practicesAnsible, best practices
Ansible, best practices
 
Ansible tips & tricks
Ansible tips & tricksAnsible tips & tricks
Ansible tips & tricks
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
Infrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleInfrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & Ansible
 
Database Migration
Database MigrationDatabase Migration
Database Migration
 

Ähnlich wie Ansible

Devops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentDevops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous Development
SandyJohn5
 
Control-with-Ansible-Tower
Control-with-Ansible-TowerControl-with-Ansible-Tower
Control-with-Ansible-Tower
Mark Costin
 
Introduction To Development And Operations
Introduction To Development And OperationsIntroduction To Development And Operations
Introduction To Development And Operations
teekhesawaal
 

Ähnlich wie Ansible (20)

Top 3 Useful Tools for DevOps Automation -
Top 3 Useful Tools for DevOps Automation -Top 3 Useful Tools for DevOps Automation -
Top 3 Useful Tools for DevOps Automation -
 
Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.
 
Devops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentDevops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous Development
 
devops certification
devops certificationdevops certification
devops certification
 
devops certification
devops certificationdevops certification
devops certification
 
The Evolution from Agile to DevOps
The Evolution from Agile to DevOpsThe Evolution from Agile to DevOps
The Evolution from Agile to DevOps
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
 
Enabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOpsEnabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOps
 
Control-with-Ansible-Tower
Control-with-Ansible-TowerControl-with-Ansible-Tower
Control-with-Ansible-Tower
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
 
Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing
Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing
Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing
 
DevOps - Introduction to data science
DevOps - Introduction to data scienceDevOps - Introduction to data science
DevOps - Introduction to data science
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platform
 
Top 9 DevOps Tools: Which DevOps Tool Should I Learn
Top 9 DevOps Tools: Which DevOps Tool Should I Learn Top 9 DevOps Tools: Which DevOps Tool Should I Learn
Top 9 DevOps Tools: Which DevOps Tool Should I Learn
 
Advanced Techniques for Initiating the DevOps Journey
Advanced Techniques for Initiating the DevOps JourneyAdvanced Techniques for Initiating the DevOps Journey
Advanced Techniques for Initiating the DevOps Journey
 
Introduction To Development And Operations
Introduction To Development And OperationsIntroduction To Development And Operations
Introduction To Development And Operations
 
Top devops solution providers
Top devops solution providersTop devops solution providers
Top devops solution providers
 
Architecting for Continuous Delivery
Architecting for Continuous DeliveryArchitecting for Continuous Delivery
Architecting for Continuous Delivery
 
Path To Continuous Test Automation Using CICD Pipeline.pdf
Path To Continuous Test Automation Using CICD Pipeline.pdfPath To Continuous Test Automation Using CICD Pipeline.pdf
Path To Continuous Test Automation Using CICD Pipeline.pdf
 

Mehr von Ying wei (Joe) Chou

華晨中國 獨立調查之主要調查結果概要
華晨中國 獨立調查之主要調查結果概要華晨中國 獨立調查之主要調查結果概要
華晨中國 獨立調查之主要調查結果概要
Ying wei (Joe) Chou
 
Servitization in global markets - role alignment in global service networks f...
Servitization in global markets - role alignment in global service networks f...Servitization in global markets - role alignment in global service networks f...
Servitization in global markets - role alignment in global service networks f...
Ying wei (Joe) Chou
 
Think with me, or think for me on the future role of artificial intelligenc...
Think with me, or think for me   on the future role of artificial intelligenc...Think with me, or think for me   on the future role of artificial intelligenc...
Think with me, or think for me on the future role of artificial intelligenc...
Ying wei (Joe) Chou
 
The battle of superheros the rise of the knowledge platform strategy in the m...
The battle of superheros the rise of the knowledge platform strategy in the m...The battle of superheros the rise of the knowledge platform strategy in the m...
The battle of superheros the rise of the knowledge platform strategy in the m...
Ying wei (Joe) Chou
 
The value investing-requiem rebirth or reincarnation
The value investing-requiem rebirth or reincarnationThe value investing-requiem rebirth or reincarnation
The value investing-requiem rebirth or reincarnation
Ying wei (Joe) Chou
 
The broadcasting in the internet age
The broadcasting in the internet ageThe broadcasting in the internet age
The broadcasting in the internet age
Ying wei (Joe) Chou
 
Ssrn an analysis on the television broadacsting sector-the impact of ott serv...
Ssrn an analysis on the television broadacsting sector-the impact of ott serv...Ssrn an analysis on the television broadacsting sector-the impact of ott serv...
Ssrn an analysis on the television broadacsting sector-the impact of ott serv...
Ying wei (Joe) Chou
 
Ssrn a critical review of digital marketing
Ssrn a critical review of digital marketingSsrn a critical review of digital marketing
Ssrn a critical review of digital marketing
Ying wei (Joe) Chou
 
Ssrn a brief inrtoduction to the basic of game theory
Ssrn a brief inrtoduction to the basic of game theorySsrn a brief inrtoduction to the basic of game theory
Ssrn a brief inrtoduction to the basic of game theory
Ying wei (Joe) Chou
 
Small–medium enterprise formation and nigerian economic growth
Small–medium enterprise formation and nigerian economic growthSmall–medium enterprise formation and nigerian economic growth
Small–medium enterprise formation and nigerian economic growth
Ying wei (Joe) Chou
 
Online dating apps as a marketing channel a generational approach
Online dating apps as a marketing channel  a generational approachOnline dating apps as a marketing channel  a generational approach
Online dating apps as a marketing channel a generational approach
Ying wei (Joe) Chou
 
Making secret sharing based cloud storage usable
Making secret sharing based  cloud storage usableMaking secret sharing based  cloud storage usable
Making secret sharing based cloud storage usable
Ying wei (Joe) Chou
 

Mehr von Ying wei (Joe) Chou (20)

廣東塑料交易所.pdf
廣東塑料交易所.pdf廣東塑料交易所.pdf
廣東塑料交易所.pdf
 
Oecd due-diligence-guidance-for
Oecd due-diligence-guidance-forOecd due-diligence-guidance-for
Oecd due-diligence-guidance-for
 
109 我國製造業附加價值率
109 我國製造業附加價值率109 我國製造業附加價值率
109 我國製造業附加價值率
 
華晨中國 獨立調查之主要調查結果概要
華晨中國 獨立調查之主要調查結果概要華晨中國 獨立調查之主要調查結果概要
華晨中國 獨立調查之主要調查結果概要
 
Servitization in global markets - role alignment in global service networks f...
Servitization in global markets - role alignment in global service networks f...Servitization in global markets - role alignment in global service networks f...
Servitization in global markets - role alignment in global service networks f...
 
Salary
SalarySalary
Salary
 
Why sharing is synergy
Why sharing is synergyWhy sharing is synergy
Why sharing is synergy
 
Think with me, or think for me on the future role of artificial intelligenc...
Think with me, or think for me   on the future role of artificial intelligenc...Think with me, or think for me   on the future role of artificial intelligenc...
Think with me, or think for me on the future role of artificial intelligenc...
 
The battle of superheros the rise of the knowledge platform strategy in the m...
The battle of superheros the rise of the knowledge platform strategy in the m...The battle of superheros the rise of the knowledge platform strategy in the m...
The battle of superheros the rise of the knowledge platform strategy in the m...
 
The anatomy of business falure
The  anatomy of business falureThe  anatomy of business falure
The anatomy of business falure
 
The value investing-requiem rebirth or reincarnation
The value investing-requiem rebirth or reincarnationThe value investing-requiem rebirth or reincarnation
The value investing-requiem rebirth or reincarnation
 
De Fi and the future of finance
De Fi and the future of financeDe Fi and the future of finance
De Fi and the future of finance
 
The broadcasting in the internet age
The broadcasting in the internet ageThe broadcasting in the internet age
The broadcasting in the internet age
 
Ssrn an analysis on the television broadacsting sector-the impact of ott serv...
Ssrn an analysis on the television broadacsting sector-the impact of ott serv...Ssrn an analysis on the television broadacsting sector-the impact of ott serv...
Ssrn an analysis on the television broadacsting sector-the impact of ott serv...
 
Ssrn a critical review of digital marketing
Ssrn a critical review of digital marketingSsrn a critical review of digital marketing
Ssrn a critical review of digital marketing
 
Ssrn a brief inrtoduction to the basic of game theory
Ssrn a brief inrtoduction to the basic of game theorySsrn a brief inrtoduction to the basic of game theory
Ssrn a brief inrtoduction to the basic of game theory
 
Small–medium enterprise formation and nigerian economic growth
Small–medium enterprise formation and nigerian economic growthSmall–medium enterprise formation and nigerian economic growth
Small–medium enterprise formation and nigerian economic growth
 
Online dating apps as a marketing channel a generational approach
Online dating apps as a marketing channel  a generational approachOnline dating apps as a marketing channel  a generational approach
Online dating apps as a marketing channel a generational approach
 
My future entrepreneurial self
My future entrepreneurial selfMy future entrepreneurial self
My future entrepreneurial self
 
Making secret sharing based cloud storage usable
Making secret sharing based  cloud storage usableMaking secret sharing based  cloud storage usable
Making secret sharing based cloud storage usable
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Ansible

  • 1. ansible.com +1 919-667-9958 WHITEPAPER CONTINUOUS INTEGRATION & DELIVERY WITH ANSIBLE INTRODUCTION Ansible is a very powerful open source automation language. What makes it unique from other management tools, is that it is also a deployment and orchestration tool. In many respects, aiming to provide large productivity gains to a wide variety of automation challenges. While Ansible provides more productive drop-in replacements for many core capabilities in other automation solutions, it also seeks to solve other major unsolved IT challenges. One of these challenges is to enable continuous integration and continuous deployment (CI/CD) with zero downtime. This goal has often required extensive custom coding, working with multiple software packages, and lots of in-house-developed glue to achieve success. Ansible provides all of these capabilities in one composition, being designed from the beginning to orchestrate exactly these types of scenarios. WHY CI/CD Over the last decade, analysis of software and IT practices have taught us that longer release cycles (“waterfall projects”) have dramatically higher overhead than more frequently released (“iterative” or “agile”) shorter cycles. As a release begins, a quality assurance team is prepared, waiting for things to test, and IT does not have anything to deploy. Towards the end of a release cycle, QA is running at full force, as is IT, but development is split between bugs and planning the next major release. Context switches are frequent. Perhaps more urgently, longer release cycles also mean a longer delay between the time when bugs are discovered and when they are addressed, which is especially a problem in large traffic web properties where single issues can affect millions of users. To resolve this problem, the software development industry is rapidly moving towards “release early, release often,” under the banner of “Agile Software Development.” Releasing early and often means there is less switching of gears between operation modes for any team members, and changes can be made, qualified, and deployed in much shorter times. Various approaches such as QA automation engineering and
  • 2. 2 WHITEPAPER CI/CD with Ansible Test Driven Development (TDD) increase the effectiveness of these techniques. It stands to reason that if “release early, release often” is progress, CI/CD may be nirvana. While agility is a progressive spectrum, an organization’s movement in this direction can yield impressive results. To achieve this, automation is key, so there is a huge focus around the technology that enables quick turnaround, requiring human intervention only when necessary. In this document, we’ll highlight why Ansible and Ansible Tower by Red Hat are the ideal tools to connect your computer systems to enable these kind of processes. WHY ZERO DOWNTIME? Downtime and outage windows result in either lost revenue or customer unhappiness. For a major web application with users in all time zones around the world, going down for an outage is only to be reserved for the most dire and complicated of upgrade processes–certainly not updating your application versions. Even for internal applications at large organizations (imagine an accounting or intranet system), an outage in a critical system can mean major impacts on productivity. The goal of any automation process should be to enable updates in a manner that does not impact operational capacity. Zero downtime is achievable, but it requires support from tooling– a strong multi-tier, multi-step orchestration engine like Ansible– to make it manageable. OTHER BUILD SYSTEMS Before Continuous Delivery (CD) can be achieved, the first step is to achieve Continuous Integration (CI). Simply put, CI systems are build systems that watch various source control repositories for changes, run any applicable tests, and automatically build (and ideally test) the latest version of the application from each source control change, such as Jenkins (jenkins.io). The key handoff for CD is that the build system can invoke Ansible upon a successful build. Users who also run unit or integration tests on code as a result of the build will also be one step ahead of the game. Jenkins can utilize Tower to deploy the built artifact into multiple environments, but a QA/stage environment modeled after production ups the ante and substantially improves predictability along the lifecycle. The data provided back by Ansible can then be referenced, and directly correlated to a Tower job in the Build Systems job. In fact, as we’ll detail later, we can use Tower against a stage environment to do testing prior to a production deployment. The goal of any automation process should be to enable updates in a manner that does not impact operational capacity.
  • 3. 3 WHITEPAPER CI/CD with Ansible Ansible’s unique multi-tier, multi-step orchestration capabilities, combined with its push-based architecture, allow for extremely rapid execution of these types of complex workflows. ROLLING UPDATES AND MULTI-TIER APPLICATIONS The absolute requirement in a CD system is the ability to orchestrate rolling updates among various architecture tiers in an application. Ansible’s unique multi-tier, multi-step orchestration capabilities, combined with its push-based architecture, allow for extremely rapid execution of these types of complex workflows. As soon as one tier is updated, the next can begin, easily sharing data between tiers. One of the core features of Ansible that enables this is the ability to define “plays,” which select a particular fine-grained group of hosts and assign some tasks (or “roles”) for them to execute. Tasks are typically declarations that a particular resource be in a particular state, such that a package be installed at a specific version or that a source control repository be checked out at a particular version. In most web application topologies, it is necessary to update particular tiers in a tight sequence. For instance, the database schema may need to be migrated and the caching servers flushed prior to updating the application servers. More importantly, it is vital to not be managing the applications and configuration of the system for all systems in production at the same time. When services restart, they may not be immediately available. Replacing an application version may also not be instantaneous. It is important to be able to take machines out of a load balanced pool prior to update. It is also then critical to be able to automate the actions of taking machines in and out of the pool. Ansible allows you to control of the size of a rolling update window through the ‘serial’ keyword. Additionally, Ansible’s rolling update handling is smart enough so that if a batch fails, the rolling update will stop, leaving the rest of your infrastructure online. CONTINUOUS DEPLOYMENT OF MANAGEMENT CONTENT In addition to CD of production services, it’s also possible to continuously deploy Ansible Playbook content itself. This allows systems administrators and developers to commit their Ansible Playbook code to a central repository, run some tests against a stage environment, and automatically apply those configurations to production upon passing stage. This allows the same software process used for deploying software to be applied to configuration management, reaping many of the same benefits. As software or configuration change is a significant cause of unintended outage, both automated testing and human review can be useful measures to implement. This can be coupled with a code review system, like Gerrit (gerritcodereview.com), to require sign off from multiple users before changes are applied.
  • 4. 4 WHITEPAPER CI/CD with Ansible “Gawker uses Ansible to automate deployment for the Kinja platform, powering sites such as jalopnik.com, where it interacts with Jenkins and our Netscaler load-balancers to carefully roll out new builds across the application servers. Often more than ten times a day.” JIM BARTUS DIRECTOR OF TECH OPERATIONS GAWKER MEDIA ROLLING UPDATES AS APPLIED TO LOAD BALANCING & MONITORING Ansible is adept at working with tools such as load balancers in the course of executing a rolling update. In the middle of any Playbook “host loop,” it is possible to say “do this action on system X on behalf of host Y.” This includes both communicating with load balancers of all kinds, as well as flagging outage windows for particular hosts to disable monitoring alerts for the hosts currently being updated. Simple idioms like “disable monitoring - remove from pool - update tier - add to pool - enable monitoring” allow for updates without downtime or false alarm pager alerts that work in an automated manner every time without manual intervention. INTEGRATED STAGE TESTING WITH ANSIBLE Using Tower with multiple inventory sources allows for testing an Ansible Playbook with a stage environment and requiring successful execution of an update prior to rollout into production. This setup, while optional, is ideal for modelling production update scenarios (perhaps at a smaller scale) prior to updating systems in the real world. Just use the “-i” parameter to an Ansible Playbook to specify what inventory source the Playbook should run against, and use the same Playbook for both stage and production. VERSION CONTROL BASED DEPLOYMENT Various organizations like to package their applications with OS packages (RPM, debs, etc.) but in many cases, particularly for dynamic web applications, such packaging is unnecessary. For this reason Ansible contains numerous modules for deploying straight from version control. A Playbook can request that a repository be checked out at a specific tag or version, and then the system will make sure this is true across the various servers. Ansible can report change events to trigger additional follow up actions when the version of software needed to change, so that associated services are not restarted unnecessarily. INTEGRATIONS WITH MONITORING TOOLS Because Ansible is an orchestration system, integrations can be made with APM monitoring tools as well. For instance, let’s assume that during an integration test or deployment, an APM system has an agent that needs to be installed/updated on the application. Ansible can have a Role that handles the install of the agent against the application stack. Once the agent is online, Ansible can then set alerts up (if they don’t already exist) in the monitoring stack. This monitoring can then provide immediate data back to teams interested in the deployment; letting them know if the application is running without issue. If something were to occur with the application in production after the upgrade, Ansible could be invoked by the monitoring tool to revert to a previous known good build of the application. Obviously this can be done if, and only if, the application will allow for the reverted build.
  • 5. 5 WHITEPAPER CI/CD with Ansible CALLBACKS AND PLUGGABILITY When in a culture of CI/CD, it can often be useful to provide alerts when events occur. Ansible includes several facilities to do this, including an integrated mail module. Additionally, a callback facility allows for plugging in notifications with arbitrary systems, which can include chat broadcasts (IRC, Campfire, etc), custom logging, or internal social media. THE DESIRED STATE RESOURCE MODEL AS APPLIED TO DEPLOYMENT One of the key features that makes Ansible interesting for software deployment is the use of state-based resource model, made popular in configuration management tooling, within the process of updating software. While traditionally some open source tooling has had to be supplemented with additional deployment software and scripts, this is not the case for Ansible. This is made possible by the ability for Ansible to finely control order of events between different tiers of systems, to delegate actions to other systems, and also to mix resource model directives (“the state of package X should be Y”) versus traditional command patterns (“run script.sh”) in the same process. Ansible also allows easily executing commands to test for various conditions, and then make conditional decisions based on the results of those commands. By unifying configuration and deployment under one toolchain, it is possible to reduce overhead of managing different tooling, and also achieve better unification between OS and application policy. EMBEDDED TESTS INTO DEPLOYMENT With great power comes great responsibility. One of the dangers of setting up an automated CD system is the chance for an bad configuration to be propagated to all of one’s systems. To help protect against this, Ansible allows for adding tests directly in Playbooks that can abort a rolling update if something goes wrong. Arbitrary tests, deployed with the ‘command’ or ‘script’ module, or even written as native Ansible modules, can be deployed to check for various conditions. This may include the functioning state of the service. At any point, usage of the ‘fail’ module can abort execution for the host. Thus, it’s easy to catch errors early on in a rolling update window. For instance, suppose a difference between stage and production resulted in a configuration error that would only break a production deployment. In this case, Ansible Playbooks can be written to stop the update process in the first stage of the rolling update window. If there were 100 servers and the update window was 10, the update window would stop and allow intervention. Once corrected, simply re-run the Playbook to continue the update. In the event of a failure, Ansible does not keep going and half-configure the system. It raises the error to your attention so it can be managed, and produces summaries of what hosts in the update cycle had problems and how many changes were executed on each platform. By unifying configuration and deployment under one toolchain, it is possible to reduce overhead of managing different tooling, and also achieve better unification between OS and application policy.
  • 6. 6 WHITEPAPER CI/CD with Ansible Ansible contains a dry-run mode via a “--check” flag that will report on what changes would have been made by running a Playbook process. COMPLIANCE TESTING In many environments, a configuration change should not be applied unless some change is actually needed. It should be first understood and agreed upon by a human prior to “pushing the button.” In these cases, a CD system can still be leveraged with some caveats. In this case, Ansible contains a dry-run mode via a “--check” flag that will report on what changes would have been made by running a Playbook process. As this will skip the actual command executions and not account for possibly failing scripts, this is just a guideline, but it is a very useful guideline and a useful tool to have in one’s toolkit. Even if deploying continuously when new build products are available, it is possible to run compliance checks even more frequently, to report on when things in production might have changed due to human invention and need to be corrected by another Playbook run. This can be an easy way to detect that a software change may need to occur, a permission may need to be corrected, and so on. PUTTING DEPLOYMENT ON AUTOPILOT Ansible contains numerous tools and features to make it an ideal CI/CD solution. These include the ability to finely orchestrate multi-tier, multi-step processes in zero-downtime rolling update workflows. This is made possible by Ansible’s unique architecture, and coupled with the agentless system (which adds security and no need to manage the management), it is easy to establish simple human-readable representations of what were previously complex manual IT processes. The days of locking an ops team in a conference room to perform a mix of manual and automated steps are gone. Ansible puts deployment on full autopilot. “Full autopilot” of course means enabling the true promise of agile processes: delivering change faster, with fewer errors, and with fewer expensive context shifts. Eliminating outage windows, and especially manual change error, is something that is expressly critical for any core internal IT service or high-traffic web property. Through architectural features in Ansible, and the ability to tightly integrate with CI systems like Jenkins, not only can configuration be automated, but all aspects of IT processes can be automated. This is why we refer to Ansible as an orchestration engine, as opposed to filing it under just configuration management or software deployment. EXAMPLES AND FURTHER INFORMATION Some basic examples of Ansible content can be found at: github.com/ansible/ansible-examples Try Ansible Tower now: ansible.com/tower
  • 7. READY TO AUTOMATE? info@ansible.com · +1 919.667.9958 · ansible.com Copyright ©2016 Red Hat, Inc. Red Hat, the Shadowman logo, and Ansible are trademarks or registered trademarks of Red Hat, Inc. or its subsidiaries in the United States and other countries. ABOUT ANSIBLE Ansible, an open source community project sponsored by Red Hat, is the simplest way to automate IT. Ansible is the only automation language that can be used across entire IT teams – from systems and network administrators to developers and managers. Ansible by Red Hat provides enterprise-ready solutions to automate your entire application lifecycle – from servers to clouds to containers and everything in between. Ansible Tower by Red Hat is a commercial offering that helps teams manage complex multi-tier deployments by adding control, knowledge, and delegation to Ansible-powered environments.