Direkt zum Inhalt
Bild
Untitled%20design%20%2858%29.jpg

Umsetzung von Deployment- und Release-Strategien

AI-Translated
article publisher

Jayati

Artikel

Die Entwicklung von Softwareanwendungen ist ein mühsamer Prozess, der viele Vor- und Rückwärtsbewegungen beinhaltet. Wenn eine Website von Grund auf neu erstellt oder nach langer Zeit überarbeitet wird, kommt ein Prozess von Strategien ins Spiel. Von den neuen Ergänzungen bis hin zu den Änderungen, die auf der Website implementiert werden, ist der wichtigste Teil die Bereitstellung und Freigabe dieser Änderungen.

Es gibt wichtige Entscheidungen, die einen entscheidenden Einfluss auf den Endbenutzer der Anwendung haben können. Angesichts der Bedeutung werden wir in diesem Beitrag über Bereitstellungs- und Freigabestrategien sprechen.

Bedeutung und Unterschied

Bereitstellung 

Der Prozess, Softwareanwendungen in einer bestimmten Umgebung reibungslos zum Laufen zu bringen, wird als Bereitstellung bezeichnet. Ohne die Freigabe zu beinhalten, umfasst die Bereitstellung die Installation, Konfiguration, das Testen und die Vornahme notwendiger Änderungen von Funktionen in einer bestimmten Umgebung.

Freigabe 

Wenn die Software bereit ist, in die Produktion überführt zu werden, wird dies als Freigabe bezeichnet. Der Prozess beinhaltet, die Software für die Benutzer oder eine Teilmenge von Benutzern zugänglich zu machen, z. B. nur 5 % der Benutzerbasis.

Vorteile der Trennung von Bereitstellung und Freigabe

Angesichts der minimalen Unterschiede im Ansatz mag es schwierig erscheinen, die beiden zu trennen. Das ideale Szenario ist jedoch, sie isoliert zu halten, um das technische Risiko von Codeänderungen zu minimieren. Es ermöglicht auch ein schnelleres Feedback von den Benutzern.

Es gibt viele Freigabestrategien, die die Trennung von Bereitstellungen und Freigaben unterstützen und Entwicklungsteams helfen, häufiger zu veröffentlichen. Wir werden diese später im Artikel besprechen.

Beginnen wir mit der Bereitstellung...

Bereitstellungs- und Freigabezyklus
Quelle:ManageEngine

Gängige Bereitstellungsstrategien

Bevor Sie sich in das Bereitstellungsgeschäft stürzen, sollten Sie die Vorbereitungsfaktoren wie die Infrastruktur, die Testumgebungen und die Feinheiten der Ausfallzeiten berücksichtigen.

Wenn die Software geändert oder aktualisiert werden muss, zielen die Entwicklungsteams darauf ab, diese Änderungen ohne Ausfallzeiten zu erreichen. Um dies zu erreichen, werden Bereitstellungsstrategien wie die folgenden eingesetzt:

Keine Bereitstellungsstrategie

Die Keine-Bereitstellungsstrategie ist eine billige, aber gefährliche Methode und bedeutet einfach, ein paar Schritte zu überspringen. Wenn Ihre Website Traffic erhält, können Live-Site-Produktionsänderungen Ihren Traffic beeinträchtigen. Andererseits beinhaltet der Codierungsprozess ein ständiges Hin und Her beim Zerstören und Reparieren der Website. Wenn Sie nicht verantwortungsbewusst und kompetent genug mit den Backups umgehen, kann die Keine-Bereitstellungsstrategie nach hinten losgehen.

Die neue Site in die Produktion kopieren

Als wir von Drupal 7 auf Drupal 8 umgestiegen sind, war die Strategie, die gesamte neue Site auf den Produktionsserver zu kopieren, eine geeignete. Als gängige Strategie unter vielen ist der Prozess des Kopierens der Site in die Produktion jedoch riskant. Wenn Sie kleinere Änderungen wie Theme-Aktualisierungen oder tägliche Wartungsarbeiten vornehmen, besteht die Möglichkeit, dass Sie Ihre Daten und Leads verlieren.

Zuerst kompilieren, später bereitstellen

Es gibt verschiedene Drittanbieter, die statische Site-Generatoren für einen vereinfachten Prozess des sicheren Aufbaus einer Offline-Site anbieten. Diese Strategie schützt Ihre Site vor Angriffen aus dem Internet aufgrund von Fehlern. Sobald die statische Site ordnungsgemäß kompiliert wurde, können Sie den resultierenden Code zum Live-Produktionsbetrieb auf den Webhost kopieren.

Dev/Stage/Production-Pipeline

Als Standardprozess der Bereitstellung beinhaltet diese Strategie drei Kopien der Site:

  • Dev-Kopie - wo die Entwicklungsarbeit stattfindet
  • Stage/Test-Kopie - Zum Testen des Bereitstellungsprozesses vor der Einführung in die Produktion
  • Live-Kopie: Die Produktion geht live für die Öffentlichkeit

Diese Pipeline wird oft von E-Commerce-Unternehmen übernommen, um die erfassten Daten wie Formulare, Kommentare, Bewertungen und andere verwandte Details einfach zu verwalten.

Blue/Green-Bereitstellung

Die wichtigste Strategie, die die Wartungslücke minimiert und einen soliden Rollback für die Änderungen bietet, ist Blue/Green. Diese Bereitstellungsstrategie hilft, die Kosten für Ausfallzeiten zu senken.

Wie der Name schon sagt, werden zwei verschiedene Produktionsumgebungen erstellt, die als "Blau" (im Standby-Modus) und "Grün" (Live) gekennzeichnet sind.

Alle Änderungen werden in der Offline-Umgebung bereitgestellt und in die Live-Umgebung übernommen. Dies gibt Ihnen den Vorteil, je nach Bedarf und Wartungszyklus der Site zwischen den beiden zu wechseln.

Bewährte Methoden für die Bereitstellung

Ein moderner Ansatz für die Bereitstellung kann mit diesen bewährten Methoden in der Überprüfung verfolgt werden:

  • Erstellen Sie eine Checkliste/Pipeline mit Dingen, die vor und nach der Bereitstellung zu erledigen sind, um die Sicherheit der Daten zu gewährleisten
  • Der Prozess der kontinuierlichen Integration kann übernommen werden, um sicherzustellen, dass jede Änderung getestet wird, bevor sie zur Bereitstellung gesendet wird, und dass es auf dem Weg keine Fehler gibt.
  • Übernehmen Sie in ähnlicher Weise Continuous Delivery (CD).
  • Sie können in Standardbetriebsumgebungen (SOEs) investieren, die dazu beitragen, die Konsistenz in der Umgebung sicherzustellen
  • Automatisieren Sie den Build mit Tools, die den Prozess des Abbaus eines gesamten Infrastruktur-Stacks und des Neuaufbaus von Grund auf vereinfachen können.
  • Richten Sie einen systematischen Prozess für die Erstellung von Warnmeldungen ein, die Teams vor Änderungen warnen oder über Probleme in Echtzeit informieren können.

Support-Strategien

Rolling-Strategie

Beim Rolling Deployment werden die Instanzen der vorherigen Version einer Anwendung langsam durch die neue Version ersetzt. Das Rolling Deployment wartet in der Regel darauf, dass neue Pods bereit sind, bevor die alten Komponenten herunterskaliert werden können. Diese Strategie kann in die Tat umgesetzt werden, wenn:

  • Sie keine Ausfallzeiten für das Update haben möchten
  • Ihre Anwendung alten und neuen Code gleichzeitig ausführt

Canary-Bereitstellungen

Das Grundkonzept von Canary-Bereitstellungen besteht darin, die Änderungen nur für eine Teilmenge von Benutzern freizugeben und sie zu testen. Dies gibt eine faire Vorstellung davon, wie die Änderungen funktionieren werden, und kann rückgängig gemacht werden, wenn die Tests fehlschlagen.

Neu erstellen

Diese Strategie kann verwendet werden, wenn Sie nicht gleichzeitig neue und alte Versionen Ihres Anwendungscodes ausführen möchten. Sie kann auch ausgeführt werden, wenn das RWO-Volume die gemeinsame Nutzung mehrerer Replikate nicht unterstützt.

Die häufigste Verwendung der Recreate-Strategie ist, wenn Migrationen oder Datentransformationen erforderlich werden, bevor der neue Code startet.

Als Dummy-Bereitstellung besteht die Technik darin, Version X herunterzufahren und dann Version Y erst zu installieren, nachdem Version X ausgeschaltet wurde.

Ramped

Das schrittweise Hochfahren von Änderungen als langsamer Bereitstellungsprozess wird als Ramped-Strategie bezeichnet. Die Instanzen werden in der Anwendung nacheinander in einem fließenden Prozess ersetzt. Nur wenn der Dienst bereit ist, den Live-Traffic zu akzeptieren, werden die Instanzen hinzugefügt, während die anderen aus dem Pool entfernt werden.

A/B-Tests

