docker festival - dreaming about docker
TRANSCRIPT
Docker FestivalDreaming about Docker
Lucas van Lierop Matthias Noback@lucasvanlierop @matthiasnoback
#dockerfestival
Program for today
09:30 Introduction
10:00 Workshop
12:45 Lunch
13:45 Best Practices
14:15 Workshop
16:15 Share results
The container revolution; why is it so good?
Self-contained deployable units
Application code, configuration and dependencies, all-in-one
Instead of:
● (Manually) pre-configured server● Pulling code changes
Image-based deployments
No build steps on the production server
Instead of:
● Building the software on the production server● Non-deterministic builds
Limited abilities
Containers run in isolated environments
Instead of:
● Processes that implicitly have access to everything on the machine
Scheduling
Built-in resource management, rebalancing, scaling (even within one host)
Instead of:
● Custom tooling (Marathon, DC/OS, Consul)
What the container revolution encourages
Single Responsibility Principle
Focus on limited responsibilities per container/service.
Open/Closed Principle
Modify the behavior of a container by configuration through environment variables and secrets.
Architecture considerations
Focus on clear specifications for how the service is connected to its surroundings.
http://alistair.cockburn.us/Hexagonal+architecture
Focus on "everything in a box"
Self-contained, explicit, no loose ends.
https://12factor.net/
No attachment to servers
● No manual actions on the server● Provisioning fully automated● Pets vs kettle● Destroyable and recreatable infrastructure
What the container revolution enables
Continuous delivery
Container image: an actual build artifact
Polyglot programming
● Code● Persistence
Scaling of software units
Number of instances (horizontal scaling) versus the power of one instance (vertical scaling)
Scaling for organizational units
Number of teams, number of projects (horizontal scaling)
Monolithic and service-oriented development side-to-side
Containers encapsulate internal technologies; combine multiple programming models and paradigms in one system.
What it requires
What it requires
What it enables
Operations skills
Configuration, server management, monitoring, emergencies, recovery
Knowledge
About technologies used
Shared responsibility
Writing the code, and make it run in production (and keep it running).
Long story short: DevOps culture
DDD, BDD
Operations
UX, Design
Let’s get started
In the morning: two options
- Docker Introduction (Docker Engine, Compose, Machine, Swarm)- Your Next Step
Different stages of using Docker
1. Side project2. Development environment (e.g. instead of Vagrant)3. For Continuous Integration (CI) (stable CI environment)4. Deployment to a staging and/or production environment5. Images as build artefacts in a pipeline for Continuous Delivery6. Improve resilience of containers in a production environment
Use this day to take the next step
Time flies Pick small tasks, create issues
Check every half hour: am I still on track?
Share useful snippets, articles, etc.
Celebrate and share success
https://github.com/lucasvanlierop/docker-festival-workshop