Lead, Platform Engineering (The Chef guy) ▸ Responsible for leveling up configuration management at Bloomberg ▸ Define best practices around infrastructure code development, deployment and lifecycle ▸ Provide the tools necessary to grow a DevOps organization
cookbook that installs, configures and manages a particular application on a node (e.g. Redis, NRPE, nginx) ▸ Cluster cookbook is a wrapper cookbook that configures and tunes an application on a node to be part of a cluster (e.g. Consul Cluster, Vault Cluster) ▸ Resource is simply a Chef language primitive that is distributed and exposed by including a cookbook ▸ Service is the application process managed by the operating system (or some other process management framework)
infrastructure code to be consumed by downstream engineering teams quickly and easily ▸ Support all operating system platforms and versions ▸ Integration testing for all the platforms and versions ▸ Prefer convention over configuration
of libraries for writing re-usable infrastructure code with Chef by @coderanger (Noah Kantrowitz) ▸ Ability for the infrastructure code to be written once and confidently work on esoteric platforms with little-to-no changes ▸ Much of the Chef Client 12.5 custom resource functionality started here in one form or another
is always, always convention over configuration ▸ The recipe is the same if installation via package or archive ▸ The recipe is the same if on Ubuntu, RHEL, Windows or Solaris ▸ Provide resources for managing all aspects of an application, e.g. installation, config, process supervision ▸ Advanced usage generally requires wrapper cookbook and attribute tuning
database from archive or packages ▸ Use the operating system packages when applicable (e.g. EPEL, Ubuntu) ▸ Allow for easy overrides when installing behind proxies or firewalls
type hints for basic validations ▸ Chef Client convergence now fails if the type is incorrect ▸ Service isn't restarted or reloaded ▸ Render configuration based on the underlying property data type ▸ Coerce property types into their rendered value (e.g. array of strings)
managing infrastructure that replaces the "Environment cookbook" pattern ▸ Locks cookbooks based on a cryptographic checksum instead of semantic version ▸ This means no more yolo breaking infrastructure using knife cookbook upload --force
a team's knowledge about their infrastructure lives ▸ We generate this from a repository (template) in GitHub ▸ Configuration and scripts for provisioning (e.g. Terraform) ▸ Documentation, run books, deployment information