Tip for IT to control the cloud, don't control it, get data

I was on a webinar yesterday to discuss the best route to the cloud.  One of the last questions was 


The day before I had a conversation with Luke Kanies, CEO of Puppetlabs to catch up.  I was introduced by a mutual friend a couple of years ago, and we have had always had great discussions.

I told Luke I was participating in a webinar on the cloud and it would seem like a tool like Puppet Enterprise could be used to get the data on what clouds are being built and deployed.

Puppet Enterprise is IT automation software that gives system administrators the power to easily automate repetitive tasks, quickly deploy critical applications, and proactively manage infrastructure changes, on-premise or in the cloud. Learn more about Puppet Enterprise below, or download now and manage up to 10 nodes free.

Download Free

Puppet Enterprise automates tasks at any stage of the IT infrastructure lifecycle, including:

  • Provisioning
  • Discovery
  • OS & App Configuration Management
  • Build & Release Management
  • Patch Management
  • Infrastructure Audit & Compliance

I didn't specifically mention Puppetlabs, but I made the point that the biggest step taken to take control of the cloud is to get data. Data from the deployment tools.  If central IT bought a tool that helped all the users, then they could get the data.

If Puppet Enterprise logs were sent to a central IT function they would have the data to determine what the users are doing in the cloud.  With the data you can determine how best to serve the needs.

This recommendation flies in the face of what I think of what 80% of the people would do which is to just take control.  This makes sense as these same 80% of the people would have no idea what a puppet enterprise log means.

I constantly tell people the misperception of corporate IT is it is technical organization.  No, IT is not necessarily technical.  Take a look around how many of these people are CS degrees, let alone MS or PhD.  What is technical?  Google, Apple, Facebook, Microsoft product development teams are technical.  PuppetLabs is also technical, and they have a good method to manage the IT infrastructure.

How Puppet Works

Puppet uses a declarative, model-based approach to IT automation.

  1. Define the desired state of the infrastructure’s configuration using Puppet’s declarative configuration language.
  2. Simulate configuration changes before enforcing them.
  3. Enforce the deployed desired state automatically, correcting any configuration drift.
  4. Report on the differences between actual and desired states and any changes made enforcing the desired state.

Which reminds me one of the things I enjoy talking to Luke and why another Portland friend introduced us is we both like the use of Models.

Enforce Desired State

After you deploy your configuration modules, the Puppet Agent on each node communicates regularly with the Puppet Master server to automatically enforce the desired states of the nodes.

  1. The Puppet Agent on the node sends Facts, or data about its state, to the Puppet Master server.
  2. Using the Facts, the Puppet Master server compiles a Catalog, or detailed data about how the node should be configured, and sends this back to the Puppet Agent.
  3. After making any changes to return to the desired state (or, in “no-op mode,” simply simulating these changes), the Puppet Agent sends a complete Report back to the Puppet Master.
  4. The Reports are fully accessible via open APIs for integration with other IT systems.

Uh, BTW, this is the way I think a data center should work as well.