Vert.x clustering on Docker, CoreOS and ETCD

7,425 views
6,827 views

Published on

This talk was held at the Vert.x Meetup Amsterdam on 30-07-2014. The subject is on how to get a Vert.X cluster running in Docker containers running on CoreOS without any manual configuration.

Published in: Internet
0 Comments
23 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,425
On SlideShare
0
From Embeds
0
Number of Embeds
1,040
Actions
Shares
0
Downloads
94
Comments
0
Likes
23
Embeds 0
No embeds

No notes for slide

Vert.x clustering on Docker, CoreOS and ETCD

  1. 1. Tim Nolet tim@magnetic.io Vert.X  clustering  on  Docker,   CoreOS  and  ETCD =+{ }+
  2. 2. So  what’s  magne;c.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
  3. 3. CoreOS - Just a Linux Distro - Run apps in containers - On the fly updating - Fast boot times - Systemd images: coreos.com
  4. 4. ETCD - Distributed key/value store - Like a directory tree - JSON/REST API - Uses a Discovery URL images: coreos.com
  5. 5. Docker - REALLY portable… - Images/containers - JSON/REST API - Emits events! <= important! images: docker.io
  6. 6. Pre-­‐alpha  stack AWS / On premises CoreOS ETCD Docker CoreOSCoreOS DockerDocker DockerDockerDocker DockerDockerDocker Hazelcast DockerDockerVert.x DockerDockerVert.x DockerDockerVert.x
  7. 7. AWS / Vagrant / Bare Metal CoreOS Box Docker JVM / Vert.x priv. IP pub. IP pub. IPpriv. IP priv. IP pub. IP bootstrapping  the  event  bus:   Russian  dolls
  8. 8. Vamp - vamp bootstrap - vamp controller - vamp agent - vamp metrics - vamp docker - vamp discovery - vamp templates - vamp dashboard - etc. etc. etc…
  9. 9. Vamp_agent (Vert.x module) cluster_boot.sh vamp_bootstrap run configure! 1 2 5 3 4 Boot ETCD get/set pub. IP SYSTEMD pub. IP vamp_bootstrap.java download! 6 expose pub. IP’s to other Vert.x instances
  10. 10. some  code…
  11. 11. hey  presto… ! ██╗   ██╗ █████╗ ███╗   ███╗██████╗   ██║   ██║██╔══██╗████╗ ████║██╔══██╗  ██║   ██║███████║██╔████╔██║██████╔╝  ╚██╗ ██╔╝██╔══██║██║╚██╔╝██║██╔═══╝    ╚████╔╝ ██║  ██║██║ ╚═╝ ██║██║         ╚═══╝  ╚═╝  ╚═╝╚═╝     ╚═╝╚═╝                              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
  12. 12. coreos Let’s  boot  a  cluster  on  AWS! vamp_loadbalancer vamp_agent coreos vamp_agentvamp_agent coreos vamp_agentvamp_agent coreos vamp_agent autoscale REST coreos vamp_ controller three AV zones traffic
  13. 13. and  while  that’s   running…
  14. 14. …the  good  parts - Vert.x with Docker/CoreOS/ETCD is cool because: - Size: in MB’s and in complexity - Event bus makes distribution easy - polyglot works nice with the idea of micro services
  15. 15. …the  bad  parts - Once it becomes complex, boilerplate rises - ‘Actor-like’ maybe to coarse and without the build in ‘reactive’ stuff which Akka has - Not enough control / insight over the event bus as a system
  16. 16. Ques;ons? we are hiring!

×