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
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.
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)
Pre-‐alpha stack
AWS / On premises
CoreOS
ETCD
Docker
CoreOSCoreOS
DockerDocker DockerDockerDocker DockerDockerDocker
Hazelcast
DockerDockerVert.x DockerDockerVert.x DockerDockerVert.x
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
Vamp- vamp bootstrap
- vamp controller
- vamp agent
- vamp metrics
- vamp docker
- vamp discovery
- vamp templates
- vamp dashboard
- etc. etc. etc…
Dockerfile<name><version><port>
ENV SERVICE hello:0.0.2:8080, hello-admin:0.0.2:8081
the ‘business end’ metrics & health
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
Demo ?me
Challenges- Splitting services into multiple containers vs.
multiple actors in one container
- When scaling out, how do you determine which services should be scaled?
Elephants…- Persistent storage & databases
- Container & micro services life cycle management
- Transactional integrity across services
Ques?ons?
we are hirin
g!