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:

  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

schedule Submitted 8 years ago