Latest / Coding Buddies | Tech & Dev-Mindset / DevOps #5 - Staging: Die Generalprobe für deinen Code
Transcript
- 0:00Das heißt, der End User ist der Endgegner.
- 0:03Genau den gilt es zu bezwingen, ihn zufrieden zu stellen.
- 0:07Es ist noch viel, viel schwieriger, ihn zufrieden zu
- 0:09stellen als zu bezwingen. Coding Buddies Dein Podcast rund
- 0:12um Softwareentwicklung und aktueller Tech News herzlich
- 0:16Willkommen. Halli Hallo und herzlich
- 0:30Willkommen zur neuen Folge vom Coding Buddies Podcast.
- 0:33Es ist wieder soweit, die 2. Folge im Jahr 2025 steht an und
- 0:39damit würde ich sagen, Tino, Ich heiße dich hiermit herzlich
- 0:42willkommen. Wie geht es dir?
- 0:44Ja, also wunderbar geht es mir. Hi Fabi, Grüße dich, was geht
- 0:48ab, was? Geht ab.
- 0:49Ich habe gerade ganz kurz überlegt, welches.
- 0:52Jahr wir haben. Ich weiß nicht, kennst du das,
- 0:56wenn du frisch ins neue Jahr gestartet bist und dir denkst
- 0:58so? Es ist 20 Jahre ja doch ein Jahr
- 1:02mehr als letztes Jahr 20. 44555. Ich hab das früher in der Schule
- 1:07hab ich immer regelmäßig, wenn du n Test oder so im neuen Jahr
- 1:10entstand hab ich immer das falsche Datum draufgeschrieben.
- 1:12Am Anfang musste ich immer wieder wegkillern und dann neu
- 1:16hinschreiben. Wegkillern das ist so n geiler
- 1:18Begriff, so n tintenkiller, ja. Er tötet die Tinte.
- 1:23Ja, die einfach irgendwann. Das schmiert ja irgendwann
- 1:25einfach nur noch rum und sieht super Scheiße aus.
- 1:27Dann also war bei mir immer so, vielleicht muss man die
- 1:29irgendwie pflegen oder so die. Stifte?
- 1:31Keine Ahnung. Aber ich fand die immer fand.
- 1:33Also eigentlich ist es ja sauberes Durchzustreichen und
- 1:36hinzuschreiben, noch mal so ganz akkurat.
- 1:39Ja, also weil das das hat immer so Rumgeschmiert sorry off
- 1:43topic, aber das Triggert nicht, du merkst das ist so n so n
- 1:46Wunder Punkt aus meiner Kindheit.
- 1:49Ja OK, aber ich ich hab ich hab immer du bist kein Linkshänder
- 1:52ne weil ich hab nämlich immer ich hab immer Linkshänder da
- 1:55dachte ich immer so Mensch die Armen weil wenn die mit Tinte
- 1:59geschrieben haben die sind ja dann quasi mal über das
- 2:01Geschriebene sozusagen gleich mit der Hand drüber ja und dann
- 2:04haben die es auch verschmiert, außer dann dass sie dann die
- 2:06Hand so oben gehalten haben. Es gab ja nun mal so
- 2:09verschiedene Techniken, aber das fand ich immer dachte ich mir
- 2:11immer so ey puh Gott sei Dank bin bin ich, also bin ich
- 2:15Rechtshänder, weißt du? Ja, da hab ich tatsächlich noch
- 2:17nie drüber nachgedacht. Nee, mich hat das immer.
- 2:20Ich dachte immer, Mensch, ey, das wird mich jetzt irgendwie
- 2:22nerven. Ja versteh ich, versteh ich oder
- 2:26oder haben die haben die denn immer automatisch so
- 2:28automatisiert gepustet, damit das schneller trocknet?
- 2:31So beim Schreiben weißt du kennst.
- 2:35Du das wenn du n Luftballon aufpustest, dann wird ja
- 2:37schwindelig. Dann immer so n Diktat schreiben
- 2:41pusten und dann hinterher war es klappen.
- 2:43So einen Aufsatz mit 800 Wörtern?
- 2:46Nein, aber das ist echt ein Punkt, da habe ich noch nie
- 2:50drüber nachgedacht, das ist echt stimmt, hast du recht, ziehst du
- 2:53rein, Mann, ziehst du, das ist krass, das ist so, das ist so
- 2:56voll ne Lücke im System ey ja da brauchst du vielleicht so einen
- 2:59kleinen Handkarren weißt du links nach rechts lesen ey
- 3:02klasse stell. Dir mal vor, du hast so einen
- 3:03kleinen Handkarren, da kannst deine Hand drauflegen und dann
- 3:05fährt die immer so weißt du mit so genau über die Schrift
- 3:08drüber, das wäre doch geil. Patent ist angemeldet.
- 3:13Das wär echt krass, aber ist auch n spannendes Thema.
- 3:15Ich hab letztens irgendwann gehört, dass es eigentlich viel
- 3:18mehr Linkshänder gibt als statistisch erfasst oder als
- 3:22Leute die wirklich denken sie sind Linkshänder, aber dass es
- 3:25halt so gesellschaftlich aufgedrückt ist mit Recht zu
- 3:28schreiben beispielsweise, dass eigentlich von der Natur aus
- 3:31viele mit links schreiben würden, fand ich ziemlich krass,
- 3:35aber siehst du, du hast n perfektes Beispiel gebracht, ja.
- 3:40Also dadurch allein schon die die Schriftrichtung, die die sag
- 3:44ich jetzt mal suggeriert halt, dass es besser wäre.
- 3:46Aber es ist halt was soll ich sagen, am Ende schreibt man
- 3:51hinterher doch nur noch mit der Tastatur.
- 3:52Also ich muss ganz ehrlich sagen, ich meine Schrift ist
- 3:55richtig schlimm geworden seitdem ich nur noch an der Tastatur
- 3:58sitze, aber ist doch so ewig denn ne aber es bringt die
- 4:04Softwareentwicklung halt eben mit sich.
- 4:06Ja, ist so. Also lieber zur lieber zur du
- 4:09merkst off topic können wir also kommen wir mal zur Folge
- 4:14beziehungsweise Nein ah noch n bisschen off topic, eine Sache
- 4:17haben wir noch ganz ganz wichtig am Anfang Fabi erzähl mal.
- 4:19Ja, wir wollen uns auf jeden Fall noch mal ganz, ganz
- 4:21herzlich bei euren Spenden bedanken, und zwar zum Beispiel
- 4:25bei Dirk. Vielen, vielen Dank und auch bei
- 4:29Kai Kai hat auch geschrieben, dass er sich für unseren tollen
- 4:32Podcast bedanken möchte und in jeder Folge was Neues dazu lernt
- 4:36und wir ihm mit dem Podcast auch schon richtig geholfen haben.
- 4:39Bei dem Einstieg in die IT Welt und dass wir weiter so machen
- 4:42sollen und Kai vielen Lieben dank auch an dich und wir werden
- 4:45auf jeden Fall weiter so machen. Ja, und dann auch noch bei
- 4:49Franziska. Franziska hatte nämlich das
- 4:52letzte Thema vorgeschlagen, was wir ja letzte Woche tatsächlich
- 4:56behandelt hatten, und zwar das im Poster Syndrom.
- 4:59Franziska noch mal vielen vielen Dank für diesen Themenvorschlag.
- 5:01Das Thema war auch mega spannend, es hat Mega Spaß
- 5:04gemacht darüber zu reden, weil es auch ein ernstes Thema ist.
- 5:06Und vielen Dank für deine Spende.
- 5:08Ja, vielen, vielen Dank und liebe Zürerin lieber zürer, wenn
- 5:11du Lust hast und sagst, Ey, ich finde die beiden auch cool, die
- 5:16möchte ich gerne auch unterstützen, dann kannst du das
- 5:18auch gerne tun. Der Link.
- 5:21Zu der Unterstützung sozusagen ist in den Show Notes.
- 5:25Verlinkt genau so. Jetzt haben wir es fabi, jetzt
- 5:29können wir. Anfangen fahren wir los.
- 5:31Jetzt sind. Die stimmen warm.
- 5:32Jetzt können wir loslegen. Wir starten genau, wir starten
- 5:34in die Folge rein und es gibt geht mal wieder in dieser Folge.
- 5:38Wir wollen die Def Ops Reihe fortführen und zwar geht es also
- 5:42jetzt um eine neue Def Ops Folge und zwar um das Thema Staging,
- 5:47weil. Wir hatten ja jetzt in den
- 5:50letzten beiden Dev Ops folgen ging es ja zum, also ging es ja
- 5:53auch um CI und CD, also Continuous Integration,
- 5:56Continuous Deployment Delivery und da haben wir auch schon ab
- 6:03und an mal über Staging gesprochen und da haben wir
- 6:05gedacht, jetzt wollen wir mal ne Folge über Staging machen um
- 6:09einfach mal zu klären, was ist eigentlich genau staging und
- 6:14also was kann man sich darunter vorstellen.
- 6:17Ne, dieses dieses, dieser große Begriff dahinter.
- 6:20Ja erstmal find ich n super cooles Thema, weil es auch
- 6:25unsere bisherigen Def Ops folgen jetzt irgendwie bündelt und in
- 6:30einen gesamten Kontext bringt. Auch wie du schon meintest, wir
- 6:33haben ja über CI und CD gesprochen, also wir haben es
- 6:36quasi jetzt an dem Punkt geschafft unsere Änderungen zu
- 6:38integrieren. Auch die Tests laufen zu lassen
- 6:41und das Ganze zu delivern beziehungsweise zu deployen.
- 6:45Wenn wenn quasi ne Änderung vorgenommen wurde.
- 6:48Aber die Frage ist, wie sieht jetzt so so n Ablauf aus und wie
- 6:52gestaltet man das strategisch gut und da kommt jetzt auch so
- 6:56das Thema Staging halt dazu um das Ganze irgendwie auch
- 7:00zusammenzufassen. Genau.
- 7:02Und Staging ist für mich persönlich sind das irgendwie so
- 7:062 Sachen. Die jetzt zusammen spielen, aber
- 7:09so gedanklich mal. Einerseits ist es für mich ne
- 7:12Art Methodik, also die in Death Ops verwendet wird, also was
- 7:16strategisches auch und andererseits ist es auch was
- 7:20Greifbares, weil es für mich halt auch diese Umgebung sind,
- 7:25die man sich schafft um zum Beispiel ne gewisse Strategie
- 7:27umzusetzen. Das heißt, du hast halt wirklich
- 7:30was, sozusagen was klar, virtuell, aber was greifbar ist.
- 7:34Und für mich ist es halt auch ne Methodik.
- 7:35Ich weiß nicht wie du das siehst, um das erstmal so
- 7:38voranzustellen. Ja, also gehe ich auf jeden Fall
- 7:41mit. Also wenn man das jetzt erstmal,
- 7:43wenn man jetzt so staging oder so so ne Stage sozusagen sehen
- 7:47möchte, dann ist es im Endeffekt eigentlich ne sagen wir mal ne
- 7:50spezielle Umgebung. Jetzt sagen wir mal innerhalb
- 7:53der Softwareentwicklung. Und zwar ist es eigentlich ne,
- 7:56Na ja ne annähernd reale Produktionsumgebung oder es wird
- 8:00ne Produktionsumgebung simuliert ne und da ist es natürlich so,
- 8:06dass das ist das was du meintest, ne das ist halt ne
- 8:08Methodik, weil du halt sagen kannst OK stages staging das
- 8:12sind so, du kannst unterschiedliche stages dir.
- 8:16Sag ich mal erschaffen. Du kannst sagen, ich nehme die
- 8:18Stage, ich nehme Stage ABC, du kannst es ja selbst benennen,
- 8:21rein theoretisch, da gibt es zwar, ich sag mal gängige
- 8:25Staging Namen, aber an sich ist es eine Methodik und es ist auch
- 8:29irgendwie was festes, so was Greifbares, weil es ja wirklich
- 8:34wie diese Anwendung die du baust ist, die du auch mit der du auch
- 8:39arbeiten kannst und bloß halt eben nicht, dass es wirklich
- 8:42dann im Endeffekt unbedingt die Produktionsumgebung ist, also
- 8:45die Umgebung, die der End User am Ende auch nutzt.
- 8:49Genau das ist nämlich n wichtiger Punkt.
- 8:52Die Umgebung, die der Endanwender am Ende nutzt.
- 8:55Wie du so schön gesagt hast, ist ja so die Finale Stage am Ende
- 8:59genau und du hast irgendwo n Beginn wo deine Änderung
- 9:02sozusagen. Entstehen und dann quasi
- 9:05Staging. Das Prinzip dahinter von Stage
- 9:08zu Stage weitergeleitet werden, bis du am Ende dein Ziel
- 9:12erreicht hast. Und zwar ist an den End User
- 9:15auszurollen und er kann es verwenden.
- 9:17Produktiv, also in deiner Produktionsebene Stage so und
- 9:22ich finde als Analogie woran ich bei diesem Begriff immer denken
- 9:25muss ist so an meine Kindheitstage und noch mal ein
- 9:27bisschen off top so. Super Nintendo Frühjahr, wenn du
- 9:32so ein Spiel hattest und du wolltest das unbedingt
- 9:34durchspielen, was ja am Ende nichts anderes ist.
- 9:36Du fängst am Anfang an und willst irgendwann so das letzte
- 9:38Level erreichen und dann hast du ja mehrere Level, oder?
- 9:42Damals hieß es ja auch so Stage One, Stage Two, gerade in so
- 9:46verschiedenen mir fällt jetzt kein direktes Spiel ein, aber so
- 9:50wo du halt so mehrere Abschnitte hattest quasi und.
- 9:54Das daran muss ich immer denken, dass du halt sagst.
- 9:56Ja OK, die Stage hab ich geschafft, jetzt komm ich zur
- 9:58nächsten und ja, hier auch geschafft und immer weiter bis
- 10:00du dein finales Ziel erreicht hast.
- 10:02Und ich find diese Analogie passt halt in diese def Ops Welt
- 10:05halt auch rein wie weit kriege ich meine Änderung?
- 10:08Ja OK die Tests sind bestanden, ey wir können es da jetzt auf
- 10:11die nächste und auf die nächste Wir gehen ja gleich noch auf die
- 10:14genaueren Stages ein, aber du kannst es halt immer weiter
- 10:17ziehen. Bis es am Ende der Endkunde
- 10:19nutzen kann und zufrieden ist. Genau, und da hatten wir auch
- 10:22zum Beispiel in der Continual, also in der CD Folge.
- 10:25Sozusagen hatten wir auch darüber gesprochen, dass man ja
- 10:30auch wo, wo man hin deliver sozusagen ne, und da kann man
- 10:35jetzt auch differenzieren und sagen, OK, klar, wenn du
- 10:37sozusagen deine Software deliverst ne oder Deployest,
- 10:41dann geht das ja an den End User zum Beispiel, also irgendwann am
- 10:46Ende. Ne, aber du kannst rein
- 10:48theoretisch auch wenn du jetzt zum Beispiel von einer
- 10:50Auslieferung sprichst, rein theoretisch auch auf ne andere
- 10:54Stage ausliefern. Ja, und das wird ja auch so in
- 10:57der Praxis als Best Practice gemacht.
- 10:59Das ist ja nicht nur in der Theorie so, sondern du deliverst
- 11:03ja oft auch Änderungen, zum Beispiel an Stakeholdern, was am
- 11:06Ende aber nicht dein Endkunde ist, sondern vielleicht nur
- 11:10irgendwer aus einem anderen Team, der damit arbeitet oder
- 11:12damit testet, wie auch immer. Aber du hast ja nicht nur die
- 11:16Endkunden oder die End User als Kunden sozusagen.
- 11:19Ja, genau, aber trotzdem würde ich halt auch sagen, dass am
- 11:23Ende sozusagen also prot. Produktiv ne, also produktiv die
- 11:28die Stage sozusagen die der End User am Ende nutzt.
- 11:31Sag ich jetzt mal. Das ist ja irgendwo auch ne
- 11:33Stage, ne. Also manchmal wird halt gesagt,
- 11:36alles was vor produktiv kommt sind stages oder das Staging und
- 11:40produktiv ist nicht mehr, das ist keine Stage, würde ich jetzt
- 11:44aber schon so sehen, dass ja das was der End User nutzt, die
- 11:48produktive Anwendung, also die Prot.
- 11:50Stage ist, dann wirklich quasi auch eine Stage, das heißt rein
- 11:54theoretisch die kleinste Möglichkeit vom Staging ist.
- 11:57Du hast sozusagen deine Integration, deine Tests laufen
- 12:01und du lieferst sozusagen deinen Artefakte Anwendung.
- 12:05Deine neuen Änderungen, deine neuen Features genau direkt
- 12:07sozusagen auf die Produktivstage.
- 12:08Ne, so ist für mich aber auch ne Stage OK, also da da bist du
- 12:13nicht alleine. Ich für mich ist das auch immer
- 12:16so die Finale Stage am Ende genau.
- 12:19So aber wenn wir jetzt gucken, was ist jetzt eigentlich, also
- 12:21man kann jetzt sagen, okay, es gibt stages, man, man hat jetzt
- 12:24verschiedene Stages, vielleicht bevor man zur Prot Stage kommt,
- 12:29klingt ja erstmal alles ein bisschen so okay, warum macht
- 12:32man das was, was soll das eigentlich und im groben und
- 12:34ganzen geht es ja darum, dass man, machen wir mal ein fiktives
- 12:38Beispiel, wir haben unsere Prot Stage, die wir gerade
- 12:40beschrieben haben, und wir haben noch irgendeine Stage davor.
- 12:45Ne sagen wir mal unsere Stage X erstmal ne und diese und diese
- 12:52Stage x ist jetzt dafür da, dass man halt eine
- 12:55Produktionsumgebung simuliert, also die trotz Stage simuliert,
- 12:59also möglichst versucht, versucht reale Bedingungen oder
- 13:03realitätsnahe Bedingungen zu schaffen, so wie der End User
- 13:06sie auch eigentlich hätte und auf dieser Stage hat man dann im
- 13:10Endeffekt die Möglichkeit Fehler zu finden.
- 13:13Beim Entwickeln oder bestimmte Tests werden darauf ausgeführt
- 13:19oder irgendwelche externen Tester sag ich jetzt mal testen
- 13:24etwas auf dir oder ne du hast halt irgendwie etwas was du
- 13:27darauf prüfen kannst, hast aber nicht sozusagen den Einfluss auf
- 13:33die Daten, die du dann zum Beispiel wirklich also
- 13:35angenommen du hast weiß nicht tausende von End Usern.
- 13:39Und du hast irgendeine Datenbank, wo irgendwelche Daten
- 13:41drin stehen und irgendwas geht auf.
- 13:43Der Test Stage Chief rein theoretisch was alle user Daten
- 13:47kaputt machen würde, dann hast du genau die Möglichkeit sowas
- 13:50im Vorfeld zu testen bevor das dann wirklich in beim End User
- 13:55bei der bei der echten Anwendung auftritt und irgendein
- 13:57schwerwiegendes Problem stattfindet.
- 13:59So und genau dafür ist dieses dieses Staging da, dass man halt
- 14:03genau zum Beispiel bei einer Web App oder so ne, dass du zum
- 14:07Beispiel sagst OK. Funktionieren irgendwelche API
- 14:10Calls zu anderen Systemen? Funktionieren Datenbankzugriffe
- 14:13so wie sie sollen und so weiter und sofort ne auch Stichwort
- 14:18datenbankmigration wenn du wirklich sagst okay man muss
- 14:22irgendwie Daten migrieren, dass das auch alles ordentlich
- 14:27vonstatten geht datenbankmigration Liebe zürin
- 14:29lieber zürer, wenn es dich interessiert, dann können wir
- 14:32dazu auch noch mal eine Folge machen, ist glaube ich jetzt
- 14:33würde das systemisch sprechen. Da kannst du 1000 folgen zu
- 14:37machen. Ich finde, ein wichtiger Punkt
- 14:40dabei ist oder ein großer Vorteil, der jetzt da schon
- 14:44durchgeschimmert ist, ist halt, dass du mit Hilfe einer weiteren
- 14:47Stage dein Risiko extrem minimieren kannst, weil du halt
- 14:52deine produktive Umgebung, wo tagtäglich Kunden mit Arbeiten,
- 14:56nicht an fest an der Stelle, das heißt, du hast Änderungen,
- 15:00vielleicht neue Features, irgendwelche Abänderungen, die.
- 15:04Wirst du halt erstmal dann testen auf einer gesonderten
- 15:08Stage, ohne dass du deine eigentliche Umgebung
- 15:10beeinflusst. Und das ist halt ein sehr, sehr
- 15:12entscheidender Faktor dabei, wie du schon meinst, wenn da
- 15:15irgendwie zum Beispiel ne Datenbank Migration schief
- 15:18läuft, dass du das halt nicht auf echten Daten machst, einfach
- 15:22weil wenn dann das Telefon klingelt, weil alle Kunden
- 15:25anrufen. Hey, der Service funktioniert
- 15:26nicht mehr oder ich kann mich nicht mehr einloggen oder was
- 15:29auch immer dann passiert. Das ist ja so der absolute Worst
- 15:32Case und damit kannst du das Risiko extrem minimieren, indem
- 15:35du das Halt auf einer gesonderten Stage auf der Stage
- 15:38X, wie du so schön gesagt hast. Das ist total mysteriös, keiner
- 15:40weiß, was da abgeht, das da halt im Vorfeld überprüfst einfach
- 15:48und sagen wir mal so so ne Stage X wird ja oft QR Stage genannt
- 15:55für Qualitätssicherung, Quality Insurance und.
- 16:00Das ist halt genau dafür da, um vielleicht auch einfach
- 16:04erweiterte Tests laufen zu lassen, die du jetzt nicht jedes
- 16:07Mal bei jeder Änderung in der Integration laufen lassen
- 16:09möchtest, wo einfach halt noch mehr überprüft wird am Ende,
- 16:13weil das Halt, wie du so schön meintest, so nah wie möglich an
- 16:17die Realität herangeht. Diese Stage an die produktive
- 16:21Ebene und man so sehr realitätsnah auch testen kann
- 16:24und. Genau.
- 16:25Also im Normalfall hast du halt, wenn du jetzt, sagen wir mal, du
- 16:28hast irgendwelche Unit Tests oder du hast zum Beispiel
- 16:30irgendwelche Systemtests, die laufen automatisiert im Vorfeld,
- 16:34ob du überhaupt guckst, ob dein Code integriert wird, dann bist
- 16:37du ja an diesem an dieser Stelle, wo dein Code getestet
- 16:40wird. Das sind aber diese wirklich
- 16:42sehr automatisierten Tests und da hast du meistens ja
- 16:46beispielsweise auch wenn du externe Services hast, es das
- 16:49wird ja alles weg gemockt und da, da nutzt du ja nicht
- 16:53wirklich. Echte externe Services, die du
- 16:56vielleicht irgendwie angebunden hast in der Anwendung und das
- 16:58ist auf jeden Fall auch ein krasser Unterschied von so sage
- 17:01ich jetzt mal reinen Testfällen, die irgendwie automatisiert
- 17:05laufen und wirklich solchen Stages.
- 17:06Also das sind wirklich eine Stage, ist wirklich eine, die
- 17:09die Anwendung, so wie sie da ist und du kannst damit arbeiten,
- 17:14rein theoretisch und ich finde es ganz gut, dass Du
- 17:17angesprochen hast, zum Beispiel eine QR Stage, das ist auch eine
- 17:20Stage, die ich. Oft kenne die mir oft, sag ich
- 17:24mal, auf die mir oft begegnet ist, genauso wie zum Beispiel ne
- 17:27Death Stage Development auch n sehr gutes Beispiel und so Prot
- 17:32hatten wir eh schon genannt. Also ich kenn also ne Death
- 17:36Stage kenn ich zum Beispiel, dass man einfach wirklich diese
- 17:38Anwendung aufbaut und als developer Team kannst du auf
- 17:42dieser Stage machen was du möchtest.
- 17:44Ne, also du hast wirklich freie. Freie Spielwiese kannst du n
- 17:49bisschen rumprobieren, wenn du selber auch mal n bisschen was
- 17:52machen möchtest. Ne QR Stage ist dann meistens
- 17:56schon n bisschen weiter, dass du halt jetzt gar nicht so als
- 17:59developer Team sag ich jetzt mal darauf rumspielst, sondern dass
- 18:03es wirklich wie du meintest ne quality Insurance.
- 18:05Da werden dann bestimmte. Qualitätsmerkmale,
- 18:09Sicherheitsaspekte gecheckt und um dann zu gucken, OK, läuft das
- 18:14jetzt und dann können wir das Ganze auch weiter auf die
- 18:17Produktivstage packen. Ja, ich finde es ganz
- 18:22interessant mit der. Death Stage Weil die ist auch
- 18:26sehr wichtig, gerade wenn du jetzt wie du meintest im
- 18:29Entwicklerteam arbeitest, weil dieses Geradlinige, was wir am
- 18:33Anfang meinen so ne minimal so n minimalstaging ist.
- 18:36Ich hab n Entwickler er entwickelt was und er ist sich
- 18:40sicher, dass das funktioniert, so sicher wie man sich sein kann
- 18:43und es wird halt direkt auf prod geändert und das ist so eine
- 18:47Stage dann am Ende ne so dann haben wir gesagt OK es gibt so
- 18:50ne. QR Stage also ich zieh das jetzt
- 18:53mal wohlgemerkt n bisschen von hinten auf, weil ich find, dass
- 18:55der Gedankengang ganz interessant ist dabei.
- 18:57Wenn ich jetzt aber sage, ich möchte halt nicht meine
- 19:00produktive Ebene sofort abändern, weil ich hab jetzt
- 19:02wirklich schon n paar Kunden mit meinem neuen Produkt zum
- 19:04Beispiel ja sei es ne Website, ne App, whatever.
- 19:09Ich möchte halt die nicht vergraulen und mein neues
- 19:11Feature bin ich mir nicht sicher.
- 19:12Das mach ich jetzt erst mal auf so ne QR Stage und lass das
- 19:15vielleicht mit n paar Test Usern oder so ausprobieren.
- 19:18Wär auch Vadide, dann hast du halt diese zweite Ebene schon
- 19:21mal und bringst halt mehr Sicherheit rein minimierst das
- 19:24Risiko wie gesagt wenn ich jetzt aber mein Produkt so wächst,
- 19:28dass ich es alleine gar nicht mehr bewältigen kann und ich
- 19:30jetzt mehrere Entwickler hab. Diese Death Stage.
- 19:32Unfassbar viel Sinn, weil wie willst du es sonst noch managen,
- 19:35wer jetzt was auf die QR Stage deployed und wer nicht und dann
- 19:39hast du halt diese Spielwiese wie du es genannt hast.
- 19:41Weil so kenn ich es auch, dass man da wenig Einschränkungen
- 19:45hat. Klar, du hast immer noch gewisse
- 19:46Richtlinien, vielleicht auch ja keine Ahnung, sagen wir mal
- 19:52irgendwelche Bedingungen an die du geknüpft bist.
- 19:55Auch vielleicht Tests die da laufen müssen bevor irgendwas
- 19:57reinkommt, was auch immer. Aber halt nie im vollen Umfang,
- 20:01sondern du bist da immer frei auszuprobieren, Sachen ändern zu
- 20:04können und tust niemandem weh damit.
- 20:07Also der maximale Ärger, der entstehen kann, ist, dass ein
- 20:10eine Entwicklerkollegin oder ein Kollege dich anruft und sagt,
- 20:13Ey, so was ist denn hier los, gerade den neuen Def stand
- 20:16gezogen, was geht denn da ab, weißt du, das ist so der
- 20:19maximale Zorn, den du dir denn eigentlich aufheisen kannst.
- 20:23Und dafür ist das halt super sinnvoll um auch so Teams zu
- 20:25organisieren und dann haben wir ja am Ende. 3 Stages wenn ich
- 20:30mich jetzt nicht verzählt hab, ne, also du hast diese def
- 20:32Stage, von da aus gehst du in eine QR Stage und wenn alles gut
- 20:35ist läuft kommt es dann in die Prot Stage und das ist für mich
- 20:38so ne sinnvolle einfache Pipeline am Ende gesamtheitlich
- 20:43genau. Also das Ding ist.
- 20:45Du kannst natürlich auch, das ist jetzt noch mal der Punkt,
- 20:48den du meintest, das ist ja. Es ist ja jetzt nicht
- 20:51festgeschrieben, dass du sagst, es ist n Konzept ne.
- 20:53Also es ist jetzt nicht festgeschrieben, dass du sagst
- 20:55es muss jetzt ne def stage, ne QR Stage, ne prod stage sein.
- 20:57Es kann halt aber auch beispielsweise du kannst halt
- 21:00auch noch ne sowas wie ne user acceptance ebene reinbauen, dass
- 21:04du wirklich auch sag ich mal ausgewählte End User zum
- 21:07Beispiel nimmst um halt eben die UI damit zu testen oder was auch
- 21:11immer, die aber unabhängig von den anderen Stages sozusagen
- 21:15läuft, weil unabhängig um das noch mal zu sagen, weil ich kenn
- 21:19das beispielsweise so. Also wenn ich jetzt von dem DEF
- 21:22QA Prot Stage Prinzip ausgehe, dann hab ich also damit hab ich
- 21:26auch schon ne ganze Zeit lang gearbeitet und da war es dann
- 21:30beispielsweise so. Also ne du implementierst
- 21:32irgendwas, hast jetzt irgendwie n feature ne feature 1 sagen wir
- 21:35mal du willst irgendwie auf prot willst du 3 Features packen?
- 21:40Und sagst jetzt Feature 1 ist fertig, pack ich schon mal auf
- 21:43dev ne und das geht dann automatisch auf Dev und QA,
- 21:46musst aber dann noch quasi nach QA muss erstmal noch mal das
- 21:50gecheckt werden abgenommen werden ob das so funktioniert
- 21:52von irgendjemandem was auch immer und erst dann darf das
- 21:55dann auf prot und vielleicht aber auch erst in einem gewissen
- 21:58Batch, dass du sagst OK wirklich erst 3 Features diese 3 Features
- 22:01sollen zusammen deployed werden auf prot.
- 22:04Ne das ist halt nicht gesagt wird OK feature 1 und.
- 22:09Ist unabhängig von Feature 2 und 3 ne, sondern feature 1
- 22:12funktioniert nur mit Feature 2 und 3 und das muss im Paket hin
- 22:16ne so also nur mal so von der von der von der Abfolge, dass
- 22:20man dann halt sagen kann, OK ich kann erstmal feature 1 sozusagen
- 22:24integrieren, deployen bis QA feature 2 und 3.
- 22:28Das wird dann meinetwegen nach und nach abgenommen und
- 22:30irgendwann kommt der Punkt wo man sagt OK jetzt kommt dieses
- 22:33Paket sozusagen auch an den End User raus, beispielsweise ne.
- 22:36So. Da sind wir auch beim Thema
- 22:38Releasecyclin wieder ne, weil nicht jedes Produkt möchte jede
- 22:42Woche geupdatet werden. Also nicht jeder Kunde für
- 22:45gewisse Produkte möchte jede Woche n Update haben zum
- 22:48Beispiel oder jedes kleine Feature einzeln ausgerollt
- 22:50haben. Genau.
- 22:51Ja, ganz klar. Und was auch noch dazu ist, also
- 22:55was auch noch wichtig finde ich ist.
- 22:57Um sich das noch mal vorzustellen, wenn man jetzt
- 22:59sagen kann, OK, aber warum brauche ich denn jetzt ne Death
- 23:01stage und ne QR Stage? Prot macht ja schon Sinn, weil
- 23:05das muss doch mal der End User nutzen, aber wieso zum Beispiel
- 23:08diese beiden? Also erstmal hat hab ich auch
- 23:11schon erlebt, dass man gar keine QR Stage hatte oder gar keine
- 23:14Death Stage, weil man einfach auf der QR Stage arbeiten konnte
- 23:17wie auf der Death Stage und dann hatte ich aber mal n Projekt,
- 23:20dass man irgendwann gesagt hat na ja, diese Death Stage QR
- 23:24Stage, ich weiß gar nicht mehr wie wir die genannt haben, weder
- 23:26noch. Aber die musste noch mal
- 23:28aufgesplittet werden, weil dann nämlich irgendwann die
- 23:32Anforderung kam, dass man zum Beispiel, dass, dass bestimmte
- 23:36Leute, die auf der QR Stage etwas testen, abnehmen wollen,
- 23:39was auch immer ne dieses Feature checken wollen, dass sie gesagt
- 23:44haben, OK, ich hab jetzt aber n user da und ich möchte gern
- 23:46diesen User benutzen und ich möchte mir den nicht jedes Mal
- 23:49wieder anlegen. Ich möchte mir auch bestimmte
- 23:51Daten aufbauen und die Daten sollen für mich weiterhin da
- 23:54sein. Und wir haben aber gesagt, OK,
- 23:56aber als Def Team müssen wir immer in der Lage sein, auch mal
- 24:00zu sagen, OK, wir clearen komplett die Datenbank und
- 24:02machen einfach noch mal von von von reinem Tisch.
- 24:06Ne, wollen wir noch mal irgendwie was testen und da war
- 24:10es dann so, dass du halt dann diesen diesen Konflikt hast und
- 24:12sagst, OK, die einen sagen wir wollen aber nicht, dass die
- 24:15Datenbank immer abgeräumt wird, weil wir haben da ne Riesen die
- 24:18riesen Datenstruktur. Konstrukt uns aufgebaut in der
- 24:22Datenbank und das soll nicht jede Woche gelehrt werden und
- 24:25wir haben aber gesagt, wir müssen, wann wir das wollen,
- 24:28halt die Datenbank lernen können, dass sie wirklich mal
- 24:30platt ist. Und das ist zum Beispiel so n
- 24:32Unterschied ne hier auch wieder wichtig, dass man halt eben die
- 24:34Datenbasis trennt. Also du hast dann quasi für jede
- 24:36Stage auch wirklich eine Datenbank, ne, also die wird
- 24:39nicht gemixt mit den End Usern und QA Usern und die Developer
- 24:43und so weiter. Und das ist zum Beispiel, finde
- 24:46ich, ein sehr, sehr wichtiger Punkt beim Staging auch, dass du
- 24:49halt sagen kannst, ey, auf der def Stage kann das def Team
- 24:52machen was es möchte und dann gibt es halt vielleicht noch
- 24:55diese QR Stage und da kann man dann vielleicht nicht mehr
- 24:57machen was man möchte, aber andere können da ihre Sachen
- 25:01drauf erledigen. So ne, das ist noch mal finde
- 25:04ich war für mich auf jeden Fall finde ich es ein wichtiger Punkt
- 25:07an der Stelle, wieso zum Beispiel man eventuell eine Def
- 25:09Stage und eine QR Stage hat. Und du hast ja auch so schön
- 25:14erklärt, dass es dabei ja gar nicht bleiben muss, sondern dass
- 25:16es dann Projekt 123 Projektspezifisch ein
- 25:21schwieriges Wort, auch spezialstages oder weitere
- 25:26Stages geben kann. Einfach ne, also zum Beispiel
- 25:29wenn man sagt, diese Death Stage ist schon sehr.
- 25:34Freilebig also man kann viel machen da ne.
- 25:36Man kann sich seine Umgebung schaffen wie man möchte, aber
- 25:39vielleicht auch nicht in jedem Maße, weil ja wieder das ganze
- 25:42dev team da drauf arbeitet, sodass es auch oft so n Begriff
- 25:47von Sandbox gibt, dass es so ne Sandbox Stage gibt, wo halt
- 25:51wirklich mach was du willst. Jetzt probier aus, überleg dir
- 25:55vielleicht auch Features da drin ja vielleicht, also weißt du,
- 25:58dass man einfach so wirklich so n so n so ne Spielwiese hat, das
- 26:01ist dann wirklich ne Spielwiese. Also.
- 26:04Das kenne ich noch, habe ich jetzt selbst nie gehabt in
- 26:08Projekten, dass es ein Sandbox Stage gab, aber ist es gängig,
- 26:14sage ich mal, begegnet einem so und aber eine Sache, die ich
- 26:18noch super spannend finde ist, da können wir auch mal drüber
- 26:21reden, weil das haben wir in der letzten Def Ops Folge angerissen
- 26:25bei Deployment Strategien und zwar hatten wir da über so AB.
- 26:32Deployment oder also Blue Green oder Canary Releases gesprochen
- 26:38und das sind Strategien, die meistens eine weitere Stage
- 26:45erfordern. Wir können das ganze ja mal an
- 26:49ja such dir raus, Blue Green oder Canary Release, woran
- 26:53möchten wir das erklären? Wir können das gerne.
- 26:56An Blue Green machen. Ich glaube, das ist relativ
- 26:58einfach, weil du kannst dir vorstellen, du gehst einen Weg
- 27:00und hast dann quasi 2 mögliche 2 Türen wo du durchgehen kannst,
- 27:03sozusagen die blaue oder die Grüne.
- 27:06Oder wie war das bei Matrix mit den Pillen?
- 27:08Na ja, gut, ist ja auch egal, aber ja genau du hast im Prinzip
- 27:14die gleiche Stage, sie ist nicht identisch logischerweise, aber
- 27:18sie sind gleich aufgebaut und. Das eine ist deine
- 27:22Produktivumgebung, die live ist, wo die Nutzer drauf arbeiten.
- 27:27Das ist jetzt Blue oder Green, ich weiß immer nicht, ich
- 27:29verwechsle immer die Farben, ist das Blue oder Green, ist es
- 27:32einmal. So ist einfach so A deswegen A
- 27:34und b. Sagen wir jetzt einfach Blue.
- 27:37Wenn nicht, ist es Green, liebe Zuhörer, dann tut es mir leid,
- 27:40aber das Prinzip ist das gleiche, egal welche Farbe.
- 27:43Und auf der. Anderen Farbe aber.
- 27:46Hast du quasi deine Änderung drauf, aber es ist trotzdem im
- 27:50Prinzip die gleiche Stage, nur halt mit dieser Änderung schon.
- 27:55Und wenn du dann siehst, dass die funktioniert, kannst du halt
- 28:00eine 1 zu 1 Umschaltung machen, also dann Switch du einfach von
- 28:03A auf b von Blue of Green oder umgekehrt, je nachdem ob es dann
- 28:07wirklich erfolgreich war oder nicht und kannst halt super
- 28:09schnell agieren, weil einfach 2 Parallelwelten existieren vom
- 28:14gleichen und. Und das ist halt eine sehr coole
- 28:17Deployment Strategie, weil wenn du gehen wir jetzt noch mal die
- 28:21Stages durch. Du hast deine
- 28:22Qualitätssicherung, du bist ja eigentlich sehr sehr sicher,
- 28:24dass das funktioniert, aber du kannst dir nie zu 100% sicher
- 28:28sein, weil es nie identisch sein kann wie deine Produktumgebung
- 28:32das ist auch ein wichtiger Punkt am Ende, du kannst versuchen so
- 28:37nah wie möglich daran zu kommen, selbst wenn du alles hört
- 28:41partyanbindung. Die also echt hast und von mir
- 28:45aus auch die Kosten bezahlst für irgendwelche Anbindungen, weil
- 28:49das ist ja auch alles sehr viel mit viel Geld verbunden
- 28:51irgendwann. Selbst wenn du das alles machst.
- 28:53Du wirst nicht dieses echte Datenvolumen simulieren können
- 28:58oder vielleicht von der Menge her, aber es ist nicht das
- 29:00gleiche. Ich hoffe ich kann das jetzt
- 29:02erklären, weil die echten Kunden sind auf deiner Prodstage, das
- 29:06heißt, das ist die echte Datenbank mit den echten
- 29:08Nutzerverhalten auch, also da agieren ja.
- 29:11Die Nutzer in echt drauf und das kriegst du halt niemals mit
- 29:15Simulation abgebildet. Das heißt du hast immer nen
- 29:17Restrisiko, dass irgendwas noch schief gehen kann und da ist
- 29:21dieses AB Ding dann am Ende auch ziemlich cool, weil du schaltest
- 29:24jetzt einfach auf B auf Blue oder Green um auf die andere
- 29:27Farbe und lässt es laufen und sobald irgendwas schief läuft.
- 29:32Hast du immer noch deine Unangefasste alte Umgebung und
- 29:35schaltest es einfach Instant wieder zurück?
- 29:37Die halt. Funktioniert hat ne genau.
- 29:39Ja, das heißt. Im Best Case werden nur n paar
- 29:43User merken, dass was schief läuft.
- 29:45Und dann schaltest du es zurück. Ne, die meisten merken davon gar
- 29:48nichts. Das funktioniert aber nur mit
- 29:50einem sehr sehr guten Monitoring und das ist ne weitergehende
- 29:53Folge in der Def Ops Reihe, da kommen wir auch noch zurück, das
- 29:56ist ja auch n sehr spannendes. Thema also, um noch mal ganz.
- 29:58Ruhig einzugrätschen bei dir ne, weil du ja meintest es ist nicht
- 30:02die gleiche Umgebung, also das Verhalten der Umgebung wie Leute
- 30:06damit umgehen, darauf arbeiten ne zu welchen Zeiten.
- 30:10Vielleicht kann man zwar versuchen wie du meintest zu
- 30:12simulieren, es ist aber du kommst halt.
- 30:14Im Normalfall nie genau ran, weil du ja auch gar nicht genau
- 30:17her willst. Eigentlich kannst du alles was
- 30:18passiert oder so kannst. Du natürlich auch simulieren sag
- 30:21ich mal ne, aber zum. Beispiel die Infrastruktur.
- 30:24Ne, also wirklich so wie die Stage aufgebaut ist ne, also was
- 30:27für ne Datenbank, was für infrastrukturkomponenten du am
- 30:30Ende sozusagen zusammenbastelst das ist ja schon das gleiche ne
- 30:35oder kann das gleiche sein beziehungsweise kann man dann
- 30:39auch wieder gucken. OK brauche ich denn für zum
- 30:41Beispiel ne dev stage genauso ne hohe?
- 30:44Kapazität also sagen wir mal ne hohe Rechenleistung, ne oder was
- 30:48weiß ich für n krassen Server genauso wie für die Protzstage
- 30:51wahrscheinlich nicht, also wird da schon mal n kleiner
- 30:53Unterschied eventuell sein, wenn man Kosten optimieren möchte und
- 30:56das sind halt die Sachen wo sie sich dann meistens eigentlich
- 30:59schon unterscheiden, oder du greifst halt tief in die Tasche
- 31:01unterm Steppen. Genau, es ist halt mit enormen
- 31:05Kostenobern verbunden. Also du hast natürlich recht,
- 31:07also hier noch mal ganz klar der Hinweis da drauf, du schaffst es
- 31:11diese Umgebung so. Gleich zu gestalten, dass im
- 31:15Prinzip nachher nur eine URL sich unterscheidet, also wo
- 31:18zeigt sie hin oder wo? Also was zeigt auf diese
- 31:22Umgebung, sage ich mal und halt, dass dieses Nutzerverhalten
- 31:26niemals das echte ist. Diesen Unterschied hast du am
- 31:29Ende noch. Ansonsten Infrastruktur kannst
- 31:32du, wenn du das Geld in die Hand nimmst, komplett gleich machen,
- 31:34auf jeden Fall. Was man natürlich noch dazu
- 31:38sagen. Also.
- 31:39Was man noch dazu sagen kann ist, dass du ja zum Beispiel,
- 31:41wenn du wirklich sagst, du hast eine QR Stage und Du hast
- 31:44externe Services, mit denen du arbeitest, also zum Beispiel
- 31:46über apis oder so, kannst ja auch apis ansprechen aus deiner
- 31:50Anwendung heraus, dass du andere Systeme anfragst.
- 31:52Wie wird zum Beispiel auch schon mal bei einer Essens bestell App
- 31:56oder so, da hast du ja wahrscheinlich dann auch apis,
- 31:59um sozusagen an den entsprechenden Restaurants zu
- 32:01anzufragen, welche Angebote habe ich denn da überhaupt und?
- 32:07Damit man dann zum Beispiel sowas eben halt auch in der QR
- 32:11Stage zum Beispiel vielleicht nicht auf der Prot Stage
- 32:16sozusagen, also wirklich auf den echten API Schnittstellen von
- 32:18den Restaurants arbeitet und die vielleicht bei einer zu hohen
- 32:22Last oder was auch immer lahmlegt, gibt es meistens halt
- 32:25eben auch. Qr Stages für solche API
- 32:29Schnittstellen also, die dann externe Services anbieten.
- 32:31Also angenommen sowas gibt es, sollte man diese auch nutzen und
- 32:34dann zum Beispiel für irgendeinen Hinweis für
- 32:35irgendeine Test Stage oder Death Stage oder so jetzt nicht die QR
- 32:39Stage die die die Protz Stage von anderen apis anbinden, das
- 32:42wäre natürlich blöd und das ist auf jeden Fall auch eine Sache
- 32:45die natürlich an der Stelle wichtig ist, dass man auch sagt
- 32:48Okay auch hier würde sich dann logischerweise die Protz Stage
- 32:52von den anderen Stages unterscheiden.
- 32:56Da kann man auch ein. Ganz cooles Beispiel bringen
- 32:58also jetzt kein Ex. Also genaues, aber nur mal ein
- 33:01Gedankenspiel. Ich bin ein Drittanbieter an zum
- 33:04Beispiel eine API und habe da Credits, ist jetzt nicht
- 33:09unüblich, dass quasi so eine Art Abo Modell mit Credits dahinter
- 33:13ist und ich kann am Tag so und so viel Credits verbrauchen und
- 33:15jeder Request verbraucht dann Credits.
- 33:19So und. Die muss ich mir aber
- 33:20eigentlich, weil es kalkuliert ist, für meine Produktivumgebung
- 33:23aufsparen. Und jetzt bind ich das aber in
- 33:27meiner QR Stage zum Beispiel an, weil ich mir sage, ja ne, will
- 33:30ich jetzt aber wirklich mit den echten apis testen und haut dann
- 33:35Fehler rein und statt ein Request gehen 1000 raus und ich
- 33:37hab alle meine Credits verbraucht im.
- 33:39Worst case. Sogar wird das automatisch
- 33:42erneuert und ich hab ne riesen Rechnung erzeugt.
- 33:44Also das ist nur mal so n kleines Warnbeispiel und sowas
- 33:47passiert, das ist nicht aus den Haaren herbeigezogen oder wie
- 33:51man sagt keine Ahnung, ich glaub das war sogar richtig.
- 33:54Das war wichtig. Oder sowas passiert.
- 33:57Und das passiert dann aber auch nur einmal, weil das Halt
- 33:59wirklich mit Kosten verbunden ist.
- 34:00Und dann lernt man es zu schätzen zu sagen, ey, wir haben
- 34:04jetzt ne Dummy Anbindung oder so.
- 34:07Ja find ich auf jeden Fall sehr, sehr wichtig, dass du es noch
- 34:09mal sagst. Geht ja auch genauso wie mit
- 34:11irgendwelchen Raid Limits oder sowas.
- 34:13Ne wenn du zum Beispiel am Tag n Raid Limit hast oder was auch
- 34:15immer, was ich noch zu den Spezialstages wie du sie so
- 34:19schön genannt hast sagen würde ist, dass.
- 34:22Man natürlich, wenn du so verschiedene Stages hast, wie
- 34:24zum Beispiel Dev Stage prod. Stage, ne QR Stage oder Sandbox
- 34:29Stage, was du meintest oder vielleicht gibt es auch ne
- 34:31Hotfix stage, was auch immer das sind ja vielleicht so
- 34:33verschiedene Stages, ne die du ja irgendwie aufbauen kannst und
- 34:37wie du sie dann sozusagen hintereinander schaltest oder in
- 34:40welcher Reihenfolge von welche, welche Features.
- 34:43Wandern ne ist ja eigentlich, also kann man sich ja aussuchen.
- 34:46Du kannst halt beispielsweise in deiner Automatisierung sagen,
- 34:50wenn ich ein neues Feature habe, wird das erst auf Development
- 34:54deployed, dann geht es weiter auf QA, dann geht es weiter auf
- 34:57prot oder du sagst ne das geht automatisch und du sagst von QA
- 35:00auf Prot muss ich noch mal manuell triggern, weil da gibt
- 35:04es noch mal einen extra Gate Keeper sozusagen der da vorsteht
- 35:08und. Aber es muss ja auch nicht sein,
- 35:10dass du sagst, es geht auf jeden Fall von Def zu QA zu.
- 35:13Prot ne Beispiel diese Sandbox Stage.
- 35:16Es kann ja sein, dass du sozusagen deine aktuelle, dein
- 35:18aktuelles Feature geht zwar auf def QA und dann irgendwann auf
- 35:21prot, aber gleichzeitig geht dieses eine Feature auch zum
- 35:25Beispiel auf Sandbox. Und von Sandbox geht es gar
- 35:27nicht weiter so. Also weißt du, da kannst du
- 35:29vielleicht auch noch sogar einen ganz anderen Branch mit ganz
- 35:33anderen experimentellen Features hin, die Ployn, die aber
- 35:37vielleicht niemals auf Prot kommen.
- 35:38Weißt du, das sind ja zum Beispiel auch noch so Sachen,
- 35:40über die man halt eben auch nachdenken kann, also absolut
- 35:44nur um zu sagen so, es muss nicht immer seriell geschaltet
- 35:47werden, weil ich finde zum Beispiel ein sehr, sehr
- 35:49wichtiger Punkt, der finde ich in diesem ganzen Konstrukt
- 35:53schnell mal aufkommt ist was ist denn wenn du ich nehme noch mal
- 35:57das Beispiel von vorher. Du hast zum Beispiel 2 von 3
- 36:00Features bis auf die QR Stage gepackt und wartest jetzt auf
- 36:04das Dritte, damit du sozusagen alle 3 gleichzeitig auf Prot
- 36:09bringen kannst. An den End User und jetzt merkst
- 36:12du aber während der Entwicklung von dem dritten Feature was noch
- 36:17nicht da ist zum Deployen, das ist ein ganz ganz wichtige
- 36:20Sicherheitslücke gibt ein Bug der gefixt werden muss.
- 36:23Was machst du dann beispielsweise?
- 36:24Dann kannst du ja rein theoretisch natürlich sagen, OK,
- 36:27ich schalte jetzt, ich, ich entwickle jetzt also ich fix den
- 36:32Bug und schalte also ne und schalte den Bug plus diese 2
- 36:35Features 2 von 3 halt live, was aber eigentlich nicht sein
- 36:38sollte ne und da kannst du beispielsweise natürlich sagen,
- 36:41OK, ich nehme vielleicht den Stand von prot ne hab davon
- 36:46natürlich noch irgendwo in meiner Versionierung.
- 36:49Meines Codes irgendwo auch noch n stand, den kann ich Branchen
- 36:53und dann über ne Hotfix stage direkt auf die Protz Stage
- 36:56gehen, beispielsweise ne weil ich finde die Möglichkeit ja
- 36:59genau, also nur mal ein Beispiel, da gibt es noch
- 37:01verschiedene Sachen. Du kannst auch mit Feature Flex
- 37:03arbeiten oder was auch immer, aber das ist ja ne Möglichkeit
- 37:07die auch da ist und vor allem ist es auch n sehr häufiges
- 37:10Problem wenn man zum Beispiel so mit Stages arbeitet.
- 37:13Also das ist mir häufig mal vorgekommen, dass es dann heißt
- 37:15ja, aber was machen wir denn dann ne?
- 37:18Und deswegen also wichtiger. Dazu habe ich noch 2 Punkte.
- 37:21Der erste Punkt Memo an uns Feature Flex ist auch ein sehr
- 37:24spannendes Thema, das können wir auch mal behandeln und der
- 37:28zweite Punkt ja, also wie deine ganze Struktur am Ende aussieht
- 37:32ist wirklich bisschen Floating, also das muss dem Projekt
- 37:35angepasst werden. Ich glaube es gibt nur eine
- 37:38Grundregel, am Ende sollte mal die Prot Stage kommen, also das
- 37:42ist halt schon wichtig, dass man da nicht halt.
- 37:45Also ich finde so immer direkt auf prot.
- 37:48Schwierig ja ja OK, aber lass uns das ganze mal so n bisschen
- 37:53abrunden, zusammenfassen und das noch mal so n bisschen in den
- 37:57def Ops Kontext eingliedern, warum dieses Staging jetzt
- 38:00wirklich so wichtig ist? Weil wir haben ja am Anfang der
- 38:03Def Ops Reihe auch erklärt, wie diese Bewegung entstanden ist.
- 38:06Die Methodologie dahinter. Welche Methoden haben wir
- 38:11angefangen zu erklären, was da alles drin steckt?
- 38:13Und wie spielt das Ganze jetzt zusammen?
- 38:15Dabei darf man halt 1 nicht vergessen, Def Ops guckt sich
- 38:18immer den gesamten Software Lifecycle an, das ist halt auch
- 38:21einfach Bestandteil davon, das heißt Wir haben die Entwicklung,
- 38:25wir haben das Testen, das Deployen und den Betrieb am
- 38:28Ende, das ist halt auch wichtig, ne die Prot Stage am Ende und
- 38:30wenn man sich das alles zusammen anguckt ist staging ja im
- 38:34Prinzip. Das Bindeglied wie komme ich von
- 38:37ganz am Anfang, wie ich am Anfang diese Videospiel Analogie
- 38:41gebracht hatte? Wie komme ich vom ersten Level
- 38:44zum finalen Level und Spiele das Ganze quasi durch erfolgreich
- 38:48und da greift halt Staging für mich rein, das heißt der End.
- 38:53User ist der Endgegner. Genau den gilt es zu bezwingen,
- 38:57Nein, zufrieden zu stellen. Es ist noch viel, viel
- 39:00schwieriger, ihn zufrieden zu stellen als zu bezwingen.
- 39:04Genau, also man redet halt immer über CI und CD.
- 39:07Das sind so diese Buzzwords, aber am Ende ist Staging was
- 39:10alles verbindet. Ja es ist ja.
- 39:12Deswegen hatte ich anfangs gesagt, das ist.
- 39:14Für mich halt ne Methodik auch irgendwo.
- 39:15Ja also ich find immer. So Staging kann man noch so n
- 39:18bisschen als Buffer nehmen und sagen so OK, du hast jetzt noch
- 39:22mal dein, also du hast deine Entwicklung, du hast deine ganze
- 39:25Automatisierung und du hast sozusagen dein Deployment am
- 39:28Ende und dazwischen gibt es noch so n Buffering.
- 39:31Dass du sagst, so OK ne, also du du schießt, du schießt deinen.
- 39:34Dein neues Feature schießt du auf die Pipeline, das rasant
- 39:37schnell wird durchgetestet, Zack der Zack und dann hast du noch
- 39:39mal so n kleinen so n kleinen Buffer ne wo du noch mal sagen
- 39:42kannst OK hier check ich noch mal kurz das Feature alles cool
- 39:45ne und weiter Feuer so raus in die freie.
- 39:47Welt. Das ist das, was in meinem Kopf
- 39:49immer so für n Bild entsteht. Ist auch schön, ist auch.
- 39:52Schön gefällt mir gut, ja, aber das Ganze hat natürlich auch
- 39:57Herausforderungen. Die wir jetzt nicht unter den
- 40:00Tisch kehren sollten, unter den Teppich oder Tisch.
- 40:03Oh mein Gott ey, wir sollten das mit diesen Redewendungen sein
- 40:05lassen, unter die Katze, und zwar hatten und ne genau wir
- 40:10hatten ja schon gesagt, dass das mit Kosten verbunden ist.
- 40:14Das heißt Projektabhängig sollte man auch nur so viel Stages
- 40:16verwenden wie nötig und was sinnvoll ist und nicht sagen ey
- 40:21hier, das Staging ist total geil, ich hab jetzt einfach 10
- 40:23stages, bin aber alleine im Team und mach hier alles ganz
- 40:26alleine. Ist da nicht so sinnvoll
- 40:30wahrscheinlich, also da halt wirklich ans Projekt anpassen,
- 40:33da halt der Betrieb von Staging sehr teuer werden kann.
- 40:36Bestes Beispiel Blue Green Deployment Strategie, wenn ich
- 40:41das machen will, dann muss ich 2 gleiche Umgebung schaffen mit
- 40:45allem drum und dran, du hast ja sofort gesagt wenn man gutes
- 40:48Monitoring hat und sowas kostet alles Geld und das muss halt
- 40:51wirklich zweimal die ganze Welt existieren, sozusagen damit man
- 40:55das machen kann. Und das ist jetzt nur so die
- 40:58Spitze des Eisbergs. Selbst die ganzen.
- 41:00Stages da drunter sind ja alle mit Kosten verbunden.
- 41:02Ich finde ist jetzt zwar zwar nicht ganz wie sagt man
- 41:05wissenschaftlich korrekt, aber ganz salopp gesagt, wenn du 2
- 41:08stages hast, brauchst du sozusagen auch 2 Server.
- 41:12Also wie gesagt, ganz salopp gesagt, aber also nur, dass man
- 41:14sich jetzt mal ganz grob vorstellen kann.
- 41:16Also wenn du ne du du brauchst ja 2 Einheiten ne und du
- 41:21brauchst alles 2 mal, also bei 2 stages.
- 41:26Ja, ja. Genau.
- 41:27Und das. Muss ja auch alles gewartet
- 41:28werden. Und das Gute an der Stelle oder
- 41:32was natürlich auf jeden Fall ne Best practice ist, gerade wenn
- 41:34man jetzt zum Beispiel also bei dieser Herausforderung angeht
- 41:36und sagt, du musst jetzt alles noch mal aufbauen, ne, also so
- 41:40angenommen, du sagst jetzt du hast ne prot Stage, du hast ne
- 41:43QR Stage und du sagst ja ich will jetzt aber noch ne Death
- 41:45Stage haben, so dann stellt man sich ja im Best Case nicht hin
- 41:48und sagt Boah jetzt muss ich. Okay pass auf, ich lege mir noch
- 41:52einen Server an, jetzt kommt noch eine Datenbank dazu und
- 41:54dann klickst du dich da irgendwie durch durch deine
- 41:55Infrastruktur und machst dies und machst das, sondern auch
- 41:59hier natürlich wieder als Best Practice Infrastructure ist Code
- 42:06auch, nur wird auch noch mal eine eigene Folge in unserer Def
- 42:09Ops Reihe, aber so viel sollte schon mal gesagt sein, du kannst
- 42:12deine Infrastruktur solltest deine Infrastruktur dann am
- 42:15besten halt auch eben mit einfach nur einem Code Template
- 42:18aufbauen können, das gibt es meistens in den Im Normalfall
- 42:22gibt es so was, ist so was möglich und das sollte dann auch
- 42:24genutzt werden, weil du dann halt eben ich sag mal auch
- 42:27wieder ein bisschen salopp gesagt, aber auf Knopfdruck so
- 42:30eine neue Instanz, eine neue Stage aufbauen kannst, ja.
- 42:35Sehr wichtig. Dann hatten wir ja darüber
- 42:38gesprochen, dass das Isolieren der Daten halt wichtig ist.
- 42:42Aus mehrerer Hinsicht, auch aus Kostenhinsicht wieder schon,
- 42:46dass du sagst, okay, ich habe nicht die.
- 42:48Echten Services, sondern ich habe eine isolierte Umgebung,
- 42:51die ich mir schaffen kann. Gerade auf Dev und QR Stage sehr
- 42:56wichtiger Punkt, damit auch Produktivdaten niemals.
- 43:00Mit Testdaten vermischt werden beispielsweise, das wär ja
- 43:03wirklich so n Supergau wenn du sagst OK, auf meiner
- 43:05Produktivumgebung kommt jetzt Test user 123 mit rein der
- 43:09überall angezeigt wird oder sowas weißt du theoretisch kann
- 43:12jemand sich so anlegen OK mag sein, aber mal angenommen du
- 43:15schwemmst jetzt deine echte Umgebung mit tausenden Test
- 43:17Usern oder so nicht cool. Dieser Service hat schon 5
- 43:22Milliarden Millionen quatrilliarden User.
- 43:27Das ist Server lahmgelegt. Genau.
- 43:30Und der Kostenfaktor halt mit externen Services, die einfach
- 43:33gegeben sind, dass man die minimieren kann, indem man sowas
- 43:36halt einfach mit Dummy Services ersetzt.
- 43:41Ja Ah, ein wichtiger Punkt sind natürlich auch sensible Daten,
- 43:44da haben wir auch noch nicht so drüber gesprochen, auch wichtig
- 43:48sensible Daten halt auf vorgelagerten Stages nicht
- 43:52unbedingt mit verwenden, ja definitiv.
- 43:57Und wie gesagt, so die Daumenregel insgesamt sollte
- 43:59natürlich immer sein, dass die Produktionsumgebung natürlich
- 44:01immer möglichst gleich der echten Umgebung sein kann, weil
- 44:05wenn du jetzt zum Beispiel also angenommen, du hast jetzt
- 44:07irgendwie nen nen irgendeinen Login Mechanismus oder so und
- 44:11der wird so verfälscht, dass er zwar auf irgendeiner Stage
- 44:15funktioniert, aber unter den echten Bedingungen eigentlich
- 44:18nicht mehr funktioniert, dann ist es natürlich blöd.
- 44:20Deswegen ist es natürlich klar, du kriegst es niemals
- 44:22hundertprozentig 1 zu 1 hin. Aber es ist schon wichtig, dass
- 44:25man oder ne, das ist, das sag ich mal, das große Ziel.
- 44:30Am Ende sollte immer sein, dass die Produktivumgebung möglichst
- 44:34simuliert wird. Na also je ähnlicher, desto
- 44:37besser eigentlich. Ja genau, ja, da würde ich
- 44:44sagen, haben wir das eigentlich sehr ausführlich besprochen.
- 44:48Ich würde noch mal kurz zusammenfassen, ergänze bitte,
- 44:51falls ich was vergesse und zwar hätte ich gerne noch so eine
- 44:55kleine Take Home Message. Liebe, zuhören, liebe Zuhörer,
- 44:57also die Key Points noch mal zusammengefasst.
- 45:01Ich würde sagen warum Staging das ganze Mal zusammengefasst.
- 45:07Erstens du kannst realitätsnahe Tests erzeugen mit zusätzlichen
- 45:12Stages, das heißt du kannst so nah an deine produktiv Umgebung
- 45:15kommen ohne. Sie zu beeinflussen und kannst
- 45:18so frühzeitig einfach neue Features testen, Fehler
- 45:22erkennen, vor allem ohne Deine produktiv Umgebung zu
- 45:25beeinflussen. Und ja, du minimierst extrem das
- 45:30Risiko dabei, das ist für mich so ein so ein richtig wichtiger
- 45:34Punkt dabei, das spielt ja auch alles in die Qualitätssicherung
- 45:37mit rein, dann würde ich sagen. Was man aber auch auf dem
- 45:45Gegenzug sagen muss, ist diese Vorteile, die wirklich enorm
- 45:48sind. Deswegen wird es ja auch
- 45:50gemacht, muss man sich allerdings einkaufen mit
- 45:53erhöhten Wartungsaufwand und erhöhten Kosten bis hinzu was
- 45:58wir gesagt hatten, bei manchen Strategien hast du Sachen
- 46:00einfach doppelt um das so leben zu können oder verwenden zu
- 46:04können, definitiv was man sich. Natürlich noch Fragen kann als
- 46:09Take Home Message. Angenommen, man sagt jetzt, na
- 46:12ja, aber. Wieso sollte man jetzt noch mal
- 46:15irgendwie was testen auf irgendeiner QR Stage oder sonst
- 46:18was, obwohl man ja eigentlich schon vorgelagert diese ganzen
- 46:21automatisierten Tests hat und wir ja eigentlich auf manuelle
- 46:24Tests oder so verzichten wollen? Möglichst, das ist halt im
- 46:29Endeffekt manchmal erfordert ein bestimmter Prozess etwas, dass
- 46:33man zum Beispiel wirklich noch mal eine externe Instanz hat,
- 46:35die bestimmte Features abnimmt und sagt, OK, passt fertig
- 46:39gatekeeper mäßig, weiter geht es, ne.
- 46:42Kann vorkommen. Genauso ist es manchmal so, dass
- 46:45du wie gesagt bei irgendwelchen Tests, ob es jetzt Unit Tests
- 46:49sind oder System Tests hast du ja manchmal einfach den Punkt,
- 46:54dass du etwas mogst, etwas Fakes, externe Services,
- 46:57irgendwelche Schnittstellen, was auch immer und genau diese
- 47:01Sachen werden halt an dieser Stelle eben, sage ich jetzt mal.
- 47:07Also diese diese Schnittstellen können nicht 1 zu 1 getestet
- 47:10werden und an dieser Stelle schon und es ist auch eher diese
- 47:13Stages sind doch eher so zu sehen finde ich, dass sie auf
- 47:17jeden Fall immer parallel mitlaufen und das zum Beispiel
- 47:20angenommen du hast in deinem Monitoring merkst du ey du hast
- 47:23jetzt zum Beispiel auf der Produktivstage, eventuell merkst
- 47:26du, irgendwie hast du etwas was schief geht, dann kannst du das
- 47:29ja auf deiner QR Stage oder auf deiner Dev Stage genauso einmal
- 47:32nachstellen um zu überprüfen ist dieser Fehler wirklich da?
- 47:36Also es geht nicht immer nur darum, dass man sagt, um das
- 47:38jetzt noch mal ganz kurz zusammenzufassen, es geht immer
- 47:41nur präventiv darum, was vor sozusagen zu machen, sondern
- 47:46vielleicht auch einfach mal bestimmte Sachen auszuprobieren,
- 47:49parallel auch zur pro Stage sozusagen, oder irgendwelche
- 47:53Sachen noch mal nachzuvollziehen, ob das
- 47:57wirklich so ist oder nicht. Solche Sachen kommen halt damit
- 48:01auch rein und auch sowas wie zum Beispiel Datenbank Migration.
- 48:06Hatte ich vorhin schon mal angesprochen.
- 48:07Wichtiger Punkt, das ist auch nicht immer alles ganz so
- 48:10trivial und da macht es auch schon mal Sinn diese Datenbank
- 48:14Migration einmal im Vorfeld zu performen, zum Beispiel auf
- 48:17einer Dev Stage um zu gucken, ob wirklich alles richtig
- 48:20funktioniert und es dann auf Prot loszulassen.
- 48:25Und wenn dann noch was passiert, dann ist es halt so.
- 48:28Ganz dick machen. Ja, okay ich würde sagen, das
- 48:32Thema haben wir ausführlich besprochen.
- 48:33Es hat mir eine Menge Spaß gemacht.
- 48:34Danke dafür. Fabi Def Ops ist halt auch
- 48:37einfach ein cooler Bereich und ja, deswegen bleibt uns nicht
- 48:42mehr viel zu sagen, außer Liebe zur Liebe zur falls dir das
- 48:45Thema gefallen hat oder du Anmerkungen dazu hast.
- 48:48Unsere Mail findest du in den Show Notes.
- 48:50Schreibt uns gerne, wir freuen uns über jedes Feedback, auch
- 48:52wie wir allgemein den Podcast verbessern können
- 48:55Themenvorschläge alles sehr willkommen meld dich gerne.
- 49:01Ja, falls dir der Podcast gefällt und du ihn auf deinem
- 49:04Provider der Wahl noch nicht bewertet hast, dann lasst auch
- 49:07gerne ein paar Sterne da oder ein Like da empfiehl ihn weiter.
- 49:10Das hilft uns ungemein, unser ganzes Vorhaben hier noch zu
- 49:14verbessern und ansonsten würde ich sagen, hören wir uns alle
- 49:17beim nächsten Mal wieder, habt eine gute Zeit und bis dahin
- 49:21deine Coding Buddies gemeinsam. Besser.