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

Continuous Integration + OpenStack

  • Upload
    damia

  • View
    90

  • Download
    0

Embed Size (px)

DESCRIPTION

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 ?. - PowerPoint PPT Presentation

Citation preview

Page 1: Continuous Integration +  OpenStack

A worthy goal or a fool’s errand?

Continuous Integration + OpenStack

Page 2: Continuous Integration +  OpenStack

#rackstackatl2

• Brian Lamar– Public Cloud Deployments– OpenStack contributor since Wed Feb 16 16:06:47 2011 – Ansible– Puppet– Python

Who Am I?

Page 3: Continuous Integration +  OpenStack

#rackstackatl

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

Page 4: Continuous Integration +  OpenStack

#rackstackatl4

• Continuous Delivery• Continuous Deployment

What We’re Not Talking About (Right Now)

Page 5: Continuous Integration +  OpenStack

#rackstackatl5

• OpenStack always works• Allows for more frequent deployments

What are the benefits of Continuous Integration?

Page 6: Continuous Integration +  OpenStack

#rackstackatl6

• 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

Practices of Continuous Integration

Source: http://martinfowler.com/articles/continuousIntegration.html

Page 7: Continuous Integration +  OpenStack

#rackstackatl7

review.openstack.orgJenkinsZuul

XConstant interoperability between projects

Maintain a Single Source Repository

New Nova Commit Install dependencies from pip

pbr>=0.6,!=0.7,<1.0

SQLAlchemy>=0.7.8,<=0.9.99

amqplib>=0.6.1

...

python-keystoneclient>=0.7.0

Should be from git and not pip!

Page 8: Continuous Integration +  OpenStack

#rackstackatl8

DevStack for “basic” deploys3rd party voting bots for everything else

Automate The Build

Page 9: Continuous Integration +  OpenStack

#rackstackatl9

Unit / Integration tests includedTempestXNo hard requirements

Make Your Build Self-Testing

Page 10: Continuous Integration +  OpenStack

#rackstackatl10

XNo easy way to enforceXNo consensus on what a small patch is

Everyone Commits to the Mainline Every Day

Page 11: Continuous Integration +  OpenStack

#rackstackatl11

We do this

Every Commit Should Build the Mainline on an Integration Machine

Page 12: Continuous Integration +  OpenStack

#rackstackatl12

XProject test suites are still slowNot sure this really matters

Keep the Build Fast

Page 13: Continuous Integration +  OpenStack

#rackstackatl13

3rd party voting bots

Test in a Clone of the Production Environment

Page 14: Continuous Integration +  OpenStack

#rackstackatl14

XNo packages produced upstream on each commitXNo consistent release for PyPI packages

• python-*client

Make it Easy for Anyone to Get the Latest Executable

Page 15: Continuous Integration +  OpenStack

#rackstackatl15

Great gate + 3rd party gate3rd party bot output requirementsXInformation overload

Everyone Can See What’s Happening

Page 16: Continuous Integration +  OpenStack

#rackstackatl16

XNo official deployment methodXWhat is a deployment?

Left to 3rd party deploy bots

Automate Deployment

Page 17: Continuous Integration +  OpenStack

#rackstackatl

What is Rackspace doing now?

Page 18: Continuous Integration +  OpenStack

#rackstackatl18

• Daily pulls of upstream• Merge our custom code repositories (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

What is Rackspace doing now?

Page 19: Continuous Integration +  OpenStack

#rackstackatl19

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

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.

Page 20: Continuous Integration +  OpenStack

#rackstackatl20

Meet Our Patches

Page 21: Continuous Integration +  OpenStack

#rackstackatl21

• CI• QE• Pre-Production• Network Dev• London• Dulles (VA)• Dallas• Chicago• Sydney• Hong Kong

Meet Our Environments

~ 40,000 things to deploy to

Page 22: Continuous Integration +  OpenStack

#rackstackatl22

• 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

So, what takes so long?

Page 23: Continuous Integration +  OpenStack

#rackstackatl

How do we improve?

Page 24: Continuous Integration +  OpenStack

#rackstackatl24

• Stop carrying our own patches• Stop carrying our own patches• Stop carrying our own patches• Packaging upstream• Deployment methods upstream (?)

How do we improve?

Page 25: Continuous Integration +  OpenStack

#rackstackatl25

• Speeds development time– But at what cost?

• Proprietary features– Please no

• Proprietary integration– This makes sense

Why do we have custom patches?

Page 26: Continuous Integration +  OpenStack

#rackstackatl26

• Plugins• Configuration options• Billing system story• Developers are going to hate me

Allowing for Proprietary Integration

Page 27: Continuous Integration +  OpenStack

#rackstackatl27

• For OpenStack– Talk about official deployments– Upstream packaging– Project interoperability– Strongly encourage smaller commits– Keep encouraging tests

Going Forward Into Juno

• For Rackspace– Stop carrying patches– Encourage plugable code– Comment on Gerrit with our deployment test results

Page 28: Continuous Integration +  OpenStack

#rackstackatl28

• Continuous Delivery by Jez Humble and David Farley• The Phoenix Project by Gene Kim, Kevin Behr, and George Spafford

Fun Reads

Page 29: Continuous Integration +  OpenStack

#rackstackatl

RACKSPACE® HOSTING | 5000 WALZEM ROAD | SAN ANTONIO, TX 78218US SALES: 1-800-961-2888 | US SUPPORT: 1-800-961-4454 | WWW.RACKSPACE.COM

RACKSPACE® HOSTING | © RACKSPACE US, INC. | RACKSPACE® AND FANATICAL SUPPORT® ARE SERVICE MARKS OF RACKSPACE US, INC. REGISTERED IN THE UNITED STATES AND OTHER COUNTRIES. | WWW.RACKSPACE.COMRACKSPACE® HOSTING | © RACKSPACE US, INC. | RACKSPACE® AND FANATICAL SUPPORT® ARE SERVICE MARKS OF RACKSPACE US, INC. REGISTERED IN THE UNITED STATES AND OTHER COUNTRIES. | WWW.RACKSPACE.COM

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