Skip to content

Instantly share code, notes, and snippets.

@yzl
Last active December 17, 2015 17:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yzl/5646658 to your computer and use it in GitHub Desktop.
Save yzl/5646658 to your computer and use it in GitHub Desktop.
tools and other words that come up when discussing continuous deployment. Definitions written for brevity, not precision or completeness.

artifact repository - service to store, manage, and distribute built artifacts + metadata (versions, package type, release/snapshot).

artifactory - an artifact repository product. Used by me in 2008 and not since; I hear it's gotten better.

attribute - a specific detail about a chef node.

berkshelf - a tool to manage dependencies of a chef cookbook

bundler - a tool to manage ruby gem dependencies

chef - a tool for managing system configuration

chef-server - hub for chef configuration data. stores cookbooks and data about nodes managed by chef

chef-client - agent that runs on nodes managed by a chef-server. Applies recipes and associated data to the node.

chef-solo - tool that allows nodes without access to a chef server to use a limited subset of chef's functionality.

chefspec - tool for writing unit tests against a chef cookbook. Does not require a chef run/convergence.

CI - continuous integration. Every git checkin is built and has tests run against it.

convergence - the stage in the chef-client run where a node is configured; also, the act of running chef to configure a node.

cookbook - a collection of chef recipes and attribute data used to manage a thing.

cucumber - tool for writing/running automated acceptance tests in a behavior-driven style.

fauxhai - mock node data for ohai

foodcritic - linting tool that enforces chef style guidelines

gem - a ruby package

jenkins - a build/CI system. The parent and open source version of hudson.

knife - command line tool for interacting with a chef server. Uses plugins to interact with non-chef-server entities like cloud providers, appliances, or services.

linting - process of flagging programming language usage deemed suspicious

macdaddy - teamcity build agent used for mobile builds (which require a mac) and cookbook testing (which doesn't).

minitest - tool for writing/running functional tests against a node on which chef has been run

node - in the context of chef, a server or VM.

nexus - an artifact repository product. Best known as a replacement for artifactory.

ohai - tool that detects certain properties of a node (automatic attributes) and supplies them to the chef-client

package management - the practice of keeping track of software that gets installed to systems.

rake - a ruby build tool, analogous to make

rbenv - a tool that allows a user to install/use more than one version of ruby. Not intended for managing rubies at a server level.

resource - in chef, a piece of a system plus its desired state; also, the code that describes a resource list of built-in resources

recipe - in chef, a collection of resources and a small amount of code. Used to manage a piece of a system.

role - runlist plus data to apply to a collection of nodes managed by chef.

runlist - a list of recipes and roles to apply to a chef node

rvm - another tool that allows a user to install/use more than one version of ruby. Also not intended for managing rubies at a server level.

tailor - linting tool that enforces ruby style guidelines.

teamcity - our build/CI system. licensed, expensive

test-kitchen - test tool for functional testing of chef cookbooks on VMs. Uses minitest and cucumber, requires a chef run/convergence.

vagrant - tool that abstracts a VM's lifecycle in a way that allows automation to be written against the VM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment