service discovery for continuous delivery with docker

13
Service Discovery for CD with Docker Tim Nolet [email protected] = +

Upload: tim-nolet

Post on 08-Sep-2014

627 views

Category:

Technology


2 download

DESCRIPTION

This talk was given at Docker Meetup Amsterdam on 10 July 2014. It describes the why, what and how we are using Docker for continuous delivery at magnetic.io and how it integrates into the platform we are building.

TRANSCRIPT

Page 1: Service Discovery for Continuous Delivery with Docker

Service  Discovery  for  CD  with  Docker

Tim Nolet [email protected]

=+

Page 2: Service Discovery for Continuous Delivery with Docker

So  what’s  magne6c.io?- Next-gen e-commerce platform aimed at the

enterprise market

- Integrate Continuous Delivery from the ground up

- Cocktail of PaaS, containers and micro services

Page 3: Service Discovery for Continuous Delivery with Docker

Four  whys- Why Docker? => Because encapsulation.

- Why encapsulation? => Because micro services.

- Why micro services? => Because Continuous Delivery.

- Why continuous delivery? => Because time to market is king.

Page 4: Service Discovery for Continuous Delivery with Docker

What’s  out  there  already- Skydock (https://github.com/crosbymichael/skydock)

- Deis (http://deis.io/)

- Docker-Discover (https://www.npmjs.org/package/docker-discover

- Thalassa (https://github.com/PearsonEducation/thalassa-aqueduct)

Page 5: Service Discovery for Continuous Delivery with Docker

Pre-­‐alpha  stack

AWS / On premises

CoreOS

ETCD

Docker

CoreOSCoreOS

DockerDocker DockerDockerDocker DockerDockerDocker

Hazelcast

DockerDockerVert.x DockerDockerVert.x DockerDockerVert.x

Page 6: Service Discovery for Continuous Delivery with Docker

How  do  we  do  it?!██╗   ██╗ █████╗ ███╗   ███╗██████╗   ██║   ██║██╔══██╗████╗ ████║██╔══██╗  ██║   ██║███████║██╔████╔██║██████╔╝  ╚██╗ ██╔╝██╔══██║██║╚██╔╝██║██╔═══╝    ╚████╔╝ ██║  ██║██║ ╚═╝ ██║██║         ╚═══╝  ╚═╝  ╚═╝╚═╝     ╚═╝╚═╝                              version 1.1                        by magnetic.io !==> Starting cluster bootstrap... ==> info: Hazelcast port => 5701 ==> info: Vertx Eventbus port => 5702 ==> info: ETCD host => 10.0.42.1 ==> info: ETCD port => 4001 ==> info: ETCD base path => /vamp/bootstrap ==> info: Public IP => 172.17.8.103 ==> info: Physical hostname => core-03 ==> info: Container hostname => f9dc53532ff4 ==> info: Vertx module to run => vamp-agent-0.1.0 ==> info: Connecting to ETCD ==> info: Connected to ETCD at 10.0.42.1:4001 ==> info: Vamp Bootstrap will try to cluster with started remote host 172.17.8.101 ==> info: Starting Vamp Bootstrap with module vamp-agent-0.1.0 ==> info: Waiting for Vamp Bootstrap to come online... ==> info: Vamp Bootstrap was started with PID 24 and public IP 172.17.8.103

Page 7: Service Discovery for Continuous Delivery with Docker

Vamp- vamp bootstrap

- vamp controller

- vamp agent

- vamp metrics

- vamp docker

- vamp discovery

- vamp templates

- vamp dashboard

- etc. etc. etc…

Page 8: Service Discovery for Continuous Delivery with Docker

Dockerfile<name><version><port>

ENV SERVICE hello:0.0.2:8080, hello-admin:0.0.2:8081

the ‘business end’ metrics & health

Page 9: Service Discovery for Continuous Delivery with Docker

Events!

Docker daemon

Service Managerlistener

etcd

lbmonitor metrics

My Container

start

load balancer

update

start pingstream

read/update

dashboard

1

2

3

4

56

start

Page 10: Service Discovery for Continuous Delivery with Docker

Demo  ?me

Page 11: Service Discovery for Continuous Delivery with Docker

Challenges- Splitting services into multiple containers vs.

multiple actors in one container

- When scaling out, how do you determine which services should be scaled?

Page 12: Service Discovery for Continuous Delivery with Docker

Elephants…- Persistent storage & databases

- Container & micro services life cycle management

- Transactional integrity across services

Page 13: Service Discovery for Continuous Delivery with Docker

Ques?ons?

we are hirin

g!