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.

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.

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.
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.

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!
