atlanta docker meetup - 26june14 - flynn
DESCRIPTION
TRANSCRIPT
Build your own PAAS with Flynn
Jonathan Manuzak@jonmanuzak
Docker is great…
… but normal people need glue.
Pain-relief As A Service?
The Project
• A modular, open-source PAAS• Based on Jeff Lindsay’s Dokku– ‘The smallest PAAS implementation you’ve ever
seen’• Heavily inspired by Heroku• Open source project launched in early 2013• Became not so open in late 2013• Asked for sponsorship from the community
The People
Jonathan Rudenberg Daniel Siders Jeff Lindsay
The Tech• A lot of Go goodness• Service discovery is a core component• CLI means happy devs and ops teams• Can run persistent ‘appliances’ • Unix tool philosophy
The Tech• Layer 0
– flynn-host - The Flynn host service– discoverd - The Flynn service discovery system
• Layer 1– flynn-controller - Controller for the management of applications running via an HTTP
API– flynn-bootstrap - Bootstraps Flynn Layer 1– gitreceived - An SSH server made specifically for accepting git pushes– flynn-cli - Command-line Flynn HTTP API client– flynn-receive - Flynn’s git deployer– slugbuilder - A tool using Docker and Buildpacks to produce a Heroku-like slug – Slugrunner - A Docker container that runs Heroku-like slugs produced by slugbuilder.– flynn-dev- Flynn development environment in a VM– strowger -Flynn TCP/HTTP router– shelf - A simple, fast HTTP file service– Sdutil - Service discovery utility for systems based on go-discover– flynn-postgres - Flynn PostgreSQL database appliance– taffy - Taffy pulls repos and deploys them to Flynn
DEMO
What just happened?
• Push repo to Flynn• Flynn compiles a slug• Hosts the slug on a file server• Launches slug in docker container(s)• Wires routes and starts load balancer
The slugrunner
• Obligatory Dockerfile
• Runner executes the slug and registers services
• Heavy Heroku inspiration– Installs java, python, ruby, git
Model Cement -> Elmers
Rough around the edges
• Difficult to manage remote clusters from CLI• Web interface needs polish and features– Can’t delete apps?
• Scaling across multiple hosts isn’t configurable• Not much fault tolerance
Packed with potential
• Small reusable components• Not difficult to imagine Flynn managing
containers rather than “apps”
That’s all folks