<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d8211560\x26blogName\x3dTech+Tips,+Tricks+%26+Trivia\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://mvark.blogspot.com/search\x26blogLocale\x3den\x26v\x3d2\x26homepageUrl\x3dhttp://mvark.blogspot.com/\x26vt\x3d601588505461698440', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Tech Tips, Tricks & Trivia

by 'Anil' Radhakrishna
An architect's notes, experiments, discoveries and annotated bookmarks.

Search from over a hundred HOW TO articles, Tips and Tricks


Comparison of Infrastructure as Code tools

Source - Why use Terraform?


Source Cloud Type Infrastructure Language Agent Master Community Maturity Initial Release
Chef Open All Config Mgmt Mutable Procedural Yes Yes Large High 2005
Puppet Open All Config Mgmt Mutable Declarative Yes Yes Large High  2009
Ansible Open All Config Mgmt Mutable Procedural No No Large Medium  2011
SaltStack Open All Config Mgmt Mutable Declarative Yes Yes Medium Medium  2011
CloudFormation Closed AWS Provisioning Immutable Declarative No No Small Medium 2012
Heat Open All Provisioning Immutable Declarative No No Small Low  2012
Terraform Open All Provisioning Immutable Declarative No No Medium Low  2014

Key points from the article -

The goal of DevOps is to make software delivery vastly more efficient.

Instead of constant outages and downtime, you build resilient, self-healing systems, and use monitoring and alerting to catch problems that can’t be resolved automatically.

There are four core values in the DevOps movement: Culture, Automation, Measurement, and Sharing (sometimes abbreviated as the acronym CAMS)

The idea behind infrastructure as code (IAC) is that you write and execute code to define, deploy, and update your infrastructure.

There are four broad categories of IAC tools:
- Ad hoc scripts
- Configuration management tools
- Server templating tools
- Server provisioning tools

Chef, Puppet, Ansible, and SaltStack are all configuration management tools, which means they are designed to install and manage software on existing servers.

Code that works correctly no matter how many times you run it is called idempotent code.

An alternative to configuration management that has been growing in popularity recently are server templating tools such as Docker, Packer, and Vagrant.

A server templating tool like Packer can be used to create a self-contained image of a server. You can then use other tools, such as Ansible, to install that image across all of your servers.

A virtual machine (VM) emulates an entire computer system, including the hardware. You run a hypervisor, such as VMWare, VirtualBox, or Parallels, to virtualize (i.e., simulate) the underlying CPU, memory, hard drive, and networking.

A container emulates the user space of an operating system. All the containers running on a single server share that server’s operating system kernel and hardware, so the isolation is not as secure as with VMs.

VMs virtualize the hardware, whereas containers only virtualize user space.

Server templating is a key component of the shift to immutable infrastructure. The idea behind immutable infrastructure is that once you’ve deployed a server, you never make changes to it again. If you need to update something (e.g., deploy a new version of your code), you create a new image from your server template and you deploy it on a new server.

Server provisioning tools such as Terraform, CloudFormation, and OpenStack Heat are responsible for creating the servers themselves.

Terraform is a binary that translates the contents of your configurations into API calls to cloud providers

Labels: , ,

Tweet this | Google+ it | Share on FB

« Home | Next »
| Next »
| Next »
| Next »
| Next »
| Next »
| Next »
| Next »
| Next »
| Next »

»

Post a Comment