3. Who am I
- I am @maounis
- I have co-founded Papaki, TopHost
- I think I know a few things about containers
- I have a lot to learn about Docker
- But I like to try all kinds of new crazy things like
Arduino, Raspberry Pi, Core, Bitcoin, Docker…
- And I think Docker will help us build better
applications and new cool tools
10. Docker allows you to
Take any Linux program, and put it in a “container”
- Web apps and services like Go, Node, PHP
- Data Stores: SQL, NoSQL, big data
(Cassandra, ElasticSearch, Hadoop, Mongo,
MySQL, Redis...)
- Other server-y things (Mesos, Zookeeper...)
- Command-line tools (AWS CLI, GCutil...)
Win/FreeBSD/OS X coming soon (now use Wine)
12. Docker container
Docker containers wrap up a
piece of software in a complete
filesystem that contains
everything it needs to run: code,
runtime, system tools, system
libraries – anything you can install
on a server. This guarantees that
it will always run the same,
regardless of the environment it is
running in.
13. But how is this different from VMs
Containers have similar resource isolation and allocation
benefits as virtual machines but a different architectural
approach allows them to be much more portable and
efficient.
16. Because now you can
Deploy something:
- And if it works locally, it will work on the server
with exactly the same behavior
- Regardless of versions
- Regardless of distros
- Regardless of dependencies
17. How does this help us devs?
Well when your app is in Docker containers, you
don’t have to worry about setting up and
maintaining different environments or different
tooling for each language.
Focus on creating new features, fixing issues and
shipping software.
18. What about ops?
Docker creates a common framework for developers
and sysadmins to work together on distributed
applications
25. Containers look like
microservices
The principle is:
- “Do one thing, and do it well”
- One container for the web server
- One container for the database
- One container for logging
- etc.
26. But how they communicate?
Containers can share almost anything, selectively:
- files
(logs, data at rest, audit)
- network
(traffic routing and analysis, monitoring)
- process space, memory
(process tracing and debugging)
30. Microservices with containers
E-commerce example:
- web front-end
- catalog of products
- inventory/stock management
- shipping calculator
- payment processor
- billing/invoicing
- user profiles
31. Is this really working?
YES!
- Docker users on average ship software 7X more
after deploying Docker in their environment.
More frequent updates provide more value to
your final users faster.
32. Why Microservices are good?
- Use right language/tool for different services
- Replace services easily
- Less coordination required
- Enables effective ownership of services
- Promotes many small teams instead of one big
* smaller teams = less communication overhead
* see Jeff Bezos “two-pizza” rule
33.
34. My humble personal thoughts
- Solving development/production issues is just
the first application of Docker
- Docker will eventually enable the creation of
distributed applications in Micro-Data Centers
- Services will be geo-distributed to hosts near
you without you knowing it