Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Die Frage, wie man DevOps bei sich selbst implementiert, besteht schon seit Jahren, aber es gibt nicht allzu viele gute Materialien dazu. Manchmal wird man Opfer von Werbung durch weniger kluge Berater, die nur ihre Zeit verkaufen wollen, egal wie. Manchmal handelt es sich um vage und Ă€ußerst allgemeine Aussagen darĂŒber, wie die Schiffe von Megakonzernen durch das Universum segeln. Die Frage ist: Was haben wir davon? Sehr geehrter Autor, könnten Sie Ihre Ideen bitte klar in einer Liste formulieren?

Das liegt daran, dass es nicht viel praktische Erfahrung und VerstĂ€ndnis fĂŒr die Ergebnisse der transformativen KulturverĂ€nderungen gibt. VerĂ€nderungen in der Unternehmenskultur sind langfristige Prozesse, deren Ergebnisse nicht in einer Woche oder einem Monat sichtbar werden. Wir benötigen jemanden mit genug Erfahrung, der gesehen hat, wie Unternehmen ĂŒber viele Jahre hinweg gegrĂŒndet und wieder zerstört wurden.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

John Willis ist einer der VĂ€ter von DevOps. John kann auf jahrzehntelange Erfahrung mit einer Vielzahl von Unternehmen zurĂŒckblicken. In letzter Zeit hat John spezifische Muster festgestellt, die in der Zusammenarbeit mit jedem einzelnen Unternehmen auftreten. Mit diesen Archetypen leitet John Unternehmen auf den wahren Weg der DevOps-Transformation. Mehr ĂŒber diese Archetypen finden Sie in der Übersetzung seines Vortrags von der DevOops 2018 Konferenz.

Video abspielen

Über den Redner:

Über 35 Jahre Erfahrung im IT-Management, MitbegrĂŒnder des VorgĂ€ngers von OpenCloud bei Canonical, beteiligte sich an 10 Startups, von denen zwei an Dell und Docker verkauft wurden. Derzeit ist er Vice President of DevOps and Digital Practices bei SJ Technologies.

Nun folgt die ErzÀhlung aus der Perspektive von John.

Mein Name ist John Willis, und man kann mich am einfachsten auf Twitter erreichen, @botchagalupe. Den gleichen Nickname benutze ich bei Gmail und GitHub. Außerdem ĂŒber diesen Link können Sie Videomitschnitte meiner VortrĂ€ge und die entsprechenden PrĂ€sentationen dazu finden.

Ich habe viele Meetings mit CIOs verschiedener großer Unternehmen. Sie beschweren sich sehr oft, dass sie nicht verstehen, was DevOps ist, und alle, die es ihnen erklĂ€ren möchten, sprechen ĂŒber etwas ganz anderes. Eine weitere hĂ€ufige Beschwerde ist, dass DevOps nicht funktioniert, obwohl die Direktoren scheinbar alles tun, was ihnen erklĂ€rt wurde. Es handelt sich um große Unternehmen, die seit ĂŒber einhundert Jahren bestehen. Nach GesprĂ€chen mit ihnen kam ich zu dem Schluss, dass fĂŒr viele Probleme nicht die Hochtechnologien, sondern relativ niedrigtechnologische Lösungen am besten geeignet sind. Wochenlang habe ich einfach mit Menschen aus verschiedenen Abteilungen kommuniziert. Das, was Sie auf dem allerersten Bild im Post sehen — mein letztes Projekt, der Raum sah nach drei Tagen Arbeit so aus.

Was ist DevOps?

TatsĂ€chlich, wenn man 10 verschiedene Personen fragt, werden sie 10 verschiedene Antworten geben. Aber das Interessante ist: Alle zehn Antworten werden richtig sein. Es gibt hier keine falsche Antwort. Ich beschĂ€ftige mich schon seit etwa 10 Jahren intensiv mit DevOps, war der erste Amerikaner beim ersten DevOpsDay. Ich will nicht sagen, dass ich klĂŒger bin als all jene, die sich mit DevOps beschĂ€ftigen, aber es ist kaum jemand da, der so viel MĂŒhe und Kraft investiert hat. Ich denke, DevOps entsteht, wenn menschliches Kapital und Technologie aufeinandertreffen. Oft vergessen wir die menschliche Dimension, obwohl wir viel ĂŒber verschiedene Kulturen sprechen.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Heute haben wir viele Daten, fĂŒnf Jahre akademische Forschung, und die ÜberprĂŒfung der Theorien ist im industriellen Maßstab etabliert. Diese Studien zeigen uns Folgendes: Wenn man in der Unternehmenskultur bestimmte Verhaltensmuster kombiniert, kann man eine 2000-fache Beschleunigung erreichen. Diese Beschleunigung entspricht einer Ă€hnlichen Verbesserung in der StabilitĂ€t. Dies ist eine quantitative Messung des Vorteils, den DevOps jedem Unternehmen bieten kann. Vor ein paar Jahren erzĂ€hlte ich einem CEO eines Fortune 5000-Unternehmens von DevOps. Als ich mich auf die PrĂ€sentation vorbereitete, war ich sehr nervös, weil ich in 5 Minuten meine jahrelange Erfahrung prĂ€sentieren musste.

