No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every...

62
No Bullshit Architekturarbeit neu gedacht STEFAN TOTH München 22. Oktober 2015 0

Transcript of No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every...

Page 1: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

No Bullshit Architekturarbeit neu gedacht STEFAN TOTH

München

22. Oktober 2015

0

Page 2: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

2 No Bullshit – Architekturarbeit neu gedacht embarc.de

Stefan Toth

[email protected]

xing.to/sto www.embarc.de www.swamuster.de

@st_toth

Page 3: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

3 No Bullshit – Architekturarbeit neu gedacht embarc.de

Abstract Klassische Architekturarbeit hat mit Modellen, Dokumenten und Richtlinien zu tun. Vielleicht werden auch Standards oder Metamodelle erarbeitet, Zielarchitekturen entworfen und größere Bewertungsworkshops geplant. Die Methoden dafür sind teilweise über 20 Jahre alt und gut verstanden. Szenenwechsel: Moderne Internet-Frimen bauen große, komplizierte Applikationen in verteilten Projekten mit dutzenden Mitarbeitern - und von klassischer Architekturarbeit ist wenig zu sehen. Die Architekturdisziplin verwischt mit der Umsetzung, verliert ihre herausgehobene Stellung. Haben Spotify, Automattic (WordPress), Netflix oder Facebook einfach andere Voraussetzungen? Haben sie bessere Entwickler? Brauchen Web-Applikationen weniger Architektur? In dieser Session wird mit einigen Vorurteilen und Mythen aufgeräumt und gezeigt, wie die Big Player des Internets Architektur gestalten und umsetzen. Dabei tauchen alt bekannte Architekturpraktiken in neuem Gewand auf, andere Praktiken werden neu gedacht oder auch verworfen. Konkrete Beispiele illustrieren den Wandel und zeigen Potenziale auf.

Page 4: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

4 No Bullshit – Architekturarbeit neu gedacht embarc.de

Architektur-Arbeit Architekturen entwerfen und weiterentwickeln

Über was ich heute spreche…

Page 5: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

5 No Bullshit – Architekturarbeit neu gedacht embarc.de

Klassiche Softwarearchitektur

…in 10 Minuten

Page 6: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

6 No Bullshit – Architekturarbeit neu gedacht embarc.de

Klassiche Softwarearchitektur

Modellierung und Sichten

Page 7: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

7 No Bullshit – Architekturarbeit neu gedacht embarc.de

Die UML

Page 8: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

8 No Bullshit – Architekturarbeit neu gedacht embarc.de

Page 9: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

9 No Bullshit – Architekturarbeit neu gedacht embarc.de

Zachman Framework

Page 10: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

10 No Bullshit – Architekturarbeit neu gedacht embarc.de

DoDAF Sichten

Page 11: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

11 No Bullshit – Architekturarbeit neu gedacht embarc.de

Page 12: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

12 No Bullshit – Architekturarbeit neu gedacht embarc.de

Klassiche Softwarearchitektur

Architektur als Phase

Page 13: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

13 No Bullshit – Architekturarbeit neu gedacht embarc.de

Page 14: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

14 No Bullshit – Architekturarbeit neu gedacht embarc.de

Page 15: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

15 No Bullshit – Architekturarbeit neu gedacht embarc.de

Page 16: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

16 No Bullshit – Architekturarbeit neu gedacht embarc.de

Klassiche Softwarearchitektur

Der Architekt

Page 17: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

17 No Bullshit – Architekturarbeit neu gedacht embarc.de

Der Architekt im Überblick

Page 18: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

18 No Bullshit – Architekturarbeit neu gedacht embarc.de

Klassiche Softwarearchitektur

Dokumente

Page 19: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

19 No Bullshit – Architekturarbeit neu gedacht embarc.de

Software Architecture Description

Page 20: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

20 No Bullshit – Architekturarbeit neu gedacht embarc.de

Webseite zum Template

Page 21: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

21 No Bullshit – Architekturarbeit neu gedacht embarc.de

Page 22: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

22 No Bullshit – Architekturarbeit neu gedacht embarc.de

1972 David Parnas “On the Criteria To Be Used in Decomposing Systems into Modules“

1996 Scenario-Based Analysis of Software Architecture

Klassische Softwarearchitektur

1970

1985

1990

1995

2000

2005

1987 Zachman Framework

1991 Rumbaugh et.al. „Object-Oriented Modeling and Design“

2000 IEEE 1471-2000

1995 TOGAF 1.0

1995 UML 0.8

1994 TAFIM - Technical Architecture Framework for Information Management

1995 IEEE Architecture Planning Group – „incorporating architectural thinking into IEEE standards“

1998 P. Kruchten Rational Unified Process

2000 ATAM

Page 23: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

23 No Bullshit – Architekturarbeit neu gedacht embarc.de

Und was machen…

Page 24: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

24 No Bullshit – Architekturarbeit neu gedacht embarc.de

