An overview of the methods, applications an common practices of automating the procedures for creating an infrastructure (normally includes db, app, web services etc)
2. Automation methods
Automating the procedures for delivery of
‘ready-to-use’ infrastructure can be achieved
using one or more of the following methods
● Imaging
● Playbook automation / CM
● Software packaging
● Contained applications
3. Automation methods - Imaging
Overview
Imaging is the practice of pre-installing
Operating System and the entire stack of
required applications on a ‘prototype’ machine
and packing an Image of that machine.
Deployment is done by applying the image on a
‘bare’ machine of any type
4. Automation methods - Imaging
Methods
Most applications use a simple method of ‘Disk
Cloning’ for packing a machine for future clone.
Some applications use Backup mechanisms.
The cloning procedure normally involved an
automated boot environment on top of PXE or
custom Boot/Clone mechanism
6. Automation methods - Imaging
Pros
● Solid, fully predicted outcome
● Easy to maintain deployments
● Little to none OS bound
Cons
● Image updates are stacked
● Images are storage/network inefficient
7. Automation methods - PBA / CM
Overview
PlayBook Automation describe the practice of
listing the entire set of commands required in
order to deliver a fully featured infrastructure
according to the software dependency
8. Automation methods - PBA / CM
Methods
PBA is commonly implemented by using a
dedicated Software Framework or a set of OS
level scripts.
Deploying a machine usually consist of OS
Automatic Deployment, ‘bootstrapping’ and
invocation of a Playbook set on a machine
9. Automation methods - PBA / CM
Applications
● Ansible
● Chef
● Puppet
● Quattor
● Rundeck
● Salt
10. Automation methods - PBA / CM
Pros
● Very flexible description tools for desired
outcome
● Updates can be done to Metadata only and
pushed Downstream on demand
● Storage / network efficient
● Authentication/Authorization can be
implemented
11. Automation methods - PBA / CM
Cons
● Outcome may vary on different OS setups
● Version control is ‘mandatory’
● OS deployment automation required
12. Automation methods - SW Package
Overview
Software packing is similar to ISV procedure for
publishing software / updates
Method
The required resources and installation /
configuration procedures are packed to a
dedicated format and managed on a private
repository
14. Automation methods - SW Package
Pros
● On a given OS outcome is highly predicted
● Widely used on distribution level for all OS
types
● Software dependencies are easily managed
15. Automation methods - SW Package
Cons
● Not OS dynamic
● Packaging process vary of different OS
● OS deployment automation required
16. Automation methods - Containers
Overview
Contained software, is being used in order to
provide an isolated environment for every
application required on the infrastructure.
This method is used to provide high level of
security and mobility (/scaling) of an application
17. Automation methods - Containers
Method
Software containers are implemented by
allocating a dedicated Process range, CPU,
RAM, Storage, Network, etc for a specific
application.
Once a container is initialized, the application is
ready-to-use and the appropriate network ports
are exposed to external networks
19. Automation methods - Containers
Pros
● Contained software is isolated
o High stability
o Highly predicted outcome
● Updates are introduced to code and
metadata
● Support online version switching
● Highly scalable, mobile and easily
orchestrated
20. Automation methods - Containers
Cons
● Must (highly recommended to) run on
Unix/Linux
● Complicated for a simple (e.g: LAMP)
infrastructure
21. etc
When designing a dynamic architecture, one aspire to have
the ability to automatically manage it’s applications on a
widest level as possible.
This is normally referred as orchestrating the infrastructure.
Given a solid solution to provide a system based on a
blueprint, orchestration applications can be used to fully
automate the delivery stream