Am Ende gab ich folgende Definition von DevOps: Es handelt sich um ein Set von Praktiken und Mustern, die es ermöglichen, menschliches Kapital in hoches Organisational kapital zu verwandeln. Ein Beispiel dafĂŒr ist, wie Toyota in den letzten 50 oder 60 Jahren arbeitet.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

(Diese und weitere Diagramme sind nicht als Referenzmaterial gedacht, sondern zur Veranschaulichung. Ihr Inhalt wird fĂŒr jedes neue Unternehmen unterschiedlich sein. Dennoch kann das Bild separat betrachtet und vergrĂ¶ĂŸert werden ĂŒber diesen Link.)

Eine der erfolgreichsten Praktiken ist Value Stream Mapping. Dazu sind mehrere gute BĂŒcher geschrieben worden, das bekannteste von Karen Martin. Doch im letzten Jahr bin ich zu dem Schluss gekommen, dass selbst dieser Ansatz zu technologisch ist. Er hat zweifellos viele Vorteile, die ich oft genutzt habe. Aber wenn der GeschĂ€ftsfĂŒhrer fragt, warum sein Unternehmen nicht auf neue Gleise wechseln kann, ist es noch zu frĂŒh, ĂŒber Value Stream Mapping zu sprechen. Es gibt viele viel grundlegendere Fragen, auf die man zuvor Antworten finden muss.

Ich denke, dass der Fehler vieler meiner Kollegen darin besteht, dass sie dem Unternehmen einfach eine Anleitung mit fĂŒnf Punkten geben und dann nach sechs Monaten zurĂŒckkommen, um zu sehen, was passiert ist. Selbst ein gutes Diagramm wie Value Stream Mapping hat, sagen wir, blinde Flecken. Nach Hunderten von Interviews mit Direktoren verschiedener Unternehmen habe ich ein bestimmtes Muster entwickelt, das es ermöglicht, das Problem in seine Komponenten zu zerlegen, und jetzt werden wir jede dieser Komponenten der Reihe nach besprechen. Bevor ich irgendwelche technologischen Lösungen anwende, benutze ich dieses Muster, und am Ende hĂ€ngen alle WĂ€nde voller Diagramme. KĂŒrzlich habe ich mit einem Investmentfonds gearbeitet, und am Ende hatte ich 100-150 solcher Diagramme.

Eine schlechte Kultur isst gute AnsĂ€tze zum FrĂŒhstĂŒck.

Die Hauptbotschaft ist folgende: Lean, Agile, SAFE und DevOps helfen nicht, wenn die Kultur der Organisation schlecht ist. Es ist so, als wĂŒrde man in die Tiefe ohne TauchausrĂŒstung eintauchen oder ohne Röntgenaufnahme operieren. Anders ausgedrĂŒckt, um Peter Drucker und W. Edwards Deming umzuformulieren: Eine schlechte Unternehmenskultur wird jedes gute System verschlingen und dabei nicht einmal schlucken.

Um dieses Hauptproblem zu lösen, mĂŒssen folgende Schritte unternommen werden:

  1. Aller Arbeit Sichtbarkeit verleihen: wir mĂŒssen die gesamte Arbeit sichtbar machen. Nicht im Sinne, dass sie unbedingt auf einem Bildschirm angezeigt werden muss, sondern in dem Sinne, dass sie beobachtbar sein sollte.
  2. Arbeitsmanagementsysteme konsolidieren: Es ist notwendig, die Managementsysteme zu konsolidieren. Bei dem Problem des „tribalen“ Wissens und des institutionellen Wissens sind in 9 von 10 FĂ€llen die EngpĂ€sse die Menschen. In dem Buch „Phoenix Project“ lag das Problem bei genau einer einzigen Person, Brent, der dafĂŒr sorgte, dass das Projekt drei Jahre im Verzug war. Und auf solche „Brents“ stoße ich ĂŒberall. Um diese EngpĂ€sse zu lösen, verwende ich die folgenden zwei Punkte aus unserer Liste.
  3. Theorie der EinschrÀnkungen Methodologie: Theorie der EinschrÀnkungen.
  4. Zusammenarbeits-Hacks: Hacks zur Zusammenarbeit.
  5. Toyota Kata (Coaching Kata): ĂŒber Toyota Kata werde ich nicht viel sagen. Wenn es dich interessiert, gibt es auf meinem GitHub PrĂ€sentationen zu fast jedem dieser Themen.
  6. Marktorientierte Organisation: marktorientierte Organisation.
  7. Shift-left-PrĂŒfer: PrĂŒfungen in frĂŒhen Phasen des Zyklus.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Ich beginne meine Arbeit mit der Organisation ganz einfach: Ich gehe ins Unternehmen und spreche mit den Mitarbeitern. Wie wir sehen, sind keine Hochtechnologien erforderlich. Alles, was benötigt wird, ist etwas, um darauf zu schreiben. Ich versammle mehrere Teams in einem Raum und analysiere, was sie mir sagen, aus der Perspektive meiner 7 Archetypen. Dann gebe ich ihnen einen Marker und bitte sie, alles, was sie bis jetzt laut gesagt haben, schriftlich an die Tafel zu bringen. Normalerweise gibt es bei solchen Treffen eine Person, die alles aufschreibt, und im besten Fall kann sie 10 % der Diskussion festhalten. Bei meiner Methode gelingt es, diesen Wert auf etwa 40 % zu steigern.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

