Your SlideShare is downloading. ×
0
Continuous Integration
with Docker, Buildbot and Git
About Me
● Python user since 2007
● Build web based systems
using Python + Django mostly
● Gain interests in infrastructur...
Quiz
●
●
●
●
●

How many of you know Docker
How many of you know Buildbot
How many of you know Git
How many of you deploy ...
Continuous Integration
with Docker, Buildbot and Git
What is it
Why it matters
● More and more integration points in modern
software system
● Successful deployment became a challenge
● C...
Continuous Integration
with Docker, Buildbot and Git
What is it
Demo
Why it matters
● Thin layer above the hardware provides a
fast and unified environment
● Program runs in an isolated conta...
Continuous Integration
with Docker, Buildbot and Git
What is it
Why it matters
● Highly customizable
● Lightweight but battery included
● All configuration could be kept in the source
co...
Continuous Integration
with Docker, Buildbot and Git
What is it
Why it matters
●
●
●
●

The version control system that works
Fast and efficient
Suitable for collaboration workflow
Commo...
Build a Programmable
Software Company
A Case Study
The End State
Service

Service

Service

Test
run

Docker

Buildbot
deploy

Server

result

Git
trigger
The Evolution
Fabric
The Problem
● No version history
● Only server admin could deploy
● Have to setup development environment to
run tests loc...
Git + Fabric

git push

Local

post-update

Git

Fabric
The Problem
● No version history
● Only server admin could deploy
● Have to setup development environment to
run tests loc...
Git + Buildbot

git push

Local

webhook

Git

Buildbot
The Problem
● No version history
● Only server admin could deploy
● Have to setup development environment to run tests
loc...
Git + Buildbot + Docker
git push

Local

webhook

Git

Docker

Buildbot

http api
docker-py
DockerLatentBuildSlave
Benefits
● Each service has its own git repo and runs in a docker
container
● Every change is kept track of by git
● Once ...
Demo
One More Thing...
SaltStack
Gitlab
Hubot
contact@sebible.com
Links
Continuous Integration

docker-py

http://en.wikipedia.org/wiki/Continuous_integration

https://github.com/dotcloud/...
Thank You
Upcoming SlideShare
Loading in...5
×

Continuous integration with docker, buildbot and git

3,934

Published on

Published in: Technology
2 Comments
13 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
3,934
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
65
Comments
2
Likes
13
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×