Docker Dev Work flow - Docker Austin Meetup

5,734 views

Published on

Flux7's implementation of developer workflows using Docker in conjunction with Chef.

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
5,734
On SlideShare
0
From Embeds
0
Number of Embeds
3,840
Actions
Shares
0
Downloads
49
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Docker Dev Work flow - Docker Austin Meetup

  1. 1. Developer Workflow using Docker Aater Suleman, Flux7 Labs Docker Austin Meetup - March 13, 2014
  2. 2. Applications VyScale -- python flask + MySQL flux7.com -- php +MySQL client1 -- python + Cassandra (multi-tenant) client2 -- Ruby on Rails + MySQL + Redis
  3. 3. Web App DB LogStashMem$ HTTP SSH Vbox App Code Laptop Scripts for convenience Docker Registry in AWS or Docker.com Dev edits code in their favorite editor
  4. 4. New Hire/New laptop Install Vagrant git pull <code repository> devenv setup devenv start Behind the scenes: 1. Download the Vbox image 2. Run VM to share a folder + expose the ports + static IP 3. Build containers 4. Start containers in the right order and exposing the right ports (DB ??) 5. Copy log volumes in the /vagrant/log folder 6. Setup /etc/hosts to point to the VM 7. Print URL to access the application
  5. 5. Debug flow Edit code (in the editor of your choice, be able to use all your aliases and commands) // Restart the server (can be automated using unicorn) devenv load // check the logs in top/logs folder
  6. 6. Code commit devenv commit -t <tag> ← for debugging later git push Behind the scenes: 1. Commit all docker containers 2. Save versions for future use
  7. 7. QA Jenkins polls the repo for pushes Uses the same script to run the tests using containers
  8. 8. Code delivery Existing containers are destroyed (can be better) New containers are built and started
  9. 9. Chef recipe update devenv rebuild devenv push Behind the scenes: 1. create new containers by running chef recipes 2. commit contains to the master registry
  10. 10. Add/remove a service/tier Change devenv script

×