Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
HOW OPENSTACK
MAKES PYTHON
BETTER
(and vice-versa)
Hello!
I AM DOUG HELLMANN
Red Hat
Technical Committee member
PSF Fellow
@doughellmann on Twitter
dhellmann on Freenode
Hello!
I AM THIERRY CARREZ
OpenStack Foundation staff
Technical Committee chair
PSF Fellow
@tcarrez on Twitter
ttx on Free...
1.
OPENSTACK
A community-led project
Elected
team leadership
Project teams select
their own leaders every
release cycle.
INDEPENDENT GOVERNANCE
Elected
oversig...
OUR BASE PRINCIPLES:
THE FOUR OPENS
Open
source
Open
development
Open
design
Open
community
THE BIG TENT
OpenStack is made of people
2.
WHAT PYTHON BRINGS
TO OPENSTACK
Ease of Use & Inclusive Community
WHY OPENSTACK CHOSE PYTHON
○ Distro integration
○ Easy to read
○ Easy to learn
○ Easy to patch
○ Ops familiarity
WHY OPENSTACK KEPT PYTHON
○ Integration language
○ PyPI ecosystem
○ Easy to read
○ Easy to learn
○ Inclusive community
3.
WHAT OPENSTACK
BRINGS TO PYTHON
Funding, Contributors, & Quality
EXPERIENCE SOUGHT
○ Cloud / sysadmin / devops
○ Technologies like storage or networking
○ Python
OPENSTACK & PYTHON JOBS
trends for jobs containing python, openstack, openstack python, storage, network, and
virtualizati...
SUPPLY & DEMAND
trends of salary index for python and openstack jobs from indeed.com
EMPLOYER INDEPENDENCE
○ Community Member
○ Reputation-based Influence
○ Job Mobility
INFLUX OF PYTHON DEVELOPERS
○ Converted from “Enterprise” languages
○ Growing excited about Open Source
○ Joining the Pyth...
QUALITY
Detecting regressions before anyone else
23 000
23 000
Number of test runs in OpenStack
on a typical work day
PYMEMCACHE 1.3.0
○ Released (Friday) July 24, 2015
○ Moved exceptions around in backward-
incompatible ways
○ Bug spotted ...
KAZOO 2.1
○ Released May 11, 2015
○ Deadlock when acquiring a lock that is
already acquired
○ Bug reported May 12, 2015
NETADDR 0.7.16
○ Released August 30, 2015
○ Failing on validating a previously valid
MAC address
○ Bug reported August 31,...
CONTRIBUTIONS
Direct and indirect
LIBRARIES WE MADE
cliff
CLI framework
stevedore
plugin patterns
pbr
packaging automation
debtcollector
deprecation manager...
TOOLS WE MADE
jjb
Jenkins Job Builder
zuul
CI gate management
reno
release notes in git
bandit
security linter
gabbi
decla...
UPSTREAM CONTRIBUTIONS
Packaging
packaging, pip,
setuptools, wheel
Web
Pecan, requests,
WebOb, Werkzeug
Testing
fixtures, ...
ADOPTED LIBRARIES
○ pylockfile
○ mox3
○ WSME
○ sqlachemy-migrate
4.
CONCLUSION
How do we improve the
symbiosis?
ADOPT GATING
Taste before you commit
FOLLOW
SEMVER
Major.Minor.Patch
ONCE IT’S OUT,
IT’S OUT
Remember
eventlet 0.18.1
DON’T RELEASE
ON A FRIDAY
You might interfere with
someone’s idea of a
good week-end
CONTRIBUTE
UPSTREAM
More fixes, more
features.
DECOMPOSE /
REFACTOR
Make more reusable
components.
HIGHLIGHT
OUR WORK
Write more
documentation for the
tools we’ve already built.
SHARE OUR
EXPERIENCE
Talk about the patterns
we’ve adopted, and our
experience solving
complex problems.
Other OpenStack Community
Members at EuroPython 2016
○ Victoria Martinez De La Cruz - Build your
first OpenStack applicati...
THANKS!
Any questions?
You can find us at:
@doughellmann doug@doughellmann.com
@tcarrez thierry@openstack.org
Presentation...
How OpenStack Makes Python Better (and vice-versa)
Upcoming SlideShare
Loading in …5
×

How OpenStack Makes Python Better (and vice-versa)

2,021 views

Published on

OpenStack is an open source stack that can be deployed on raw computing resources to privately or publicly present Infrastructure as a Service. It now consists of more than 4.5 million lines of code, 85% of which is Python. In this talk, Thierry Carrez and Doug Hellmann, both Python Software Foundation fellows and OpenStack Technical Committee members, look at the symbiotic relationship between OpenStack and Python.

We go back in history and explain why OpenStack originally picked Python as its main language 6 years ago, and explore what does Python bring to OpenStack. We dive into examples of OpenStack pushing Python libraries to their limits and exposing new bugs. We look into the massive cloud-based continuous integration system that OpenStack uses and explain how it exposes bugs in Python libraries in the minutes after they are published to PyPI. We look into Python libraries that were created by the OpenStack community and libraries that the OpenStack community took over. Finally we'll expose a few best practices that Python developers can follow to get the most of this symbiotic relationship.

Published in: Software
  • Be the first to comment

