3. PRE-Devops
• Developer builds and tests on dev servers
• Devloper hands off code to operation
• likely deployed manually
• Sometimes it broken in Production
• Need to be fixed, Now
5. Devops
• Getting changes to users quickly, reliably, and
securely
• Quick release cycle from code to Production
• More confidence due to automated testing
• reproducibility
– bugs are not always 100% reproducible
7. Google Devops (2013)
• 75 million test cases are run daily
"Automated tests transform fear into boredom."
-- Eran Messeri, Google
8. Continuous Integration
• Same environment in Dev, QA and Production
• Auto deploy
– deploy reliability and consistency
• Automated tests
– unit test
– smoke test (integration test)
9. How do you test hadoop features?
• Manually test on dev cluster
– Hey folks, don’t move, I’m testing my own features.
• Pig unit
– adhoc-query? dev environment only
• HBase mini-cluster
– does not support Windows?
• Still not exactly the same environment as Production
• what if written in python, ruby, php?
10. What if we can do Dev and Test
in the same way, efficiently?
10
11.
12. Docker
• lightweight, portable Linux containers (like VMs)
– fast creation
– system isolated
– resource constrained
• Build, ship, run containers everywhere
– containers as dev and test environment
18. Docker image
• $ docker runs <IMAGE>
to create a container
• base image stores /bin,
/etc, /usr (Linux distro.)
• add you app(diff) on top
of base image
• commit containers
• push, pull images
22. Vagrant
• A open source command line VM(or IaaS)
provisioning tool
Providers
Vagrantfile
VM
23. Solution for OS X / Windows
Container Container
boot2docker
(2XMB, tiny core Linux)
OS X / Windows
with vagrant and virtualbox
installed
docker
containers
docker platform
auto provisioned by
vagrant
$ vagrant
up
DONE!