Quick Prototyping with LXC and Puppet
Submitted by Benjamin Kero (@bkero) on Monday, 14 April 2014
My object for this presentation is to inform people about how they can better use container technologies to save time and resources compared to virtual machines, which in turn makes things such as continuous integration testing faster, and which can save them money on unnecessary resource usage. They'll also be able to understand the difference between Docker and LXC, and when it appropriate to use either tool.
In addition, I'd like participants to leave the session with an understanding of what configuration management is, and how it can be used to automate or simplify some of their day-to-day activities.
I would also like to leave the participants with a basic understanding of how Linux cgroups and LXC work, and the ability to modify LXC templates to better suit their environment.
Within the last 5 years, virtualization has taken the IT industry by storm. There is rarely a shop that doesn't use virtualization in some way, and almost everybody can benefit from using it in their infrastructure. A more recent technology that is just starting to gain traction is the use of containers.
In this talk I will cover the concept of containers, several popular examples of container software, and go over how easy they are to use.
In particular I will focus on LXC, one that is quickly growing to be the de facto standard in container technology; and how one might use it to great advantage in to solve problems like:
- continuous integration strategies
- quick prototyping
- low-overhead "beautiful snowflakes"
- temporary resource allocation
I'll also cover in depth how to use modify LXC in conjunction with Puppet to test development and deployment of configuration management for your infrastructure. Using a system such as this allows very easy dev-test-production models for shops which might be resource-constrained.
Using these strategies, teams inside of Mozilla have been able to duplicate more similar dev/test/prod environments locally for ease of bug duplication, and have used it to free compute resources from the overhead of virtual machines.
Given enough time I'll go into related technologies such as CoreOS and Docker, and when it is appropriate to use these technologies to solve your problem.
Eyes and ears
Ben is a senior systems administrator for Mozilla's Release Engineering team, giving him the opportunity to explore scaling service offerings to hundreds of millions of users. At Mozilla, Ben has been able to take the skills he's learned from a decade of software project hosting and apply them to at-scale applications, especially in the realms of revision control systems, virtualization clusters, monitoring syste
ms, and configuration management.
Ben attended Oregon State University in the United States, where he received a degree in Computer Science and Business Administration. While there he busied himself with student organizations such as the university's Linux Users Group holding the position of Official Safety Officer, and as part of the Open Source Education Lab, which aims to integrate open source software and ideologies into the uniersity cirricu
Ben is a graduate of the OSU Open Source Lab, where he spent half a decade as a community systems administrator for hundreds of free/open source software projects.