Service Muscle

Kelsey Hightower shows how to exercise the muscle within modern infrastructure. Pitched as 'system administration' he shows features of the Go Language and the tooling that has emerged with it. But notice the athleticism of what he does. This is more sprinting or rock scrambling than dead lift power.

YOUTUBE 41GffiXhN6I Kelsey Hightower presents at GopherCon 2014

Overview

Kelsey shows building and running a variety of computing resources using simple Go programs to capture the process in what might have been scripts or config files in a previous generation.

Its worth listening to Kelsey's talk without concern for the details of what he does. Think instead of the motion present, the power unleashed, the speed and confidence with which he works.

In part one Kelsey builds the machinery to boot a virtual machine. He shows off by booting linux from within his presentation itself using a feature of the Go documentation framework.

In part two Kelsey expands this toehold to include a second 'machine' managed as one normally does in a production environment. Go's static binaries and cross-compiling environment shine here as he wields disparate machine architectures as programmers in the past wielded variables.

References

Ansible is an open-source software platform for configuring and managing computers. It combines multi-node software deployment, ad hoc task execution, and configuration management. Additionally, Ansible prefers to be categorized as an orchestration engine.[1] It manages nodes over SSH and does not require any additional remote software (except Python 2.4 or later)[2] to be installed on them. wikipedia

Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration. Packer is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel. Packer does not replace configuration management like Chef or Puppet. In fact, when building images, Packer is able to use tools like Chef or Puppet to install software onto the image. website

CoreOS is an open source lightweight operating system based on the Linux kernel and designed for providing infrastructure to clustered deployments, while focusing on automation, ease of applications deployment, security, reliability and scalability. As an operating system, CoreOS provides only the minimal functionality required for deploying applications inside software containers, together with built-in mechanisms for service discovery and configuration sharing. wikipedia

iPXE (formerly gPXE in 2010,[1] formerly Etherboot) is an open-source Preboot Execution Environment (PXE) implementation and bootloader. It can be used to enable computers without built-in PXE support to boot from the network, or to extend an existing PXE implementation with support for additional protocols. wikipedia

12-Factor Apps manifesto synthesizes all of our experience and observations on a wide variety of software-as-a-service apps in the wild. It is a triangulation on ideal practices app development, paying particular attention to the dynamics of the organic growth of an app over time, the dynamics of collaboration between developers working on the app’s codebase, and avoiding the cost of software erosion. website

Docker is an open-source project that automates the deployment of applications inside software containers. The Linux kernel comprises cgroups for resource isolation (CPU, memory, block I/O, network, etc.) that do not require starting any virtual machines. The kernel also provides namespaces to completely isolate an application's view of the operating environment, including process trees, network, user ids and mounted file systems. LXC (LinuX Containers) combines cgroups and namespace support to provide an isolated environment for applications; Docker is built on top of LXC, enabling image management and deployment services. wikipedia

systemd is a system management daemon designed exclusively for the Linux kernel API. For systems using it, it is the first process which is executed in user space during the Linux startup process. Therefore, systemd serves as the root of the user space's process tree. The name systemd adheres to the Unix convention of making daemons easier to distinguish by having letter d as the last one in their actual filenames. wikipedia