Continuous integration with docker, buildbot and git

5,217 views
4,920 views

Published on

Published in: Technology
2 Comments
16 Likes
Statistics
Notes
  • @Tranquilllity Unlike jenkins, the source file for the buildbot image is highly coupled with our projects. You can think it as jenkins + configuration all kept in the same repo. So it's not publicly available and it doesn't do much direct use to other teams. But we're more than happy to share our experience about our setup like self upgrading buildbot and other tricks we learned. Feel free to contact me if you need more detail about it.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hey, nice presentation. Did you publish the buildbot images somewhere?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
5,217
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
81
Comments
2
Likes
16
Embeds 0
No embeds

No notes for slide

Continuous integration with docker, buildbot and git

  1. 1. Continuous Integration with Docker, Buildbot and Git
  2. 2. About Me ● Python user since 2007 ● Build web based systems using Python + Django mostly ● Gain interests in infrastructure gradually ● Start to build my own software company recently twitter: @adieu github: github.com/adieu website: www.adieu.me
  3. 3. Quiz ● ● ● ● ● How many of you know Docker How many of you know Buildbot How many of you know Git How many of you deploy software to servers How many of you have any kinds of experience with virtualization
  4. 4. Continuous Integration with Docker, Buildbot and Git
  5. 5. What is it
  6. 6. Why it matters ● More and more integration points in modern software system ● Successful deployment became a challenge ● Catch the bug before it hits production ● DevOps and DRY ● Knowledge is kept by source code instead of human brain
  7. 7. Continuous Integration with Docker, Buildbot and Git
  8. 8. What is it
  9. 9. Demo
  10. 10. Why it matters ● Thin layer above the hardware provides a fast and unified environment ● Program runs in an isolated container with resource and network control ● Easy to use CLI and remote api ● One image could been built from a Dockerfile and runs on multiple machines
  11. 11. Continuous Integration with Docker, Buildbot and Git
  12. 12. What is it
  13. 13. Why it matters ● Highly customizable ● Lightweight but battery included ● All configuration could be kept in the source code so that version control works ● It’s Python!
  14. 14. Continuous Integration with Docker, Buildbot and Git
  15. 15. What is it
  16. 16. Why it matters ● ● ● ● The version control system that works Fast and efficient Suitable for collaboration workflow Common choice by the open source community ● Github!
  17. 17. Build a Programmable Software Company A Case Study
  18. 18. The End State Service Service Service Test run Docker Buildbot deploy Server result Git trigger
  19. 19. The Evolution
  20. 20. Fabric
  21. 21. The Problem ● No version history ● Only server admin could deploy ● Have to setup development environment to run tests locally ● No deploy history ● Does not work well with multiple repositories ● Non-isolated build environment
  22. 22. Git + Fabric git push Local post-update Git Fabric
  23. 23. The Problem ● No version history ● Only server admin could deploy ● Have to setup development environment to run tests locally ● No deploy history ● Does not work well with multiple repositories ● Non-isolated build environment ● Hard to setup
  24. 24. Git + Buildbot git push Local webhook Git Buildbot
  25. 25. The Problem ● No version history ● Only server admin could deploy ● Have to setup development environment to run tests locally ● No deploy history ● Does not work well with multiple repositories ● Hard to setup ● Non-isolated build environment ● Complex build steps ● Non-repeatable deploy workflow
  26. 26. Git + Buildbot + Docker git push Local webhook Git Docker Buildbot http api
  27. 27. docker-py
  28. 28. DockerLatentBuildSlave
  29. 29. Benefits ● Each service has its own git repo and runs in a docker container ● Every change is kept track of by git ● Once receiving the change, buildbot will run tests, build a new docker image, stop the old container and start a new one with the newly built image ● The whole system is like a program, one could change a service by modifying the source code of its image ● Empower everyone to change everything
  30. 30. Demo
  31. 31. One More Thing...
  32. 32. SaltStack
  33. 33. Gitlab
  34. 34. Hubot
  35. 35. contact@sebible.com
  36. 36. Links Continuous Integration docker-py http://en.wikipedia.org/wiki/Continuous_integration https://github.com/dotcloud/docker-py Docker DockerLatentBuildSlave http://www.docker.io/ https://github.com/adieu/buildbot/commit/eff651d Buildbot SaltStack http://buildbot.net/ http://www.saltstack.com/ Git Gitlab http://git-scm.com/ http://gitlab.org/ Fabric Hubot http://fabfile.org/ http://hubot.github.com/
  37. 37. Thank You

×