Infra / Cont delivery - 3rd party automation

Post on 02-Jun-2015

162 views 1 download

Tags:

description

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

transcript

Infra/Continuous deliveryMethods for automating 3rd party and

infrastural software

Gal Marder
All in all this looks good. W at i think needs to be emphasized is that when working with images you don't really know what is on the machine once you deploy it and not everything is versioned.

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

Automation methods - Imaging

OverviewImaging 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

Automation methods - Imaging

MethodsMost 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

Automation methods - Imaging

Applications● OpenStack Glance● CloneZilla / DRBL● Ghost● Unix dd, tar, dump, rsync

Automation methods - Imaging

Pros● Solid, fully predicted outcome● Easy to maintain deployments● Little to none OS boundCons● Image updates are stacked● Images are storage/network inefficient

Automation methods - PBA / CM

OverviewPlayBook 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

Automation methods - PBA / CM

MethodsPBA 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

Automation methods - PBA / CM

Applications● Ansible● Chef● Puppet● Quattor● Rundeck● Salt

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

Automation methods - PBA / CM

Cons● Outcome may vary on different OS setups● Version control is ‘mandatory’● OS deployment automation required

Gal Marder
I think the version control is a pro not a con

Automation methods - SW PackageOverviewSoftware packing is similar to ISV procedure for publishing software / updatesMethodThe required resources and installation / configuration procedures are packed to a dedicated format and managed on a private repository

Automation methods - SW Package

Applications● RPM +YUM (Redhat family)● DEB + APT (Debian family)● MSI (MS family)● SuSE manager, RH Satellite, Spacewalk

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

Automation methods - SW Package

Cons● Not OS dynamic● Packaging process vary of different OS● OS deployment automation required

Automation methods - Containers

OverviewContained 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

Automation methods - Containers

MethodSoftware 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

Automation methods - Containers

Applications● OpenStack Nova● OpenShift● Heroku● Docker, libVirt, LXC● OpenVZ● Unix chroot, iptables, SELinux

device-mapper, etc

Automation methods - ContainersPros● Contained software is isolated

o High stabilityo Highly predicted outcome

● Updates are introduced to code and metadata

● Support online version switching● Highly scalable, mobile and easily

orchestrated

Automation methods - ContainersCons● Must (highly recommended to) run on

Unix/Linux● Complicated for a simple (e.g: LAMP)

infrastructure

etcWhen 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