41
#ContinuousUpdating @RobertReiz

Api Days Berlin - Continuous Updating

Embed Size (px)

DESCRIPTION

This is the Continuous Updating talk from the API Days in Berlin.

Citation preview

Page 1: Api Days Berlin - Continuous Updating

#ContinuousUpdating !

@RobertReiz

Page 2: Api Days Berlin - Continuous Updating

100 libraries per project in avg.

Page 3: Api Days Berlin - Continuous Updating

How do you keep track of your LIBRARIES?

Page 4: Api Days Berlin - Continuous Updating

How many DEPENDENCIES do you have in your project?

Page 5: Api Days Berlin - Continuous Updating

Which LICENSES are your dependencies

using?

Page 6: Api Days Berlin - Continuous Updating

You don’t know ?

Page 7: Api Days Berlin - Continuous Updating

Requirements

Analysis

Design

Coding

Testing

Accepting

15 years ago we used to work with the WATERFALL MODEL

Page 8: Api Days Berlin - Continuous Updating

But today we are AGILE

Page 9: Api Days Berlin - Continuous Updating

Everything the Waterfall Model used to execute in one year ...

!

... we nowadays execute in 2 weeks!

Page 10: Api Days Berlin - Continuous Updating

The way we develop software today totally changed!

Page 11: Api Days Berlin - Continuous Updating

Being AGILE got us

CONTINUOUS Testing

CONTINUOUS Refactoring

CONTINUOUS Integration

CONTINUOUS Delivery

Page 12: Api Days Berlin - Continuous Updating

But what about CONTINUOUS Updating

Page 13: Api Days Berlin - Continuous Updating

Why should I care about Continuous Updating?

Page 14: Api Days Berlin - Continuous Updating

Core committers don’t release new versions just for fun!

Page 15: Api Days Berlin - Continuous Updating

• Bug Fixes

• Security Fixes

• Speed & Memory optimization

• New Features

They always have good reasons

Page 16: Api Days Berlin - Continuous Updating

If you can't fly then run, if you can't run then walk, if you can't walk then crawl, but whatever you do you have to keep moving forward. Martin Luther King Jr.

Page 17: Api Days Berlin - Continuous Updating

How do you ensure that new versions don’t break the system?

Page 18: Api Days Berlin - Continuous Updating

Semantic Versioning Migration Paths

Continuous Testing

Page 19: Api Days Berlin - Continuous Updating

http://semver.org/

Page 20: Api Days Berlin - Continuous Updating

1.MAJOR version when you make incompatible API changes

2.MINOR version when you add functionality in a backwards-compatible manner

3.PATCH version when you make backwards-compatible bug fixes.

MAJOR.MINOR.PATCH

Page 21: Api Days Berlin - Continuous Updating

Always follow the MIGRATION PATH

Page 22: Api Days Berlin - Continuous Updating

Many small steps are better than one big step

!

You can do SMALL MIGRATIONS on the fly. !

BIG MIGRATIONS are risky and expensive. !

If you miss versions, you miss migration paths, too. And that leads to TROUBLE!

Page 23: Api Days Berlin - Continuous Updating

1 2 3 4migrate migrate migrate

big migration … expensive!

Don’t miss migration paths!

Page 24: Api Days Berlin - Continuous Updating

Always run your TESTS against new versions

Page 25: Api Days Berlin - Continuous Updating

Another reason for being current

Page 26: Api Days Berlin - Continuous Updating

Do you really believe those young talents

wanna work with COBOL?

Or other OLD SHIT?

Page 27: Api Days Berlin - Continuous Updating

Tracking versions is a pain!

Page 28: Api Days Berlin - Continuous Updating

SOFTWARE LIBRARIES are NOT like iPhone

Apps!

Page 29: Api Days Berlin - Continuous Updating

100 libraries per project in avg.

After 2 weeks the first libraries are OUT-DATED!

Page 30: Api Days Berlin - Continuous Updating

Developers are missing critical BUG FIXES and important UPDATES!

Page 31: Api Days Berlin - Continuous Updating

Manually checking for updates is no fun!

!

It cost TIME & MONEY! !

NOBODY WANTS TO DO IT!

Page 32: Api Days Berlin - Continuous Updating

So, how do you wanna solve this PROBLEM

Page 33: Api Days Berlin - Continuous Updating

You have to AUTOMATE

Page 34: Api Days Berlin - Continuous Updating

You need a TOOL for that!

Page 35: Api Days Berlin - Continuous Updating

!

registry.npmjs.org !

http://search.maven.org/#api !

https://developer.github.com/v3/ !

gradle.artifactoryonline.com/gradle/libs/ !

http://guides.rubygems.org/rubygems-org-api/

APIs for Software Libraries

Page 36: Api Days Berlin - Continuous Updating

GemNotifier Gemnasium VersionEyeLanguages Ruby Ruby, Node.JS,

Python 22 Languages

GitHub no yes yesBitbucket no no yesFile upload no no yes

URL parsing no no yesChangelogs no yes in progress

Security no yes in progressLicenses no no yes

API no no yes

Page 37: Api Days Berlin - Continuous Updating

www.VersionEye.com

Keeps an eye on more than 335K open source libraries! Supports 22 Languages and 10 Package Managers!

Page 38: Api Days Berlin - Continuous Updating

https://www.versioneye.com/api

API

Page 39: Api Days Berlin - Continuous Updating

https://www.versioneye.com/statistics

Page 40: Api Days Berlin - Continuous Updating

40VERSIONEYE ENTERPRISE

M2

VersionEye Enterprise

VMVersionEye.com

CI

Intranet

E-Maildata sync

LDAP

Page 41: Api Days Berlin - Continuous Updating

@RobertReiz #ContinuousUpdating

Questions?