{"id":3659,"date":"2023-09-25T07:00:00","date_gmt":"2023-09-25T05:00:00","guid":{"rendered":"https:\/\/www.my-it-brain.de\/wordpress\/?p=3659"},"modified":"2023-09-22T22:44:29","modified_gmt":"2023-09-22T20:44:29","slug":"dont-push-to-production-on-friday","status":"publish","type":"post","link":"https:\/\/www.my-it-brain.de\/wordpress\/dont-push-to-production-on-friday\/","title":{"rendered":"Don&#8217;t Push To Production On Friday"},"content":{"rendered":"\n<p>So stand es an einem Freitag auf Mastodon geschrieben. Nach einem Schmunzeln fragte ich mich: \u201eJa warum eigentlich nicht?\u201c Dieser Frage m\u00f6chte ich heute nachgehen.<\/p>\n\n\n\n<p>Der englischsprachige Satz aus dem Titel ist eine Aufforderung, an einem Freitag keine \u00c4nderungen an produktiven Systemen vorzunehmen, um das Wochenende nicht zu gef\u00e4hrden. Viele von euch kennen vermutlich ber\u00fchmte letzte Worte wie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Was soll schon schiefgehen?<\/li>\n\n\n\n<li>Nur noch diese kleine \u00c4nderung, dann ist Feierabend.<\/li>\n\n\n\n<li>Das wurde getestet, da kann nichts passieren.<\/li>\n\n\n\n<li>Das geht ganz schnell, ich mache das noch eben.<\/li>\n<\/ul>\n\n\n\n<p>Nicht selten hat sich der Feierabend oder das Wochenende nach diesen S\u00e4tzen erheblich verz\u00f6gert oder sind ganz ausgefallen, weil eben doch etwas schiefgegangen ist. In der Folge waren wichtige Dienste nicht mehr verf\u00fcgbar und Systemadministratoren haben das Abendessen mit ihrer Familie vers\u00e4umt, weil sie den Klump wieder zum Laufen bringen mussten. Solche Erlebnisse f\u00fchren zu Aussagen wie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Never change a running system. <em>Oder eben<\/em><\/li>\n\n\n\n<li>Don&#8217;t push to production on Friday<\/li>\n<\/ul>\n\n\n\n<p>Die Logik dahinter ist bestechend einfach. Wenn etwas funktioniert und man nichts daran \u00e4ndert, wird wohl auch nichts kaputt gehen. Allerdings stehen diese Aussagen dem DevOps-Mantra von <em><a href=\"https:\/\/de.wikipedia.org\/wiki\/CI\/CD\">Continuous Integration and Continuous Delivery (CI\/CD)<\/a><\/em> entgegen, welches fordert, dass \u00c4nderungen zu jeder Zeit m\u00f6glich sein m\u00fcssen.<\/p>\n\n\n\n<p>Und wer hat nun recht? Ich denke, die Wahrheit liegt wie so oft irgendwo in der Mitte.<\/p>\n\n\n\n<p>Ob \u00c4nderungen durchgef\u00fchrt werden k\u00f6nnen, h\u00e4ngt in meinen Augen nicht vom Wochentag ab, sondern vielmehr von den Antworten auf die folgenden Fragen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sind alle f\u00fcr die Abnahmetests erforderlichen Key-User nach der \u00c4nderungen verf\u00fcgbar und k\u00f6nnen direkt im Anschluss testen?<\/li>\n\n\n\n<li>Sind alle Verantwortlichen anwesend bzw. verf\u00fcgbar, welche entscheiden, ob die \u00c4nderung bzw. das Deployment erfolgreich war oder nicht?<\/li>\n\n\n\n<li>Liegt das Wartungsfenster in einem Zeitraum, in dem ggf. externe Supportdienstleister erreichbar und diese Zeitr\u00e4ume durch <a href=\"https:\/\/de.wikipedia.org\/wiki\/Service-Level-Agreement\">Service-Level-Agreements (SLA)<\/a> abgedeckt sind?<\/li>\n\n\n\n<li>Findet die \u00c4nderung in einem Zeitfenster statt, in dem St\u00f6rungen toleriert werden k\u00f6nnen?<\/li>\n<\/ul>\n\n\n\n<p>Sind zum Beispiel alle 37 Key-User, 8 Abteilungsleiterinnen und das 20-k\u00f6pfige Betriebs-Team f\u00fcr die Personal- und Buchhaltungsanwendung Freitag nach 18:00 bis voraussichtlich 21:00 Uhr alle verf\u00fcgbar und k\u00f6nnen im Fehlerfall mit offenem Ende verf\u00fcgbar bleiben, steht einer \u00c4nderung bzw. einem Deployment nichts im Wege. Ist dies jedoch nicht der Fall und man stellt Fehler m\u00f6glicherweise erst im Laufe des kommenden Montags fest, wo ein Rollback evtl. schon nicht mehr m\u00f6glich ist, sollte man den Change vielleicht lieber Montagmorgen starten?<\/p>\n\n\n\n<p>In einem anderen Fall ist das Team nicht sicher, ob sie das System im Fehlerfall ohne Hilfe des Herstellers wiederherstellen k\u00f6nnen. Der Support-Vertrag deckt jedoch nur die Zeiten Mo-Fr von jeweils 08:00-17:00 Uhr mit 4 Stunden Reaktionszeit ab. Hier ist es vielleicht ebenfalls besser, das Wartungsfenster in den fr\u00fchen Morgen als in den Freitagabend zu legen.<\/p>\n\n\n\n<p>Habe ich hingegen einen 24\/7-Supportvertrag und meine IT-Betriebsabteilung darf auch am Wochenende arbeiten, bietet sich ein Change mit langer Dauer am Wochenende an, um die Betriebsabl\u00e4ufe m\u00f6glichst wenig zu beeintr\u00e4chtigen.<\/p>\n\n\n\n<p>Sind \u00c4nderungen nur von kurzer Dauer und man m\u00f6chte m\u00f6glichst viele User verf\u00fcgbar haben, die sofort testen und m\u00f6gliche Fehler finden, ist vermutlich auch Dienstag Vormittag 10:00 Uhr eine gute Zeit.<\/p>\n\n\n\n<p>Es h\u00e4ngt also nicht prim\u00e4r vom Wochentag, sondern vielmehr von einigen anderen Faktoren ab, wann \u00c4nderungen in Produktion ausgerollt werden sollten.<\/p>\n\n\n\n<p>Wie seht ihr das? Nach welchen Kriterien werden bei euch Deployments geplant und durchgef\u00fchrt?<\/p>\n\n\n\n<p>PS: Ich finde jedoch absolut nichts Verwerfliches daran, wenn man sich den Freitag f\u00fcr die Pflege und Aktualisierung der Dokumentation reservieren kann und nicht mit aller Gewalt noch etwas kaputtfuckeln muss. ;-)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So stand es an einem Freitag auf Mastodon geschrieben. Nach einem Schmunzeln fragte ich mich: \u201eJa warum eigentlich nicht?\u201c Dieser Frage m\u00f6chte ich heute nachgehen. Der englischsprachige Satz aus dem Titel ist eine Aufforderung, an einem Freitag keine \u00c4nderungen an produktiven Systemen vorzunehmen, um das Wochenende nicht zu gef\u00e4hrden. Viele von euch kennen vermutlich ber\u00fchmte<span class=\"continue-reading\"> <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/dont-push-to-production-on-friday\/\">[Weiterlesen&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_metis_text_type":"","_metis_text_length":0,"_post_count":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3659","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/3659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/comments?post=3659"}],"version-history":[{"count":1,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/3659\/revisions"}],"predecessor-version":[{"id":3660,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/3659\/revisions\/3660"}],"wp:attachment":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/media?parent=3659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/categories?post=3659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/tags?post=3659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}