(Diese Illustration kann unter dem Link)

Mein Ansatz basiert auf der Arbeit von William Schneider (William Schneider, The Reengineering Alternative). Der Ansatz beruht auf der Idee, dass jede Organisation in vier Quadranten zerlegt werden kann. Dieses Schema ist in der Regel das Ergebnis meiner Arbeit mit den hunderten anderen Diagrammen, die bei der Analyse der Organisation entstehen. Nehmen wir an, wir haben eine Organisation mit hohem Kontrollniveau, aber gleichzeitig mit niedriger Kompetenz. Das ist eine Ă€ußerst unerwĂŒnschte Situation: Wenn alle in einer Reihe gehen, aber niemand weiß, was zu tun ist.

Eine deutlich bessere Variante mit hohem Maß an Kontrolle und Kompetenz. Wenn ein Unternehmen profitabel ist, benötigt es möglicherweise DevOps nicht. Am interessantesten ist die Zusammenarbeit mit einem Unternehmen, das einen hohen Kontrollgrad, niedrige Kompetenz und Kooperation aufweist, aber gleichzeitig eine hohe Kultur (cultivation) pflegt. Das bedeutet, dass es im Unternehmen viele Leute gibt, die gerne dort arbeiten und die Fluktuation gering ist.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

(Diese Illustration kann unter dem Link)

Ich denke, dass Methoden mit strengen Vorgaben letztendlich der Wahrheit im Wege stehen. Insbesondere im Value Stream Mapping gibt es viele Regeln, wie Informationen strukturiert werden mĂŒssen. In den frĂŒhen Phasen der Arbeit, von denen ich spreche, sind diese Regeln niemandem von Nutzen. Wenn eine Person mit einem Marker in der Hand die tatsĂ€chliche Situation im Unternehmen an die Tafel beschreibt, ist das der beste Weg, um zu verstehen, wie der Stand der Dinge ist. Solche Informationen erreichen die Direktoren nicht. In diesem Moment wĂ€re es dumm, die Person zu unterbrechen und zu sagen, dass sie einen Pfeil falsch gezeichnet hat. In dieser Phase ist es besser, einfache Regeln zu verwenden, zum Beispiel: Eine mehrstufige Abstraktion kann einfach erstellt werden, indem man verschiedene Marker in unterschiedlichen Farben verwendet.

Ich wiederhole, keine Hochtechnologie. Mit einem schwarzen Marker wird die objektive RealitĂ€t dargestellt, wie alles funktioniert. Mit einem roten Marker kennzeichnen die Menschen, was ihnen an der bestehenden Situation nicht gefĂ€llt. Wichtig ist, dass sie es schreiben und nicht ich. Wenn ich nach dem Meeting zu dem IT-Direktor gehe, biete ich keine Liste mit 10 Dingen an, die verbessert werden mĂŒssen. Ich versuche, Verbindungen zwischen dem, was die Menschen im Unternehmen sagen, und bestehenden bewĂ€hrten Mustern zu finden. Schließlich werden mit einem blauen Marker mögliche Lösungen fĂŒr das Problem vorgeschlagen.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

(Diese Illustration kann unter dem Link)

Ein Beispiel fĂŒr diesen Ansatz ist oben dargestellt. Zu Beginn dieses Jahres arbeitete ich mit einer Bank. Die Mitarbeiter aus der Sicherheitsabteilung waren ĂŒberzeugt, dass sie nicht zu den PrĂŒfungen der Anforderungen und des Designs (design and requirement reviews) kommen dĂŒrften.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

(Diese Illustration kann unter dem Link)

Dann sprachen wir mit Mitarbeitern aus anderen Abteilungen und fanden heraus, dass vor etwa 8 Jahren die Softwareentwickler die Sicherheitsmitarbeiter ausgeschlossen hatten, weil diese die Arbeit verlangsamt hatten. Und dann verwandelte sich dies in ein Verbot, das als gegeben hingenommen wurde. Obwohl es tatsÀchlich kein Verbot gab.

Unser Treffen nahm einen Ă€ußerst verworrenen Verlauf: Über etwa drei Stunden hinweg konnten fĂŒnf verschiedene Teams mir nicht erklĂ€ren, was zwischen dem Code und dem Build geschieht. Und das sollte eigentlich die einfachste Sache sein. Die meisten DevOps-Berater gehen davon aus, dass dies bereits jedem bekannt ist.

Dann bemerkte die Person, die fĂŒr die IT-Governance zustĂ€ndig war und die vier Stunden lang geschwiegen hatte, plötzlich, als wir sein Thema erreichten und beschĂ€ftigte uns noch lĂ€ngere Zeit. Am Ende fragte ich ihn, was er von dem Treffen hĂ€lt, und ich werde seine Antwort nie vergessen. Er sagte: „FrĂŒher dachte ich, es gĂ€be in unserer Bank nur zwei Softwarebereitstellungsmethoden, aber jetzt weiß ich, dass es insgesamt fĂŒnf sind, von denen ich drei noch nicht einmal geahnt hatte.“

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

