ALM und dezentrales SCM – Die Quadratur des Kreises?

Post on 06-Jul-2015

116 views 1 download

description

Vortrag von der ALMConf 2010: Git ist in der Open Source Welt in aller Munde und sehr viele Projekte steigen dort von CVS und Subversion auf Git um, weil das dezentrale Konzept von Git ihnen Vorteile verschafft. Kann man diese Vorteile auch im Unternehmen nutzen? Wir stellen die Unterschiede zwischen Git und klassischen SCM-Lösung vor und diskutieren, wie Git sich in ALM-Landschaften integriert.

Transcript of ALM und dezentrales SCM – Die Quadratur des Kreises?

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 1

ALM und dezentrales SCM – Die Quadratur des Kreises?

ALMconf 2010

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 2

Viele Open-Source Projekte wechseln zur Zeit ihre Versionsverwaltung. Warum?

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 3

Der Industrie-Standard: Zentrale Versionskontrolle

SVN

CVS

perforce VSS

TFS

ClearCase

MKS Integrity

Harvest

Dimensions

Team Concert

PVCS

RCS SCCS

Depot

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 4

Der Industrie-Standard: Zentrale Versionskontrolle

Repository

Zentral

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 4

Der Industrie-Standard: Zentrale Versionskontrolle

commit

checkout

Repository

Working Copy

Zentral

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 4

Der Industrie-Standard: Zentrale Versionskontrolle

commit

update checkout

Repository

Working Copy

Working Copy

branch

Zentral

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 4

Der Industrie-Standard: Zentrale Versionskontrolle

commit

update checkout merge

Repository

Working Copy

Working Copy

Working Copy

branch commit

Zentral

Optimistisch? Pessimistisch?

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 5

Dezentrale Versionskontrolle

Die neumodische Variante

git

Bazaar

Darcs Mercurial (hg)

BitKeeper

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 6

Dezentrale Versionskontrolle (1) Ein Entwickler – ein Repository

Dezentral, 1:1

Repository

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 6

Dezentrale Versionskontrolle (1) Ein Entwickler – ein Repository

Dezentral, 1:1

clone

Repository A

Working Copy

Repository

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 6

Dezentrale Versionskontrolle (1) Ein Entwickler – ein Repository

Dezentral, 1:1

clone

commit

branch

merge Repository A

Working Copy

Repository

log

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 6

Dezentrale Versionskontrolle (1) Ein Entwickler – ein Repository

Dezentral, 1:1

clone

commit

branch

merge Repository A

Working Copy

Repository

push

log

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 7

Dezentrale Versionskontrolle (2) Mehrere Entwickler – ein gemeinsames Repository

Dezentral, 1:N

Repository A

Working Copy

Repository

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 7

Dezentrale Versionskontrolle (2) Mehrere Entwickler – ein gemeinsames Repository

Dezentral, 1:N

Repository A

Working Copy

Repository

Repository B

Working Copy

clone

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 7

Dezentrale Versionskontrolle (2) Mehrere Entwickler – ein gemeinsames Repository

Dezentral, 1:N

commit

branch

merge Repository A

Working Copy

Repository

Repository B

Working Copy

log

clone

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 7

Dezentrale Versionskontrolle (2) Mehrere Entwickler – ein gemeinsames Repository

Dezentral, 1:N

pull

commit

branch

merge Repository A

Working Copy

Repository

Repository B

Working Copy

push

log

clone

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 8

Dezentrale Versionskontrolle (3) Mehrere Entwickler – mehrere Repositories

Dezentral, M:N

Repository A

Working Copy

Repository

Repository B

Working Copy

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 8

Dezentrale Versionskontrolle (3) Mehrere Entwickler – mehrere Repositories

Dezentral, M:N

Repository A

Working Copy

Repository

Repository B

Working Copy

push

pull

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 8

Dezentrale Versionskontrolle (3) Mehrere Entwickler – mehrere Repositories

Dezentral, M:N

Repository A

Working Copy

Repository Repository

Repository B

Working Copy

init push

pull

push

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 8

Dezentrale Versionskontrolle (3) Mehrere Entwickler – mehrere Repositories

Dezentral, M:N

clone

Repository A

Working Copy

Repository Repository

Repository C Repository B

Working Copy

Working Copy

pull

init push

pull

push

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 8

Dezentrale Versionskontrolle (3) Mehrere Entwickler – mehrere Repositories

Dezentral, M:N

clone

commit

branch

merge Repository A

Working Copy

Repository Repository Repository

Repository C Repository B

Working Copy

Working Copy

push

log

pull

init push

pull

push

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 9

Dezentrale Versionskontrolle – Warum will ich das?

Fast alle Operationen sind lokal – Extrem schnell – Offline-Arbeiten – Feingranulare Commits

Jeder hat eine Kopie des Repositories – Backups – Komplette Historie (GUIDs vs. Counter)

Branching/Merging an der Tagesordnung – Branching ist schnell – Merging ist einfach

Kein zentrales Repository notwendig – Alle Repositories sind gleichberechtigt – Jeder kann von jedem „klonen“

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 9

