ignite devops fast moving software

20
The API Contract is Dead LONG LIVE THE API CONTRACT Clint Byrum Canonical – Ubuntu Server Team

Upload: spamaps

Post on 21-Nov-2014

1.017 views

Category:

Documents


2 download

DESCRIPTION

The API Contract is Dead, Long live the API Contract. Examining how to reduce the amount of work required to keep up with all this fast moving software ... in 20 slides, 15 seconds each.

TRANSCRIPT

Page 1: Ignite Devops Fast Moving Software

The API Contract is DeadLONG LIVE THE API CONTRACT

Clint ByrumCanonical – Ubuntu Server Team

Page 2: Ignite Devops Fast Moving Software

Things move fast today!

● API's Used to be Stable

● Dependencies were few and loosely coupled

http://www.flickr.com/photos/mwichary/3582507128/

Page 3: Ignite Devops Fast Moving Software

How do we keep our sanity?

● Test Coverage – Continuous Integration● Automatic Dependency Resolution

http://xkcd.com/754/

Page 4: Ignite Devops Fast Moving Software

Reality CHECK

● Test coverage is not automatic – Unless it is part of your culture

● The consumers of a library tend to over-trust the upstream's tests to ensure things are working.

● On the fly dependency resolution often makes for an unrepeatable build (YO, Maven, this means you!)

Page 5: Ignite Devops Fast Moving Software

GOOD things about FAST change

● Newer versions often add stability AND performance

● Progress – Without constraints, developers are able to add features and refactor at will

● v*.0 is bad, but v0.* is t3h awesome!

http://www.flickr.com/photos/metallirat/217984892/

Page 6: Ignite Devops Fast Moving Software

BAD things about FAST change

● Stuff breaks● Repeated Integration

Cost● Encourages bad

behavior like embedding specific versions

● Kills kittens

Page 7: Ignite Devops Fast Moving Software

Case Study: libmemcached

● 0.31 released almost 1 year ago● 0.40 current release● Somewhere between 0.31 and 0.40, the API

changed enough to break everything, requiring porting of most apps.

● 1 year of development added features like SASL support and 'memcapable' test tool

Page 8: Ignite Devops Fast Moving Software

MongoDB

● v1.2.3 released Feb 23 2010● Ubuntu 10.04 Lucid ships with v1.2.2 Apr 29

2010.● v1.4.3 released May 24 2010

Page 9: Ignite Devops Fast Moving Software

Cassandra

● Very new, gaining traction quickly● So far, releasing about 4 times per year● Huge number of dependencies, all ship

embedded at specific working versions● Old releases are deprecated very quickly

Page 10: Ignite Devops Fast Moving Software

So why do we bother packaging?

● Stability? NO● Predictibility, “Stasis”● Uniformity – Easier to support just one version

Page 11: Ignite Devops Fast Moving Software

What can authors do?

● Think twice about breaking an API that has been published for a while

● Consider that just because it is v0.x doesn't mean only power users will end up using it.

● Use bold and <blink> for the “THIS IS GOING TO CHANGE” link on the download page..

Page 12: Ignite Devops Fast Moving Software

What can distributors do?

● Cry● Refuse to move forward at the pace of these

projects● Refuse to support old library versions● Try to support all versions● All of the above get done in Ubuntu regularly

Page 13: Ignite Devops Fast Moving Software

How about a better idea?

Something sysadmins already do...

Page 14: Ignite Devops Fast Moving Software

NO not more hand waving!

http://www.flickr.com/photos/igalko/4690480668/

Page 15: Ignite Devops Fast Moving Software

Leverage YOUR Core Competencies

● Python people don't want distro python● Perl people don't want distro perl● And MySQL in the distro is ok, but I need

percona!● Most sysadmins just install with the OS, then

build everything important from source and drop it in /usr/local

Page 16: Ignite Devops Fast Moving Software

Rather than build..

● PPA or “Personal Package Archive”● Launchpad service to easily build packages

then make the built packages available in a special apt repository.

● Easy to add on ubuntu: 'add-apt-repository ppa:user_or_team/ppaname

Page 17: Ignite Devops Fast Moving Software

PPA details

● Once a PPA is established, Server Team would upload packages into it for an upstream

● Allows upgrades to be made available to Ubuntu users very quickly.

● Users who utilize it can upgrade instantly with 'apt-get upgrade'

Page 18: Ignite Devops Fast Moving Software

Author Participation

● Upstream can be granted upload access very easily.

● Our first “blessed” team with a PPA: https://lanchpad.net/~cassandra-ubuntu

Page 19: Ignite Devops Fast Moving Software

Derivitives Made Easy?

● Kubuntu is Ubuntu w/ KDE as the default● How about “Youbuntu” which has your

packages added on top of the distro.● What if we made this easy?

Page 20: Ignite Devops Fast Moving Software

Got any good ideas about this?

I want to hear what you think!

#ubuntu-server on [email protected]://fewbar.com