Show notes
Wir sprachen mit Uwe Friedrichsen über IT-Geschichte, SW Architektur und mehrUwe Friedrichsen (00:00:00)Uwe Friedrichsen, CTO bei codecentric.deSeit über 30 Jahren in der IT Szene unterwegsHat Kinder, Studieren bereitsVor 33 Jahren erste kommerzielle Software verkauftHat Informatik studiertHat so ziemlich alles gemacht rund um Softwareentwicklung Von Anforderungserhebung über Architekturdesign und Entwicklung bis TestmanagementAktuell für thematische Entwicklung und Aufstellung von codecentric.de zuständigInteresse an skalierbare verteile SystemeTrendgeschichte der IT (00:06:00)Erste Züge von CORBA mitbekommenAnschließend JAVA Komponenten (EJB)SOA Welle mit SOAPWS* StandardsRESTafariansFunktionsorientierung vs RessourcenorientierungObjekte als Ressourcen?Ressourcen auf Funktionen aufsetzen?Designgrundlage: UseCase (00:14:00)Viele versuchen Ressourcenmodell auf Entitätsmodell aufzubauenSinnvollerer Ansatz: UseCase ModellRessource soll Ende-zu-Ende Dienstleistung anbietenSystem nach UseCases zuschneidenUseCases sinnvoll kapselnServices autonom gestaltenProblem etablierte Ansätze und Konzepte (00:21:20)CORBA, ECB, SOAFingen alle mit fluffiger, leichter Idee anNiedrige LernkurveDann ging Fragerei los (was ist mit Naming? wie ist das mit verteilten Transaktionen?, usw.)Einzelne Lösungen für immer mehr ProblemeAnsätze unter eigener Last zusammengebrochenREST ist REST gebliebenQualitativer unterschied zwischen Server und Mainframe (00:29:00)Mainframe Hat das Verfügbarkeitsproblem und das Verteilungsproblem für lange Zeit sehr gut gelöstWar von seiner Hardware so gestaltet, dass er extrem hoch verfügbar istHat hervorragendes Ressourcenmanagement (Ressourcenallokation)Für frühere Verhältnisse sehr vertikal skalierbarKeine Notwendigkeit für VerteiltheitMan konnte alles auf einer Maschine laufen lassenEJB Container auf SteroidenAuf einem 266er Pentium konnten simultan über 250 User bedient werden (Benchmark)Extreme Verfügbarkeit durch InfrastrukturProblemeSchwierigkeit für international agierende UnternehmenMonolitisches System für lokal verteilte NutzerGeschäftsmodelle haben sich geändertNeukunden steigen nicht mehr mit Mainframe einNeugeschäft dümpelt auf sehr niedrigem NiveauVertikale Skalierung ist irgendwann zu endePreise für CPU, Storage und Netzzeit sind irgendwann nicht mehr konkurrenzfähigFehlendes Know-How und Preis töten MainframesÄra ist einfach vorbeiAnekdote von Uwe Kunde mit Online Suchmaschine2 große Unix-MaschinenDarauf liegt sehr namenhafte SuchmaschineLizenzkosten waren sehr hoch (jährlich im 7-stelligen Bereich)(SLA) 300 Anfragen/s mit der Antwortzeit von 250ms"Das können wir billiger."3 normale "Kisten" von Dell (o.ä.) mit 2 Xenon, 12 Kerne (24 virtuell)ca. 5000€ pro Kiste20 Mio. Datensätze des Kunden Proof of Concept System: MongoDB, Solr, UILasttest wurde bei 3000 simultanen Clients wurde abgebrochen, weil das Testnetz nicht mehr Leistung hergegeben hatEs konnte nicht mehr Durchsatz erzeugt werdenNormale Kiste lief im "Idle"; es wurde nur eine von drei benötigtAb wann ist Data Big? (00:41:50)20 Mio. Datensätze ist Micky Mouse DataIBM Mitarbeiter erzählte das BigData bei 40MB anfängtBigData ist dann, wenn du wirklich viele Daten bekommst!BigData sind Datensätze im Milliardenbereich20 Mio. Datensätze kann man entspannt in relationaler Datenbank verwaltenBigData ist auch, wenn man Daten so schnell bekommt (Velocity-Thema), dass man nicht mehr in der Lage ist, diese zu speichern und dann zu bearbeiten, sondern im vorbeifliegen bearbeiten mussAngemessene Lösungen finden (00:44:40)Ziel ist es immer, eine angemessene Lösung zu findenKunde will Hadoop Cluster für 20 Mio. DatensätzeMit Hadoop hat man mehr StressDiese Menge an Daten kann man entspannt in transaktionaler Datenbank verwaltenWeniger komplexes ProgrammiermodellUnterschied ob man im Moment kein echtes BigData hat aber Thema lernen willODER Ob man in einem Produktionsszenario ist, Wartung, Betrieb, Weiterentwicklung etc. hat und BigData Technologien einsetzen willErgebnis ist dann oftmals: Betrieb wird aufwendiger,Überwachung wird aufwendiger, Rausfinden was schief geht, wird aufwendigerTooling ist schlechterLaufzeiten sind höher, Mehr Ressourcen werden benötigt, Weiterentwicklung ist lausiger--> Dann wurde keine gute Designentscheidung/Architekturentscheidung getroffenSpieltrieb (00:48:05)Jeder, der in die IT Branche kommt, weil er gerne programmiert, hat ausgeprägten SpieltriebProblem ist, dass Unternehmen diesen kreativen Menschen jedoch kein Ventil für diesen Spieltrieb gebenDiese Menschen wollen neue Dinge irgendwo ausprobierenDas nächste Projekt wird dann als Spielwiese missbrauchtEntscheider und Entscheidungen (00:49:40)Sehr viele IT Entscheider haben keine Ahnung was sie da entscheidenZwei Möglichkeiten: entweder was von der Materie verstehen oder man braucht einen Vertrauten, der etwas davon verstehtEs gibt zu viele Entscheider die ihre Themen nur auf Basis von Computerwoche verstehenComputerwoche ist Bildzeitung der ComputerbrancheArtikel sind Informationshäppchen, die nicht in die Tiefe gehenKeine Grundlage für Entscheidung, die sich auf Unternehmen auswirktEntscheider versuchen sich über diese Zeitung zu informierenLetztendlich Entscheidung auf Basis von Buzzword-Bingo durch Zeitung, Marketing, Sales- und ConsultantsBuzzword Standards (00:53:00)Buzzwords wie Agil, Microservices, ... lassen InterpretationsspielraumProblem der VerwässerungMultimilliardenmarkt IT Branche ist von Entscheidern durchsetzt, die keine Ahnung habenBzw. keine Ahnung auf der Ebene, als dass sie sagen können: "Du erzählst mir gerade hier jede Menge Bullshit."Anforderung: Auf einer Flughöhe von 3000m sollte ein Entscheider ein Verständnis dafür haben, was da unten passiertGrundverständnis aufbauen, was das tut, warum das tut, usw...Microservices aus dem Gewürzregal (00:56:00)Kunde macht neues System und das soll auch mit MicroservicesWill eigtl. klassischen Deploymentzyklus haben (1 Mal im Monat)Skalierung reicht wenn man innerhalb von 1-3 Tagen skalieren kannGegenüberstellung von monolitischem System und MicroservicesIn 10 Minuten erzählt, was das ist und wo die Unterschiede sind, Vor- und Nachteile aufgezeigtSpannungsfeld zwischen den beiden EntwürfenDann gefragt, was er haben will--> für Monolit entschiedenMonolitische Microservices zur Laufzeit (00:59:13)Abhängigkeiten von Services zur Build-Zeit auflösenServices, im Java Umfeld, als Jar File im Repo reinnehmenEinbinden von Bibliotheken in Anwendung, die an sich unabhängig sindZur Laufzeit von aussen wie ein Monolit, der zur Build-Zeit aus einzelnen Services zusammengesetzt wirdNachteil: man hat immer Full DeploymentWenn System logisch diese Komponenten rausgeformt hat, dann sollte der Schritt, dass man zur Laufzeit das System in unabhängige Komponten bringt, nicht mehr so weit hin seinServices, die man hat, als externe Schnittstelle zur Verfügung stellenZur Laufzeit zugreifbar machenProblem: man hat verteiltes SystemBislang hatte man nur einen großen BrockenPlötzlich hat man statt 2-3 deployment Einheiten, 20-30 Deployment-EinheitenJetzt schlagen die ganzen Verfügbarkeits-Wahrscheinlichkeiten zuVerteilte Systeme (01:03:18)Uwe ist absoluter Liebhaber verteilter SystemeEs gibt 2 Harte Themen in der IT: Security und verteilte SystemeOder Naming und Cache-Invalidation?Naming ist Teilaspekt von verteilten SystemenProjekt mit guten Anwendungsentwicklern, die aber keine Cracks in verteilter Systementwicklung sindWenn ich die auf ein verteiltes System los lasseUnd gleichzeitig Sicherstellen, dass man das System zur Laufzeit überwachen kannDem System Selbstheilungsfähigkeiten beibringenDa kein Admin ein System dieser Größe unter Kontrolle halten kannBevor ich mir diesen Schmerz nehme, brauch ich auch einen Treiber für diesen SchmerzEinfluss von SOA und Microservices auf Organisationen (01:07:55)Märkte haben sich verändertWir waren lange Zeit im industriellen Zeitalter, geprägt von TaylorismusSehr flexibel, sehr spezifisch, handgefertigtSehr individuell auf Kundenbedürfnisse eingegangenProblem: Man konnte nicht skalierenHeute hat man große, weite, nahezu unlimitierte MärkteWie will man diesen Markt bedienen?--> StandardisierenVereinfachung und Zerlegung der einzelnen Schritte der ProzessketteDadurch relativ langsam sich veränderten Markt skaliert(seit 70er/80er) Marktsättigung, stärkere GlobalisierungMärkte immer enger, die Kunden wurden wählerischer, mehr WettbewerberPlötzlich musste man wankelmütigen Kunden schneller angehenDynamisch robustes Unternehmen für dynamischen, sehr aktiven MarktNicht mehr skalierung das Hauptthema, sondern die Reaktionsgeschwindigkeit"Time To Market"Markt hat sich massiv gewandeltWirtschafts-DarwinismusIT ist das Nervensystem eines jeden UnternehmensIT hatte SkalierungsproblemProblem war: es konnte nicht so schnell geliefert werden, wie es gefordert wurdeIdeen des Software Engineering (Ende 60er)Prinzipien aus Taylorismus80er Siegeszug der PCsVernetzungImmer komplexere Sachen durch IT gelöstBis auf GeschäftsprozessebeneIrgendwann kam Internet dazuInternet HandelNoch mehr VernetzungGesamte IT Landschaft war soweit, dass es das komplette Nervensystem eines Unternehmens geworden istJetzt haben wir das Problem: Wenn IT 2 Stunden ausfällt, haben wir ein massives Problem.Entscheider haben das wiederwillig akzeptiert--> Sicherungsmaßnahmen wurden eingerichtetMit dem Ziel: Stabilen und zuverlässigen BetriebProblem Heute: Wenn IT Nervensystem des Unternehmens ist, dann sind sämtliche Geschäftsprozesse wie DNA in IT reincodiertMan kann kein neues Produkt launchen, kein Feature, kein neuen Prozess auf der Businessebene ändern, ohne die IT anzufassenIT ist integraler Bestandteil eines UnternehmensIT als NervensystemMittlerweile keine komplizierten Projekte mehr, sondern komplexe ProjekteWeil man nicht mehr einzelne Geschäftsfunktionen unterstützt, sondern kompletter Dynamik des Marktes ausgeliefert istNicht mehr Anforderung, dass man skalieren muss, sondern dass die Reaktionsgeschwindigkeit das neue A und O wird"Mehrwert ist erst in Produktion"Anforderung von Geschäftsseite: *Man möchte in der Lage sein, etwas in Tages- oder Wochenzeitraum rausbringenTeilfeature raus hauen, um die Kundenreaktion einzuholenPDCA vs OODA (01:20:25)Plan Do Check Act vs. Observe Orient Decide ActBei beiden macht man einen Schritt, guckt wie die Leute reagieren und macht den nächsten SchrittExample AUnternehmen stellt Hypothese auf:"Kunden werden auf dieses Produkt fliegen."Baut Produkt und ist nach 9-15 Monaten liveExample BLean Start UpHypotheseMan macht Minimal Viable ProductBringt das raus, misstPasst Produkt anFrage: Wer wird nach einem Jahr näher an den Kundenbedürfnissen dran sein?Organisationsstrukturen im Wandel (01:23:15)Aufstellung nicht mehr nach Skalierung und Fehlervermeidung, sondern nach ReaktiongeschwindigkeitReaktionsgeschwindigkeit benötigt autonome Teams, dezentrale Steuerung, usw...Ende zu Ende Verantwortung für meine ThemenMan landet bei DevOps, Wertschöpfungskette wird nicht mehr nach Spezialistenteams aufgebaut, mit dem Ziel der maximalen FehlervermeidungSondern jetzt mit dem Ziel der ReaktionsgeschwindigkeitDaher crossfunktionale Teams, die Ende zu Ende alles machen könnenDie ganzen Leute sind beieinander und interagieren direkt miteinanderNotwendige Komplexität auf der Lösungsseite aufgebaut, die auf der Anforderungsseite entsteht"Die Architektur meines Systems wird normalerweise immer der Kommunikationsstrukturen in meinem Unternehmen entsprechen." - Conway's LawOrganisation kann nur effektiv und effizient werden, wenn Architektur, die ich auf der technischen Seite anbiete, zur Unternehmensstruktur passtProblem: Man kann keine autonomen Teams, die reaktionsschnell sein sollen, auf einem großen Monoliten zusammen arbeiten lassenMicroservices liefern das Architekturparadigma, um diese Autonomie auf der IT-Organisationsebene zu liefernWird über DevOps Teams abgebildetVon Visionen und Agilität (01:27:30)Man Benötigt eine gemeinsame VisionAufgabe eines Architekten ist es die Vision darzustellen, das ZielbildAgile Teams: Selbstorganisation als indirekte Steuerung"Ich will, dass ihr da ankommt, unter diesen Rahmenbedingungen."Man muss Lücken zwischen Teams füllenTeam muss mit Services von anderen Teams redenDamit Kommunikation zwischen Teams und Services funktioniert, muss es Satz an Constraints gebenSpielregeln zur effizienten Zusammenarbeit definierenAuf Prozessebene hat man Agilität der Lean- und DevOps PrinzipienAuf Organisationsebene fängt man mit autonome Teams an, End-to-End VerantwortungAuf menschlicher Seite hat man Craftmanshipbzw. die Gedankenwelt hinter Craftmanship: Professionalisierung der Arbeitsweise und Kollaboration miteinanderAuf technischer Ebene wird Diversität zugelassen:MicroservicesCloudinfrastrukturSelf-Service-PrinzipDer Homo-Ja-Aber (01:35:40)Unternemerischer und Organisatorischer Wandel ist die Hölle, besonders in DeutschlandHindernisse in der deutschen IT Szene:Der Deutsche ist die Weiterentwicklung des Homosapians in den Homo-Ja-AberDer Deutsche neigt dazu, Gründe gegen eine Veränderung zu findenSWAT Analyse (aus Marketing), Deutsche guckt nur auf Weaknesses und ThreatsBeharrungsvermögen der Deutschen (Ja, aber...)Unternehmen haben Kultur, die seit 20 Jahren oder länger entwickelt wurdeDeutsche Unternehmen sind trägerViele Unternehmen stellen fest, dass sie ein Problem haben, dass es so nicht weiter gehen kannErkennen, dass sie sich ändern müssen, haben jedoch keine Idee wohin und wieViele Unternehmen bauen Piloten nebenan, StartUps im UnternehmenWird so weit wie möglich entkoppeltIst notwendig, da man bis hin zu Governance Modellen (Führung, Steuerung) die IT neu gedacht werden mussMan will hohe Reaktionsgeschwindigkeit erschaffen in den TeamsEntkopplung von dynamischen, agilen Teams aus trägem SystemUm zu lernen, wie anderer Ansatz funktioniert, muss sich so weit wie möglich entkoppelt werdenZu verstehen wie neue Struktur funktioniert ist Lernzyklus Man muss Zyklus auf Metaebene durchlaufenBis man kapiert hat wie neue Organisation auf allen Ebenen wie Technologie, Prozessorganisation und Governance Modell funktioniertUnternehmen bei denen der Wandel funktioniert hat? (01:45:40)Bei Otto wurde Shop neu aufgestellt, mit neuen Prinzipien, sowohl technisch als auch organisatorischBei der Post ist man mit einigen internen StartUps unterwegsTelekom hat auch Ansätze in dieser RichtungEinige weitere versuchen esBei Organisationen, die einen hohen Wettbewerbsdruck haben, sieht man Änderungen massivAusnahmen (01:51:00)Wann kann ich mich dem Wettbewerbsdruck entziehen?Wenn ich einen nicht-effizienten Markt habeMarkt wird künstlich träge gehalten (Lobbyismus)Auf technischer EbeneWenn technische Ebene komplett intern ist und keinem Marktdruck ausgesetzt istProdukt-Lebenszyklus: Neues Produkt, dass ich durch die IT unterstütze, bzw. IT ist selber das ProduktBoston Consulting Group Hype CycleVersuche rauszufinden, was die Kunden haben wollenKosten überschaubar haltenDing hebt abMich interessiert keine KosteneffizientVersuchen jeden potentiellen Kunden auf mein Produkt drauf kriegenSolange dran drehen (IT Systeme nacharbeiten) bis ich maximalen Marktanteil rausgeholt habeDann wechsel ich den Zyklus in Cash Cow rüberMarkt ist klar, Anteile sind vergebenReaktionsgeschwindigkeit runter fahren, Kosteneffizienz hoch fahrenKann in anderes Paradigma wechseln, rein auf Kosteneffizient trimmenQuality of Service wird aufrecht erhalten, um keine Kunde zu verlierenVon Null auf Legacy in unter 3 Monaten (01:56:00)Agile Projekte die nur Code gekloppt habenVelocity ist runter gegangenDer normale ITler ist ein Messi, löscht keinen CodeMan hat auf der Fachseite Leute die gar nicht wissen warum Sachen gemacht werden, sondern nur wie sie gemacht werdenHaben den Sinn nicht verstandenAuf der IT Seite hat man sehr viele Entwickler, die sich wehren Fachlogik zu verstehenkönnen daher kein gutes Design machen und wissen nicht, ob Code noch irgendwo gebraucht wirdBeim neu Bauen wird alles besser (02:00:30)Wenn ein System komplett neu gebaut wird, begeht man zwar die alten Fehler nicht mehr, dafür aber sehr viele neueMan hat keine Chance wenn man keine guten Leute im Design hatWenn man ein gutes, wartbares System haben möchte, ist Design das wichtigsteUnternehme erkennen nur schwer: Wenn ich so etwas hoch ziehe, muss ich gute Leute reinsetzen, die Dinge gut beurteilen und abwägen und entscheiden könnenDas sind dann die Leute, auf die man dann in einem kosteneffizienten Unternehmen niemals in dem Fachbereichen verzichten kann, weil sie unersetzlich sindHybridlösung: 30% der Zeit, Tauchen 2 Stunden die Woche mal aufEntwickler sind wo anders untergebracht als der Fachbereich: verteilte EntwicklungDas macht es schwierigIdealzustand: Crossfunktionales TeamAlle Kompetenzen vorhandenAlle vor OrtIdealerweise in einem BüroWenn das richtig gemacht ist, kann das gut funktionieren.Schlusswort (02:08:20)Markt hat sich geändertIT muss sich darauf anpassen und sich neu erfindenAmazon, Google, Netflix usw. haben vorgemacht wie es funktionieren kannhaben Lernkurven hinter sich. Da kann man wunderbar drauf guckenman muss aufhören Ja-Aber zu sagen und gucken, was man da raus ziehen kann


