Docker what - Frank Maounis

42
Docker What ? The BIG picture Frank Maounis (@maounis)

Transcript of Docker what - Frank Maounis

Docker What ?The BIG picture

Frank Maounis (@maounis)

Who am I?

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

Let’s have in mind this problem

And this problem

Raise your hand if you

have...

Docker What?

Docker is a new container technology

to

“Build, ship and runany app, anywhere”

What do you mean

anywhere?

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)

OKBut what Docker does?

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.

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.

OK. SoWhat?

Well, first of all no more

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

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.

What about ops?

Docker creates a common framework for developers and sysadmins to work together on distributed applications

Ok, I get itHow

exactly Docker helps?

Remember this problem?

Looks like shipping goods problem

Problem solved

One solution for all

Real Word Analogy (shipping container):

Tell me more about these containers

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.

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)

Containers and

Microservices?Interesting!

Microservices

A style of software architecture:

Break

BIG monolithic

applications

down into many small services

OKCan you give me

an example?

Microservices with containers

E-commerce example:- web front-end- catalog of products- inventory/stock management- shipping calculator- payment processor- billing/invoicing- user profiles

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.

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

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

Conclusion?

Containers before Docker

Containers after Docker

Very Cool!But is this

Open Source?

Yes Docker is Open Source

- Public GitHub repository (github.com/docker)- Bug reports: GitHub issue tracker- Mailing lists / IRC channels

- Docker Governance Advisory Board (elected by contributors)

Enough!How can I try it?

Want to try it?

Get Docker Toolbox:

Thank you!