(Diese Illustration kann unter dem Link)

Das letzte Treffen in dieser Bank war mit dem Team, das sich mit Software fĂŒr Investitionen beschĂ€ftigte. Dabei stellte sich heraus, dass es besser ist, Diagramme mit einem Marker auf Papier zu zeichnen als auf einer Tafel und sogar besser als auf einem Smartboard.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Die Fotos, die Sie sehen, zeigen, wie der Konferenzraum des Hotels am vierten Tag unseres Treffens aussah. Und diese Diagramme haben wir verwendet, um Muster, also Archetypen, zu suchen.

Also stelle ich Fragen den Mitarbeitern, sie notieren die Antworten mit Markern in drei Farben (schwarz, rot und blau). Ihre Antworten analysiere ich auf Archetypen. Lassen Sie uns nun alle Archetypen der Reihe nach besprechen.

1. Make All Work Visible: Die Arbeit sichtbar machen

In den meisten Unternehmen, mit denen ich arbeite, gibt es einen sehr hohen Anteil an nicht dokumentierter Arbeit. Zum Beispiel, wenn ein Mitarbeiter einen anderen einfach um etwas bittet. In großen Organisationen kann das 60 % ungeplante Arbeit ausmachen. Und bis zu 40 % der Arbeit sind ĂŒberhaupt nicht dokumentiert. Wenn es Boeing wĂ€re, wĂŒrde ich niemals wieder in eines ihrer Flugzeuge steigen. Wenn nur die HĂ€lfte der Arbeit dokumentiert wird, ist unklar, ob diese Arbeit richtig ausgefĂŒhrt wird oder nicht. Alle anderen Methoden sind somit nutzlos — es macht keinen Sinn, irgendetwas zu automatisieren, da die bekannten 50 % gerade der am besten organisierten und prĂ€zisesten Teil der Arbeit sein könnten, deren Automatisierung keine großen Ergebnisse liefert, wĂ€hrend das Schlimmste in der unsichtbaren HĂ€lfte verborgen ist. Ohne Dokumentation ist es unmöglich, alle möglichen Hacks und verdeckte Arbeiten zu finden, oder EngpĂ€sse wie die „Brent’s“, von denen ich bereits gesprochen habe. Es gibt ein hervorragendes Buch von Dominica DeGrandis. „Making Work Visible“. Es analysiert fĂŒnf verschiedene „Zeitdiebe“ (thieves of time):

  • Zu viel Arbeit im Prozess (WIP)
  • Unbekannte AbhĂ€ngigkeiten
  • Ungeplante Arbeit
  • Konfligierende PrioritĂ€ten
  • VernachlĂ€ssigte Arbeit

Das ist eine sehr wertvolle Analyse, und das Buch ist bemerkenswert, aber all diese RatschlĂ€ge sind nutzlos, wenn nur 50 % der Daten sichtbar sind. Die Methoden, die von Dominica vorgeschlagen werden, können nur angewendet werden, wenn eine Genauigkeit von ĂŒber 90 % erreicht ist. Ich spreche von Situationen, in denen der Chef dem Mitarbeiter eine 15-minĂŒtige Aufgabe gibt, die aber drei Tage in Anspruch nimmt; der Chef weiß jedoch tatsĂ€chlich nicht, dass dieser Mitarbeiter auch von vier oder fĂŒnf anderen Personen abhĂ€ngt.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Das Phoenix-Projekt ist eine bemerkenswerte Geschichte ĂŒber ein Projekt, das drei Jahre zu spĂ€t kommt. Einer der Charaktere droht deshalb mit der Entlassung, und er trifft auf einen anderen Charakter, der als eine Art Sokrates dargestellt wird. Dieser hilft ihm zu verstehen, was genau schiefgelaufen ist. Es stellt sich heraus, dass es in der Firma einen Systemadministrator namens Brent gibt, und das gesamte Arbeiten lĂ€uft mehr oder weniger ĂŒber ihn. Bei einem der Meetings wird ein Mitarbeiter gefragt: Warum dauert jede halbstĂŒndige Aufgabe eine Woche? Die Antwort ist eine stark vereinfachte Darstellung der Warteschlangentheorie und des Little-Theorems, und dabei wird deutlich, dass bei 90% Auslastung jede Stunde Arbeit 9 Stunden in Anspruch nimmt. Jede Aufgabe muss an sieben andere Personen gesendet werden, sodass diese Stunde zu 63 Stunden wird, 7 mal 9. Ich sage das, weil man, um das Little-Theorem oder eine andere komplexe Warteschlangentheorie anzuwenden, wenigstens Daten haben muss.

