Continuous integration with docker, buildbot and git
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Continuous integration with docker, buildbot and git

on

  • 3,397 views

 

Statistics

Views

Total Views
3,397
Views on SlideShare
3,363
Embed Views
34

Actions

Likes
10
Downloads
51
Comments
2

4 Embeds 34

http://www.scoop.it 26
https://twitter.com 5
https://www.google.com 2
http://shakertechnologies.tumblr.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • @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.
    Are you sure you want to
    Your message goes here
    Processing…
  • Hey, nice presentation. Did you publish the buildbot images somewhere?
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Continuous integration with docker, buildbot and git Presentation Transcript

  • 1. Continuous Integration with Docker, Buildbot and Git
  • 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. 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. Continuous Integration with Docker, Buildbot and Git
  • 5. What is it
  • 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. Continuous Integration with Docker, Buildbot and Git
  • 8. What is it
  • 9. Demo
  • 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. Continuous Integration with Docker, Buildbot and Git
  • 12. What is it
  • 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. Continuous Integration with Docker, Buildbot and Git
  • 15. What is it
  • 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. Build a Programmable Software Company A Case Study
  • 18. The End State Service Service Service Test run Docker Buildbot deploy Server result Git trigger
  • 19. The Evolution
  • 20. Fabric
  • 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. Git + Fabric git push Local post-update Git Fabric
  • 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. Git + Buildbot git push Local webhook Git Buildbot
  • 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. Git + Buildbot + Docker git push Local webhook Git Docker Buildbot http api
  • 27. docker-py
  • 28. DockerLatentBuildSlave
  • 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. Demo
  • 31. One More Thing...
  • 32. SaltStack
  • 33. Gitlab
  • 34. Hubot
  • 35. contact@sebible.com
  • 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. Thank You