Agile Infrastructure
Roll Your Own Platform as a Service (PaaS) with Docker
You're convinced you need to run your own platform as a service (PaaS) . You’ve told your company that in order to save cash and comply with regulations for your sector (HIPAA etc), deploying a virtual, private platform on infrastructure you control is the way to go.
This workshop prepares us to build our own PaaS from scratch and deploy loosely-coupled applications with Docker. We will learn how to:
- Assemble a PaaS from the ground up
- Create golden images for running Docker containers.
- Package up a complex application(s) into a Docker image
- Release the Docker image
- Deploy Docker containers to multiple hosts with Ansible
- Run and monitor Docker containers with Systemd
- Use Consul for service discovery, configuration and health monitoring
Outline/Structure of the Workshop
The session will be hands-on. In it we'll:
- Set up a "local cloud" using Vagrant and Virtualbox
- Package a non-trivial application (Several processes and database/memcached dependencies)
- Release the packaged application(s) to your local clouds Docker Registry/RPM repository
- Deploy the applications(s) to the local cloud with Ansible
- Configure Consul to route traffic to the newly-released application(s)
- Profit!
Learning Outcome
By the end of this workshop we will:
- Learn about PaaS, Docker and Vagrant (quick overview)
- Have a good understanding of the complexity in building and maintaining PaaS services both on-premises and cloud offerings such as Heroku, Elastic Beanstalk, and Google App Engine
- Be able to provision scalable applications on virtual infrastructure using Docker, Ansible and Consul
- Understand how application architecture can prevent horizontal scaling and how to plan for scalability early on
Target Audience
developers, infrastructure engineers, technical leads, architects
Links
https://github.com/zspencer/packager - The vagrant host we'll be using for the local cloud.