Deshalb meine ich, wenn ich von Sichtbarkeit spreche, nicht, dass alles auf dem Bildschirm sein muss, sondern dass man zumindest Daten haben sollte. Wenn sie vorhanden sind, zeigt sich oft, dass es ein sehr großes Volumen an unvorhergesehener Arbeit gibt, die aus unerfindlichen GrĂŒnden an Brent geleitet wird, obwohl es dafĂŒr keinen Bedarf gibt. Und Brent ist ein großartiger Kerl, er wird niemals „Nein“ sagen, aber er erzĂ€hlt niemandem, wie er seine Arbeit macht.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Wenn die Arbeit sichtbar ist, können die Daten ordentlich klassifiziert werden (genau das macht Dominika auf dem Foto), man kann die Abstraktion der fĂŒnf Zeitverschwendung und Automatisierung anwenden.

2. Konsolidierung von Arbeitsmanagementsystemen: Aufgabenverwaltung

Die Archetypen, von denen ich spreche, stellen eine Art Pyramide dar. Wenn der erste richtig ausgefĂŒhrt wird, ist der zweite eine Art Aufbaustufe. Viele davon funktionieren nicht fĂŒr Startups; man sollte sie im Hinterkopf behalten, wenn es um große Unternehmen geht, die auf der Fortune 5000-Liste stehen. In dem letzten Unternehmen, in dem ich gearbeitet habe, gab es 10 Fehlerverfolgungssysteme (Ticketing-System). In einem Team gab es Remedy, ein anderes hat ein eigenes System geschrieben, das dritte Team nutzte Jira, und jemand kam ganz ohne E-Mail aus. Das gleiche Problem tritt auf, wenn es im Unternehmen 30 verschiedene Pipelines gibt, aber ich habe nicht die Zeit, all diese FĂ€lle zu besprechen.

Ich diskutiere mit den Leuten, wie genau Tickets erstellt werden, was danach mit ihnen passiert und wie sie umgangen werden. Das Interessanteste ist, dass die Leute in unseren Treffen ziemlich ehrlich sprechen. Ich habe gefragt, wie viele Leute "minor / no impact" fĂŒr Tickets angeben, die tatsĂ€chlich als "major impact" klassifiziert werden sollten. Es stellte sich heraus, dass das fast alle machen. Ich mache keine Anschuldigungen und versuche nach KrĂ€ften, die IdentitĂ€t der Menschen zu schĂŒtzen. Wenn mir jemand aufrichtig etwas gesteht, gebe ich die Person nicht preis. Aber wenn praktisch alle das System umschiffen, bedeutet das, dass die gesamte Sicherheit im Grunde nur eine Fassade ist. Daher können aus den Daten dieses Systems keine Schlussfolgerungen gezogen werden.

Um das Problem mit Ticketing zu lösen, ist es notwendig, ein Hauptsystem auszuwĂ€hlen. Wenn Sie Jira verwenden, lassen Sie es nur bei Jira. Wenn es eine Alternative gibt, dann sollte es nur diese sein. Die Idee ist, dass Tickets als einen weiteren Schritt im Entwicklungsprozess betrachtet werden mĂŒssen. Jede Handlung sollte ein Ticket haben, das durch den Entwicklungsworkflow gehen muss. Die Tickets werden an das Team gesendet, das sie auf dem Storyboard prĂ€sentiert und dann Verantwortung dafĂŒr trĂ€gt.

Das betrifft alle Abteilungen, einschließlich Infrastruktur und Operations. In diesem Fall kann eine plausibelere Darstellung der Situation erstellt werden. Wenn dieser Prozess eingerichtet ist, ist es plötzlich möglich, leicht zu bestimmen, wer fĂŒr jede Anwendung verantwortlich ist. Denn nun erhalten wir nicht 50%, sondern 98% neuer Dienstleistungen. Wenn dieser grundlegende Prozess funktioniert, verbessert sich die Genauigkeit im gesamten System.

Pipeline der Services

Das betrifft wieder nur große Unternehmen. Wenn Sie ein neues Unternehmen in einem neuen Bereich sind, krempeln Sie die Ärmel hoch und arbeiten Sie mit Ihrem Travis CI oder CircleCI. Was die Fortune 5000 Unternehmen angeht, ist ein Fall, der mir bekannt ist, der mit der Bank, in der ich gearbeitet habe. Google kam zu ihnen und zeigte ihnen Diagramme mit alten IBM-Systemen. Die Leute von Google fragten verstĂ€ndnislos – wo ist der Quellcode dazu? Und es gibt keinen Quellcode, nicht einmal ein GUI. Das ist die RealitĂ€t, mit der große Organisationen umgehen mĂŒssen: 40-jĂ€hrige Bankaufzeichnungen auf einem alten Mainframe. Einer meiner Kunden verwendet Kubernetes-Container mit Circuit Breaker-Mustern, plus Chaos Monkey, alles fĂŒr die KeyBank-Anwendung. Aber diese Container verbinden sich letztlich mit einer COBOL-Anwendung.

Die Leute von Google waren sich sicher, dass sie alle Probleme meines Kunden lösen wĂŒrden, und dann begannen sie Fragen zu stellen: Was ist ein IBM datapipe? Die Antwort lautet: Das ist ein Connector. Woran ist er angeschlossen? An das Sperry-System. Und was ist das? Und so weiter. Auf den ersten Blick scheint es, als könnte es hier kein DevOps geben. Aber tatsĂ€chlich ist es möglich. Es gibt Liefersysteme, die es ermöglichen, den Arbeitsablauf an die Teams zu ĂŒbergeben, die fĂŒr die Lieferung zustĂ€ndig sind.