Softwarearchitektur unwichtig?

Page 25: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

25 No Bullshit – Architekturarbeit neu gedacht embarc.de

Microservices bei Netflix (org.)

Keine klassische Management-Steuerung

Keine Beeinflussung durch andere Teams oder eine zentrale Instanz

•  Wenige technologische Vorgaben •  Release nach Belieben

“Freedom & Responsibility”

Teams vollumfänglich für ihre Services verantwortlich •  Entwicklung •  Release und Deployment •  Betrieb

Page 26: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

26 No Bullshit – Architekturarbeit neu gedacht embarc.de

Spotify engineering culture è https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/

Page 27: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

27 No Bullshit – Architekturarbeit neu gedacht embarc.de

Conway …

The technical architecture is hugely important for the way we are organized. The organizational structure must play in harmony with the technical architecture. Many companies can’t use our way of working because their architecture won’t allow it.

- Henrik Kniberg (about Spotify)

““

Page 28: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

28 No Bullshit – Architekturarbeit neu gedacht embarc.de

Autonome Systemteile

Schichten Vertikalen

Page 29: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

29 No Bullshit – Architekturarbeit neu gedacht embarc.de

Amazon, Netflix, Spotify, Gilt, ...

Softwarearchitektur ist diesen Firmen

sehr wichtig

Aber sie haben keine Modelle, Modellierungstools, große Dokumente, Metamodelle, Repositories, klassischen Architekten, ...

Page 30: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

30 No Bullshit – Architekturarbeit neu gedacht embarc.de

Mickey-Maus Systeme?

Page 31: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

31 No Bullshit – Architekturarbeit neu gedacht embarc.de

„Moderne“ Softwarearchitektur

Page 32: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

32 No Bullshit – Architekturarbeit neu gedacht embarc.de

„Moderne“ Softwarearchitektur

Architekturüberblick

Page 33: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

33 No Bullshit – Architekturarbeit neu gedacht embarc.de

Architekturüberblick 2.0

Eine gemeinsame Sicht auf:

§  Die wichtigsten Treiber des Architekturdesigns

§  Und die Kernkonzepte bzw. Ansätze der Architektur.

Dieser schlanke Architekturüberblick sollte allen Entwicklern und wichtigen Stakeholdern des Systems

kommuniziert

Page 34: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

34 No Bullshit – Architekturarbeit neu gedacht embarc.de

Artefakte einer Architekturvision

Page 35: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

35 No Bullshit – Architekturarbeit neu gedacht embarc.de

Inhalt #1 – Architektur-Stil

Big Ball of Mud

Layers

Verticals / Microservices

Pipes and Filters

Blackboard / Shared Repository

Event-Driven Architecture

Page 36: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

36 No Bullshit – Architekturarbeit neu gedacht embarc.de

Inhalt #2 – Architekturüberblick

http://tech.gilt.com/

Page 37: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

37 No Bullshit – Architekturarbeit neu gedacht embarc.de

“Freeform” Architekturüberblick

Page 38: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

38 No Bullshit – Architekturarbeit neu gedacht embarc.de

Inhalt #3 – Qualitätsziele / Treiber

“Amazon is customer obsessed! If only one customer complains, we take the feedback and improve the system”

“Netflix-Members are able to watch tv series and films – as much as they want, any time, everywhere, on every internet-connected device out there.”

“Available everywhere, Great user experience, More convenient than piracy, Fast, reliable, always available, Scalable for many, many users.”

Page 39: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

39 No Bullshit – Architekturarbeit neu gedacht embarc.de

Der Standard dazu…

Page 40: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

40 No Bullshit – Architekturarbeit neu gedacht embarc.de

„Moderne“ Softwarearchitektur

Gemeinsame Architekturarbeit > Architekt

Page 41: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

41 No Bullshit – Architekturarbeit neu gedacht embarc.de

Eigenschaften, Wissen, Aufgaben

Page 42: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

42 No Bullshit – Architekturarbeit neu gedacht embarc.de

Generell…

Man hat bessere Chancen eine Gruppe an Menschen zu finden die einer Architektenrolle gerecht werden können

Man ist schneller wenn mehrere Leute auf

Anforderungsänderungen oder technische Probleme reagieren können.

Man wird ein besseres System bauen, wenn die Entwickler annehmen, dass Architektur ihr Problem ist

: “Nobody takes care of a problem like the owner does”

Page 43: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

43 No Bullshit – Architekturarbeit neu gedacht embarc.de

Cross-funktional

Analyst (RE)

Architekt Designer

Entwickler Build Engineer

Ops

Problem Lösung

Page 44: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

44 No Bullshit – Architekturarbeit neu gedacht embarc.de

Keine Firma arbeitet völlig anarchisch

Kein Architekt

Architektur Agent

Architektur Owner

Klassischer Architekt

Page 45: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

45 No Bullshit – Architekturarbeit neu gedacht embarc.de

Beispiel von Gilt.com

