Oslo Program Overview, OpenStack Atlanta

Post on 20-Aug-2015

297 views 0 download

Transcript of Oslo Program Overview, OpenStack Atlanta

Taking the Long View: How the Oslo Program

Reduces Technical DebtDoug Hellmann

Atlanta OpenStack Meetup September, 2014

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.

Project Motivation

• Consistency for deployers

• Consistency for developers

• Identify and foster common patterns

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/

The Oslo Team

• Generalist code reviewers

• Specialist API maintainers

From Scratch

• oslosphinx - documentation theme

• pbr - packaging

Adopted

• cliff - command line apps

• stevedore - dynamic code loading

• taskflow - job workflow

• pylockfile - inter-process synchronization

Graduation Changes• Clean up configuration options

• Provide configuration-free API?

• Plug leaky APIs

• Expand/contract API to meet needs of consumers

• Name the library

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

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

Graduated Libraries• oslo.config

• oslo.db

• oslo.i18n

• oslo.messaging

• oslo.middleware

• oslo.rootwrap

• oslo.serialization

• oslotest

• oslo.utils

Primarily for!OpenStack Use

Useful to!Other Projects

Runtime oslo.config taskflow

Non-Runtime oslotest pbr

Naming Considerations

Beyond OpenStack

• Upstream work: Bug fixes & Requirements

• Outside contributors

• Adoptions

Oslo & Python 3

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

• Targeting Python 3.4

• Bottom-up approach

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

Questions?