3. Theory of Constraints: Theorie der EinschrÀnkungen

Kommen wir zum dritten Archetyp: institutionelles / ‚stammestĂŒmliches‘ Wissen. In der Regel gibt es in jeder Organisation ein paar Personen, die alles wissen und das Sagen haben. Das sind die, die am lĂ€ngsten in der Organisation sind und alle AbkĂŒrzungen kennen.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Wenn dies in einem Diagramm festgestellt wird, umrahme ich solche Personen gezielt mit einem Marker: Es stellt sich heraus, dass ein gewisser Lou bei allen Meetings anwesend ist. Und fĂŒr mich ist klar: Das ist der lokale Brent. Wenn der IT-Direktor zwischen mir im T-Shirt und Turnschuhen und einem AnzugtrĂ€ger von IBM wĂ€hlt, wĂ€hlt man mich, weil ich dem Direktor Dinge erzĂ€hlen kann, die der andere Typ ihm nicht erzĂ€hlen wird und die fĂŒr den Direktor unangenehm sein könnten. Ich sage ihnen, dass es in ihrem Unternehmen einen Engpass gibt, es gibt jemanden namens Fred und jemanden namens Lou. Dieser Engpass muss gelöst werden, ihr Wissen muss auf die eine oder andere Weise von ihnen erlangt werden.

Um solche Probleme zu lösen, könnte ich beispielsweise vorschlagen, Slack zu verwenden. Ein kluger Direktor wĂŒrde fragen – warum? In solchen FĂ€llen antworten DevOps-Berater normalerweise: Weil es alle so machen. Wenn der Direktor wirklich klug ist, wird er sagen: Na und? Und damit endet der Dialog. Und ich antworte darauf: Weil es im Unternehmen vier EngpĂ€sse gibt: Fred, Lou, Suzy und Jane. Um ihr Wissen zu institutionalieren, muss man zuerst Slack einfĂŒhren. Alle eure Wikis sind völliger Unsinn, weil niemand von ihrer Existenz weiß. Wenn das Ingenieurteam an der externen und internen Entwicklung arbeitet, sollten alle wissen, dass sie sich an das externe Entwicklungsteam oder das Infrastrukturteam mit Fragen wenden können. Genau dann hat Lou oder Fred wahrscheinlich Zeit, um sich in das Wiki einzulesen. Und dann könnte jemand in Slack fragen, warum Schritt 5 nicht funktioniert. Und dann werden Lou oder Fred die Anleitung im Wiki korrigieren. Wenn man diesen Prozess einrichtet, wird vieles von selbst an seinen Platz fallen.

Das ist meine Hauptbotschaft: Um hochtechnologische Lösungen zu empfehlen, muss man zuerst die Grundlagen dafĂŒr in Ordnung bringen, und das kann man nur mit den gerade beschriebenen niederen technologischen Lösungen erreichen. Wenn man hingegen mit Hochtechnologie beginnt und nicht erklĂ€rt, wozu sie nötig ist, endet das in der Regel nicht gut. Einer unserer Kunden verwendet Azure ML, eine sehr kostengĂŒnstige und einfache Lösung. Bei etwa 30% der Fragen hat bereits die selbstlernende Maschine geantwortet. Und diese Lösung wurde von Betreibern entwickelt, die sich nicht mit Data Science, Statistik oder Mathematik befasst haben. Das ist bemerkenswert. Die Kosten fĂŒr eine solche Lösung sind minimal.

4. Collaboration Hacks: Kooperations-Hacks

Das vierte Archetyp besteht darin, gegen Isolation zu kĂ€mpfen. Die meisten Menschen wissen das bereits: Isolation erzeugt Feindschaft. Wenn jede Abteilung auf ihrer eigenen Etage ist und die Menschen nur im Aufzug miteinander in Kontakt treten, entsteht sehr leicht Feindschaft zwischen ihnen. Wenn die Menschen jedoch im selben Raum sind, verschwindet sie sofort. Wenn jemand eine gemeinsame Beschwerde Ă€ußert, zum Beispiel, dass eine bestimmte Schnittstelle nie funktioniert, ist es nicht schwer, diese Beschwerde zu dekonstrukieren. Den Programmierern, die die Schnittstelle geschrieben haben, genĂŒgt es, konkrete Fragen zu stellen, und bald wird klar, dass der Benutzer beispielsweise einfach das Werkzeug falsch genutzt hat.

Es gibt viele Möglichkeiten, Isolation zu ĂŒberwinden. Einmal wurde ich gebeten, eine Bank in Australien zu beraten, ich lehnte ab, weil ich zwei Kinder und eine Frau habe. Alles, was ich ihnen anbieten konnte, war eine Empfehlung fĂŒr grafisches GeschichtenerzĂ€hlen. Das ist etwas, das nachweislich funktioniert. Ein weiterer interessanter Ansatz sind Lean-Coffee-Meetings. In einer großen Organisation ist das eine hervorragende Möglichkeit, Wissen zu verbreiten. DarĂŒber hinaus können interne DevOps-Tage, Hackathons usw. veranstaltet werden.

