CloudStack and Puppet

I was reading some CloudStack items on this guy's blog and came across this post ( http://kirkjantzer.blogspot.ca/2013/06/next-generation-storage-wherefore-art.html ).  A lot of this resonates with what our company is trending towards.

As a software developer, the different build stages all require complete and dedicated environments.

  • Dev
  • QA/UAT
  • Prod
When it comes time to build a new product for a new customer, a new set of environments needs to be spooled up.  Traditionally, everything was scratch built (VM templating being the best automation in use today) meaning a dev environment rollout could take a week or two:
  • Lay out environment as per architecture's design
  • Figure out networking/auth structure
  • Deploy VM templates
  • Install/configure IIS/SQL
  • Deploy starter software packages
  • Create/test public (if required) accessibility
  • Hand over access to the dev team
  • Wait for them to sign off
  • Double-check that all relevant info documented
There is plenty of room for improvement in this process.  The next part of it (and most important) is the successful recreation of Prod for QA/UAT environment roll-outs.  Due to whatever wizardry the devs get up to, there are multiple streams under one customer, so this means you have one dev environment, but sometimes 3-4 QA/UAT environments, and they need to be torn down/built up as fast as possible.

A QA/UAT build today looks like this:
  • Deploy a dev environment
  • Deploy all current software packages in order (a manual process)
  • Get Dev/QA to sign off
Doesn't sound like much, but when I say manual process...I mean an MSI is the best we have for automation.  An MSI that really just copies files, maybe does some basic IIS config if you're lucky.  It's an inconsistent process due to some reason I am not sure of.

So all of that being said...what the heck does this have to do with CloudStack and Puppet?

Here what we're planning to do:
  1. Deploy an environment according to an env. template (VMs, storage, networking all at once)
  2. Automate package and config deployment via Puppet/agents
  3. Go get a coffee and plan retirement
Haha!  So simple, right?  Well, it kinda is.  CloudStack has made it quite easy with their VMware integration, and the Puppet side has some decent Windows plugins/functionality.

Expect more CS/Puppet posts.  It is REALLY cool stuff.  I'm also going to work on integrating NSClient++ into the VM builds and automating monitoring as well.  :D

Comments

Popular posts from this blog

DFSR - eventid 4312 - replication just won't work

Fixing duplicate SPNs (service principal name)

Logstash to Nagios - alerting based on Windows Event ID