Sold Out!

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 Session

The session will be hands-on. In it we'll:

  1. Set up a "local cloud" using Vagrant and Virtualbox
  2. Package a non-trivial application (Several processes and database/memcached dependencies)
  3. Release the packaged application(s) to your local clouds Docker Registry/RPM repository
  4. Deploy the applications(s) to the local cloud with Ansible
  5. Configure Consul to route traffic to the newly-released application(s)
  6. 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


I will be publishing a collection of all the workshop materials necessary to get started, hosted on AWS. This will be *relatively large* as it will:

  1. Include all the source for the application we'll be building, packaging, releasing and deploying
  2. Include the binaries we'll be using for supporting applications (Consul, etc)

At the same time, it's expected that participants have the following pieces of software installed:

  1. Vagrant
  2. Virtualbox
  3. Ansible
  4. Docker
schedule Submitted 2 years ago

Comments Subscribe to Comments

comment Comment on this Proposal