taking the long view: how the oslo program reduces technical debt
DESCRIPTION
In the fast-paced world of OpenStack development, we often focus on short-term needs like bug fixes and new features. The Oslo Program takes a longer view of the health and sustainability of the project. Our mission is to make OpenStack more maintainable by addressing cross-project code reuse and architectural issues. In this presentation we will cover the origins of Oslo and the processes and tools the team uses to improve OpenStack from the bottom up, making it easier to deploy, more approachable for new contributors, and sustainable for long-term use.TRANSCRIPT
![Page 1: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/1.jpg)
Taking the Long View: How the Oslo Program
Reduces Technical Debt
Doug Hellmann and Mark McLoughlin Kilo Design Summit
November, 2014
![Page 2: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/2.jpg)
Mission
To produce a set of python libraries containing code shared by OpenStack projects. The APIs provided by these libraries should be high quality, stable, consistent, documented and generally applicable.
![Page 3: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/3.jpg)
Project Motivation
• Consistency for deployers
• Consistency for developers
• Identify and foster common patterns
![Page 4: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/4.jpg)
Our Motivation"I cannot imagine the future, but I care about it. I know I am a part of a story that starts long before I can remember and continues long beyond when anyone will remember me. I sense that I am alive at a time of important change, and I feel a responsibility to make sure that the change comes out well. I plant my acorns knowing that I will never live to harvest the oaks.”
http://longnow.org/clock/
![Page 5: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/5.jpg)
Early Days
• Aug 2010 - Jay Pipes registers “openstack-common” on launchpad
• Nov 2010 - Todd Wiley adds plugin handler code to Bexar
• Dec 2010 - Jay Pipes adds early configuration library
• Summer 2011 - Brian Lamar starts database modules
• Oct 2011 - First summit session at Essex summit
![Page 6: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/6.jpg)
Essex - Folsom
• Nov 2011 - Jason Koelker creates openstack-common repository; Mark McLoughlin proposes configuration management module
• Essex Release - Common libraries included in release notes
• Folsom Summit - "managed copy and paste" concepts; work on pbr library begins
• Aug 2012 - Project granted PTL for Grizzly
![Page 7: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/7.jpg)
Grizzly• Mark McLoughlin elected the team’s first PTL
• Adopt name “Oslo”
• Team grows
• Define our mission statement
• Release oslo.config library
• Rename openstack-common repository to oslo-incubator
![Page 8: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/8.jpg)
Havana - Juno
• Havana - Release oslo.messaging; improve incubation tools
• Icehouse - oslo.messaging adoption; evolution of tools and processes; oslo.db team forms
• Juno - Major graduation push results in 7 new libraries; Liaison program started
![Page 9: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/9.jpg)
The Oslo Team
• Generalist code reviewers
• Specialist API maintainers
![Page 10: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/10.jpg)
From Scratch
• oslosphinx - documentation theme
• pbr - packaging
![Page 11: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/11.jpg)
Adopted
• cliff - command line apps
• stevedore - dynamic code loading
• taskflow - job workflow
• pylockfile - inter-process synchronization
![Page 12: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/12.jpg)
![Page 13: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/13.jpg)
![Page 14: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/14.jpg)
![Page 15: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/15.jpg)
![Page 16: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/16.jpg)
Graduation Changes
• Clean up configuration options
• Provide configuration-free API?
• Plug leaky APIs
• Expand/contract API to meet needs of consumers
• Name the library
![Page 17: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/17.jpg)
![Page 18: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/18.jpg)
funcutils
importutils
pycadf
oslo.config
oslo.messaging
authutils
cliff
cliutils
audit
middleware/context
cache
lockutils
timeutils memorycache
apiclient
strutils
gettextutils
fileutils
processutils
cfgfilter
config crypto
db
hooksstevedore
imageutils
excutils
local
log
jsonutils
sslutils
network_utils
log_handler
notifier
rpc
context
service
versionutils
zmq
middleware
policy
quota
reports
rootwrap
xmlutils
eventlet_backdoor
loopingcall
periodic_task
requestutils
threadgroup
fixture
test
units
uuidutils
oslo.version
oslo.vmware
pbr
scheduler
taskflow
![Page 19: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/19.jpg)
taskflow
oslo.serialization
oslo.i18n
oslo.utils
stevedoreoslo.server
oslo.concurrency
oslo.configoslo.io
oslo.crypto
oslo.reports oslo.policy
oslo.middleware
oslo.messaging
oslo.image
oslo.cache
oslo.quota
oslo.vmware
oslo.client
PyCADF
oslo.log
oslo.db
oslo.versionutils
oslo.hooks
New in Juno
![Page 20: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/20.jpg)
Graduated Libraries
• oslo.config
• oslo.db
• oslo.i18n
• oslo.messaging
• oslo.middleware
• oslo.rootwrap
• oslo.serialization
• oslotest
• oslo.utils
![Page 21: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/21.jpg)
Beyond OpenStack
• Upstream work: Bug fixes & Requirements
• Outside contributors
• Adoptions
![Page 22: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/22.jpg)
Oslo & Python 3
• Python 2.7 is receiving bug fixes, but no new features
• Targeting Python 3.4
• Bottom-up approach
![Page 23: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/23.jpg)
oslo.context
taskflow
oslo.serialization
oslo.i18n
oslo.utils
stevedoreoslo.server
oslo.concurrency
oslo.configoslo.io
oslo.crypto
oslo.reportsoslo.policy
oslo.middleware
oslo.messaging
oslo.image
oslo.cache
oslo.log oslo.vmware
oslo.client
PyCADF
oslo.quota oslo.db
oslo.versionutils
oslo.hooks
Plans for Kilo
![Page 24: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/24.jpg)
Getting Involved
• Reviews!
• Look for patterns in projects
![Page 25: Taking the Long View: How the Oslo Program Reduces Technical Debt](https://reader033.vdocuments.mx/reader033/viewer/2022052910/5599e3e11a28ab1b668b465e/html5/thumbnails/25.jpg)
Questions?