microservices docker @bonn agile

31
Microservices with Docker Timo Derstappen @teemow

Upload: timo-derstappen

Post on 02-Dec-2014

620 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Microservices Docker @Bonn Agile

Microservices with Docker

Timo Derstappen@teemow

Page 2: Microservices Docker @Bonn Agile

What are Microservices?

Page 3: Microservices Docker @Bonn Agile

Example Application

Page 4: Microservices Docker @Bonn Agile

● Small, focussed services● Independent Processes● Language agnostic APIs● Highly decoupled

Definition!?

Page 5: Microservices Docker @Bonn Agile

Right tool for the job

● Not bound to a single Technology● No one-size-fits-all approach

Page 6: Microservices Docker @Bonn Agile

Resilience

● No monolith to fall over● Design to fail● Circuit Breakers to avoid cascading

failures

Page 7: Microservices Docker @Bonn Agile

● Failures are going to happen● Reduce Mean Time to Recover

Distributed Systems

Page 8: Microservices Docker @Bonn Agile

Scaling

Only services that are constrained by performance need scaling.Elastic (on-demand) scaling of smaller services leads to better cost control

Page 9: Microservices Docker @Bonn Agile

Ease of Deployment

Services can be deployed independently and faster.Changing a monolith could have more impact and risk so deployments are slower.

Page 10: Microservices Docker @Bonn Agile

“Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.”— Melvin Conway

Page 11: Microservices Docker @Bonn Agile

Composability

● Re-use● Re-compose

Page 12: Microservices Docker @Bonn Agile

Optimising for Replaceability

Small services are rewritten or removed without worrying too much

Page 13: Microservices Docker @Bonn Agile

● Continuous delivery● Infrastructure Automation● Small autonomous teams● Systems at scale● 12 Factor Apps

Enabler

Page 14: Microservices Docker @Bonn Agile

Where does Docker fit in?

Page 15: Microservices Docker @Bonn Agile

● Lightweight● Fast● One process per container● Composability

Where does it match?

Page 16: Microservices Docker @Bonn Agile

● Disposable components● Make your state explicit● Provision at build-time● Configure at run-time

Immutable Infrastructure

Page 17: Microservices Docker @Bonn Agile

● Development● Unit/Integration Tests● Continuous delivery● Production

Docker Workflow

Page 18: Microservices Docker @Bonn Agile

Development

Page 19: Microservices Docker @Bonn Agile

● Vagrant● rbenv● nodeenv● virtualenv

Your current setup?

Page 20: Microservices Docker @Bonn Agile

● Contains Build Tools● Each for every stack

Dev Container

Page 21: Microservices Docker @Bonn Agile

# What about running oneshot containers with the build tool inside.

$ alias npm='docker run --rm -ti -v $(pwd):$(pwd) -w $(pwd) teemow/npm'

$ npm install

Aliases

Page 22: Microservices Docker @Bonn Agile

web:

build: .

ports:

- 8080:8080

volumes:

- .:/app

links:

- redis

redis:

image: dockerfile/redis

Fig

Page 23: Microservices Docker @Bonn Agile

Build Chain

Page 24: Microservices Docker @Bonn Agile

Jenkins - Docker Hub Integration

Page 25: Microservices Docker @Bonn Agile

Production

Page 26: Microservices Docker @Bonn Agile

Install docker on a host and start your container.

Use fig to link your containers.

Simple Container Hosting

Page 27: Microservices Docker @Bonn Agile

● Scheduler● Service Discovery● Monitoring● Logging

Container Environment

Page 28: Microservices Docker @Bonn Agile

but there are lots of options here.

● Mesosphere● Kubernetes● Consul● Project Atomic

We ♥ CoreOS

Page 29: Microservices Docker @Bonn Agile

Docker Cologne - CoreOS Meetup

19:00, 14th OctoberStartplatz

Brandon Philips, CTO of CoreOSLuke Marsden, CTO of Flocker

There is a Meetup in Cologne

Page 30: Microservices Docker @Bonn Agile

Sign up for theGiant Swarm private Beta

Request Invite

http://giantswarm.io/

Page 31: Microservices Docker @Bonn Agile

Thanks for listening!Reach out:Timo Derstappen@teemow@giantswarm