Gartner on Real World DevOps

I still hear a good deal of skepticism about DevOps. There’s an acknowledgement that it may be appropriate for small teams or startups, but some doubt about its applicability in established companies.

A recent Gartner case study by Cameron Haight* looks at an effort undertaken by National Instruments to implement a new SaaS model. NI ended up automating their deployments and configuration with a model based strategy, cloud based hosting and increasing developer-operations cooperation.

What I find most interesting in this example is how normal it is. NI started before DevOps was a well known philosophy. But when you look at the problem space of trying to deliver new products quickly, and are willing to be bold in your solution design, the same patterns appear over and over. DevOps, if anything, is a recognition of a successful pattern that has played out over and over again.

Deployment docs and manual deployments are just too slow in many real-world scenarios. So we end up needing to automate. Because infrastructure, application code and application configuration are inter-related, a model of the complete system is created and updates use that model and an automation language of some sort to apply changes. Getting to this point encourages developers and system admins to collaborate lowering the “wall” and animosity between these two groups.

Learn more about Urbancode’s DevOps Tools

Gartner Clients may download the Gartner Case Study

 

*  ”Case Study: DevOps Used at National Instruments” Cameron Haight Nov 2011

Posted by Eric Minick on January 16, 2012#

New Nagios Plugin

We’re happy to report an integration with Nagios is now available for AnthillPro and uDeploy. Why a Nagios integration? We’ve heard from a number of customers that when the automated deployment takes a server or application offline, the flurry of alerts from Nagios is basically spam that just wakes people up in the middel of night, diverts attention from more important work, or just fills in-boxes.

With that in mind, you can probably guess at what the integration does. At deployment time, notification for a host or group is disabled. When the deployment automation is done, notification is enabled. If the application is broken as a result of the deployment, you’ll get a lot of alerts. Otherwise, Nagios won’t panic people about things going as planned.

Speaking of which, Ted Dziuba has a recent, interesting post where he rails against process. One of his examples is how turning off Nagios alerts for deployments but forgetting to turn them back on (and then incurring extra downtime) could be over-reacted to with extra process. I agree with him that an extra step in the checklist isn’t likely to help. He points out that fear of repeating this mistake is a good motivator. I get that.  But having the alerts just do the right thing without extra effort? That’s pretty cool, lowers the stress (and fear) around deployments and its pretty much the business we’re in here at Urbancode.

Make it easier to do it right, than do it wrong.

Posted by Eric Minick on January 11, 2012#

Continuous Delivery Maturity Model Webcast

On Tuesday, Jan 10 at 13:00 US EST time, present our webcast: Continuous Integration Maturity Model. This presentation will cover four key areas of continuous delivery: How you build, how you deploy, how you test, and how reporting spans those topics.

Because continuous delivery is not a one size fits all solution, the Webcast will focus heavily on the application of this model to your specific needs. Some general strategies will be covered as well as some aggregated case studies.

Maturity Model Outline

Reserve Your Seat Here

Posted by Eric Minick on January 9, 2012#

uDeploy 4.3 is Available

We’re pleased to announce that 4.3.0 of uDeploy is out and available for download on the Urbancode Supportal.

New features in 4.3 focus on the command line interface, component version sources, and security. The command line, has a new ticket based authentication option, greatly expanded help text and commands for notifying uDeploy of new versions of components to import.

Along with minor tweaks to property resolution, and setup, the biggest update to component sources is to the Subversion integration which now provides a “tags” mode in addition to watching the tip of a code line. If you store new releases in a folder / tag path named for the release ID, uDeploy can detect new releases and import them automatically.

Posted by Eric Minick on December 28, 2011#

Deployments for TeamCity with uDeploy

We’re happy to announce a new integration for uDeploy. We now integrate with TeamCity from JetBrains as a source for builds to deploy. The integration finds builds from specified configurations, and imports them into the uDeploy artifact repository along with some meta-data (such as the build number). From there, uDeploy handles consistently deploying the builds through environments, and associating a build of one component with others that will be released together as part of a release set, or Snapshot.

The integration has two main modes. One imports versions automatically. Basically, every build done in TeamCity becomes immediately available for deployments. The other is more appropriate for careful hand-offs between developers and deployers. In that mode, you import versions one at a time based on the TeamCity build number.

Posted by Eric Minick on December 13, 2011#

Standardizing Deployments? Start with Production and Work Backwards

We’re often asked where to start when organizations want to standardize their deployment processes across environments. Starting with the deployment to development environments is common. Developers extend their continuous integration platforms towards continuous delivery organically, deploying to dev test environments for simple functional tests. And later to QA environments using similar approaches.

Many of these organic efforts stumble when they get closer to production. The production deployment often differs so much from the development deployments that the automation can’t be tweaked to meet the challenge. Common tripping points include the inclusion of clusters, load balancers, backups and databases (where dropping all the tables isn’t an option in production). This is so common that most continuous delivery efforts stop at a test environment and aren’t used for staging, production or disaster recovery environments.

Having seen teams reach this stumbling block over and over again, I’m increasingly convinced that for a common process to be created, you have to start with the production deployment process and work backwards from there. For databases, that means that development deployments should use incremental updates to databases rather than a drop and recreate approach. Having a load balancer in QA would be nice, but if it isn’t present, the automation should have a switch in it for, “If there’s a load balancer….” otherwise skip this part of the deployment.

Essentially, the goal is to move from a situation where dev and production deployments are “different” to one where the dev deployment is treated as a simpler version (a subset) of the production deployment. Once a common process is agreed upon (even if its just on paper at this point) standardization and automation efforts can begin in earnest with a good chance of success.

Posted by Eric Minick on December 5, 2011#