Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 16269|Antwort: 0

Graustufen-Veröffentlichung der Internet-Produktveröffentlichung

[Link kopieren]
Veröffentlicht am 09.03.2017 15:48:27 | | | |


Das obige Bild zeigt Tencents Grayscale-Version, normale Nutzer können darauf zugreifen, der Alibaba-Cloud-Server ist nicht zugänglich, der Ping ist normal und die Auflösung der IP ist ebenfalls normal

Es ist einfach unzugänglich, man sieht, dass Tencent auch gerne mit Graustufen-Veröffentlichungen spielt...

1. Warum Graustufen-Veröffentlichung
  • Internetdienste ändern sich häufig und die Veröffentlichungszyklen sind kurz. Geschwindigkeit und Qualität sind immer schwer zu vereinen.
  • Grayscale-Publishing kann das Risiko der Veröffentlichung verringern und den Umfang der Auswirkungen verringern.
  • Reduzieren Sie die Abhängigkeit vom Testen und senken Sie die Kosten für den Datenaufbau für Offline-Selbsttests.
  • Es ist bequem, Logs zentral zu überwachen und vollständig zu veröffentlichen. Aufgrund der Rolle der Lastverteilung auf jeder Ebene ist es schwierig, eine vollständige Aufrufverbindung zu verfolgen.
  • Man kann Graustufen-Testkonten verwenden und dann nach dem Testkonto Graustufen-Konten mit echten Benutzern, um das Risiko und die Auswirkungen der Veröffentlichung weiter zu verringern.
  • Einfache Rückrollung.
Probleme, die durch Graustufen-Releases nicht gelöst werden können

Es sollte betont werden, dass der oben erwähnte "tolerable impact" wiederherstellbar sein muss, zum Beispiel kann die API für einen bestimmten Zeitraum nicht aufgerufen werden, aber nach der Reparatur erfolgreich aufgerufen werden. Der dauerhafte Verlust oder die Zerstörung von Nutzerdaten (wie Produktinformationen, Bestellinformationen usw.) ist unerträglich. Daher liegt es in der Verantwortung der Architekten von Internetunternehmen, die verlorenen Benutzerdaten durch manuelles Eingreifen in einen aktuellen Zustand (wie etwa vor einer Stunde bis vor einer Woche) im Falle des Verlusts von Benutzerdaten durch Produktionssystemstörungen (wie regelmäßige Sicherung von Benutzerdaten, Schreiben von Betriebsprotokollen usw.) zu reparieren.

TIPPS: Testen Sie zuerst die Graustufen-Richtlinie Ihres Kontos, um das Risiko zu verringern, die Daten echter Nutzer zu beschädigen oder zu verlieren.

2. Welche Wirkung wird erwartet?
Unabhängig von der Änderung möchten wir, dass spezifische Anfragen an unsere Version der Änderung (Graustufenversion) zur Beobachtung und Validierung weitergeleitet werden.

3. Graustufenstrategie
Tatsächlich ist es das, was Anfragen an unsere Graustufenversion (Graustufenmaschine) weitergeleitet werden sollten. Dies hängt oft stark mit dem Geschäft zusammen. Zum Beispiel gibt es für APIs im Allgemeinen folgende Anforderungen:

Spezifische Nutzer (z. B. Testkonten)
Spezifische Apps (z. B. Test- oder Partner-Apps)
Spezifische Module und Schnittstellen (nur einige Schnittstellen benötigen Graustufen, was in der Regel eine Modifikation von API-Containern ist, und einige APIs, die nicht sehr wichtig sind, werden für Graustufentests verwendet). )
Spezifische Maschine (einige Anfrage-IPs werden an die Graustufenmaschine weitergeleitet)
4. Diskussion von Graustufenschemata
Lösung 1: Das Codelevel wird anhand der vereinbarten Flagge beurteilt, und alte und neue werden dynamisch vertauscht – Amazons Ansatz

Implementierung:

Stecke den Schalter im Code ein, triff eine If-else-Entscheidung und stelle den Schalter für Maschinen, die Graustufen benötigen, auf eingeschaltet, sonst ist er aus. Für jede Veröffentlichung gibt es zwei Versionen.

Verdienst

Schneller Rollback, kein Neuveröffentlichen und Neustarten des Systems.
Mangel

Seien Sie geneigt zu den Vorschriften.
Verzweigte Logik bringt Komplexität mit sich.
Diese Methode wurde vom Autor verwendet, als ich bei Alibaba war, indem er die Datenbank der Güter von Oracle auf MySQL umstellte und eine Zustandsvariable zur Steuerung verwendete. Dadurch wird der Effekt einer reibungslosen Migration erreicht.

Option 2: Pre-Release-Maschine – Alibabas Praxis

Tatsächlich ist das nicht im wahrsten Sinne von Graustufen. Denn diese Pre-Release-Maschine ist eine interne IP und hat keinen externen Dienst. Zur Verifikation ist eine Domänenbindung erforderlich. Aber die Daten sind komplett online. Es ist also im Grunde ein einfacher Ansatz für einige spezifische Nutzer von Graustufen (Nutzer mit Zugriff auf die Graustufenmaschine, interne Testnutzer). Tatsächlich gibt es einen ähnlichen Ansatz auf der API-Seite, nämlich unserer Gamma-Umgebung, und wir stellen auch den Domainnamen der Gamma-Maschine bereit, um externen, kooperativen Nutzern die Zusammenarbeit mit Tests zu ermöglichen.