5. Coaching Kata

Wie ich bereits zu Beginn gewarnt habe, werde ich heute nicht darĂŒber sprechen. Wenn es dich interessiert, kannst du dir ansehen einige meiner PrĂ€sentationen.

Es gibt auch einen guten Vortrag zu diesem Thema von Mike Rother:

Video abspielen

6. Marktgerechte Organisation

Hier gibt es verschiedene Probleme. Zum Beispiel Menschen vom Typ „I“, Leute vom Typ „T“ und Leute vom Typ „E“. Menschen vom Typ „I“ sind diejenigen, die sich nur mit einer Sache beschĂ€ftigen. Sie existieren normalerweise genau in Organisationen mit isolierten Abteilungen. „T“ ist, wenn eine Person in einer Sache gut ist, aber auch in einigen anderen Dingen erfolgreich ist. „E“ oder sogar „Kamm“ ist, wenn eine Person viele FĂ€higkeiten hat.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Hier gilt das Conway-Gesetz (Conway’s law), das in möglichst vereinfachter Form so formuliert werden kann: Wenn drei Teams an einem Compiler arbeiten, wird letztlich ein Compiler aus drei Teilen entstehen. Daher wird, wenn innerhalb einer Organisation ein hohes Maß an Isolation besteht, selbst Kubernetes, Circuit Breaker, API-Erweiterbarkeit und andere angesagte Dinge in dieser Organisation so strukturiert sein wie die Organisation selbst. Strikt nach Conway und zum Trotz, ihr jungen Geeks.

Das Problem wurde schon oft beschrieben. Es gibt beispielsweise die organisatorischen Archetypen, die von Fernando Fernandez definiert wurden. Die problematische Architektur, von der ich gerade gesprochen habe, die Isolation — ist eine funktional orientierte Architektur. Der zweite Typ — der schlechteste, die Matrixarchitektur, ist ein Durcheinander aus den beiden anderen. Der dritte — das, was in den meisten Start-ups beobachtet wird, und auch große Unternehmen versuchen, diesem Typ zu entsprechen. Es handelt sich um eine marktorientierte Organisation. Hier erfolgt die Optimierung, um die schnellstmögliche Reaktion auf Kundenanfragen zu erzielen. Manchmal wird dies als flache Organisation bezeichnet.

Diese Struktur wird von vielen unterschiedlich beschrieben, mir gefĂ€llt die Formulierung build/run teams, bei Amazon nennt man es two pizza teams. In dieser Struktur gruppieren sich alle Personen des Typs „I“ um einen Service, und allmĂ€hlich nĂ€hern sie sich dem Typ „T“, und wenn das Management richtig funktioniert, können sie sogar „E“ werden. Das erste Gegenargument hier ist — in einer solchen Struktur gibt es ĂŒberflĂŒssige Elemente. Warum benötigt man einen Tester in jeder Abteilung, wenn man eine spezielle Testabteilung haben kann? Darauf antworte ich: ÜberflĂŒssige Kosten sind in diesem Fall der Preis dafĂŒr, dass die gesamte Organisation in Zukunft zu einem Typ „E“ wird. In einer solchen Struktur lernt der Tester allmĂ€hlich etwas ĂŒber Netzwerke, Architektur, Design usw. Am Ende weiß jeder Teilnehmer der Organisation genau, was in der Organisation passiert. Wenn Sie erfahren möchten, wie dieses Schema in der Industrie funktioniert, lesen Sie Mike Rother, Toyota Kata.

7. Shift-left auditors: Audit in frĂŒhen Phasen des Zyklus. Einhaltung von Sicherheitsregeln sichtbar machen.

Es ist, wenn Ihre Aktionen sozusagen die GeruchsprĂŒfung nicht bestehen. Die Menschen, die fĂŒr Sie arbeiten, sind nicht dumm. Wenn sie, wie im obigen Beispiel, ĂŒberall nur minor/no impact angeben, und das drei Jahre lang so geht und niemand etwas merkt, dann wissen alle genau, dass das System nicht funktioniert. Oder ein weiteres Beispiel – der Change Advisory Board, wo jeden Mittwoch Berichte eingereicht werden mĂŒssen. Dort arbeitet eine Gruppe von Menschen (ĂŒbrigens nicht besonders gut bezahlt), die theoretisch wissen sollten, wie das System insgesamt funktioniert. Und in den letzten fĂŒnf Jahren haben Sie wahrscheinlich bemerkt, dass unsere Systeme unglaublich komplex sind. FĂŒnf oder sechs Personen sollten ĂŒber eine Änderung entscheiden, die sie nicht eingebracht haben und ĂŒber die sie nichts wissen.

