Docker Festival Dreaming about Docker Lucas van Lierop Matthias Noback @lucasvanlierop @matthiasnoback #dockerfestival
Transcript
1. Docker Festival Dreaming about Docker Lucas van Lierop
Matthias Noback @lucasvanlierop @matthiasnoback
#dockerfestival
2. Program for today 09:30 Introduction 10:00 Workshop 12:45
Lunch 13:45 Best Practices 14:15 Workshop 16:15 Share results
3. The container revolution; why is it so good?
4. Self-contained deployable units Application code,
configuration and dependencies, all-in-one Instead of: (Manually)
pre-configured server Pulling code changes
5. Image-based deployments No build steps on the production
server Instead of: Building the software on the production server
Non-deterministic builds
6. Limited abilities Containers run in isolated environments
Instead of: Processes that implicitly have access to everything on
the machine
7. Scheduling Built-in resource management, rebalancing,
scaling (even within one host) Instead of: Custom tooling
(Marathon, DC/OS, Consul)
8. What the container revolution encourages
9. Single Responsibility Principle Focus on limited
responsibilities per container/service.
10. Open/Closed Principle Modify the behavior of a container by
configuration through environment variables and secrets.
11. Architecture considerations Focus on clear specifications
for how the service is connected to its surroundings.
http://alistair.cockburn.us/Hexagonal+architecture
12. Focus on "everything in a box" Self-contained, explicit, no
loose ends. https://12factor.net/
13. No attachment to servers No manual actions on the server
Provisioning fully automated Pets vs kettle Destroyable and
recreatable infrastructure
14. What the container revolution enables
15. Continuous delivery Container image: an actual build
artifact
16. Polyglot programming Code Persistence
17. Scaling of software units Number of instances (horizontal
scaling) versus the power of one instance (vertical scaling)
18. Scaling for organizational units Number of teams, number of
projects (horizontal scaling)
19. Monolithic and service-oriented development side-to-side
Containers encapsulate internal technologies; combine multiple
programming models and paradigms in one system.
20. What it requires What it requires What it enables
21. Operations skills Configuration, server management,
monitoring, emergencies, recovery
22. Knowledge About technologies used
23. Shared responsibility Writing the code, and make it run in
production (and keep it running).
24. Long story short: DevOps culture
25. DDD, BDD Operations UX, Design
26. Lets get started
27. In the morning: two options - Docker Introduction (Docker
Engine, Compose, Machine, Swarm) - Your Next Step
28. Different stages of using Docker 1. Side project 2.
Development environment (e.g. instead of Vagrant) 3. For Continuous
Integration (CI) (stable CI environment) 4. Deployment to a staging
and/or production environment 5. Images as build artefacts in a
pipeline for Continuous Delivery 6. Improve resilience of
containers in a production environment
29. Use this day to take the next step
30. 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