Verdienst

Einfach
Mangel

Waste a Machine (diese kann nach Abschluss der Pre-Release in die Produktionsumgebung gebracht und während der Pre-Release aus nginx entfernt werden, aber O&M-Unterstützung ist erforderlich.) )
Nicht flexibel genug
IDL-Dienste können nur für Zugriffsschichtmaschinen verwendet werden, und IDL-Dienste müssen separat betrachtet werden.
Option 3: SET-Einsatz

1. Isoliert nach Dienstverletzung eingesetzt

Zum Beispiel kann in der aktuellen Praxis von API-Containern die Granularität der Bereitstellung auf API-Ebene erreicht werden, und das Front-End-Forwards gemäß nginx. Zum Beispiel:

Micro Shopping API Container: api.weigou.qq.com
Pat API Container:api.paipai.com
Yixun API Container: api.yixun.com
Online-Shopping-API Container:api.buy.qq.com
Das oben Genannte ist eine isolierte Implementierung auf Ebene großer Unternehmen. Es kann auch auf Modulebene weiter verfeinert werden, wie zum Beispiel die API des virtuellen Dienstes im E-Commerce, ein Sub-Business-Modul, das unter Paipai hängt, aber da sie mit WeChat verbunden sind, ist die Anzahl der Besuche deutlich gestiegen, um Paipais andere Geschäfte nicht zu beeinflussen und nicht von anderen Unternehmen betroffen zu werden. Die API hier ist vorgesehen, zwei Maschinen separat für sie bereitzustellen; nginx kann so konfiguriert werden, dass der Zugang zur virtuellen API entnommen wird:

Virtueller API-Container: http://api.paipai.com/v2/virbiz

So können wir bei der Veröffentlichung einer Version zunächst Yixun mit dem kleinsten Geschäftsvolumen auswählen und dann feststellen, dass es kein Problem gibt, bevor wir alle anderen Plattformen nutzen.

2. Deploy durch Benutzerisolation

Dies ist für offene Plattformen nicht sehr geeignet, aber sehr geeignet für Anwendungsszenarien wie SNS. Zum Beispiel ist das QQ-System in mehrere Sets entsprechend Benutzernummernsegmenten unterteilt, und jede Menge enthält 100 Millionen aufeinanderfolgende Zahlen. Angenommen, die letzte QQ-Zahl liegt nahe bei 1 Milliarde, gibt es insgesamt 10 Mengen (Set 1 bis Set 10). So kannst du jedes Mal eines der SETS zum Veröffentlichen auswählen, und hochrangige QQ ist oft kein sehr wichtiger Nutzer, daher wird SET10 zuerst veröffentlicht.

Verdienst

Isolierte Implementierung mit minimalen Auswirkungen über Geschäftsbereiche hinweg. Automatisch Unterstützung für Graustufen-Publishing.
Mangel

Die Granularität der Graustufen hängt von der Granularität der isolierten Bereitstellung ab, die in der Regel groß ist.
Verschwendung von Maschinen im Vergleich zur zentralisierten Bereitstellung.
Die Versionen jeder Geschäftslinie können inkonsistent sein, was eine einheitliche Verwaltung nicht fördert.
Es gibt bestimmte Implementierungs- und Bereitstellungskosten
Schema 4: Dynamisches Routing

Methode: Verwenden Sie eine Graustufen-Richtlinie, die flexibel konfiguriert werden kann, um das Verhalten der Lastverteilung zu beeinflussen und es ihr zu ermöglichen, die IP und den Port des Graustufendienstes gemäß der Graustufenrichtlinie zurückzugeben.

Geeignet für Service-Graustufen mit Backoffice-IDL.

Verdienst

Flexibel, kontrollierbar.
Mangel

Das aktuelle Konfigurationszentrum und L5 selbst berücksichtigen keine festgelegten Routing-Richtlinien und sind nicht skalierbar, daher müssen sie außerhalb dieser entwickelt werden.
Die Metadatenquellen von APIs sind relativ verstreut, und derzeit sind API- und IDL-Metadaten, API-Niveaus und Frequenzlimits auf verschiedene Datenquellen verteilt, sodass nun eine Grayscale-Routing-Datenquelle hinzugefügt werden muss.




Es gibt im Allgemeinen drei Möglichkeiten, Graustufen-nginx+lua zu veröffentlichen: nginx wird nach Cookies verteilt, und nginx wird nach Gewicht zugewiesen:
nginx+lua unterscheidet nach der IP-Adresse des Besuchers, da das Unternehmen eine IP-Adresse exportiert und die Website entweder auf die alte oder die neue Version zugegriffen wird, die für diese Methode nicht geeignet ist
nginx weist Gewichte basierend auf Gewichten zu, was einfach umzusetzen ist und ausprobiert werden kann
nginx teilt sich basierend auf Cookies auf, und Graustufen veröffentlicht basierend auf den Nutzern





Vorhergehend:Javascrip{filter}t window.print() legt den Druckstil und den Inhalt fest
Nächster:Sprechen wir über Grayscale-Publishing und Überwachung von Hintergrunddiensten
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com