continuous updating with versioneye at code.talks 2014

Post on 27-Nov-2014

447 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

These are the slides from the "Continuous Updating with VersionEye" talk at code.talks 2014 in Hamburg. Nowadays modern software development without open source is almost impossible. In average a modern software project has 100 open source components. How do you keep track of these open source dependencies? How do you know that they are still alive? How do you manage the licenses for these dependencies? These are all important questions which get answered in this talk.

TRANSCRIPT

Continuous Updating

Who I am?

• Robert Reiz

• Software Dev since 1998

• I started VersionEye

What I do?

• I write crawlers

• I integrate Package Managers

• I integrate SCMs

VersionEye

• 445K Open Source Projects

• 10 Package Managers

• 3 SCMs

Dependency Management

https://www.versioneye.com/statistics

Why

Why

Why I want to stay up-to-date?

100 libraries per project in avg.

How do you keep track of your Dependencies?

Which Licenses are your dependencies

using?

Are your dependencies still alive?

You don’t know ?

Every dependency is a risk factor.

Requirements

Analysis

Design

Coding

Testing

Accepting

15 years ago we used to work with the WATERFALL MODEL

But today we are AGILE

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

!

... we nowadays execute in 2 weeks!

The way we develop software today totally changed!

Being AGILE got us

CONTINUOUS Testing

CONTINUOUS Refactoring

CONTINUOUS Integration

CONTINUOUS Delivery

CONTINUOUS Deployment

But what about Continuous Updating?

Why should I care about Continuous Updating?

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

• Bug Fixes

• Security Fixes

• Speed & Memory optimization

• New Features

They always have good reasons

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.

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

Semantic Versioning Migration Paths

Continuous Testing

http://semver.org/

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

Always follow the MIGRATION PATH

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!

1 2 3 4migrate migrate migrate

big migration … expensive!

Don’t miss migration paths!

Always run your TESTS against new versions

2.245.022 New Releases

6%#

94%#

New$Releases$

Major# Minor/Patch#

94% of all new releases are harmless and you can update

without doubt.

Another reason for being current

Do you really believe those young talents

wanna work with COBOL?

Or other OLD SHIT?

Tracking versions is a pain!

SOFTWARE LIBRARIES are NOT like iPhone

Apps!

100 libraries per project in avg.

After 2 weeks the first libraries are OUT-DATED!

Developers are missing critical BUG FIXES and important UPDATES!

Manually checking for updates is no fun!

!

It cost TIME & MONEY! !

NOBODY WANTS TO DO IT!

So, how do you wanna solve this PROBLEM

You have to AUTOMATE

You need a TOOL for that!

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

www.VersionEye.comKeeps an eye on more than 445K open source libraries!

Supports 22 Languages and 10 Package Managers! Integrated with GitHub, Bitbucket, Stash.

Open REST JSON API.

Are your dependencies still alive?

KPIs

Heat-map for dead / alive

Dependencies

Tags / Labels

Which Licenses are your dependencies

using?

License Whitelist

DEMO

https://www.versioneye.com/api

M2

VersionEye Enterprise

VMVersionEye.com

CI

Intranet

E-Maildata sync

SCM

VersionEye Enterprise

Updates via Docker Containers

@RobertReiz #ContinuousUpdating

Questions?

top related