Latest / Coding Buddies | Tech & Dev-Mindset / DevOps #4 - Gamechanger: Continuous Deployment
Transcript
- 0:00Also ich setz mich jetzt n Schneidersitz auf den Boden,
- 0:03wieso n kleiner Junge der die Geschichte hören möchte und
- 0:05bitte erzähl Coding Buddies dein Podcast rund um
- 0:10Softwareentwicklung und aktueller Tech News herzlich
- 0:13Willkommen. Herzlich Willkommen zur neuen
- 0:26Folge des Coding Bodys Podcasts. Schön, dass du wieder
- 0:28eingeschaltet hast, deine Gastgeber und wie soll es auch
- 0:31anders sein, wie immer meine Wenigkeit, der Tino und auch der
- 0:35fantastische Fabi, der mich schon anlächelt durch die Kamera
- 0:38Fabi Grüße dich was geht ab wie Hallo Tino, wie geht es dich
- 0:43nicht sehr verhalten noch sehr verhalten du musst jetzt zu den
- 0:46Podcast Moot kommen ich bereite es vorab sehr gut das ist der
- 0:50Spirit den wir hier brauchen. So n richtigen live Kommentator
- 0:54von irgend nem krassen Spiel. So diese Stimmung brauchst du
- 0:57weißt du du musst die Leute anheizen, ganz cosy alles
- 1:01entspannt cosy ich bin deutsch. Cosy zu wenig Kaffee getrunken
- 1:04heute? Ich bin noch.
- 1:06Nicht ich hab tatsächlich auch gerade keinen am Start, also
- 1:09wird es wirklich n bisschen cosy heute.
- 1:12Ich weiß nicht. Ich glaube, ich habe heute einen
- 1:13Kaffee getrunken, was echt wenig ist für mich okay normalerweise
- 1:17wäre ich so bei. Zeit note Wir nehmen ihn nicht
- 1:19morgens um 5 auf, hier gerade den Podcast.
- 1:21Das ist schon ein fortgeschrittener Tag, das ist
- 1:24wirklich wenig für dich, fabi, muss ich mir Sorgen machen?
- 1:28Nee, Oh, das ist der Kaffee einfach alle.
- 1:31Nee, eigentlich alles gut, zu wenig Zeit gehabt, um Kaffee zu
- 1:33trinken heute, ah, na gut, dann danach nach.
- 1:36Nachdem wir diese Folge aufgenommen haben, kannst du
- 1:38gleich 4 auf einen Kaffee ziehen 4 Espresso OK, dann würde ich
- 1:44sagen starten wir auch mal direkt damit du schnell zu
- 1:46deinem Kaffee kommst. Und zwar habe ich wieder n
- 1:50cooles Thema mitgebracht und zwar haben wir ja gesagt wir
- 1:52wollen heute also mit dieser Folge die Def Ops Reihe
- 1:58fortführen. Und wir haben ja das letzte Mal
- 2:02über Continuous Integration gesprochen und auch schon so
- 2:06angeteasert, was das nächste Thema ist.
- 2:08Und da möchte ich auch heute dann mit dir drüber sprechen und
- 2:11zwar Continuous Deployment, schrägstrich delivery
- 2:16wohlgemerkt. Beide Sachen, also Deployment
- 2:19und Delivery, dass wir auch einfach mal, weil das war auch
- 2:22bei mir so n Punkt anfangs, dass man das einfach mal richtig
- 2:25separiert und sich unter beiden was vorstellen kann, weil.
- 2:29Mir ist es auch schon begegnet, dass es oftmals als Synonym
- 2:31verwendet wird, aber eigentlich vom Prinzip her meiner Meinung
- 2:36nach stehen da 2 verschiedene Sachen dahinter, die zwar in die
- 2:39gleiche Richtung gehen, aber schon voneinander separiert
- 2:42werden können und das würde ich gerne mit dir heute machen und
- 2:45da mal n schönen Überblick geben über das gesamte CD Thema, dann
- 2:49finde ich gut, ja wollen wir das so machen?
- 2:51Machen wir so. OK, dann gebe ich noch mal ne
- 2:56kurze Einleitung, bevor ich dann an dich abgebe und mir erstmal n
- 2:59Kaffee hole. Wir haben ja wie gesagt das
- 3:03letzte Mal über Continuous Integration gesprochen und wenn
- 3:06wir uns in unserer Def Ops Reihe reden wir ja immer von der
- 3:09Pipeline die man aufbaut. Wenn man jetzt noch mal das
- 3:12Revue passieren lässt, waren wir ja an dem Punkt, dass wir gesagt
- 3:15haben, OK, wir wollen kontinuierlich in unsere
- 3:19Codebasis integrieren. Das heißt, wir wollen
- 3:22automatisiert Änderung einchecken.
- 3:26Darauf die Tests laufen lassen. Sowohl Unit Test als was auch
- 3:30immer alles abgetestet wird. Wir haben auch so n bisschen
- 3:32über zum Beispiel statische Codeanalysen gesprochen, also
- 3:35alles was da so in den Bereich testen fällt und wenn das Grün
- 3:39läuft, dann soll es automatisch in die Codebasis integriert
- 3:42werden, sodass man halt schnell neue Stände, die zuverlässig die
- 3:45richtig sind integrieren kann und nicht quasi in großen
- 3:50Batches arbeitet um das noch mal ganz kurz zusammenzufassen.
- 3:54Dann sind wir ja an dem Punkt. Wir haben das jetzt integriert
- 3:56und da würde ja eine normale Pipeline jetzt nicht enden,
- 3:59sondern dann gehen wir ja schon so in diesen CD teil, um den es
- 4:03heute gehen soll. Über was ist für dich an der
- 4:07Stelle jetzt essentiell und was also wo beginnt für dich dann
- 4:13der CD teil sozusagen? Der CD teil ist dann für mich,
- 4:19wenn man weiß okay der Code oder die Code Basis der Stand des
- 4:23Codes den man jetzt hat oder der Anwendung ist getestet und
- 4:28funktioniert und dann muss der Code gebaut werden, dass du so
- 4:33eine Art Artefakt hast, dass du sozusagen ausliefern kannst und
- 4:37dann wird es im Endeffekt auch ausgeliefert und da ist aber
- 4:43dann noch so ein kleiner. Unterschied zwischen Delivery
- 4:46und Deployment und da können wir gleich noch mal n bisschen, dann
- 4:50auch näher drauf eingehen, dass man das Ganze noch mal
- 4:53voneinander separiert und ich, du hast es wahrscheinlich schon
- 4:58geahnt, dass jetzt noch ne kleine Analogie Analogie kommen
- 5:01wird. Wir also ganz ehrlich, ich hätte
- 5:04mich auch enttäuscht, wenn du jetzt nicht ne Analogie
- 5:07mitgebracht hättest zu dem Thema.
- 5:09Also ich setz mich jetzt n Schneider Sitz auf den Boden,
- 5:12wieso n kleiner Junge der die Geschichte hören möchte und
- 5:15bitte erzähl. Ich seh alles ne, also ja also
- 5:20das Ding ist ich. Ich find das wirklich auch
- 5:21interessant oder oder gut wenn man noch mal so ne Analogie
- 5:24bringt, weil ich auch genauso wie du damals eigentlich nicht
- 5:28wirklich gedanklich separiert hab, dass es ja was anderes ist.
- 5:31Also Deployment and Delivery und dachte OK, das ist eigentlich
- 5:35ist doch das gleiche so, ja und? Ist das Gleiche, ist richtig,
- 5:41Entschuldigung. Und im Endeffekt kann man sich
- 5:43das so vorstellen. Wenn du jetzt zum Beispiel, ich
- 5:46weiß nicht, irgendwie fangen viele Analogien mit Restaurants
- 5:49an. Ja, wenn du so dein Ding.
- 5:52Wenn du genau, wenn du ins Restaurant gehst und dir ein
- 5:54Essen bestellst und dann hast du zum Beispiel den Prozess, wie
- 5:58zum Beispiel der Koch, bereitet das Essen vor, also
- 6:01implementiert zum Beispiel die Software das neue Feature, wie
- 6:03auch immer und. Dann wird ja vielleicht noch mal
- 6:07abgeschmeckt und geguckt, ob es vielleicht gut ist.
- 6:10So, und dann wird ja im Endeffekt das Ganze als Artefakt
- 6:13gebaut, das heißt auf dem Teller zusammen angerichtet und so
- 6:17weiter und dann wird dieser Teller vielleicht auf eine
- 6:20Zwischenablage gestellt und diese Zwischenablage ist dafür
- 6:24da, dass du dann zum Beispiel irgendwann als Gast vielleicht
- 6:28sagst. Bitte bringen Sie mir jetzt das
- 6:30Essen, das heißt, du musst manuell sozusagen noch mal den
- 6:33Kellner oder die Kellnerin hinweisen darauf, dass dir das
- 6:36Essen auch wirklich gebracht wird, dass du es wirklich
- 6:38bekommst. Oder du musst es dir vielleicht
- 6:40selber abholen von dort ne. Ja.
- 6:43Das ist sozusagen dann wirklich an der Stelle Delivery und
- 6:48Deployment, um das jetzt kurz noch mal weiterzuführen, wäre an
- 6:52der Stelle, dass du nicht diese Ablage hast, sondern dass sobald
- 6:56das Essen fertig ist. Es sofort, ohne, irgendwie dass
- 6:59du noch mal explizit danach bitten musstest, direkt an
- 7:02deinen Platz gebracht wird so einmal, um das ganz kurz auf
- 7:06dieser Ebene zu haben. Das bedeutet also eigentlich,
- 7:09dass Continuous Delivery ist, dass deine Software gebaut wird
- 7:15und das Artefakt vorbereitet wird, so dass es rein
- 7:18theoretisch jederzeit veröffentlicht werden kann, das
- 7:21heißt zum Beispiel ein neues Feature, was in deine Software
- 7:23reinkommt. Dein Featureset erweitert sich.
- 7:27Und du hast aber eine Anwendung, die sozusagen gerade läuft.
- 7:30Verwendet wird, wie auch immer und das neue Feature Set wird
- 7:35aber nicht direkt eingespielt, das ist sozusagen live verfügbar
- 7:39ist, sondern so ich sag mal Gestaged zurückgehalten an einem
- 7:43bestimmten Punkt und wenn du jetzt aber als Entwicklerteam
- 7:47zum Beispiel sagst okay, wir wollen jetzt aber zu diesem
- 7:50speziellen Zeitpunkt manuell sagen.
- 7:53Das Artefakt, was gebaut wurde, wird jetzt auch sozusagen live
- 7:56geschaltet. Dann sind wir an dem Punkt, dass
- 8:00wir natürlich, also das ist sozusagen dieses Delivery, das
- 8:03heißt, du gehst nur bis zu dieser Stage, aber es wird noch
- 8:07nicht automatisch ohne manuellen Eingriff weiter ausgerollt und
- 8:12Deployment geht genau diesen Schritt weiter, dass man sagt,
- 8:16okay, wir haben dieses gebaute Artefakt und wir müssen jetzt
- 8:20aber keinen manuellen Schritt mehr machen, sondern es wird.
- 8:23Wenn man jetzt diese ganze Pipeline immer durchgeht, du
- 8:25committest etwas. Dein neues Feature Set, es wird
- 8:28getestet, es wird integriert, es wird gebaut und dieser neue
- 8:32Stand wird sofort ausgerollt und das ist im Endeffekt so grob mal
- 8:38zusammengefasst. Delivery und auch im Vergleich
- 8:41zu Deployment, also CI, also CD, Continuous Delivery, Continuous
- 8:46Deployment. Ja, also das heißt bei deiner
- 8:50Analogie. Es wird halt soweit vorbereitet.
- 8:52Das heißt, das Essen wird an, also es wird nicht nur gekocht,
- 8:55es wird am auf dem Teller angerichtet, sodass es
- 8:58verzehrfertig ist. Sagen wir mal ne genau, ich dich
- 9:00jetzt richtig verstanden hab und ob man sich das jetzt selbst
- 9:05holt oder nen Kellner aktiv entscheidet dir dieses Essen zu
- 9:10bringen ist ja dann im Prinzip die Delivery.
- 9:14Also dieses Typische, es wird hier klingelt hier essen, Tisch
- 9:1713 fertig ne, das ist sozusagen die Vorbereitung, es ist alles
- 9:22bereit ausgeliefert zu werden, da steht jetzt dieser Teller mit
- 9:25diesem köstlichen Essen und das finde ich halt ganz cool als
- 9:30Analogie, dass du sagst, jetzt muss aber jemand noch
- 9:32entscheiden, ob das jetzt wirklich zu dir an den Tisch
- 9:34kommt, genau wie man die Analogie auch aufbauen möchtest,
- 9:38entscheidest du selbst, dass es du, dass du es dir jetzt holen
- 9:41möchtest oder der Kellner es dir bringt.
- 9:44Deployment wäre ja im Prinzip, wenn das jetzt vom Koch
- 9:48angerichtet wird und per keine Ahnung liefer automatische
- 9:54Lieferung an deinen Tisch gefahren wird, ne also beim
- 9:57Fließband oder so keine Ahnung hier so Running Sushi weißt du.
- 10:01Das ist. Doch ein gutes Beispiel, weil
- 10:04dann fährst du einfach an dir vorbei oder kannst du sagen, ja
- 10:07danke, es ist direkt deployed, das gefällt mir.
- 10:11Ja, aber cooles Beispiel, vielen Dank dafür genau.
- 10:16Und das bringt nämlich jetzt mich auch zu dem Punkt, weil du
- 10:21hast das jetzt schön differenziert, was der
- 10:23Unterschied ist. Die Frage ist doch jetzt wann.
- 10:28Also sagen wir mal so, Delivery hat natürlich noch den extra
- 10:32Schritt aktiv zu entscheiden, wann es rausgeht, das Update
- 10:35oder das Essen in der Analogie. Das heißt du hast noch so ne Art
- 10:39Stage wo noch mal geprüft werden kann, genau richtig, das heißt
- 10:43da kann noch mal jemand mit Fingerspitzengefühl rangehen,
- 10:47sich das noch mal anschauen, noch mal n bisschen validieren
- 10:49ob alles in Ordnung ist und dann so die aktiv diese Entscheidung
- 10:53treffen jetzt raus damit. Das hast du ja beim Deployment
- 10:56nicht, weil den Schritt versucht man sich natürlich auch noch
- 10:59einzusparen, weil der Vorteil dabei ist ja, dass du schnell
- 11:04veröffentlichst und demnach auch schneller Feedback wieder
- 11:06kriegst. Dazu logisch, je schneller es
- 11:08sag ich mal auf den Markt kommt, umso schneller wirst du ja
- 11:10Feedback erhalten. Da merkt man aber, dass CD auch
- 11:14extrem abhängig von CI ist. Meiner Meinung nach, weil du
- 11:18brauchst ja jetzt ne ne richtig gute Continuous Integration.
- 11:23Die dir unfassbar viel Zuversicht gibt, um überhaupt
- 11:26sagen zu können, ich automatisiere jetzt mein
- 11:28Deployment, weil alles was integriert ist, ist so gut, dass
- 11:33es Produkt, also produktiv sein kann.
- 11:35Es hat eine Qualität, um als fertiges Produkt zu gelten oder
- 11:39als Update und das finde ich ist halt auch n spannender Punkt,
- 11:41dass man noch mal ganz kurz auf das CI Thema kommt, nur noch mal
- 11:45um. Quasi herauszustellen, wie
- 11:47wichtig das am Ende dann ist, um überhaupt vernünftig CCD leben
- 11:52zu können oder aufbauen zu können.
- 11:54Definitiv. Also ich find das auch gut, dass
- 11:55du es noch mal ansprichst, weil rein theoretisch kannst du ja
- 11:58auch CD machen ohne CI, das ist ja möglich, du kannst ja einfach
- 12:03sagen, OK, ich hab irgendwie meinen meinen Code den ich habe,
- 12:06also CI im Sinne von dem was wir ja in der letzten Podcast Folge
- 12:09besprochen haben. Ne, also du kannst natürlich
- 12:12einfach deinen Code pushen. Force ohne Tests, ohne alles,
- 12:16dann hast du natürlich irgendwie diese Integration hinter dir,
- 12:19weil du musst ja irgendwie sagen, OK, ich möchte jetzt
- 12:21irgendwie neue Sachen in den Code, in in die Codebasis
- 12:24integrieren. Logischerweise, wie gesagt, das
- 12:26ist ja nicht das CI, über das wir reden und dann kannst du ja
- 12:29trotzdem einfach sagen, OK, der aktuelle Stand den ich jetzt
- 12:31hab, den deploy ich einfach, also ich bau quasi ich baue den
- 12:34Code und ich. Rolle diesen dieses neues neue
- 12:39Erzeugnis sozusagen einfach aus. Ne ja, aber ist gut, dass du es
- 12:43noch mal sagst, weil damit das wirklich gut funktioniert, muss
- 12:47oder sollte auf jeden Fall der CI teil nicht fehlen, ne genau.
- 12:53Wenn wir jetzt noch mal von der Pipeline schauen, du hattest ja
- 12:56gesagt, okay, für dich kommt erstmal das bauen und dann das
- 13:00Deployment beziehungsweise Delivery, dann gibt es noch
- 13:03einen Schritt, nur der Vollständigkeitshalber, der
- 13:05danach noch sehr wichtig ist, weil wir den jetzt schon
- 13:07angerissen haben, ist natürlich das Monitoring, um dieses
- 13:10Feedback auch zu kriegen, um quasi zu sehen, hat das jetzt
- 13:16erfolgreich. Geklappt, um eine neue
- 13:18Auslieferung läuft alles so wie es soll, ist natürlich noch n
- 13:22wichtiger Schritt für die gesamte Pipeline.
- 13:25Das heißt du hast halt wie gesagt den CCI am Anfang, dann
- 13:28der CD teil mit Bauen und ausliefern, je nachdem Delivery
- 13:32oder Deployment, da würde ich gern gleich noch mal mit dir n
- 13:35bisschen tiefer 3 einsteigen und danach auf jeden Fall als
- 13:39letzten Schritt quasi dieses Monitoring um mal so ne Pipeline
- 13:42darzustellen. Ja ja.
- 13:43Auf jeden Fall ist es auch n wichtiger Bestandteil am Ende
- 13:46auch. Gerade auch im DEF Ops Bereich
- 13:48logischerweise, und da wird es auf jeden Fall noch mal eine
- 13:52eigenständige Folge drüber geben, über genau diesen auf
- 13:54jeden Fall ringteil definitiv gut, aber dass du schon mal an
- 13:57Teaser ist, weil im Endeffekt ist das auch wirklich
- 13:59essentiell, genauso wie es sie eigentlich fehlen sollte, sollte
- 14:02am Ende das Monitoring auch nicht fehlen, weil sonst.
- 14:06Ja, ist ja kein Fire in Forgot ne, ist ja nicht so, dass du
- 14:08sagst, ich deploy das jetzt und nach mir die Sintflut, ob der
- 14:10Kunde jetzt verärgert ist oder nicht.
- 14:12Ich arbeite an den nächsten Features und Knall die Ihnen
- 14:15gleich noch mal um die Ohren. So sollte jetzt CICD am Ende
- 14:19nicht gelebt werden. Halt ne definitiv guter Punkt.
- 14:24Also wenn man das jetzt noch mal kurz n bisschen zusammenfassen
- 14:28möchte, ist es ja so, dass bei Continuous Delivery haben wir ja
- 14:32im Endeffekt wirklich eine. Ich sag mal manuelle
- 14:35Freischaltung eines, nennen wir es mal Software Updates.
- 14:39Das heißt du möchtest neue Software, also neue
- 14:42Funktionalität in eine Software reinbringen und dieses Update
- 14:45nenne ich es jetzt mal. Das musst du manuell noch mal
- 14:48freischalten, man kann sich das ja wirklich so vorstellen, dass
- 14:50man zum Beispiel die ganze Zeit neue Features entwickelt und.
- 14:55Du willst jetzt aber zum Beispiel nicht sagen, ey, ich
- 14:58hab jetzt zum Beispiel ein Feature und dieses Feature, was
- 15:01neu ist, wird sofort an die Kunden ausgerollt, sondern du
- 15:05möchtest zum Beispiel sagen Feature 1234 und 5.
- 15:09Damit warte ich erstmal bis ich einen Stand habe, wo alle diese
- 15:125 Features vielleicht drin sind und erst dann kann ich sozusagen
- 15:15mein Software Update ausrollen, also wirklich releasen ne und
- 15:21genau und und und damit das dann funktioniert musst du dann
- 15:24vielleicht sagen. Je nachdem, wie du es machst.
- 15:26Aber das einfachste, um sich das vorzustellen ist, du hast einen
- 15:29Klick irgendwo und sagst okay und jetzt bitte wirklich live
- 15:32schalten. So kann man sich das ja
- 15:34vorstellen und bei Deployment ist es halt so, dass genau
- 15:37dieser Schritt eben nicht notwendig ist.
- 15:39Das heißt du sagst okay ich mache ein neues Feature, pushe
- 15:44das, es läuft durch die Pipeline durch und danach ist es eben
- 15:47auch oder wird es auch in der Software an den Kunden oder an
- 15:51die Kunden ausgerollt und. Damit hast du natürlich aber
- 15:56auch das Verhalten, dass du in dem Fall dann nicht solche
- 16:00Releases in dem Sinne erzeugen kannst, dass du sagst, ich
- 16:03möchte jetzt zum Beispiel mehrere neue Features auf Imar
- 16:08Releasen, sondern du released ja wirklich sehr, sehr iterativ.
- 16:11Ne. Ja, ich möchte einzelne, genau
- 16:14jede einzelne Änderung, jedes einzelne neue Feature oder auch
- 16:18Anpassung von Features. Genau.
- 16:20Also es sind sehr kleine Änderungen, die direkt
- 16:23ausgeliefert oder ausgerollt, wie man auch so schön sagt,
- 16:26werden ne. Genau.
- 16:28Und im Endeffekt also sowas bringt natürlich auch irgendwie
- 16:31so vor und Nachteile mit sich. Ne also.
- 16:35Auf jeden Fall. Wenn du nämlich zum Beispiel mal
- 16:40fangen wir noch mal bei Delivery an, wenn du dir jetzt überlegst,
- 16:44was könnten so Vorteile sein? Also du hast halt ne gewisse
- 16:49Flexibilität auch in der Planung für Veröffentlichung.
- 16:54Also du kannst zum Beispiel sagen, ich möchte jetzt
- 16:58meinetwegen alle 3 Monate so n größeres Release raushauen, was
- 17:02jetzt zum Beispiel bei größeren Softwarelösungen Desktop
- 17:06Applikationen ja öfter der Fall ist, dass es jetzt nicht.
- 17:10Also gehen wir jetzt mal nicht von irgendwelchen Hotfixes aus
- 17:12oder so. Bugfixes ne, also irgendwas
- 17:15kritisches, sondern wirklich neue Features die reinkommen,
- 17:18dann bist du ja oft an dem Punkt, dass du sagst, ich will
- 17:20jetzt nicht jedes kleine Feature, was also so ne
- 17:23Teilmenge meiner gesamten Planung für das nächste Release
- 17:27ist, immer direkt an den Kunden raushauen.
- 17:29Ja ne, weil n absolut wichtiger Punkt ist ja auch zu sagen.
- 17:35Wann nerv ich denn meinen Kunden, wenn ich jetzt die ganze
- 17:38Zeit offensichtlich Updates von ihm forder?
- 17:41Also wirklich so hinsichtlich die Anwendung zeigt an EY, es
- 17:45gibt ein Update, möchtest du updaten?
- 17:47Du denkst ja ja mach ich und am Ende des Arbeitstages ey es gibt
- 17:51ein Update, willst du updaten so also dann kommst du an einem
- 17:53Punkt wo der Kunde auch verärgert darüber ist.
- 17:55Beispielsweise also da hast du halt einfach diese Flexibilität,
- 17:59du kannst das besser aufplanen ja auch meinetwegen
- 18:02hinsichtlich, dass du neue Features für die neue Version
- 18:04bewirbst und. So dass du sagst, Hey, guck mal
- 18:07dann und dann hauen wir n neues Release raus und dann sind die
- 18:10und die neuen Funktionalitäten da drin, die heiß erwartet sind
- 18:13oder die auf jeden Fall super geil wären.
- 18:15So du hast da halt einfach wie gesagt Spielraum.
- 18:20Und die Frage ist natürlich, wie stabil ist deine gesamte
- 18:25Pipeline und deine ganze Infrastruktur, weil du ja wie
- 18:28gesagt diesen einen Schritt noch hast.
- 18:31Das heißt, jemand muss ja manuell noch ne Art Freigabe
- 18:35geben, indem man auf den Knopf drückt auf diesen virtuellen
- 18:37Knopf. So jetzt bitte ausliefern, das
- 18:40heißt du hast da noch mal ne Instanz zu sagen.
- 18:44Lass uns das noch mal checken, lass uns hier noch mal gucken.
- 18:47Manuelle Tests vom User vielleicht ne, also nicht von
- 18:49dem Endverbraucher, sondern so einer der das anwendet,
- 18:51vielleicht aus dem aus dem Unternehmen, aus dem Projekt,
- 18:55das ist. Das gibt dir natürlich auch ne
- 18:57höhere Stabilität und Zuversicht am Ende, falls du sie benötigst.
- 19:01Das ist halt deswegen wohlgemerkt, das heißt nicht,
- 19:04dass das andere instabil ist, sondern du hast einfach nur noch
- 19:07eine. Also ein Einsprungspunkt mehr.
- 19:10Also das ist genau das. Kann aber halt genauso.
- 19:14Natürlich aber auch wieder ein Nachteil sein, dass du zwar
- 19:17sagst okay man kann bis dahin erstmal sagen okay dieses die
- 19:22die neuen Updates sind verfügbar in diesem Bild sage ich jetzt
- 19:26mal und du kannst zu diesem Bild ziehen, kannst vielleicht auf
- 19:29eine Stage drauf zugreifen, die diesen Bild verwendet, wie auch
- 19:32immer. Hat Vorteile, kann aber eben
- 19:36genauso gut den Nachteil haben, dass du sagst, na gut, du musst
- 19:38aber noch diesen manuellen Freigabeprozess, den hast du
- 19:41halt, was auch gleichzeitig wieder bedeutet, dass natürlich,
- 19:44wenn du kritische Updates reinbringen möchtest, hast du
- 19:47natürlich den Nachteil, dass die eventuell halt auch wieder
- 19:50länger dauern, ne? Genau deswegen hab ich sie eben
- 19:52ausgeschlossen, weil das war so das idealste Szenario, dass du
- 19:55sagst, das sind nur so neue Features, aber das kann dir
- 19:58natürlich in die Suppe spucken, wenn es halt wirklich kritische
- 20:00Sachen gibt und du dann vielleicht so n großen Prozess
- 20:03da zur Freigabe noch drum rum hast und nicht einfach
- 20:05automatisch die Ployst, dann ne diese.
- 20:07Fixes also, was ich zum Beispiel auch schon mal hatte, was ich
- 20:10auch schwierig finde und auch wirklich n tatsächlich irgendwie
- 20:14ne Art Nachteil ist, wenn man oder?
- 20:18Zumindest in dem Fall war so von der Infrastruktur, wie wir sie
- 20:21hatten, schon n bisschen der Nachteil von diesem.
- 20:23Also wir haben in dem Fall Continuous Delivery gemacht, das
- 20:27heißt, Wir haben immer bis auf eine bestimmte Stage deployed,
- 20:30die aber nicht prot war, also das heißt, es wurde nicht
- 20:32produktiv, wurden bestimmte Features noch nicht freigegeben.
- 20:36Weil halt eben auch die Anforderung war, dass, und das
- 20:39darf noch nicht oder soll noch nicht oder wie auch immer, also
- 20:42es kann ja auch sein, dass du zum Beispiel ein Feature was du
- 20:46freigeben möchtest oder was du ausrollen möchtest, vielleicht
- 20:49noch nicht vollständig ist, weil ein Feature zum Beispiel in Teil
- 20:55Tasks unterteilt ist beispielsweise, und dann hast du
- 21:00aber auf einem bestimmten Stand, hast du jetzt, sagen wir mal ich
- 21:05nenne es jetzt mal ein Drittel Feature oder ein dreiviertel
- 21:07Feature, was auch immer das ist noch nicht ganz fertig
- 21:10dreiviertel Feature und jetzt kommt aber irgendwie ein
- 21:14kritischer irgendwas rein, was wirklich kritisch gefixt werden
- 21:17muss, dann ist ja die Frage, wie kommst du jetzt auf Prot?
- 21:23Also wie kannst du diesen diesen kritischen dieses kritische
- 21:26Update auf die Produktivumgebung schalten, dass der User auch das
- 21:31bekommt, ohne dass du aber gleichzeitig die dieses
- 21:37dreiviertel Feature sozusagen schon die mit Deploys und das
- 21:40sind dann finde ich so Herausforderungen, die sich auf
- 21:43jeden Fall da auftun an der Stelle.
- 21:46Ja, auf jeden Fall. Das ist ein sehr guter Punkt,
- 21:49dass du dann halt nicht weißt, also was für ein Stand kann ich
- 21:52denn jetzt hier gerade quasi ausliefern, was ist jetzt da
- 21:56drin, was ist vielleicht noch nicht komplett fertig, aber
- 21:58jetzt müssen die Fixes raus, wie du gerade so schön gesagt hast.
- 22:01Das ist halt dann einfach auch wieder der Nachteil am Ende.
- 22:05Und gleichzeitig kommen wir immer auf die andere Seite von
- 22:08Deployment, da wiederum der Vorteil, weil es ist ja alles,
- 22:11was integriert wurde, auch schon ausgeliefert.
- 22:14Genau. Das heißt, du bist wieder auf so
- 22:15einer Kleinen, also bist so fein granular unterwegs mit deinen
- 22:20Deployments, dass es immer kleine Änderungen sind, die du
- 22:23ausrollst. Aber die sind dann halt auch
- 22:25wirklich quasi schon am Endkunden angekommen und das
- 22:29Feedback ist eingeholt. Weil du wirst ja merken, ob es
- 22:32funktioniert oder nicht. Im Prinzip ne genau und genauso
- 22:36schnell kriegst du dann auch die Fixes quasi veröffentlicht und
- 22:40auch das Feedback, ob sie denn wirklich Fehler beheben und das
- 22:43ist halt dann da auf jeden Fall n großer Vorteil, dass du
- 22:47einfach diese ja ich sag mal schnelle Markteinführung hast.
- 22:50Genau. Und du hast halt auch einfach
- 22:51diese höhere Effizienz, weil du halt eben auch nicht mehr daran
- 22:54denken musst. Also du, du hast ja irgendwo
- 22:56eine gewisse Art von Planung, die du bringen musst.
- 22:59Wenn du sagst, okay wir wollen bestimmte Features dann und dann
- 23:02freischalten und wenn du das manuell machen musst, dann musst
- 23:04du natürlich, du hast halt einen viel größeren Planungsaufwand,
- 23:07weil du ja sagen musst okay wann kommt das rein, haben wir jetzt
- 23:10so viel, du musst ja ein bisschen mehr noch sage ich mal
- 23:13schedulen, was dann am Ende einfach wegfällt und halt
- 23:16dadurch natürlich die Effizienz steigert.
- 23:19Weil du dich halt genau um diesen Kram nicht mehr kümmern
- 23:21musst, so. Du sagst halt OK.
- 23:23Ich bau n neues Feature und das geht raus und dann ist es auch
- 23:27da. Ja das.
- 23:29Ist natürlich n Nachteil bei dem Delivery, das haben wir jetzt
- 23:32nicht so explizit genannt, aber es ist n manueller Schritt und
- 23:36da kann halt natürlich auch was schieflaufen.
- 23:37Ne also im Sinne von Anwendungsfehler, dass derjenige
- 23:40der es freigibt Mist macht, muss man ja einfach so sagen, ist
- 23:43natürlich auch immer n Risiko dabei, dann definitiv.
- 23:46Aber genauso hast du ja auch dann Nachteile beim beim
- 23:50Continuous Deployment, weil gerade wenn du sowas sehr
- 23:54automatisiert machst. Dann ist es natürlich auch
- 23:57irgendwo wichtig, dass du das ist ja das, was du am Anfang
- 24:00auch schon gesagt hast. Deine Testabdeckung muss
- 24:02wahrscheinlich sogar noch höher sein, wenn du nicht noch mal
- 24:05irgendwie auf einer gewissen Stage, manchmal gibt es ja so
- 24:08Stages, die vor der Produktivstage kommen, die
- 24:10nennen sich dann manchmal so. Quality Assurance Stage oder ne
- 24:15Qualitätssicherung Qualitätssicherung genau, also
- 24:18sowas gibt es ja und das braucht man ja vielleicht nicht
- 24:21unbedingt. Kann man machen, muss man aber
- 24:23nicht, aber Fakt ist ist ja es kommt ja direkt auf prot
- 24:26sozusagen und damit hast du ja genau den Punkt, dass im
- 24:30Normalfall, zumindest ist das für mich ne ganz logische Sache,
- 24:34ne höhere Testabdeckung da sein muss oder vielleicht auch nicht
- 24:37ne höhere Testabdeckung, aber man sollte sich mehr Gedanken um
- 24:40seinen ganzen. Seine ganzen Tests drumherum
- 24:43machen, dass sie halt, dass man sich auch wirklich auf die Tests
- 24:45verlassen kann. Ja, ist absolut essentiell
- 24:48dabei, weil wenn jetzt quasi bei jedem zweiten Deployment
- 24:51irgendwas durchrutscht oder so, dann wirst du die Kunden am Ende
- 24:55nicht sehr glücklich stimmen damit.
- 24:56Das muss halt wirklich echt ne saubere Sache sein und ja ne
- 25:00hohe Testabdeckung haben ganz klar was man auch sagen muss was
- 25:05n Nachteil ist oder was einem zumindestens bewusst ist,
- 25:09bewusst sein muss so rum. Ist natürlich, dass du im
- 25:12Verhältnis zum Delivery auch ne komplexere Pipeline hast und
- 25:16Infrastruktur, weil du halt einfach noch mehr
- 25:18automatisierungsschritte hast. Das muss man an der Stelle auch
- 25:21sagen. Also diese Vorteile musst du dir
- 25:25erkaufen durch zusätzliche Arbeit zusätzlichen Aufwand
- 25:28einfach ne diesen Vorteil von automatisches Ausrollen.
- 25:32Also ich mein klar hast du dann wahrscheinlich erstmal ne
- 25:34einmalige Mehrarbeit, die sich hinterher wahrscheinlich gar
- 25:37nicht so also. Du musst ja diese Infrastruktur
- 25:40erst mal aufbauen. Die, die ja dann deutlich
- 25:42komplexer ist. Aber wenn du sie hast, ist ja
- 25:43erst mal gut. Es kann natürlich sein.
- 25:46Du hast mehr Wartung, auch ne, das muss man auch sagen.
- 25:49Also die Wartung wird natürlich durch ne komplexere
- 25:52Infrastruktur auch höher sein, gerade wenn denn mal was da drin
- 25:55ist. Aber trotzdem denke ich auch wie
- 25:58du gerade so schön gesagt hast, dass dieser Aufwand, den du dann
- 26:01initial reinsteckst, dass du das wieder mit Plus hinten raus
- 26:05bekommst, sozusagen. Also, dass du die Zeit, die du
- 26:07dann einsparst. Irgendwann, dass sich das Dolle
- 26:10rechnet, sozusagen ne. Ich hoffe du weißt wie ich das
- 26:14meine, ich hab es glaube ich gerade n bisschen.
- 26:15Komisch. Ausgedrückt, ich finde aber viel
- 26:18essentieller bei dieser ganzen Thematik ist, dass beides
- 26:22natürlich vor und Nachteile hat, aber hat.
- 26:24Aber es gibt für mich keinen klaren Gewinner an der Stelle
- 26:27und das haben wir auch schon n bisschen angeteasert und das
- 26:29möchte ich noch mal explizit jetzt sagen.
- 26:31Es muss halt einfach zu deinem Produkt passen, am Ende auch
- 26:35und. Ins passt in dem Moment zum
- 26:38Produkt, wenn es zu deiner potenziellen Usergruppe passt.
- 26:42Also wenn du auch weißt, wie deine User, was die für n Update
- 26:46verhalten erwarten oder auch gerne hätten.
- 26:48Ja, wie das Stichwort werden Sie bombardiert mit Updates und sind
- 26:52sind genervt oder sind die Updates wirklich so fein
- 26:55granular, dass sie es gar nicht mal unbedingt mitbekommen?
- 26:58In ihrem Daily Business sage ich mal ne, also du hast also zum
- 27:02Beispiel Websites, Web, 123, Websites, Websites, deutsch,
- 27:07Englisch immer hier websites oder also so Web Services,
- 27:10darauf wollte ich eigentlich hinaus, da können sich ja Sachen
- 27:13ändern, die du gar nicht in deinem Daily Business
- 27:15mitbekommst, weil sie dich nicht tangieren und trotzdem sind
- 27:18diese. Updates zum Beispiel im
- 27:19Frontend, da ja. Ich finde halt zum Beispiel,
- 27:22also das ist also das, das bringt es eigentlich ganz gut
- 27:24auf den Punkt, also der das Beispiel mit Webseiten einfach
- 27:27aus dem Grund, weil du. Du im Endeffekt ja nicht.
- 27:30Du musst keinen manuellen Schritt auf deiner Seite
- 27:33durchführen oder wirst eigentlich auch nicht darüber
- 27:36benachrichtigt, ob sich jetzt was ändert.
- 27:38Es passiert einfach und das ist ja der große Vorteil, weil wenn
- 27:41du jetzt zum Beispiel wirklich so n Update angezeigt bekommst
- 27:43und das heißt es gibt ne neue Version hallo ne, da musst du ja
- 27:46hast du ja n paar Schritte, du musst zum Beispiel sagen OK.
- 27:49Dann installieren wir die neue Version dann.
- 27:51Meistens wird es runtergeladen, installiert, du musst noch mal
- 27:54die Anwendung neu starten und so weiter wenn du das natürlich
- 27:57extrem oft machen musst. Es ist natürlich fraglich, ob
- 28:01das so angenehm dann sozusagen immer ist.
- 28:03Ne, aber bei gerade bei Webseiten beispielsweise kannst
- 28:05du das super machen, weil keiner irgendwie kein User diesen
- 28:10Aufwand hat irgendwas damit zu tun, es passiert halt einfach
- 28:13und das ist der Vorteil, aber es ist gut, dass du sagst, also das
- 28:17ist natürlich wirklich die Frage.
- 28:19Wie möchte man das? Also passt es zum Produkt, ne.
- 28:23Genau, weil jetzt nimm mal das Gegenbeispiel wo Delivery dann
- 28:27gut ist. Wenn du jetzt zum Beispiel in
- 28:29deinem eigenen Projekt ne gewisse Toolchain verwendest,
- 28:33oder oder gehen wir mal als Entwickler von deiner IDE aus
- 28:36und du bist in deiner Projektphase wirklich gerade am
- 28:39performen, sag ich mal, du codest die Features runter, hast
- 28:43deine feste Entwicklungsumgebung.
- 28:45Und die ID würde jetzt sagen, ja, aber ich schaue hier die
- 28:48Updates, die automatisch rein. Also es gibt jeden Tag ist mal
- 28:51ein Button woanders, dann ändert sich hier mal eine Farbe, das
- 28:54sind ja alles Kleinigkeiten die dich aber triggern könnten oder
- 28:57vielleicht einfach nur du hast so automatisierte Workflows, die
- 29:01sich dann ändern auf einmal. Also dass du quasi Updates
- 29:04automatisch bekommst ohne irgendwelche, so wie bei der bei
- 29:09der Website ohne irgendwelche Hinweise.
- 29:12Das würde dich ja einschränken und das willst du in dem Moment
- 29:14als User in der Regel nicht, sondern du sagst, ach weißt du,
- 29:17es gibt jetzt mal wieder ein Quartalsupdate, zum Beispiel bei
- 29:21unseren Geliebten Jet Brains IDES und dann weißt du einfach,
- 29:25OK, jetzt ist halt wieder soweit und jetzt kann ich aktiv
- 29:28entscheiden, möchte ich updaten oder nicht, ist gerade ein guter
- 29:30Zeitpunkt mich damit zu beschäftigen oder nicht, aber es
- 29:33wird ja nicht aufgezogen und das sind halt so diese
- 29:35unterschiedlichen Herangehensweisen.
- 29:38Ja, definitiv. Und.
- 29:42Was auf jeden Fall ein guter Punkt ist ist, du kannst ja auch
- 29:47im Endeffekt gucken, wie du deine Infrastruktur am Ende
- 29:50gestaltet, also genau auch auf diesen, auf die auf das Produkt
- 29:55zum Beispiel angepasst. Weil genauso kannst du ja zum
- 29:58Beispiel sagen, Okay, angenommen, du möchtest aber
- 30:02immer den neuesten Stand auch direkt ausrollen, möchtest aber
- 30:05bestimmte Features vielleicht nicht gleich offensichtlich
- 30:08machen, dann hast du zumeist zumindest aber auch das.
- 30:11Techniken, mit denen du arbeiten kannst, wie zum Beispiel
- 30:13sogenannte Feature Flags, die dir im Endeffekt zwar die
- 30:17Anwendung zur Verfügung stellen, die gesamte Anwendung mit allen
- 30:20neuen Features, aber du siehst halt vielleicht 3 oder 4 der
- 30:24neuesten Features nicht. Also das ist halt auch eine
- 30:27Möglichkeit, womit man aber wiederum gucken muss.
- 30:30Hast das wiederum zum Produkt, weil wenn du dafür aber trotzdem
- 30:33zum Beispiel jeden Tag dein was weiß ich dein Schreibprogramm
- 30:37updaten musst, dann ist es natürlich vielleicht für den
- 30:40User auch wieder genau. Also genau diesen Trade auf muss
- 30:42man halt gucken oder sein seine User dann im Endeffekt kennen
- 30:46genauso und das finde ich ist auch ein interessanter Punkt,
- 30:50wenn man jetzt sagt du hast. Ist Delivery beim Delivery
- 30:55kannst du sagen okay manueller Schritt, du released irgendwie
- 30:58was einen festen stand, vielleicht checkst du da
- 31:02vielleicht im Vorfeld noch mal ein bisschen genauer, was da
- 31:05passiert. Kann man das so ausrollen?
- 31:07Ist das jetzt wirklich ich sag mal Fail safe was auch immer
- 31:11beim. Continuous Deployment hast du
- 31:14genau diesen Schritt ja nicht. Die Frage ist ja jetzt, was ist
- 31:17denn wenn du sagst okay ich hau ein neues Feature raus, das geht
- 31:22direkt an alle raus und jetzt hat das einen Fehler so und dann
- 31:26haben was weiß ich wie viele user man dann da draußen hat für
- 31:31seine. Millionen, Millionen Millionen.
- 31:33Oder ein Dutzend. Also du hast ja dann im
- 31:38Endeffekt diesen Fehler an alle deployed am Ende und.
- 31:42Genau. Da ist natürlich dann vielleicht
- 31:44auch die Frage OK, gibt es denn vielleicht Techniken, mit denen
- 31:47man arbeiten kann, dass genau sowas nicht passiert, weil ich
- 31:50sag mal, Fehler kommen ja irgendwie immer, also treten ja
- 31:53immer mal irgendwann auf. Richtig, das ist n guter Punkt,
- 31:56da können wir auch noch drüber sprechen, wenn ich mich halt für
- 32:00dieses also CD, also im Sinne von Deployment entscheide, muss
- 32:06ich 2 Punkte beachten dabei. Der eine Punkt, der ist sehr
- 32:09wichtig und der ist auch allgemeingültig.
- 32:11Deswegen dem als erstes, ich muss mir immer überlegen, wie
- 32:16mein Rollback aussieht, also wenn angenommen es geht was
- 32:19schief, was ist meine Strategie um schnellstmöglich wieder auf
- 32:24den Stand zurückzusetzen der funktioniert hat mal so ein ganz
- 32:27allgemeiner Punkt der essentiell ist, weil wenn ich dann planlos
- 32:31bin und keine Ahnung habe ich dieses Update quasi zurück hole,
- 32:34dann habe ich richtig verloren auf jeden Fall.
- 32:38Das mal als erstes und der zweite Punkt und ich denke da
- 32:42möchtest du jetzt auch drauf hinaus sind verschiedene
- 32:45Deployment Strategien die sich auch so etabliert haben, die man
- 32:49quasi auch in verschiedensten Lehrbüchern findet, weil sie
- 32:51auch einfach gut sind. Da gibt es ja beispielsweise um
- 32:57mal 2 gängige zu nennen, einmal das Blue Green Deployment, was
- 33:03sehr bekannt ist. Das könnten wir mal besprechen.
- 33:06Und was ich auch sehr spannend finde ist der das Canary
- 33:10Deployment oder Canary Releases, weil es halt auch so ne schöne
- 33:14Analogie hat, die können wir auch mal nennen, warum es denn
- 33:17so heißt finde ich halt auch ganz witzig, aber über die
- 33:21beiden würde ich mal noch mal sprechen.
- 33:23Ja aber. Also das mal so noch mal
- 33:25anreißen. Genau.
- 33:26Ich hatte ja eben auch schon mal, also Feature Flags gehören
- 33:29auch in die Richtung, das hat die auch angerissen, aber wie
- 33:32gesagt, Lass uns auf jeden Fall da.
- 33:33Abgehakt. Das ist sehr schön von Gäns sein
- 33:35schon. Genau, aber die beiden nehmen
- 33:37wir jetzt auf jeden Fall noch mal ein bisschen genauer unter
- 33:39die Lupe und ich finde das ganz cool, weil im Endeffekt kann man
- 33:45sich beide so vorstellen, dass genau man.
- 33:49Man sagt Okay, du hast irgendwie einen Fehlertritt auf und dann
- 33:51kann man genau in diesen Fehlerfällen.
- 33:53Wenn irgendwas ist, kann man sagen okay ich, ich möchte
- 33:57irgendwie, wir deployen gerade ein fehlerhaftes System, wir
- 34:01müssen das wieder rückgängig machen und im Endeffekt ist das
- 34:06Blue Green Deployment um das kurz zusammenzufassen, so dass
- 34:10du sagst, du hast eine neue Version und sagst okay Pass auf,
- 34:14jetzt gehe ich auf die neue Version, also zum Beispiel auf
- 34:18die. Die Blue Stage, ich weiß gerade,
- 34:22ich krieg die mal durcheinander. Du gehst von Blue auf Green oder
- 34:25von Green auf Blue. Also du hast eine Blue Stage und
- 34:27du hast eine Green Stage und wenn deine aktuelle Version auf
- 34:29der Blue Stage läuft, dann gehst du auf die Green Stage rüber so
- 34:33und lässt jetzt alle User die Green Stage benutzen und wichtig
- 34:37ist hier das Monitoring was wir vorhin schon angesprochen haben
- 34:40und wenn du da nämlich mitkriegst irgendwas geht
- 34:42schief, zum Beispiel die User können sich nicht mehr auf dein
- 34:45System einloggen oder was auch immer das.
- 34:47Dann musst du das ja irgendwie mitkriegen und dann in diesem
- 34:50Fall, wenn du das mitbekommen hast, kannst du wieder
- 34:52zurückgehen auf das alte System und sagen okay, das war es, wir
- 34:57müssen jetzt noch mal gucken, dass unsere neue Änderung, die
- 35:00hatte irgendwas, das ist blöd und der Canary Release ist ja
- 35:05so, dass du im Endeffekt sagst okay wir shiften den Traffic ein
- 35:10bisschen, das heißt, du sagst zum Beispiel erstmal, du hast
- 35:14neue Features. Oder eine neue Version deiner
- 35:16Software und lässt aber erstmal nur einen Teil der Anwender und
- 35:21Anwenderinnen diesen diese neue Version verwenden.
- 35:24Und wenn du dann aber merkst, oh guck mal hier, die neue Version
- 35:27ist eigentlich gar nicht so schlecht, dann kannst du
- 35:30sozusagen darüber shiften. Wenn du aber merkst, oh keine
- 35:33Ahnung, die 10% der Anwender haben jetzt vielleicht irgendwie
- 35:36einen Fehler, was du wieder Monitor musst.
- 35:39Mitkriegen musst. Dann kannst du wieder
- 35:41zurückgehen und sagen, die neue Version ist nicht so gut.
- 35:43Der Vorteil ist natürlich hier, dass beim Canary Release wenn
- 35:48was schief geht, nicht alle das mitkriegen, sondern halt im
- 35:51Endeffekt eigentlich nur ein kleiner Teil deiner User Gruppe.
- 35:56Weißt du eigentlich warum es Canary.
- 35:57Release heißt, ich habe es mal gehört, aber ich glaube du
- 36:01kannst es besser erklären. Weil ich find das ist ne ne sehr
- 36:05coole Geschichte dabei. Das geht darauf zurück, dass
- 36:10Minenarbeiter in Kohlemin Kanarienvögel mitgenommen haben,
- 36:15weil es im Prinzip die Vögel ne Art Frühwarnsystem für
- 36:20schädliche Gase waren, weil die Zwitschern ja so vor sich hin
- 36:25und haben Spaß. Hoffentlich den Aspekt lassen
- 36:29wir mal aus, wie es dem Vogel dabei ging.
- 36:32Aber im Prinzip war es n Frühwarnsystem, wenn er
- 36:35aufgehört hat zu zwitschern, bis hin, dass er vielleicht sogar
- 36:39von seinem Stock gefallen ist und gar keinen Mucks mehr von
- 36:42sich gegeben hat, weil dann sind die Minenarbeiter auf jeden Fall
- 36:45rausgerannt. Das war n Anzeichen dafür, dass
- 36:47Gase austreten, die du weder sehen noch riechen konntest, im
- 36:52Prinzip aber die tödlich enden können.
- 36:55Und da deswegen haben sie quasi diese Vögel mitgenommen und
- 36:58genauso nutzt du quasi bei dieser Deployment Strategie so
- 37:02ne Art Frühwarnsystem, dass du erstmal dich so vorsichtig
- 37:06hinein tastest, sozusagen ne und guckst läuft es OK, es läuft, es
- 37:11kriegen noch n bisschen mehr user, es läuft immer noch und
- 37:13irgendwann hast du die Zuversicht, wenn du zum Beispiel
- 37:16schon 50% der User umgestellt hast zu sagen, OK, all in jetzt
- 37:19können alle. Ja, aber wenn die Mina weiter
- 37:23rausgelaufen sind. Dann haben die aber die Vögel
- 37:25mitgenommen, oder? Wenn sie noch am LEH waren,
- 37:28hoffe ich, dass sie die Vögel mitgenommen haben, sonst
- 37:31brauchen sie ja auch jedes Mal neue Vögel.
- 37:32Das wäre gar nicht cool. Das rentiert sich nicht.
- 37:35Das rentiert sich nicht. Die armen Vögel.
- 37:37Aber ja, coole Geschichte, auf jeden Fall.
- 37:40Aber im Endeffekt kannst du ja dieses Canary Release auch nicht
- 37:42nur für Fehler nutzen, sondern zum Beispiel auch zu wie nennt
- 37:46sich das zum. Zu Analysen also du kannst ja n
- 37:49neues Feature zum Beispiel deployen und dann erstmal nur ne
- 37:52gewisse Usergruppe an diesen Featuren teilhaben lassen.
- 37:55Also selbst wenn du weißt oder ne sagen wir mal, gehen wir mal
- 37:59davon aus, dass es jetzt keinen Fehler gibt, aber du kannst zum
- 38:02Beispiel 10% deiner User einfach mal das neue Feature testen
- 38:05lassen und auch einfach Rückmeldung kriegen.
- 38:07Und zum Beispiel im Endeffekt auch merken, ob die User dieses
- 38:10Feature in Angriff, also in Anspruch nehmen, in Anspruch
- 38:14nehmen oder halt sagen, Oh, ist ja irgendwie blöd.
- 38:16Also wie gesagt, hier auch trotzdem wieder Monitoring
- 38:19irgendwie, dass du genau diese Informationen wieder
- 38:22zurückspiegeln kannst und damit arbeiten kannst.
- 38:25Aber im Endeffekt dient das ja zu verschiedenen Möglichkeiten,
- 38:28ne, aber das blöde natürlich bei zum Beispiel diesem Blue Green
- 38:31deploymentist du kannst das genauso damit auch machen, nur
- 38:35das blöde ist, wenn du angenommen.
- 38:37Ein Update aus Rollst und alle kriegen das auf einmal und alle
- 38:41finden das wirklich richtig schlimm.
- 38:42Dann kannst du natürlich dadurch vielleicht sogar auch deine
- 38:45Anwendung irgendwie begraben, weil auf einmal die, sagen wir
- 38:48mal, das Vertrauen in dieser Anwendung von allen Usern auf
- 38:51einmal einbricht, also da muss man dann gucken, dass es
- 38:54natürlich für verschiedene wieder für verschiedene
- 38:57Möglichkeiten, auch verschiedene, wie sagt man
- 39:00Release Strategien gibt. Also es gibt ja verschiedene
- 39:03nicht weil. Es gibt das, und das gibt es
- 39:06auch noch, und das ist besser als das.
- 39:07Und meistens hast du ja im Endeffekt immer diese
- 39:09Daseinsberechtigung für die verschiedenen Strategien, die es
- 39:13halt eben gibt. Ja, also bei dem Blue Green hast
- 39:15du natürlich den Vorteil, wenn jetzt auf Blue quasi der ganze
- 39:19Traffic ist, also die alte Version und auf Green deine
- 39:22neue, du hast ja wirklich die komplett parallel liegen.
- 39:26Samt Infrastruktur, was halt auch n Nachteil ist.
- 39:28Das ist sehr teuer am Ende beides, also dass du wirklich ne
- 39:32Duplikation hast, die du dann abänderst ne, aber du hast ja
- 39:37theoretisch die Möglichkeit auch Leute auf, also nicht jetzt von
- 39:41deinen End Usern, aber vielleicht hast du n Test User
- 39:43Kreis, Beta User oder vielleicht aus deinem eigenen Unternehmen
- 39:47Leute die einfach sag ich mal auf die.
- 39:50Grüne Seite gehen, indem sie die richtig adressieren und dann
- 39:54quasi auf die geupdatete Version kommen und das Grün lesen
- 39:58können. Kommen auf die grüne Seite.
- 40:00Genau das geht ja theoretisch, aber wenn du dann sag ich mal
- 40:04den Traffic umlegst, was ja am Ende zum Beispiel wirklich nur
- 40:07ne Umadressierung ist, das ist einfach auf einmal DNS mäßig
- 40:11oder so aufs Richtige, zeigt auf das neue und dann gehen alle
- 40:14dahin, das ist halt der Knackpunkt am Ende ne und da.
- 40:19Kann es halt sein, dass das denn doch nicht so cool ankommt, hast
- 40:22aber den Vorteil, dadurch, dass du ja wirklich beide, also diese
- 40:26Infrastruktur gedoppelt hast, kannst du jederzeit sehr sehr
- 40:30schnell komplett zurückschalten, weil das andere noch exakt so da
- 40:34ist, wie es vorher war. Das heißt Thema Rollback, was
- 40:39ich vorhin angesprochen habe, ist die Strategie recht simpel,
- 40:42du legst quasi wieder einen Schalter um, so gesehen und
- 40:45gehst wieder auf die alte Umgebung, das.
- 40:49Das ist halt da schon ein großer Vorteil, muss man sagen.
- 40:52Allerdings hast du halt hohe Kosten dahinter.
- 40:54Definitiv ja. Und das andere ist halt einfach
- 40:56auch viel Granularer. Also du kannst halt einfach viel
- 41:00genauer dein, sagen wir mal evaluieren, wie zum Beispiel
- 41:08auch deine Anwendung zum Beispiel auf verschiedene, also
- 41:12wie die zum Beispiel skaliert. Also du kannst jetzt zum
- 41:14Beispiel sagen. Angenommen du hättest beim Blue
- 41:17Green Deployment das Problem, dass du sagst, oh, ich habe
- 41:20jetzt irgendwas eingebaut, wo meine ganzen Server unter einer
- 41:23gewissen Last zusammenbrechen, dann kannst du aber theoretisch
- 41:26auch nicht herausfinden, ab welchem Punkt ist es denn
- 41:29vielleicht soweit? Das kannst du beim Canary
- 41:32Release rein theoretisch gut machen, weil du ja rein
- 41:35theoretisch Floating sozusagen an 1020 3040.
- 41:38Wie auch immer viel viel Prozente ausrollen kannst der
- 41:40User, wenn du es möchtest. Vorausgesetzt, du hast so ein
- 41:45gutes Monitoring dahinter, weil bei Canary ist natürlich ein
- 41:50Nachteil, dass das Monitoring sehr komplex ist, weil du
- 41:54einfach beides monitoren muss, weil es parallel existiert auf
- 41:58der gleichen Umgebung. Wenn du jetzt die Infrastruktur
- 42:01bei Blue Green hast, ist alles gedoppelt, das heißt du kannst
- 42:04einzeln die Dinger überwachen, sozusagen sowohl Blue als auch
- 42:08Green und bei Canary hast du natürlich diesen Mix, wenn das
- 42:12natürlich super funktioniert kannst.
- 42:13Ganz klar, dass du es, dieses langsame Ausrollen, dir eine
- 42:17unglaubliche Zuversicht gibt, dass es funktioniert, wenn du
- 42:20denn schrittweise quasi, sage ich mal, die User erhöhst.
- 42:24Aber du hast halt diesen Nachteil, dass das komplexer und
- 42:27aufwendiger wird. Auf jeden Fall das Monitoring.
- 42:29Das ist ja leider oft so, dass wenn du sagst okay du möchtest
- 42:32mehr, sagen wir mal Features reinbringen, dann wird es
- 42:36meistens halt irgendwie auch komplexer.
- 42:38Ne, leider. Leider ist das so und ein Punkt,
- 42:41den man auf jeden Fall auch sagen musste.
- 42:43Den Nachteil haben aber in meinen Augen beide dadurch, dass
- 42:46es immer 2 Versionen gibt, also oder beziehungsweise nicht
- 42:50immer, aber dass man von 2 Versionen spricht, Blue Green
- 42:52sind sie parallel, Canary ist irgendwie so eine Koexistenz
- 42:57sage ich mal, dass ein Paar haben schon die neue Version,
- 42:59paar nicht, je nachdem das Verhältnis shiftet ja dann wie
- 43:04ist denn das so hinsichtlich Infrastruktur auch so Richtung?
- 43:09Datenbanken oder so da, da sehe ich halt auch Probleme.
- 43:12Wenn du sag ich mal so ne Art Migration auch hast, weil du was
- 43:16kritisches oder so Breaking changes mäßig änderst, dann hast
- 43:22du bei Blue Green hast du es zwar parallel, aber wenn sie zum
- 43:24Beispiel auf die gleiche Datenbank am Ende zugreifen oder
- 43:27Third Party mäßig. Hast du da auf jeden Fall auch
- 43:30ne Menge zu beachten? Nicht dass du sagst, oh ich mach
- 43:33n royback, ich geh zurück und hast aber schon irgendwas
- 43:35migriert, was denn gar nicht mehr passt und Blue ist am Ende
- 43:38dann auch zusammengebrochen. Mal so worst Case und das
- 43:41gleiche natürlich auch bei Canary ne, weil da hast du es ja
- 43:44sogar wirklich. Da muss ja beides gleichzeitig
- 43:47da sein, sozusagen. Definitiv.
- 43:49Das ist auch ein sehr, sehr spannendes und interessantes
- 43:52Thema. Würde jetzt wahrscheinlich aber
- 43:53auch den Rahmen sprengen und zwar Datenbank Migration, wenn
- 43:57wir darüber auch mal eine Podcast Folge machen sollen.
- 44:00Ich hoffe, dass der liebe Zuhörer, lieber Zuhörer, du
- 44:03jetzt nicht schreiend ausmachst diese Folge, weil es jetzt das
- 44:05böse Wort Datenbanken gefallen ist.
- 44:08Genau, aber wenn ihr Interesse dazu da ist, dann können wir
- 44:10dazu auch gerne eine Folge machen.
- 44:12Schreibt uns gerne auf unserer Podcast Mail.
- 44:15Genauso könnt ihr uns auch schreiben, was eure
- 44:18favorisierten Release Strategien sind oder ob ihr zum Beispiel
- 44:21mal eine Release Strategie gehört habt, die ja auch noch
- 44:23mal gern thematisiert haben wollt.
- 44:25Immer raus damit finden wir auf jeden Fall super spannend genau,
- 44:29aber hier haben wir jetzt genau diese 2 mal einmal ein bisschen
- 44:31unter die Lupe genommen, ein bisschen genauer und ich würde
- 44:34einfach jetzt auch sagen, ich würde vielleicht noch mal das
- 44:36Ganze ein bisschen zusammenfassen um noch mal
- 44:38zurückzukommen auf Continuous Delivery, Continuous Deployment.
- 44:43Weil im Endeffekt haben wir jetzt gesagt, Okay, es gibt
- 44:45diese beiden Varianten, die genommen werden.
- 44:49Für CD. Kommt halt drauf an, unter
- 44:51welchen Bedingungen, das sollte man auch vielleicht ein bisschen
- 44:54genauer überprüfen, was braucht man eigentlich genau, es ist
- 44:57nicht einfach nur ja, nimm jetzt Continuous Deployment und dann
- 45:02bist du sozusagen ganz. Oben ganz vorne dabei.
- 45:06Sondern es muss halt immer ein bisschen genau, also es muss
- 45:09angepasst werden auf das, was auch wirklich benötigt ist.
- 45:12Und wenn man jetzt zum Beispiel sagt, Okay Continuous Delivery
- 45:15bietet natürlich mehr Flexibilität beziehungsweise
- 45:17Kontrolle darüber, was wann released wird oder
- 45:20veröffentlicht wird und eignet sich halt auch im Endeffekt für
- 45:24Umgebungen, denen Benutzererfahrung sorgfältig
- 45:27gesteuert werden muss. Also wenn du jetzt wirklich
- 45:29sagst, okay, wir wollen jetzt nicht immer gleich immer alles
- 45:32rausballern, sondern zum Beispiel gucken okay, wir haben
- 45:34jetzt ein neues Feature Set, das wird jetzt released und da
- 45:37gucken wir jetzt mal ganz genau, wie das jetzt ankommt so.
- 45:40Und wenn du jetzt aber sagst okay, wir sind aber eher so ein
- 45:42Team, was eine versucht, eine hohe Automatisierung und eine
- 45:46schnelle Veröffentlichung für ganz schnelles Feedback und sehr
- 45:48klein granular halt eben zur Verfügung zu stellen, wenn man
- 45:53also wenn man das machen möchte, dass wenn das das Ziel ist, dann
- 45:56ist natürlich Continuous Deployment sehr gut.
- 45:59Man sollte aber wie gesagt hier auch darauf aufpassen, dass man
- 46:01natürlich eine robust Infrastruktur braucht, um.
- 46:05Und auch meistens eine komplexere Infrastruktur und am
- 46:08besten auch einen höheren Fokus auf die Tests.
- 46:10Also Fokus auf Tests sowieso immer da, aber sogar vielleicht
- 46:14noch ein bisschen mehr. Sehr gut, sehr gut, sehr gut
- 46:18zusammengefasst. Ja würde ich sagen, können wir
- 46:22die Podcast Folge auch beenden oder?
- 46:23Also wir haben glaube ich jetzt alles was wir uns vorgenommen
- 46:26haben heute mal besprochen zu dem Thema, alles weitere würde
- 46:30jetzt den Rahmen sprengen und werden mal noch extra folgen.
- 46:33Im Zuge der Def Ops Reihe. Definitiv also Tino auf jeden
- 46:36Fall danke für diesen netten Talk, mal wieder.
- 46:39Auch dir danke. Und wenn wir noch irgendwas
- 46:41vergessen haben oder dich noch was weiteres gerade in zu diesem
- 46:44Thema interessiert, liebe Zuhörerin, lieber Zuhörer, dann
- 46:47lass es uns wissen und genauso, ob dir diese Podcast Folge oder
- 46:50generell unser Podcast gefällt, lass uns das auch wissen.
- 46:54Kannst du uns über unsere Podcast Mail mitteilen.
- 46:56Vergiss auch nicht eine kleine Bewertung auf der Plattform, auf
- 46:59der du gerade hörst da zu lassen.
- 47:01Einfach mal super einfach mal 5 Sterne da lassen oder was du
- 47:06möchtest. Ansonsten.
- 47:09Dezenter Hinweis, aber. Ansonsten, wenn du irgendwie
- 47:12sagst, der Podcast ist total cool.
- 47:15Ich folg den beiden auch auf Twitch oder auf den anderen
- 47:18Plattformen ist alles in den Shownotes verlinkt.
- 47:20Und du möchtest uns noch n bisschen mehr supporten?
- 47:22Dann hast du die Möglichkeit das über ne kleinen kleinen Spenden
- 47:25ne kleine Spende zu machen, auch die den Link zur Spende findest
- 47:29du auch in den Shownotes und ansonsten würde es uns super
- 47:32freuen, wenn du einfach mal den Podcast an 2 deiner Freundinnen
- 47:36oder Freunde empfiehlst und in dem Sinne würde ich sagen, hören
- 47:39wir uns beim nächsten Mal wieder deine Coding.
- 47:41Buns gemeinsam besser.