The rapid provisioning capabilities of the cloud have enabled operations teams to quickly spin up, scale, and spin down infrastructure resources on-demand. Because of this, it’s important to keep track of the state of all deployed resources so it lines up with the requirements of the applications. Configuration management tools are a useful way to declare the intended state of infrastructure, including the OS, dependent libraries, environment variables, and more. By declaring infrastructure as code, there is less likely to be surprises when running in production, and operations teams can more effectively manage their fleet of resources. Using tools like Chef, we build declarative recipes for repeatable, predictive infrastructure environments that is checked in as code for use and share.
While often paired together, continuous integration and continuous delivery are different concepts that perform a specific set of tasks. They can be brought together by building event-driven pipelines, however, to enable developers to quickly push changes. For example, checking code into a GitHub repository can automatically trigger integration tests, the build of an artifact, infrastructure provisioning, and a production deployment without any human intervention. This level of automation requires careful consideration, and a solid understanding of the entire pipeline, though. We work closely with development and operations teams to hook the pieces together, with approval/rollback considerations along the way.
Container technologies have burst on the scene as a more effective runtime environment for cloud native applications than traditional virtualization due to the lightweight footprint, standard packaging, consistent portability, simple development and more. No real world application runs in a single container, however, introducing the need for tooling around scheduling, discovery, scaling, health checking, and more. A number of orchestration platforms have emerged to tackle these challenges through effective abstraction in much the same way PaaS does for 12-factor apps.