Image for post
Image for post

DevOps Concepts: Bake vs Fry 1

Part 1: Configuration Methods during the Iron Age

A common term in operations from the Iron Age to the Cloud Age is bake vs. fry. These are competing approaches for configuring systems.

  1. The Cloud Age (Virtualization)
  2. The Cloud Age (Containers)

The Iron Age

Before the rise of popular cloud platforms and virtualization, enterprises built their own data centers using hardware (iron). During this age, enterprises managed large consolidated centralized servers and fleets of client systems, sometimes called workstations (desktop or laptop).

Baking Client Systems

Managing fleets of client systems was expensive, so baking became popular method to manage client systems. An enterprise would bake a standard corporate image and through a process called imaging, replace the existing system with the corporate image.

The Golden Image Problem

For servers, this was not as popular, because imaging technologies at this time was slow, and there was the infamous Golden Image problem: numerous combinations of configurations leads to maintaining a large image library.

Frying on Iron Servers

Though the golden image problem made baking undesirable for servers, there was still a great need to for automation. This arrived through provisioning systems like JumpStart for SunOS (1994), Anaconda on RedHat Enterprise Linux (1999) and FAI (Fully Automatic Installation) with Debian. Similar to imaging solutions, network booting process was also used for provisioning systems.

Change Configuration

Eventually a system will have its configuration drift away from the base line or the desired state. Changing the system back to the desired state was very expensive and risky, but leaving a system out of alignment was also risky.

Rise of Virtualization

As virtualization became more mainstream, we saw a shift from single consolidated servers to numerous virtual systems on the same hardware box.

Image for post
Image for post
  • Mixed Approach usually installs and change configuration agent launch, then afterward converge the configuration to the desired state.
  • Change Configuration will converge the configuration to the to desired state after the system is launched.

Deploying Applications

The application, such as SaaS web services, is the one component that is often updated on a system frequently. Installing a new versions of the application is called deployment.

Image for post
Image for post
Frying with Push or Pull
Image for post
Image for post
Pull Deploy using Change Configuration
Image for post
Image for post
Push Deploy using Orchestration Tool

Push Deploy or Pull Deploy?

So… which one is better? Push Deploy or Pull Deploy? Well… that depends.

Zero Configuration with Discovery

Wouldn’t it be great if you didn’t need to configure your applications? The applications could just discover the configuration, such as address of database server and then configure themselves? Well that is actually possible with service discovery.

  • AirBnB Smart Stack (2012): service discovery, key-value store, health checking
  • CoreOS Etcd (2013): service discovery, key-value store, events
  • Hashicorp Serf (2013): node discovery, group membership, failure detection, events
  • Hashicorp Consul (2014): service discovery, key-value store, health checking
  • Consul-Template: query either Consul or Vault to apply templates and configure systems, frying.

Conclusion

There you have it, numerous applications of frying and baking for the Iron Age. Despite the allure of cloud virtualization IaaS platforms, like AWS (2006), Google Cloud (2008), and Azure (2010), running a data center on your own hardware is still quite popular in the industry.

Next Article

References

Iron Age vs Cloud Age

Change Configuration Topics

Deployment and Orchestration

Service Discovery

Written by

Linux NinjaPants Automation Engineering Mutant — exploring DevOps, Kubernetes, CNI, IAC

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store