Growing up with Docker: How Docker and Tsuru have evolved

221 views

Published on

Talk presented at Container Days NYC 2016, about how Tsuru and Docker integrated back in 2013. It also presents some of the history of Tsuru and the motivation for Globo.com to create the project.

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

  • Be the first to like this

No Downloads
Views
Total views
221
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Growing up with Docker: How Docker and Tsuru have evolved

  1. 1. Growing up with Docker How Docker and Tsuru have evolved Francisco Souza @franciscosouza
  2. 2. what the f**rancisco?! • Software Engineer, Video @ NYTimes • Docker Captain • One of the first developers of Tsuru PaaS • Not-as-active-as-in-the-past open-source contributor
  3. 3. What is tsuru? • Open-source PaaS created by Globo.com • Also used by other companies • "Real-life" oriented from day-0
  4. 4. What is tsuru? % brew install tsuru % tsuru install ...
  5. 5. 2016 2015 2014 2013 How did we get here? 2012
  6. 6. 2016 2015 2014 2013 How did we get here? 2012
  7. 7. January, 2012 • Let's move to the "cloud" • What does that mean? • Private cloud 2016 2015 2014 2013 2012
  8. 8. IaaS and PaaS • Are these terms still a thing? • Back in 2012, they were • IaaS: OpenStack • PaaS: Cloud Foundry 2016 2015 2014 2013 2012
  9. 9. Issues with the PaaS 2016 2015 2014 2013 2012
  10. 10. Issues with the PaaS • Let's do it ourselves! :) 2016 2015 2014 2013 2012
  11. 11. Creating a PaaS in 2012 2016 2015 2014 2013 2012
  12. 12. Creating a PaaS in 2012 • No Docker • "Let's go with VM's and investigate this container thing later" 2016 2015 2014 2013 2012
  13. 13. Creating a PaaS in 2012 • No Docker • "Let's go with VM's and investigate this container thing later" • Using Go Weekly releases 2016 2015 2014 2013 2012
  14. 14. Juju • "Devops distilled" • Zookeeper • Bootstrap instance
  15. 15. Concepts • Platforms • Platform <-> Juju Charm • Applications • Application <-> Juju Deployment + load balancer • Units • Unit <-> VM
  16. 16. December, 2012 2016 2015 2014 2013 2012
  17. 17. December, 2012 • First application deployed to production 2016 2015 2014 2013 2012
  18. 18. December, 2012 • First application deployed to production • 10-minutes overhead 2016 2015 2014 2013 2012
  19. 19. December, 2012 • First application deployed to production • 10-minutes overhead • Can we do better? 2016 2015 2014 2013 2012
  20. 20. Containers!
  21. 21. • Juju supports lxc! :-D
  22. 22. • Juju supports lxc! :-D • "Development" mode only :(
  23. 23. • Juju supports lxc! :-D • "Development" mode only :( • Let's do it ourselves!
  24. 24. March, 2013 2016 2015 2014 2013 2012 https://www.youtube.com/watch?v=wW9CAH9nSLs
  25. 25. March, 2013 2016 2015 2014 2013 2012 https://www.youtube.com/watch?v=wW9CAH9nSLs
  26. 26. Release the Hounds! 2016 2015 2014 2013 2012
  27. 27. Concepts • Platforms • Platform <-> Docker image • Applications • Application <-> Docker image + hostname • Units • Unit <-> Docker container
  28. 28. December, 2013 • First application deployed to production • Docker 0.7 • Production environment created with Docker 0.4 2016 2015 2014 2013 2012
  29. 29. Tsuru at Globo.com today 2016 2015 2014 2013 2012
  30. 30. Tsuru at Globo.com today • ~800 apps 2016 2015 2014 2013 2012
  31. 31. Tsuru at Globo.com today • ~800 apps • ~300 deployments a day 2016 2015 2014 2013 2012
  32. 32. Tsuru at Globo.com today • ~800 apps • ~300 deployments a day • Running internal applications and large-scale user- facing applications (~400k simultaneous users) 2016 2015 2014 2013 2012
  33. 33. Docker in Production • Docker 0.4: first deployment of the production environment • Docker 0.7: first application launched 2016 2015 2014 2013 2012
  34. 34. What did Docker look like? github.com/fsouza/docker-0.7
  35. 35. Challenges
  36. 36. Challenges • Upgrading Docker
  37. 37. Challenges • Upgrading Docker • AUFS bugs
  38. 38. Challenges • Upgrading Docker • AUFS bugs • Integrating
  39. 39. Challenges • Upgrading Docker • AUFS bugs • Integrating • Scaling
  40. 40. Integrating with Docker
  41. 41. Integrating with Docker • Remote API
  42. 42. Integrating with Docker • Remote API • go-dockerclient
  43. 43. Integrating with Docker • Remote API • go-dockerclient • Very unstable API • Painful upgrades
  44. 44. Scaling/Clustering • No Swarm/Kubernetes/Mesos at the time • Let's do it ourselves! • github.com/tsuru/docker-cluster
  45. 45. docker-cluster • Library for clustering Docker nodes • Hold one instance of go-dockerclient per node • Communicate through the remote API
  46. 46. Network Isolation • VM-level • Network-isolated application pools
  47. 47. Future of Tsuru & Docker • Docker shifting towards orchestration • Less work for Tsuru :) • Container orchestration solutions • Docker Swarm • Mesos/Marathon • Kubernetes
  48. 48. We’re hiring! nyti.ms/technology @NYTDevs | developers.nytimes.com
  49. 49. try tsuru today! % brew tap tsuru/homebrew-tsuru % brew install tsuru % tsuru install % sudo apt-add-repository ppa:tsuru/ppa % sudo apt-get update % sudo apt-get install tsuru-client
  50. 50. Growing up with Docker Francisco Souza @franciscosouza slideshare.net/franciscosouza f@souza.cc How Docker and Tsuru have evolved github.com/tsuru

×