Diese Technik wurde auf der Grundlage von Statistiken entwickelt und besteht darin, neue Funktionen unter bestimmten Bedingungen für eine Teilmenge von Benutzern einzuführen. Sie wird für Testkonvertierungen bestimmter Funktionen implementiert, bei denen die vollständige Kontrolle über die Traffic-Verteilung aufrechterhalten wird und mehrere Versionen parallel laufen.

Shadow

Dies ist eine komplexe Strategie, bei der Version A geforkt und die Anfragen an Version B gesendet werden, während Version B parallel zu Version A veröffentlicht wird.

Sie erfordert ein spezielles Setup und spezielle Anforderungen und wird für die Einführung neuer Funktionen empfohlen, die ausgelöst werden, wenn Stabilität und Leistung die genannten Anforderungen erfüllen.

Welche Bereitstellungsstrategie ist die beste?

Keine Strategie kann als die beste für alle Umrisse bezeichnet werden, die in den Bereitstellungszyklen auftreten können. Eine Strategie ist dann am besten, wenn sie am besten in die jeweilige Situation passt und für den Produktionsserver gut funktioniert.

Eine Site kann mit verschiedenen Ansätzen bereitgestellt und freigegeben werden, indem die gesamte Site zusammen genommen oder in Teile zerlegt wird. Es liegt ganz bei Ihnen, womit Sie sich wohler fühlen und Ihre Aufgaben vereinfachen.

Arten von Freigabemethoden

Freigabemethoden sind vergleichsweise unkompliziert und sortiert. Sie können in zwei Kategorien eingeteilt werden:

Umgebungsbasierte Freigaben

Es ist die Canary-Freigabe, bei der der neue Code für einen begrenzten Teil der Benutzer freigegeben und erst später für den Rest der Benutzerbasis freigegeben wird. Auf diese Weise erhalten Sie die Möglichkeit, Softwareänderungen mit echten Benutzern zu testen, und erhalten wertvolle Statistiken in Bezug auf Eingaben für die vollständige Freigabe dieser Änderungen. Der automatische Rollback ist ein zusätzlicher Vorteil der Canary-Freigaben, wenn die Änderungen die technischen oder Benutzermetriken nicht erfüllen. Da jede Änderung überwacht wird, wird die Leistung anhand von Metriken gemessen, die sich auf die Reaktion der Benutzer beziehen. Diese Ergebnisse werden vom Entwicklerteam weiter verwendet.

Anwendungsbasierte Freigaben

Anwendungsbasierte Freigaben verwenden Feature Toggles als eine beliebte Implementierungsmethode. Sie steuert den Anwendungscode, um eine progressive Bereitstellung neuer Funktionen für Benutzer zu ermöglichen. Sie aktiviert Funktionen für bestimmte Benutzer und Entwicklungsteams, um sie in der Produktion bereitzustellen, ohne tatsächlich Änderungen freizugeben. Feature Toggles unterstützen die kontinuierliche Bereitstellung und werden verwendet, um nicht wesentliche Funktionen in Zeiten hoher Last oder bei einem Ausfall einer Funktion zu deaktivieren.

An Sie

Jede Version von Änderungen und neuen Funktionen ist anders. Sie erfordern ein einzigartiges System, um sie im Prozess der Softwareanwendungsentwicklung zu handhaben und auszuführen. Während die Recreate-Strategie für die eine am besten geeignet sein mag, kann die Canary-Bereitstellung für eine andere eine gute Wahl sein. Daher ist es ratsam, die Situation Ihrer Anwendung abzuwägen und dann eine Entscheidung zu treffen.

Verbinden Sie sich mit uns auf unseren Social-Media-Kanälen: Facebook, LinkedIn und Twitter.

 

Abonnieren

Ready to start your digital transformation journey with us?

Verwandte Blogs

Erkunden von Drupal Single Directory Components: Ein Wendepunkt für Entwickler

Single Directory Component

Webentwicklung lebt von Effizienz und Organisation, und Drupal, unser Lieblings-CMS, ist mit seiner neuesten Funktion hier,…

7 schnelle Schritte zur Erstellung von API-Dokumentationen mit Postman

How To Create API Documentation using Postman.png

Wenn Sie mit APIs arbeiten, kennen Sie wahrscheinlich bereits Postman, den beliebten REST Client, dem unzählige Entwickler…

Was ist der Product Engineering Life Cycle?

What%20is%20Product%20Engineering%20Life%20Cycle.png

Stellen Sie sich vor, Sie bauen ein Haus ohne Bauplan oder Konstruktionszeichnungen. Es wäre schwierig, die Kosten und den…