Docker is an open source tool for running isolated containers on Linux making the deployment of apps inside containers faster. Docker creates portable, self-sufficient containers from any application.
Since Docker's first release in 2013, containers are getting fancier (again). And since containers are particularly popular for web apps, Martin Sereinig shows us how Usersnap uses Docker.
2. DOCKER AS A MULTITOOL
AGENDA
▸ What’s Usersnap?
▸ A short history of web application complexity
▸ Devops with Docker
▸ Devops with Docker
▸ Random Docker
▸ Lessons learned
3.
4. WHAT’S USERSNAP
USERSNAP
▸ Very honored to be a sponsor today
▸ SaaS company
▸ Visual bug tracking & feedback: Usersnap
▸ Established 2013, located in Linz
▸ Over 1000+ customers from all over the world
▸ Currently 15+ employees
17. ▸ Content Delivery Network
▸ Payments
▸ Sending Email
▸ Logging / Monitoring
▸ Storage
▸ Backups
A SHORT HISTORY OF WEB APPLICATION COMPLEXITY
THAT’S NOT EVEN ALL!
19. DEVOPS WITH DOCKER
DOCKER 101
▸ Docker
▸ Really lightweight VMs
▸ Images are classes, Containers are instances
▸ docker-compose
▸ Orchestrate multiple containers
▸ Configure through one file
20. DEVOPS WITH DOCKER
(DEVOPS) REALITY IN A STARTUP ENVIRONMENT
▸ not a lot of people
▸ everybody wears a lot of hats
▸ time is the most valuable resource
▸ there is no IT department
21. DEVOPS WITH DOCKER
OPS WITH DOCKER: GOALS
▸ Be able to run it all
▸ … reliably
▸ … and keep it running
▸ Fast and easy provisioning
▸ Easy scaling
▸ Save Time
22. DEVOPS WITH DOCKER
OPS WITH DOCKER: IMPLEMENTATION
▸ Nothing but the core competency
▸ Use what you know
▸ Docker host machines run on standard Linux
▸ Docker to build frontend application
▸ Deploy containers for the backend
▸ We’re on AWS, but it does not really matter!
24. DEVOPS WITH DOCKER
CONTINUOUS INTEGRATION
▸ Codeship connected to repository
▸ Every push triggers: linting, testing, …
▸ Push in master triggers staging build + deploy
▸ Push with release tag triggers release build
▸ Manual deploy
25. DEVOPS WITH DOCKER
SCALING
▸ Vertically
▸ Horizontally
▸ Provision new application servers with Ansible
▸ Deploy to new application server
▸ Add to load balancer
▸ Very quick. Could even be automated through API calls
27. DEVOPS WITH DOCKER
DOCKER IN DEVELOPMENT: PROBLEM
▸ Remember the diagram from before?
▸ Dev environment as similar to production as possible
▸ Different versions of software, configuration locations, …
▸ People run different operating systems
28. DEVOPS WITH DOCKER
DOCKER IN DEVELOPMENT: SOLUTIONS
▸ Use a different environment than in production?
▸ Have a development server with everything installed?
▸ Run everything locally?
29. DEVOPS WITH DOCKER
DOCKER IN DEVELOPMENT
▸ Install Docker
▸ Install git
▸ git pull
▸ docker-compose up
▸ ☕
▸ Start working
31. "I SUPPOSE IT IS TEMPTING, IF THE ONLY
TOOL YOU HAVE IS A HAMMER, TO TREAT
EVERYTHING AS IF IT WERE A NAIL."
Abraham H. Maslow
RANDOM DOCKER
32. RANDOM DOCKER
USERSNAP BLOG
▸ Wordpress, MySQL, Optimus Cache Prime, Backup
▸ Dockerized!
▸ Data stored through volume mount
33. RANDOM DOCKER
APPLICATION DEMO PROJECT
▸ Did I mention we are hiring?
▸ Applicants make a little demo project
▸ Can choose their tools
▸ Different people will look at the project
▸ Dockerized!