Dezentrale Versionskontrolle – Warum will ich das?

Fast alle Operationen sind lokal – Extrem schnell – Offline-Arbeiten – Feingranulare Commits

Jeder hat eine Kopie des Repositories – Backups – Komplette Historie (GUIDs vs. Counter)

Branching/Merging an der Tagesordnung – Branching ist schnell – Merging ist einfach

Kein zentrales Repository notwendig – Alle Repositories sind gleichberechtigt – Jeder kann von jedem „klonen“

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 10

Das große Risiko: Unbeherrschbare Strukturen…

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 10

Das große Risiko: Unbeherrschbare Strukturen…

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

Repository

WorkingCopy

WorkingCopy

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 11

Organisation und technische Kontrolle

Wie organisieren sich Open Source Projekte?

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 12

Organisation von Repositories und Workflows (1)

Kleinere OS Projekte

Maintainer

Contributor

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 13

Organisation von Repositories und Workflows (1)

Integration Manager Workflow

Integration Repository

Entwickler

Integrator

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 13

Organisation von Repositories und Workflows (1)

Integration Manager Workflow

push push

Integration Repository

Entwickler

Integrator

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 13

Organisation von Repositories und Workflows (1)

Integration Manager Workflow

push push

pull

pull

Integration Repository

Entwickler

Integrator

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 13

Organisation von Repositories und Workflows (1)

Integration Manager Workflow

push

push push

pull

pull

Integration Repository

Entwickler

Integrator

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 13

Organisation von Repositories und Workflows (1)

Integration Manager Workflow

push

push push

pull

pull pull pull

Integration Repository

Entwickler

Integrator

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 14

Organisation von Repositories und Workflows (2)

Größere OS Projekte

Maintainer

Committer

Contributor

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 15

Organisation von Repositories und Workflows (2)

Integration Repository

Entwickler

Leutnant

Diktator

Diktator und Leutnant Workflow

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 15

Organisation von Repositories und Workflows (2)

Integration Repository

Entwickler

Leutnant

Diktator

Diktator und Leutnant Workflow

push push push push

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 15

Organisation von Repositories und Workflows (2)

Integration Repository

Entwickler

Leutnant

Diktator

Diktator und Leutnant Workflow

pull pull

push push push push

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 15

Organisation von Repositories und Workflows (2)

Integration Repository

Entwickler

Leutnant

Diktator

Diktator und Leutnant Workflow

pull pull

push push

push push push push

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 15

Organisation von Repositories und Workflows (2)

Integration Repository

Entwickler

Leutnant

Diktator

Diktator und Leutnant Workflow

pull pull

pull

push push

push push push push

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 15

Organisation von Repositories und Workflows (2)

Integration Repository

Entwickler

Leutnant

Diktator

Diktator und Leutnant Workflow

pull pull

pull

push

push push

push push push push

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 15

Organisation von Repositories und Workflows (2)

Integration Repository

Entwickler

Leutnant

Diktator

Diktator und Leutnant Workflow

pull pull

pull

push

pull pull pull

push push

pull

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 16

Dezentrales SCM im Unternehmen

Lohnt sich der Wechsel?

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 17

Die Organisationen von OS Projekten und Unternhemen sind strukturell ähnlich Rollen heißen anders, machen aber ähnliches

Integrator

Release Manager, Chef-Architekt

Entwickler

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 18

Repositories ersetzen Branches

Zentralisierte Verwaltung kann dezentral in anderen Kategorien gehalten werden

• Integration Branches Integration Repositories

• Team/Features Branches Team Repositories Feature Branches innerhalb der Repositories

• Release Branches Release Repositories

Die Nutzer sehen innerhalb ihrer Repositories nur die Branches, die für ihren Kontext relevant sind.

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 19

In großen Systemen werden zentrale Branchstrukturen schnell unübersichtlich

MSR1200

MUR1200S00

RTM1200S00U00

Gleichzeitigangelegt

Bran

ch

Bran

ch

StabilisierungRelease 12.0.0.0

Release 12.0.0.0

RI

RI

Bran

ch

Bran

ch

StabilisierungRelease 12.0.1.0

Release 12.0.1.0

RI

RI

MUR1200S01

RTM1200S01U00

Gleichzeitigangelegt

R/O R/O

Bran

ch

RTM1200S01U00P42

Kundenspezifischer Patch. Integration

nicht zwingend erforderlich!

Bran

ch

MAIN

FI RIRI

MSR1201

MUR1201S00

RTM1201S00U00

Gleichzeitigangelegt

Bran

ch

Bran

ch

StabilisierungRelease 12.1.0.0

Release 12.1.0.0

RI

RI

R/O

Bran

ch

RI

RTM1201S00U01

Bran

ch

StabilisierungRelease 12.1.0.1

Release 12.1.0.1

RI

R/O

RI

RI

CM

En

twic

klu

ng

Reife für R12.0 erreicht

Reife für R12.1 erreicht

Bran

ch

I1500

FI RI

Stabilisierung

FI RI

Stabilisierung

Bran

ch

I1500_TCOMM

RI

Stabilisierung

