Informacje o siatkach usług
Siatka usług to warstwa infrastruktury w aplikacji, która ułatwia komunikację między usługami. Siatki usług zapewniają możliwości, takie jak zarządzanie ruchem, odporność, zasady, zabezpieczenia, silna tożsamość i możliwość obserwowania obciążeń. Aplikacja jest oddzielona od tych funkcji operacyjnych, a siatka usług przenosi je z warstwy aplikacji i w dół do warstwy infrastruktury.
Scenariusze
W przypadku korzystania z siatki usług można włączyć takie scenariusze jak:
Szyfrowanie całego ruchu w klastrze: włącz wzajemne protokoły TLS między określonymi usługami w klastrze. Można to rozszerzyć na ruch przychodzący i wychodzący w sieci obwodowej i zapewnić bezpieczną domyślnie opcję bez konieczności wprowadzania zmian w kodzie aplikacji i infrastrukturze.
Wdrożenia kanary i etapowe: określ warunki dla podzestawu ruchu, który ma być kierowany do zestawu nowych usług w klastrze. Po pomyślnym teście wydania kanargu usuń routing warunkowy i fazę stopniowo zwiększając % całego ruchu do nowej usługi. Ostatecznie cały ruch zostanie skierowany do nowej usługi.
Zarządzanie ruchem i manipulowanie nimi: utwórz zasady dotyczące usługi, która ogranicza cały ruch do wersji usługi z określonego źródła lub zasady, które stosują strategię ponawiania prób do klas awarii między określonymi usługami. Dublowanie ruchu na żywo do nowych wersji usług podczas migracji lub debugowania problemów. Wstrzykiwanie błędów między usługami w środowisku testowym w celu przetestowania odporności.
Możliwość obserwowania: Uzyskaj wgląd w sposób, w jaki usługi są połączone, a ruch przepływa między nimi. Zbierz metryki, dzienniki i ślady dla całego ruchu w klastrze, w tym ruch przychodzący/wychodzący. Dodaj możliwości śledzenia rozproszonego do aplikacji.
Kryteria wyboru
Przed wybraniem siatki usług upewnij się, że rozumiesz wymagania i rozumowanie dotyczące instalowania siatki usług. Odpowiedz na następujące pytania:
Czy kontroler ruchu przychodzącego jest wystarczający dla moich potrzeb?: Czasami posiadanie możliwości, takiej jak testowanie A/B lub dzielenie ruchu w ruchu przychodzącym, jest wystarczające do obsługi wymaganego scenariusza. Nie dodawaj złożoności do środowiska bez żadnych korzyści.
Czy moje obciążenia i środowisko mogą tolerować dodatkowe obciążenia?: Wszystkie składniki wymagane do obsługi siatki usług wymagają zasobów, takich jak procesor CPU i pamięć. Wszystkie serwery proxy i skojarzone z nimi zasady sprawdzają, czy dodają opóźnienie do ruchu. Jeśli masz obciążenia, które są bardzo wrażliwe na opóźnienia lub nie można zapewnić dodatkowych zasobów do pokrycia składników siatki usług, należy ponownie rozważyć użycie siatki usług.
Czy dodanie niepotrzebnej złożoności?: Jeśli chcesz zainstalować siatkę usług w celu korzystania z funkcji, która nie ma kluczowego dla zespołów biznesowych lub operacyjnych, rozważ, czy warto dodać złożoność instalacji, konserwacji i konfiguracji.
Czy można to zastosować w podejściu przyrostowym?: Niektóre siatki usług, które zapewniają wiele możliwości, można zastosować w bardziej przyrostowym podejściu. Zainstaluj tylko składniki, które należy zapewnić powodzenie. Jeśli później okaże się, że wymagane są więcej możliwości, zapoznaj się z nimi w późniejszym czasie. Opór chęć zainstalowania wszystkiego od samego początku.
Następne kroki
Usługa Azure Kubernetes Service (AKS) oferuje oficjalnie obsługiwane dodatki dla platformy Istio i usługi Open Service Mesh:
Istnieją również siatki usług udostępniane przez projekty open source i inne firmy, które są często używane z usługą AKS. Te siatki usług nie są objęte zasadami pomocy technicznej usługi AKS.
Aby uzyskać więcej informacji na temat krajobrazu siatki usług, zobacz Poziom usługi Service Mesh warstwy 5.
Aby uzyskać więcej informacji na temat wysiłków związanych ze standaryzacją siatki usług, zobacz:
Azure Kubernetes Service