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!


Top Related