Any infrastructure tool needs to understand when multiple teams or contributors intend to manage the same configuration differently. This needs to be known prior to any work being done on the node.
Making dependencies transparent
Infrastructure configuration can often be complex, with layers of dependencies. It’s critical that a tool not only makes the order of operations clear, but also makes clear the dependencies that exist between multiple configurations.
Establishing a single source of truth
Many tools are good at managing parts of your infrastructure. IT teams will often use one set of tools for managing and orchestrating application deployments, and another set for enforcing core infrastructure and middleware. It’s important that your tools can never conflict, while simultaneously ensuring that all underlying infrastructure is in its intended state prior to deploying application services.
Unlike Chef, Puppet does not require any experience with Ruby. Puppet’s simple domain-specific language (DSL) was designed to be easy to read and write for people without a background in software development. Despite the language’s simplicity, it features all the necessary features for defining modern configuration models such as loops, templates, and data validation.
Puppet builds a model of every configuration on every node for an entire environment, plus every infrastructure service distributed across multiple nodes within an environment. The model is used to intelligently determine the correct order of operations, what information needs to be shared between different services (credentials, locations, ports, etc.), and can show how all of this will be done so you can review prior to the actual orchestration.
Environment and node modeling
When you’re managing hundreds or thousands of configurations on a single node, or managing hundreds of different services across a multitude of business applications, it’s paramount that you understand how all the pieces relate. Puppet gathers all the infrastructure code assigned to a node to generate a complete model for how the node should look. Puppet Enterprise shows you the resulting model in an interactive graph so you can see how each piece of infrastructure code contributes to a node’s desired state.
Puppet Pipelines™ for Applications and Puppet Pipelines™ for Containers unite infrastructure automation and deployment workflows into a single pipeline that can run anywhere. From on-prem, public or private clouds, and on containers, Puppet offers automation for fast, predictable and repeatable delivery. Puppet Enterprise enables the continuous integration for your infrastructure as code through orchestration and node and code management.
Puppet Enterprise enables applications and services to be modeled and managed with the same Puppet code that’s used to model your underlying infrastructure. Puppet Enterprise compiles a holistic environment graph of every application and infrastructure service, which models their dependency relationships. Puppet Enterprise users can direct change to as broad or as targeted a portion of infrastructure as is required for that moment. Puppet Enterprise uses the environment model to automatically determine the order of operations and the information that needs to be passed between nodes. Puppet Enterprise can recognize and wait for a service to become healthy before continuing to the next step of the deployment.