Infra / Cont delivery - 3rd party automation


Published on

An overview of the methods, applications an common practices of automating the procedures for creating an infrastructure (normally includes db, app, web services etc)

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Infra / Cont delivery - 3rd party automation

  1. 1. Infra/Continuous delivery Methods for automating 3rd party and infrastural software
  2. 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. 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. 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
  5. 5. Automation methods - Imaging Applications ● OpenStack Glance ● CloneZilla / DRBL ● Ghost ● Unix dd, tar, dump, rsync
  6. 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. 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. 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. 9. Automation methods - PBA / CM Applications ● Ansible ● Chef ● Puppet ● Quattor ● Rundeck ● Salt
  10. 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. 11. Automation methods - PBA / CM Cons ● Outcome may vary on different OS setups ● Version control is ‘mandatory’ ● OS deployment automation required
  12. 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
  13. 13. Automation methods - SW Package Applications ● RPM +YUM (Redhat family) ● DEB + APT (Debian family) ● MSI (MS family) ● SuSE manager, RH Satellite, Spacewalk
  14. 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. 15. Automation methods - SW Package Cons ● Not OS dynamic ● Packaging process vary of different OS ● OS deployment automation required
  16. 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. 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
  18. 18. Automation methods - Containers Applications ● OpenStack Nova ● OpenShift ● Heroku ● Docker, libVirt, LXC ● OpenVZ ● Unix chroot, iptables, SELinux device-mapper, etc
  19. 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. 20. Automation methods - Containers Cons ● Must (highly recommended to) run on Unix/Linux ● Complicated for a simple (e.g: LAMP) infrastructure
  21. 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