What's the actual error/env/context? • All code change committed: Git - The integration system itself has a chef repository • All repositories & code: Gerrit • Bugs in the bug tracker (hookup Jenkins and Gerrit) • Communication: IRC/Flowdock/Zulip/email/...
Builder: http://ci.openstack.org/jenkins-job-builder - Yaml templates - Source control - Autogeneration - Too many plug-ins to mention (over 50 installed)
Bootstrapping infrastructure • Building packages to upload, so another job continuously deploy them... and so on. Nope : • More complexity • More pieces to integrate
get from bare metal knowing only MAC address and go from IMPI → usable resource (2) If test #2 passes, we can get from usable resources to configured, managed resources. (3) If test #3 passes, we can get from cloud configured to run OpenStack → cloud running OpenStack services deemed as working.
virtualized deployments, virtualized or containerized (Docker) tests, and • 4 bare metal environments - targets for continuous deployment • (WIP) HA all services: gerrit, jenkins, etc • Environment upkeep
• “I'll tell the developer of this code to review my patch set” • “Other developers test their code” • “You do development, I do testing, he does releasing, and she does management...” • “We all sit in the same room; of course we can keep track of what a few developers are doing and how they are doing it!”
viewed as an explicit implementation of an implicit process. And because they're connected - “integrated” - a proper CI system will battle the siloing of your organization!
to increase your success rate, double your failure rate.” Thomas John Watson (IBM CEO from 1914 – 1956) a.k.a “fail faster” • Define iteration cycle before speeding it up • “People will visit a Web site less often if it is slower than a close competitor by more than 250 milliseconds” - NYT interview Microsoft and Google researchers Are developers not users too? Provide some (useful) feedback ASAP! • Make sure every developer has a useful (to them) CI component (hint: ask them, collaborate)... Can increase everyones visibility! • All on the same page: Jenkins as the dashboard for your development team; expose pressing issues on the first page • Expose a component in the CI system before it is done • Optimize after – don't wait for a test to become speedy before gating on it
stats → managers, and managers enforce what the system/organization needs • If CI is designed correctly, then developers wil automatically want to use it! (^^ This is a test ^^ CI will tell you how much it is used :)
says: “... emergence is the way complex systems and patterns arise out of a multiplicity of relatively simple interactions” Is a CI system – when part of software development - made of these simple interactions? • Automation and Integration affect design patters in a complex stack. • Coherent design arises from complexity with help of interactions between the parts. • Let principles of emergent systems help you “intelligently design” things.