In this three-post series, we’ll take you through our journey as we begin to work with automated Configuration Management tool, Puppet. Recently, we’ve started to use Puppet to manage around >500 servers consisting of Oracle DB and Oracle Fusion Middleware. In this first post, we’ll talk about the original challenge that brought us here, as well running you through our decision-making process when it came to choosing Puppet Enterprise as our tool.
In mid-2017, a big-name high street brand came to us for help. They needed to move their entire Oracle Business workload from a hosted environment to the public cloud and they’d chosen AWS as their platform. As AWS Oracle consulting partners, we were more than happy to step in. But, after getting more information on the breadth of their technologies, we quickly realised that this was going to be a bigger task than we’d initially anticipated.
Here’s a quick look at their tech stack:
- Database tier: Oracle database and 3 different version (with patches and RCUs)
- App and web tier:
- • Java: 9 different version with a mix of 32 and 64 bit
- • App: Predominantly, 3 different versions of weblogic application server
- • Others: 15 other Oracle apps pieces, that can broadly be defined as Oracle Fusion Middleware
Here’s an overview of their environments and servers:
- • 4 environments
- • 15 technology stacks in each environment
- • Approximately 50 servers in each of non-prod environments
More than 5 system integrators are involved in this project. It couldn’t be managed by hand and we’d need to use a modern Configuration Management tool to automate the build process.
Why Configuration Management?
There’s a reason why Configuration Management is so important – even more so recently as companies continue to go through digital transformations. Configuration Management (CM) ensures that the current design and built state of the system is known and trusted. It means avoiding over-reliance on the knowledge of the one single individual who configured it in the first place.
The four most commonly used tools are Puppet, Chef, Ansible and SaltStack; each of them available in both open source and enterprise offerings. Key benefits of CM tools include:
- • Greater agility and faster problem solving
- • Improved visibility and tracking, meaning increased efficiency, stability and control
- • A detailed record of all of the elements of configuration, meaning avoidance of unnecessary duplication
- • Easier governance and efficient change control by knowing the exact status of the system
We wanted to hit the ground running, so Puppet was the obvious choice for us. There’s a thriving open source community for the Puppet modules – Puppet Forge is the name of the repository and right now there are more than 5000 Puppet modules, including some available for Oracle DB and Apps.
Here’s a quick rundown of the features of Puppet Enterprise that helped us make our decision.
· Includes 40+ open source projects (MCollective, Factor, Hiera) in a straightforward installer
· Saves teams time in packaging and managing dependencies for deployments
· Stable, tested and hardened and includes a multi-master installer.
· Support for large deployments
· Intuitive, visual environment
· Dashboards for easy monitoring
· Advanced reporting capabilities
· Advanced alerting capabilities
· Unified installer
· Ability to deploy agents in just a few clicks
· Empowers both those new to Puppet and busy ops teams looking to avoid typing out repetitive commands
· Puppet Node Manager: a rules-based classifier groups nodes based on key characteristics (operating system, graphic location and business unit)
· Puppet Code Manager: leverages r10k technology to deploy infrastructure changes in a testable and programmatic way
· Combined with Jenkins and Puppet Labs’ Beaker for acceptance testing.
· Easy to apply continuous delivery practices to your infrastructure code
· Puppet Configuration Manager: gain insight into relationships of node configurations to ensure reliable deployments
· You can visualize and easily map relationships across the resources on a node for troubleshooting purposes
· Integrates directly with directory services such as Active Directory and Open LDAP
· Makes it easy to safely delegate tasks to individuals and groups
· Streamlines workload for large, geographically distributed teams
· Collects metrics about Puppet Server health and performance, including active requests, request duration, execution times and compilation load
· Greater visibility over workload and performance, driving productivity and avoiding server issues
· Digests thousands of pieces of information and visualizes changes by nodes, classes and resources
· Greater visibility – you know exactly what changed, where and how
Licencing and pricing:
First 10 agents are free. Tiered pricing is applied as you add more agents.
Find the most up to date Puppet pricing and licencing information, here.
Puppet drastically improved our delivery time on our project. Plus, it ensured the integrity of servers over time, by providing a framework for automating processes and keeping track of changes made to the system environment. In the next post, we’ll cover how to install Puppet in AWS using AWS AMIs or using silent install and Puppet architecture. Stay tuned.