Top Banner
Continuous Updating
56

Continuous Updating with VersionEye at code.talks 2014

Nov 27, 2014

Download

Software

Robert Reiz

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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Continuous Updating with VersionEye at code.talks 2014

Continuous Updating

Page 2: Continuous Updating with VersionEye at code.talks 2014

Who I am?

• Robert Reiz

• Software Dev since 1998

• I started VersionEye

Page 3: Continuous Updating with VersionEye at code.talks 2014

What I do?

• I write crawlers

• I integrate Package Managers

• I integrate SCMs

Page 4: Continuous Updating with VersionEye at code.talks 2014

VersionEye

• 445K Open Source Projects

• 10 Package Managers

• 3 SCMs

Dependency Management

Page 5: Continuous Updating with VersionEye at code.talks 2014

https://www.versioneye.com/statistics

Why

Page 6: Continuous Updating with VersionEye at code.talks 2014

Why

Page 7: Continuous Updating with VersionEye at code.talks 2014

Why I want to stay up-to-date?

Page 8: Continuous Updating with VersionEye at code.talks 2014

100 libraries per project in avg.

Page 9: Continuous Updating with VersionEye at code.talks 2014

How do you keep track of your Dependencies?

Page 10: Continuous Updating with VersionEye at code.talks 2014

Which Licenses are your dependencies

using?

Page 11: Continuous Updating with VersionEye at code.talks 2014

Are your dependencies still alive?

Page 12: Continuous Updating with VersionEye at code.talks 2014

You don’t know ?

Page 13: Continuous Updating with VersionEye at code.talks 2014

Every dependency is a risk factor.

Page 14: Continuous Updating with VersionEye at code.talks 2014

Requirements

Analysis

Design

Coding

Testing

Accepting

15 years ago we used to work with the WATERFALL MODEL

Page 15: Continuous Updating with VersionEye at code.talks 2014

But today we are AGILE

Page 16: Continuous Updating with VersionEye at code.talks 2014

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

!

... we nowadays execute in 2 weeks!

Page 17: Continuous Updating with VersionEye at code.talks 2014

The way we develop software today totally changed!

Page 18: Continuous Updating with VersionEye at code.talks 2014

Being AGILE got us

CONTINUOUS Testing

CONTINUOUS Refactoring

CONTINUOUS Integration

CONTINUOUS Delivery

CONTINUOUS Deployment

Page 19: Continuous Updating with VersionEye at code.talks 2014

But what about Continuous Updating?

Page 20: Continuous Updating with VersionEye at code.talks 2014

Why should I care about Continuous Updating?

Page 21: Continuous Updating with VersionEye at code.talks 2014

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

Page 22: Continuous Updating with VersionEye at code.talks 2014

• Bug Fixes

• Security Fixes

• Speed & Memory optimization

• New Features

They always have good reasons

Page 23: Continuous Updating with VersionEye at code.talks 2014

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 24: Continuous Updating with VersionEye at code.talks 2014

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

Page 25: Continuous Updating with VersionEye at code.talks 2014

Semantic Versioning Migration Paths

Continuous Testing

Page 26: Continuous Updating with VersionEye at code.talks 2014

http://semver.org/

Page 27: Continuous Updating with VersionEye at code.talks 2014

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 28: Continuous Updating with VersionEye at code.talks 2014

Always follow the MIGRATION PATH

Page 29: Continuous Updating with VersionEye at code.talks 2014

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 30: Continuous Updating with VersionEye at code.talks 2014

1 2 3 4migrate migrate migrate

big migration … expensive!

Don’t miss migration paths!

Page 31: Continuous Updating with VersionEye at code.talks 2014

Always run your TESTS against new versions

Page 32: Continuous Updating with VersionEye at code.talks 2014

2.245.022 New Releases

Page 33: Continuous Updating with VersionEye at code.talks 2014

6%#

94%#

New$Releases$

Major# Minor/Patch#

Page 34: Continuous Updating with VersionEye at code.talks 2014

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

without doubt.

Page 35: Continuous Updating with VersionEye at code.talks 2014

Another reason for being current

Page 36: Continuous Updating with VersionEye at code.talks 2014

Do you really believe those young talents

wanna work with COBOL?

Or other OLD SHIT?

Page 37: Continuous Updating with VersionEye at code.talks 2014

Tracking versions is a pain!

Page 38: Continuous Updating with VersionEye at code.talks 2014

SOFTWARE LIBRARIES are NOT like iPhone

Apps!

Page 39: Continuous Updating with VersionEye at code.talks 2014

100 libraries per project in avg.

After 2 weeks the first libraries are OUT-DATED!

Page 40: Continuous Updating with VersionEye at code.talks 2014

Developers are missing critical BUG FIXES and important UPDATES!

Page 41: Continuous Updating with VersionEye at code.talks 2014

Manually checking for updates is no fun!

!

It cost TIME & MONEY! !

NOBODY WANTS TO DO IT!

Page 42: Continuous Updating with VersionEye at code.talks 2014

So, how do you wanna solve this PROBLEM

Page 43: Continuous Updating with VersionEye at code.talks 2014

You have to AUTOMATE

Page 44: Continuous Updating with VersionEye at code.talks 2014

You need a TOOL for that!

Page 45: Continuous Updating with VersionEye at code.talks 2014

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 46: Continuous Updating with VersionEye at code.talks 2014

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.

Page 47: Continuous Updating with VersionEye at code.talks 2014

Are your dependencies still alive?

Page 48: Continuous Updating with VersionEye at code.talks 2014

KPIs

Page 49: Continuous Updating with VersionEye at code.talks 2014

Heat-map for dead / alive

Dependencies

Page 50: Continuous Updating with VersionEye at code.talks 2014

Tags / Labels

Page 51: Continuous Updating with VersionEye at code.talks 2014

Which Licenses are your dependencies

using?

Page 52: Continuous Updating with VersionEye at code.talks 2014

License Whitelist

Page 53: Continuous Updating with VersionEye at code.talks 2014

DEMO

Page 54: Continuous Updating with VersionEye at code.talks 2014

https://www.versioneye.com/api

Page 55: Continuous Updating with VersionEye at code.talks 2014

M2

VersionEye Enterprise

VMVersionEye.com

CI

Intranet

E-Maildata sync

SCM

VersionEye Enterprise

Updates via Docker Containers

Page 56: Continuous Updating with VersionEye at code.talks 2014

@RobertReiz #ContinuousUpdating

Questions?