FI RI

Stabilisierung

FI

Bran

ch

I1501

FI RI

Stabilisierung

Bran

ch

I1501_TCOMMU01

Bran

ch

I1501_TCOMMU42

FI RI

Stabilisierung

FI RI

Stabilisierung

Bran

ch

I1501_TCOMMU42_WXYZ

RI

Stabilisierung

FI

BM

Baseless Merge:Möglich, aber nicht zu empfehlen!

Bran

ch

I1501_TCOMMD23

RI

Stabilisierung

FI

Next generation:Parallel-Entwicklung

zu Stabilisierungs-Phase

Entwicklung Patch-Release 12.0.1.0-42

R/O

Release 12.0.1.0-42

RI

RI

RI

FI FI

FI

IHSP_

FI RI

Stabilisierung

RTM1201HSP23

FertigstellungHSP Release 23

HSP Release 23

Reife für HSP Release 23 erreicht

Bran

ch

R/O

FI FI

Bran

ch

I1501_TCOMMU23

RTM1201S00U02

Bran

ch

StabilisierungRelease 12.1.0.2

Release 12.1.0.2

RI

R/O

RI

RI

FIFI

Jede Branchfärbung kann zu einer Kategorie von Repositories werden Schlankere Arbeitsmittel

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 20

Geografisch verteilte Entwicklung ist heute bei OS und der Industrie der Regelfall

Klassische Lösung:

• Proxies, um Latenzen beim Lesen zu reduzieren

• Schreibzugriffe in der Regel auf den zentralen Server

Dezentral: Entkoppelte Repositories

• Schneller lokaler Lese- und Schreibzugriff

• Expliziter Datenaustausch mit anderen Repositories als Prozesselemente der Zusammenarbeit

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 21

Skalierung: Am Linuxkernel arbeiten einige tausend Entwickler

Fakten aus dem Linux-Repository von Linus Torvalds (git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git)

Clone-Kommando:

• Überträgt 360MB, Dauer: ca. 6 Minuten

Working-Copy:

• 370MB, 34.285 Dateien, 2.083 Ordner

Lokales Repository (.git-Verzeichnis):

• 409 MB, 23 Dateien, 13 Ordner

• 211.535 Commits, 7.076 Committer (seit 16.04.2005)

• Kompletter(!) Short-Log über alle Commits: 10sec

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 22

Wann kann man Dezentrales SCM einsetzen?

Bestehende SCM-Organisationen müssen ihre Prozesse und Organisation anpassen.

Je zentralistischer und regulierter die bisherigen Organisation, um so größer ist der Anpassungsaufwand (Tool vs. Organisation).

Zentrales SCM Dezentrales SCM

Command & Control Management-Stil

Team-orientierter Management-Stil

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 23

Achtung: Conway’s Law

“Organisations which design systems are constrained to produce designs which are copies of the communication structures of these organisations.”

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 24

Dezentrales SCM und andere ALM Werkzeuge

Wie passt das zusammen?

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 25

Die Toolfrage – Das Runde muss in das Eckige… (1)

Unabhängig von der Versionsverwaltung

• Issue Tracking

• Requirements Management

• Test Management

Abhängig von der Versionsverwaltung

• Versionskontrolle

• (De-) Central Build

• Continuous Integration

• Release Management

Aber statt auf Branches jetzt auf den Repositories des DSCM

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 26

Die Toolfrage – Das Runde muss in das Eckige… (2)

Integration und Verknüpfung der Informationsquellen

• Wie hängen Issues, Checkins, Builds & Testläufe zusammen?

Prozess-spezifische Lösungen notwendig

• Eineindeutige Commit-IDs durch GUID (SHA1)

• Checkin-Kommentare und Commit-IDs werden über Repositories hinweg weitergereicht

Basis für kreative Lösungen ist vorhanden!

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 27

Zusammenfassung

In der Open-Source Szene tut sich viel Spannendes im Bereich dezentrales SCM durch git und andere.

Dezentrales SCM ist inzwischen soweit, dass man es professionell einsetzen kann.

Der Mehrwert ist:

• Die Entwickler können spürbar schneller arbeiten: Alle aufwändigen SCM-Operationen sind lokal

• Skalierung auch über segmentierte Netzwerkanbindung möglich (u.a. geogr. Verteilung)

• Flexible Topologien von streng hierarchisch bis massiv kollaborativ möglich

ALM und dezentrales SCM – Die Quadratur des Kreises?

© Zühlke 2010

28. Oktober 2010

Dr. Klaus Alfert Torben Knerr

Folie 28

Fazit

Wenn dezentrales SCM zu Ihrer Organisation passt, nutzen Sie es – nicht nur Ihre Entwickler werden es Ihnen danken!

Vielen Dank! Und lassen Sie uns hier weiter diskutieren:

Torben Knerr

torben.knerr@zuehlke.com

@tknerr_de

http://linkedin.com/in/tknerr

http://xing.to/tknerr

Dr. Klaus Alfert

klaus.alfert@zuehlke.com

@innovation_code

http://linkedin.com/in/KlausAlfert

http://xing.to/alfert