Moving from
Mesos to Kubernetes without anyone
noticing*
Anubhav Mishra
Slide 2
Slide 2 text
Anubhav Mishra
@anubhavm
Slide 3
Slide 3 text
Anubhav Mishra
@anubhavm
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
Anubhav Mishra
@anubhavm
Slide 6
Slide 6 text
Anubhav Mishra
@anubhavm
Atlantis
Slide 7
Slide 7 text
Anubhav Mishra
@anubhavm
Atlantis
Slide 8
Slide 8 text
Anubhav Mishra
@anubhavm
Atlantis
Slide 9
Slide 9 text
Anubhav Mishra
@anubhavm
Atlantis
Slide 10
Slide 10 text
vs
Slide 11
Slide 11 text
vs
Slide 12
Slide 12 text
Agenda
● Hootsuite’s Journey from Mesos to Kubernetes
● Microservices pipeline
○ Mesos and Marathon
○ Kubernetes
● Migration without major disruption
● Live demo!
● Lessons learned/Conclusion
Microservices on Mesos and Marathon
● Project Skeleton
○ Golang or Scala
● Pipeline as Code
○ Jenkinsfile
○ Makefile
● Docker images for packaging
● API on top of Marathon
● Dynamic service discovery
● Fat middleware using Consul and NGINX
Slide 61
Slide 61 text
Microservices on Kubernetes
● Project Skeleton
○ Golang or Scala
● Pipeline as Code
○ Jenkinsfile
○ Makefile
● Docker images for packaging
● API on top of Marathon
● Dynamic service discovery
● Fat middleware using Consul and NGINX
● Documentation for getting started
● ./mesos2k8s
Slide 62
Slide 62 text
./mesos2k8s
Slide 63
Slide 63 text
Deployment Files
● make deploy-k8s-dev
● make deploy-k8s-staging
● make deploy-k8s-production
Slide 64
Slide 64 text
Pipeline as Code
Slide 65
Slide 65 text
Pipeline as Code
Slide 66
Slide 66 text
Pipeline as Code
Slide 67
Slide 67 text
Packaging
Slide 68
Slide 68 text
Packaging
Slide 69
Slide 69 text
Routing in Mesos
service-1
10.0.10.1
service-2
10.0.10.2
Slide 70
Slide 70 text
Routing in Mesos
service-2
10.0.10.2
Slide 71
Slide 71 text
Routing to K8s
service-2
10.0.10.2
service-1
10.0.17.1
172.10.0.10
10.0.30.10