1 / 29

Continuous Integration + OpenStack

Continuous Integration + OpenStack. A worthy goal or a fool’s errand?. Who Am I?. Brian Lamar Public Cloud Deployments OpenStack contributor since Wed Feb 16 16:06:47 2011 Ansible Puppet Python. What is “Continuous Integration” and how does it apply to OpenStack ?.

damia
Télécharger la présentation

Continuous Integration + OpenStack

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Continuous Integration + OpenStack A worthy goal or a fool’s errand?

  2. Who Am I? • Brian Lamar • Public Cloud Deployments • OpenStack contributor since WedFeb 16 16:06:47 2011 • Ansible • Puppet • Python

  3. What is “Continuous Integration” and how does it apply to OpenStack?

  4. What We’re Not Talking About (Right Now) Continuous Delivery Continuous Deployment

  5. What are the benefits of Continuous Integration? OpenStack always works Allows for more frequent deployments

  6. Practices of Continuous Integration Source:http://martinfowler.com/articles/continuousIntegration.html Maintain a Single Source Repository Automate the Build Make Your Build Self-Testing Everyone Commits to the Mainline Every Commit Should Build the Mainline on an Integration Machine Keep the Build Fast Test in a Clone of the Production Environment Make it Easy for Anyone to Get the Latest Executable Everyone Can See What’s Happening Automate Deployment

  7. Maintain a Single Source Repository pbr>=0.6,!=0.7,<1.0 SQLAlchemy>=0.7.8,<=0.9.99 amqplib>=0.6.1 ... python-keystoneclient>=0.7.0 Install dependencies from pip New Nova Commit Should be from git and not pip! • review.openstack.org • Jenkins • Zuul • Constant interoperability between projects

  8. Automate The Build • DevStack for “basic” deploys • 3rd party voting bots for everything else

  9. Make Your Build Self-Testing • Unit / Integration tests included • Tempest • No hard requirements

  10. Everyone Commits to the Mainline Every Day • No easy way to enforce • No consensus on what a small patch is

  11. Every Commit Should Build the Mainline on an Integration Machine • We do this

  12. Keep the Build Fast • Project test suites are still slow • Not sure this really matters

  13. Test in a Clone of the Production Environment • 3rd party voting bots

  14. Make it Easy for Anyone to Get the Latest Executable • No packages produced upstream on each commit • No consistent release for PyPI packages • python-*client

  15. Everyone Can See What’s Happening • Great gate + 3rd party gate • 3rd party bot output requirements • Information overload

  16. Automate Deployment • No official deployment method • What is a deployment? • Left to 3rd party deploy bots

  17. What is Rackspace doing now?

  18. What is Rackspace doing now? Daily pulls of upstream Merge our custom coderepositories (plypatch) Build custom virtual environments Run unit tests Build tarball packages Deploy tarball packages Run tests Promote from CI -> Preproduction Run tests Staggered production deployments

  19. RACKSPACE® HOSTING | WWW.RACKSPACE.COM It takes us ~21 days choose a release branch… then ~45 days before we look at the upstream code again.

  20. Meet Our Patches

  21. Meet Our Environments ~ 40,000 things to deploy to CI QE Pre-Production Network Dev London Dulles (VA) Dallas Chicago Sydney Hong Kong

  22. So, what takes so long? • 90% of my time is identifying and fixing issues with… • Issues our code caused in deployment • Our Jenkins infrastructure • Our packaging process • Our deployment process • Integration issues with • Billing • Auth • Others

  23. How do we improve?

  24. How do we improve? Stop carrying our own patches Stop carrying our own patches Stop carrying our own patches Packaging upstream Deployment methods upstream (?)

  25. Why do we have custom patches? • Speeds development time • But at what cost? • Proprietary features • Please no • Proprietary integration • This makes sense

  26. Allowing for Proprietary Integration Plugins Configuration options Billing system story Developers are going to hate me

  27. Going Forward Into Juno • For Rackspace • Stop carrying patches • Encourage plugable code • Comment on Gerrit with our deployment test results • For OpenStack • Talk about official deployments • Upstream packaging • Project interoperability • Strongly encourage smaller commits • Keep encouraging tests

  28. Fun Reads Continuous Deliveryby Jez Humble and David Farley The Phoenix Project by Gene Kim, Kevin Behr, and George Spafford

  29. RACKSPACE® HOSTING | 5 MILLINGTON ROAD | HAYES, UNITED KINGDOM UB3 4AZ UK SALES: +44 (0)20 8712 6507 | UK SUPPORT: 0800 988 0300 | WWW.RACKSPACE.CO.UK

More Related