Kein Architekturteam – Architektur ist eine “Zutat” in jedem Team

Jedes Quartal wird ein “Architecture Council” abgehalten:

§  Brainstorming von Lösungen zu Architekturproblemen

§  Best Practices aus allen Teams teilen

§  Redundante Aufwände identifizieren und minimieren

§  Standards für Teamübergreifende Kommunikation schaffen

§  Schwierige technische Probleme lösen (einfach und skalierbar)

§  Spezifische Technologien evaluieren - verwendete und neue!

Page 46: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

46 No Bullshit – Architekturarbeit neu gedacht embarc.de

Gilt.com – Architektur-Board

Hat die gleichen Ziele wie das council

Ist grundsätzlich der Ansatz eines Architektur Owners auf fünf Schultern verteilt

Vier Board-Mitglieder rotieren, einer ist ein gewählter, klassischer Architekt und Tie-braker

Rotierende Board-Mitglieder sind weiterhin in

Entwicklungsteams - als Hauptaufgabe (75%)

Page 47: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

47 No Bullshit – Architekturarbeit neu gedacht embarc.de

Spotify – Autonomie von Teams

Henrik Kniberg (Spotify Labs Blog)

Page 48: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

48 No Bullshit – Architekturarbeit neu gedacht embarc.de

„Moderne“ Softwarearchitektur

Prinzipien

Page 49: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

49 No Bullshit – Architekturarbeit neu gedacht embarc.de

Nicht Mit Fremden sprechen

Page 50: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

50 No Bullshit – Architekturarbeit neu gedacht embarc.de

Einige Beispiele...

§  Do not standardize on the internals of services. Standardize the „arcs“ of the network, not the internal nodes.

§  Self service infrastructure – All infrastructure that is needed should be available as a self service entity. That way, there is no need to wait for another team to get hardware, setup a storage cluster or do configuration changes.

§  Create a Separate Data Store for Each Microservice Do not use the same back-end data store across microservices. Choose the database that best suits the service. No share database structures!

Page 51: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

51 No Bullshit – Architekturarbeit neu gedacht embarc.de

„Moderne“ Softwarearchitektur

Dokumentation & Kommunikation

Page 52: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

52 No Bullshit – Architekturarbeit neu gedacht embarc.de

Tech-Blogs

Page 53: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

53 No Bullshit – Architekturarbeit neu gedacht embarc.de

1 2

3 4

Tech-Blogposts analysiert

Warum? Motivation, Problem, Zweck

Was? Terminologie, Hintergrund, Detail,

Wie? Beispiele, Anwendung, Tutorials

Wohin noch? Weitere Optionen, Verwandte Themen Pläne & Ausblick

Page 54: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

54 No Bullshit – Architekturarbeit neu gedacht embarc.de

Communities of Practice Gilt Councils

Netflix Engineering Meetups

Yelp Meetups (2014 approx. 70)

Google Talks

Page 55: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

55 No Bullshit – Architekturarbeit neu gedacht embarc.de

Communities bei Spotify

Henrik Kniberg (Scaling Agile @ Spotify)

Page 56: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

56 No Bullshit – Architekturarbeit neu gedacht embarc.de

Vorteile von Communities of Practice

Page 57: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

57 No Bullshit – Architekturarbeit neu gedacht embarc.de

Fazit & Ausblick

Page 58: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

58 No Bullshit – Architekturarbeit neu gedacht embarc.de

Architekturarbeit ist noch immer da

Aber sie wird mit anderen Medien betrieben und ist

mehr ein Entwickler-Skill als in den 90ern

Die Philosophie von Architekturarbeit bewegt sich von Architektur als

Vorgabe zu evolutionärer Architektur

Page 59: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

59 No Bullshit – Architekturarbeit neu gedacht embarc.de

Was wurde eigentlich aus...

§  Architektur Governance: Gibt es auf Makro-Ebene noch immer Stützt sich mehr auf Feedback aus der Produktionsumgebung und Communities

§  Architektur Dokumentation: Um einiges schlanker und fokussierter aber noch immer vorhanden: Blogs, Videos, Release Statements,… und: in hoher Qualität

§  Architektur Modelle: Hier gibt es große Verluste. Eher Skizzen und Freeform-Diagramme, weniger UML

§  Architektur Entscheidungen: Mehr Prinzipien, eher grobgranular, generell flexibler

Page 60: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

60 No Bullshit – Architekturarbeit neu gedacht embarc.de

Ein aktuelles Set an Praktiken

Page 61: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

61 No Bullshit – Architekturarbeit neu gedacht embarc.de

Page 62: No Bullshit - embarc...- Henrik Kniberg (about Spotify) ... want, any time, everywhere, on every internet-connected device out there.” “Available everywhere, Great user ... Henrik

Danke. Jegliche Fragen sind willkommen!

[email protected]

xing.to/sto

@st_toth

DOWNLOAD FOLIEN: http://www.embarc.de/blog/