Full stack Puppet: What's in it for me?

Full stack Puppet: What's in it for me? Most IT managers get the request to increase the speed of delivering new functionality. But they are held back by long delivery times of new database and middleware environments. And when these environments are delivered, they cannot even guarantee that they work. The amount of time wasted on setup, and deployment of the environments is often underestimated or even ignored by teams and managers. Manual server management and application deployment are a huge waste of time and money. And performing these tasks manually is often prone to error and thus a big risk for uptime of production. Software quality is not only about good tests and good code inspection. The deployment and setup are equally important for the quality of an application. And this is where many teams could still achieve huge productivity gains.

Pervasive automation is key

When pervasive automation is key, we have the solution. Our Puppet modules for Oracle databases and IBM middleware allow you to describe the way you want your system to be configured. Puppet will make sure it is exactly like you described. When running many different projects, all with their unique setup, it is easy to imagine that maintaining all these servers will cost a lot of time and money. Automating server maintenance with Puppet and our modules is the answer.

Installations

One of the most obvious benefits when using full-stack Puppet is when doing installations. Using the Puppet language, you describe the way your infrastructure should look. Puppet reads this blueprint and makes sure your blueprint becomes a reality. Because you can use variables in these blueprints (they are called manifests in the Puppet world), you can reuse the blueprints. This means you use the same blueprint to spin up all your systems in your DTAP chain. Puppet makes sure everything is the same. Except for the things you explicitly want different like IP addresses or node names. This ensures you can address issues early in your development stage.

Like most things in life, these benefits come at a cost. Before you can use these blueprint, you have to make them and test them. This takes time and costs money. If you only need to install these environments once or maybe twice, it is probably not worth it.

Business Value _install modules

The rule of thumb we use is when you have somewhere between 3 to 5 installations using similar components (Like for example an Oracle database or an MQ setup), the value of easy and consistent (re)deployments of your infrastructure, easily exceeds the costs of building the Puppet blueprints.

Deployments

Installation is only the first step in the lifecycle of your application or infrastructure. The real benefits of full stack Puppet come during deployments. Deployments using Puppet are done using the next workflow:

1) Provide the changed software files. 2) Change your manifest (For example update the version numbers of your WebLogic deployments) 3) Apply the new blueprint to your development en test environments and see if both the update process and the result are correct. If they are not, repeat the steps until it works 4) Deploy to your acceptance environment 5) Test your acceptance environment 5) Deploy to your production environment 6) Keep your production environment like it is (manage configuration creep and drift)

Although this seems like an extensive workflow, using full stack Puppet, it is quite easy. The main benefit is that it becomes very repeatable and dependable.

Business value config modules

The value of full stack Puppet starts to show when you are doing more than 3 to 4 deployments per month. When you have a DTAP chain of systems, the number of 3 deployments per month is attained very quickly,

Quality

When you use Puppet to describe your full stack infrastructure, the quality increases. To show you what quality attributes are affected, we use the ISO 9126 standard.

Goals of the ISO 9126 standard (source: wikipedia)

The fundamental objective of the ISO/IEC 9126 standard is to address some of the well known human biases that can adversely affect the delivery and perception of a software development project. These biases include changing priorities after the start of a project or not having any clear definitions of “success”. By clarifying, then agreeing on the project priorities and subsequently converting abstract priorities (compliance) to measurable values (output data can be validated against schema X with zero intervention), ISO/IEC 9126 tries to develop a common understanding of the project’s objectives and goals.

In the graph below, we have plotted the ISO 9126 attributes in a spider graph. Attributes that are not or hardly affected by using Puppet stay in the middle of the graph. Attributes that are positively affected by using Puppet are on the outside of the graph. The further to the outside, the better the score.

ISO 9126 Quality

As you can see, there is quite a few ISO 9126 quality attributes that are positively affected by using Puppet to describe your infrastructure.

Conclusion

The amount of time wasted on setup and deployment of databases and middleware is often underestimated or even ignored by teams and managers. Manual database server management and application deployment are a huge waste of time and money.

Value is found when installing multiple systems in your DTAP environments, but also when doing multiple deployments.

Quite a lot of ISO 9126 quality attributes that are positively affected by using Puppet to describe your infrastructure.

We would love to demonstrate how our solutions can help you increase the speed of our application delivery in the Oracle database or IBM middleware world. Let us know if you are interested!

Comments