21
Taking the Long View: How the Oslo Program Reduces Technical Debt Doug Hellmann Atlanta OpenStack Meetup September, 2014

Oslo Program Overview, OpenStack Atlanta

Embed Size (px)

Citation preview

Page 1: Oslo Program Overview, OpenStack Atlanta

Taking the Long View: How the Oslo Program

Reduces Technical DebtDoug Hellmann

Atlanta OpenStack Meetup September, 2014

Page 2: Oslo Program Overview, OpenStack Atlanta

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: Oslo Program Overview, OpenStack Atlanta

Project Motivation

• Consistency for deployers

• Consistency for developers

• Identify and foster common patterns

Page 4: Oslo Program Overview, OpenStack Atlanta

My 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: Oslo Program Overview, OpenStack Atlanta

The Oslo Team

• Generalist code reviewers

• Specialist API maintainers

Page 6: Oslo Program Overview, OpenStack Atlanta

From Scratch

• oslosphinx - documentation theme

• pbr - packaging

Page 7: Oslo Program Overview, OpenStack Atlanta

Adopted

• cliff - command line apps

• stevedore - dynamic code loading

• taskflow - job workflow

• pylockfile - inter-process synchronization

Page 8: Oslo Program Overview, OpenStack Atlanta
Page 9: Oslo Program Overview, OpenStack Atlanta
Page 10: Oslo Program Overview, OpenStack Atlanta
Page 11: Oslo Program Overview, OpenStack Atlanta
Page 12: Oslo Program Overview, OpenStack Atlanta

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 13: Oslo Program Overview, OpenStack Atlanta
Page 14: Oslo Program Overview, OpenStack Atlanta

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 15: Oslo Program Overview, OpenStack Atlanta

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

Page 16: Oslo Program Overview, OpenStack Atlanta

Graduated Libraries• oslo.config

• oslo.db

• oslo.i18n

• oslo.messaging

• oslo.middleware

• oslo.rootwrap

• oslo.serialization

• oslotest

• oslo.utils

Page 17: Oslo Program Overview, OpenStack Atlanta

Primarily for!OpenStack Use

Useful to!Other Projects

Runtime oslo.config taskflow

Non-Runtime oslotest pbr

Naming Considerations

Page 18: Oslo Program Overview, OpenStack Atlanta

Beyond OpenStack

• Upstream work: Bug fixes & Requirements

• Outside contributors

• Adoptions

Page 19: Oslo Program Overview, OpenStack Atlanta

Oslo & Python 3

• Python 2.7 is receiving bug fixes, but no new features

• Targeting Python 3.4

• Bottom-up approach

Page 20: Oslo Program Overview, OpenStack Atlanta

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

Plans for Kilo

Page 21: Oslo Program Overview, OpenStack Atlanta

Questions?