How OpenStack Makes Python Better (and vice-versa)

  1. 1. HOW OPENSTACK MAKES PYTHON BETTER (and vice-versa)
  2. 2. Hello! I AM DOUG HELLMANN Red Hat Technical Committee member PSF Fellow @doughellmann on Twitter dhellmann on Freenode
  3. 3. Hello! I AM THIERRY CARREZ OpenStack Foundation staff Technical Committee chair PSF Fellow @tcarrez on Twitter ttx on Freenode
  4. 4. 1. OPENSTACK A community-led project
  5. 5. Elected team leadership Project teams select their own leaders every release cycle. INDEPENDENT GOVERNANCE Elected oversight board Overall project leadership elected by the contributors every year.
  6. 6. OUR BASE PRINCIPLES: THE FOUR OPENS Open source Open development Open design Open community
  7. 7. THE BIG TENT OpenStack is made of people
  8. 8. 2. WHAT PYTHON BRINGS TO OPENSTACK Ease of Use & Inclusive Community
  9. 9. WHY OPENSTACK CHOSE PYTHON ○ Distro integration ○ Easy to read ○ Easy to learn ○ Easy to patch ○ Ops familiarity
  10. 10. WHY OPENSTACK KEPT PYTHON ○ Integration language ○ PyPI ecosystem ○ Easy to read ○ Easy to learn ○ Inclusive community
  11. 11. 3. WHAT OPENSTACK BRINGS TO PYTHON Funding, Contributors, & Quality
  12. 12. EXPERIENCE SOUGHT ○ Cloud / sysadmin / devops ○ Technologies like storage or networking ○ Python
  13. 13. OPENSTACK & PYTHON JOBS trends for jobs containing python, openstack, openstack python, storage, network, and virtualization from indeed.com
  14. 14. SUPPLY & DEMAND trends of salary index for python and openstack jobs from indeed.com
  15. 15. EMPLOYER INDEPENDENCE ○ Community Member ○ Reputation-based Influence ○ Job Mobility
  16. 16. INFLUX OF PYTHON DEVELOPERS ○ Converted from “Enterprise” languages ○ Growing excited about Open Source ○ Joining the Python Community
  17. 17. QUALITY Detecting regressions before anyone else
  18. 18. 23 000
  19. 19. 23 000 Number of test runs in OpenStack on a typical work day
  20. 20. PYMEMCACHE 1.3.0 ○ Released (Friday) July 24, 2015 ○ Moved exceptions around in backward- incompatible ways ○ Bug spotted and reported July 26, 2015 ○ Pymemcache 1.3.2 released July 26, 2015
  21. 21. KAZOO 2.1 ○ Released May 11, 2015 ○ Deadlock when acquiring a lock that is already acquired ○ Bug reported May 12, 2015
  22. 22. NETADDR 0.7.16 ○ Released August 30, 2015 ○ Failing on validating a previously valid MAC address ○ Bug reported August 31, 2015 ○ Netaddr 0.7.17 released August 31, 2015
  23. 23. CONTRIBUTIONS Direct and indirect
  24. 24. LIBRARIES WE MADE cliff CLI framework stevedore plugin patterns pbr packaging automation debtcollector deprecation manager futurist additions to futures automaton state machine library
  25. 25. TOOLS WE MADE jjb Jenkins Job Builder zuul CI gate management reno release notes in git bandit security linter gabbi declarative HTTP tests gertty console-based gerrit UI
  26. 26. UPSTREAM CONTRIBUTIONS Packaging packaging, pip, setuptools, wheel Web Pecan, requests, WebOb, Werkzeug Testing fixtures, testtools, testrepository, tox Database Alembic, python- memcache, Pandas, redis-py, SQLAlchemy Interpreters CPython, PyPy, Jython Other Dogpile, eventlet, iso8601, Mako, pykerberos, retrying, six
  27. 27. ADOPTED LIBRARIES ○ pylockfile ○ mox3 ○ WSME ○ sqlachemy-migrate
  28. 28. 4. CONCLUSION How do we improve the symbiosis?
  29. 29. ADOPT GATING Taste before you commit
  30. 30. FOLLOW SEMVER Major.Minor.Patch
  31. 31. ONCE IT’S OUT, IT’S OUT Remember eventlet 0.18.1
  32. 32. DON’T RELEASE ON A FRIDAY You might interfere with someone’s idea of a good week-end
  33. 33. CONTRIBUTE UPSTREAM More fixes, more features.
  34. 34. DECOMPOSE / REFACTOR Make more reusable components.
  35. 35. HIGHLIGHT OUR WORK Write more documentation for the tools we’ve already built.
  36. 36. SHARE OUR EXPERIENCE Talk about the patterns we’ve adopted, and our experience solving complex problems.
  37. 37. Other OpenStack Community Members at EuroPython 2016 ○ Victoria Martinez De La Cruz - Build your first OpenStack application with OpenStack PythonSDK ○ Victor Stinner - FAT Python: a new static optimizer for Python 3.6 ○ David Flanders - OpenStack Cloud Native Deployment for Application Developers
  38. 38. THANKS! Any questions? You can find us at: @doughellmann doug@doughellmann.com @tcarrez thierry@openstack.org Presentation template by SlidesCarnival Cook kid CC-BY-2.0 by SalTheColourGeek @ https://www.flickr.com/photos/92735078@N03/15949256429 Fire buckets CC-BY-2.0 by Steve Greer @ https://www.flickr.com/photos/steviegreer/2919157836 Lego Cup Mix CC-BY-2.0 by Jonathan Stewart @ https://www.flickr.com/photos/51804380@N07/5039810904 Lightbulb CC-BY-2.0 by Richard Rutter @ https://www.flickr.com/photos/clagnut/2865788674 Stream CC-BY-SA-2.0 by Shashank Bhat @ https://www.flickr.com/photos/shashankbhat/12861715603 Owl CC-BY 2.0 by Dirk Van de Velde @ https://www.flickr.com/photos/23975018@N04/3675503072 Credits:

×