2017-12-13 6 views
0

Fowler says ein kleiner Prozentsatz des Verkehrs wird auf die Canary Version geroutet, während die alte Version noch läuft.Canary release wenn Warteschlangen beteiligt sind

Dies setzt voraus, dass das Routing auf der Load Balancer/Router-Ebene gesteuert werden kann.

Wir haben einen Anwendungsfall, bei dem ein Mikro-Dienst eine Warteschlange ausnutzt und etwas verarbeitet. Wir haben uns gefragt, wie das Routing gesteuert werden kann, um einen Teil des Datenverkehrs an den Kanarienvogel zu richten.

Eine der Optionen, die wir in Betracht gezogen haben, ist eine separate "Canary Queue", aber das Problem ist, dass die Produzenten sich dieser Schlange, die wie ein Geruch klingt, bewusst sein müssen.

Dies scheint ein häufiges Problem bei Warteschlangen zu sein. Irgendwelche Ideen, wie Kanarienvogel für solche Anwendungen angenommen wurde?

Antwort

0

Wie Sie bereits geschrieben haben, besteht das Ziel der Veröffentlichung von canary darin, einen kleinen Teil des Live-Verkehrs durch eine neue Bereitstellung zu steuern, um die potenziellen Auswirkungen von Fehlern in der neuen Bereitstellung zu minimieren. Wenn Sie das Routing für den bereitgestellten Dienst nicht steuern, können Sie den Prozentsatz des von der neuen Bereitstellung behandelten Datenverkehrs anpassen, indem Sie den Prozentsatz der Dienste der neuen Version auf die Dienste der aktuellen Version anpassen.

Zum Beispiel wird Ihre Warteschlange von einem Pool von 100 Serviceinstanzen auf v1 verarbeitet. Um die nächste Version zu testen, stelle 1 bis 10 von v2 bereit und deaktiviere 1 bis 10 von v1. Dies entspricht ungefähr dem Routing von 1 bis 10% des Verkehrs zum neuen Dienst.

Wenn der erwartete Durchsatz der neuen Version des Dienstes erheblich unterschiedlich ist, sollten Sie das Verhältnis neuer Dienste zu alt anpassen.

Wenn die aktuelle Bereitstellung von Diensten sehr gering ist, sollten Sie in Betracht ziehen, die Gesamtzahl der bereitgestellten aktuellen Dienste vorübergehend zu erhöhen, bevor Sie eine Instanz des neuen Dienstes bereitstellen. Angenommen, Ihre aktive Bereitstellung besteht aus 3 Diensten. Wenn Sie 6 weitere Dienste Ihres aktuellen Dienstes bereitstellen, bevor Sie einen Dienst der neuen Version bereitstellen, können Sie den Datenverkehr zum Kanarienvogel näher bei 10% halten.

Verwandte Themen