NatĂŒrlich funktioniert dieser Ansatz nicht. Ich muss mich von solchen Dingen trennen, weil diese Menschen das System nicht schĂŒtzen. Entscheidungen mĂŒssen vom Team selbst getroffen werden, denn das Team sollte dafĂŒr verantwortlich sein. Andernfalls entsteht eine paradoxe Situation, in der ein Manager, der in seinem Leben noch nie Code geschrieben hat, dem Programmierer sagt, wie lange das Schreiben des Codes dauern sollte. In einem Unternehmen, in dem ich gearbeitet habe, gab es sieben verschiedene Gremien, die jede Änderung prĂŒften, darunter das Architektur- und das Produktgremium usw. Es gab sogar eine vorgeschriebene Wartezeit, obwohl mir ein Mitarbeiter sagte, dass in zehn Jahren niemand in dieser vorgeschriebenen Zeit jemals eine Änderung abgelehnt hat, die von dieser Person eingebracht wurde.

Auditoren sollten zu Ihnen eingeladen werden, anstatt sie loszuwerden. ErklĂ€ren Sie ihnen, dass Sie immutable Binary-Container schreiben, die, sobald sie alle Tests bestanden haben, fĂŒr immer unverĂ€nderlich bleiben. Sagen Sie ihnen, dass Sie Pipeline as Code haben, und erlĂ€utern Sie, was das bedeutet. Zeigen Sie ihnen das folgende Schema: ein immutable Binary, das nur lesezugĂ€nglich ist in einem Container, der alle SicherheitsanfĂ€lligkeitstests besteht; und außerdem wird nicht nur dieser nicht berĂŒhrt — auch das System, das die Pipeline erstellt, wird nicht angefasst, da es ebenfalls dynamisch erstellt wird. Ich habe Kunden, wie Capital One, die mit Vault etwas wie eine Blockchain erstellen. Dem Auditor mĂŒssen keine „Rezepte“ aus Chef gezeigt werden, es genĂŒgt, die Blockchain zu zeigen, aus der klar hervorgeht, was mit dem Jira-Ticket in der Produktion geschehen ist und wer dafĂŒr verantwortlich ist.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Laut Bericht, gegrĂŒndet 2018, gab es 2017 87 Milliarden Download-Anfragen fĂŒr OSS.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Die Verluste durch SicherheitsanfĂ€lligkeiten sind ĂŒberaus hoch. Und die Zahlen, die Sie jetzt oben sehen, enthalten nicht einmal die alternativen Kosten. Kurz gesagt, was DevSecOps ist. Ich möchte gleich klarstellen, dass mich Diskussionen darĂŒber, wie gelungen dieser Begriff ist, nicht interessieren. Es geht darum, dass, da DevOps sehr erfolgreich waren, wir versuchen sollten, die Sicherheit in diese Pipeline einzufĂŒgen.

Ein Beispiel fĂŒr eine solche Abfolge:
Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Dies ist keine Empfehlung bestimmter Produkte, obwohl ich alle mag. Ich habe sie als Beispiel angefĂŒhrt, um zu zeigen, dass DevOps, das ursprĂŒnglich auf der Paradigmatik der industriellen Organisation basiert, es ermöglicht, jeden Schritt bei der Produktentwicklung zu automatisieren.

Sieben Archetypen der Transformation nach den Prinzipien von DevOps.

Und es gibt keinen Grund, warum wir denselben Ansatz nicht auf die Sicherheit anwenden könnten.

Fazit

Abschließend möchte ich einige RatschlĂ€ge fĂŒr DevSecOps geben. Es ist notwendig, Auditoren in den Prozess der Erstellung Ihrer Systeme einzubeziehen und Zeit in ihre Schulung zu investieren. Man muss mit Auditoren zusammenarbeiten. Außerdem sollte man einen gnadenlosen Kampf gegen falsche Alarme fĂŒhren. Selbst mit dem teuersten Schwachstellenscanner kann man sehr schĂ€dliche Gewohnheiten bei den Entwicklern erzeugen, wenn man nicht weiß, wie das VerhĂ€ltnis von Signal zu Rauschen ist. Entwickler werden mit Meldungen ĂŒberflutet und fangen an, diese einfach zu löschen. Wenn Sie von der Geschichte mit Equifax gehört haben, dann ist genau das passiert: Es wurde ein hochriskantes Signal ignoriert. Zudem sollten Schwachstellen so erklĂ€rt werden, dass klar ist, wie sie das GeschĂ€ft beeinflussen. Man könnte sagen, dass dies die gleiche Schwachstelle ist, wie in der Geschichte mit Equifax. Sicherheitsrelevante Schwachstellen sollten genauso behandelt werden wie andere Softwareprobleme, das heißt, sie mĂŒssen in den allgemeinen DevOps-Prozess integriert werden. Man sollte ĂŒber Jira, Kanban usw. mit ihnen arbeiten. Entwickler sollten nicht denken, dass sich jemand anderes darum kĂŒmmert – im Gegenteil, alle sollten sich damit befassen. Schließlich sollte man die Ressourcen darauf verwenden, Menschen zu schulen.

NĂŒtzliche Links

Hier sind einige VortrĂ€ge von der DevOops-Konferenz, die fĂŒr Sie nĂŒtzlich sein könnten:

Schauen Sie in Programm DevOops 2020 Moskau – es gibt auch dort viele interessante Informationen.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster