Zastosuj scenę
Organizacja dopasowania i zdolności technicznej tradycyjnych zastosowań monomerów może zostać znacznie zredukowana, ponieważ przedsiębiorstwo rozwija się z jednej linii produktu + monostruktura do wielofunkcyjnej linii produktu + wielozespołowy etap rozwoju.Im dłużej cykl wdrażania, tym wyższe koszty testów regresji, potrzeba drobnych zmian w module innym niż podstawowy, które mają być ponownie wydane dla całego zastosowaniaSygnały te sugerują, że wprowadzenie struktur mikrousług nie jest już "zbyt zaprojektowanym", lecz warunkiem koniecznym do kontynuowania skutecznej realizacji przez zespoły.
Typowe sygnały punktu skrętu obejmują: czasy rozpoczęcia aplikacji ponad 30 sekund prowadzące do pogorszenia się przebiegu aktualizacji toczenia; znaczące różnice w częstotliwości zmian w różnych modułach biznesowych (podstawowe moduły transakcji są aktualizowane raz w tygodniu i moduły zarządzania back- office prawdopodobnie poruszają się tylko raz w miesiącu), ale pojedyncze ciało zmusza wszystkie moduły do utrzymania tego samego rytmu uwalniania; wiele zespołów deweloperskich współpracuje na tym samym magazynie kodów w celu konsolidacji konfliktów i zwrotu ryzyka wraz ze wzrostem wskaźnika wielkości zespołu; a wyciek pamięci lub cykl śmierci modułu może spowolnić całą aplikację, a brak izolacji zasobów sprawia, że promień awarii jest równy całemu systemowi.
Opisane tu scenariusze dotyczą przedsiębiorstw o wysokim wskaźniku rozwoju przedsiębiorstw, współpracy wielozespołowej, wysokiego zapotrzebowania na odporność systemu i wydajnej realizacji.ZhiHua TechZapewnienie kompletnych usług transformacji mikrousług od doradztwa ustrukturyzowanego do wdrożenia Ipromation, niereprezentujących konkretnych danych klientów.
Typowe wyzwania operacyjne
1. Zatory wydajności w strukturach jednoformatowych
- Zwolnienie sprzęgu: 30 deweloperzy dzielą magazyn kodów i linię strumieniową CI / CD. Każda kombinacja kodów może zablokować wydanie innych. Pilne poprawki dla błędu płatności, które muszą poczekać aż poprzedni zaległości 5 MR zostaną skonsolidowane i powróci do testu jest zakończona - te MR nie mają nic wspólnego z modułem płatności.
- Wybuchy testowe.: Zakres testów regresji dla pojedynczej aplikacji dotyczy "pełnej aplikacji". Nawet jeśli SQL jest modyfikowany tylko jednym interfejsem zapytania, uruchomienie kompletnego pakietu testów na koniec badania zajmuje 40 minut do 2 godzin. Długość cyklu sprzęgania z reakcją na badanie spowalnia prędkość iteracyjną.
- Blokada technicznaCała aplikacja jest powiązana z magazynem technologicznym (jak Java 8 + Spring), nowym scenariuszem biznesowym, który jest bardziej odpowiedni dla Go lub Node.js, ale wprowadzenie nowego języka oznacza nową budowę, wdrożenie i system monitorowania, a zespoły często wybierają "współpracę".
2. Kompleksowość spowodowana przez dystrybucję
- Sieć jest niepewna.: Jedno- ciało jest nazywane metodą, a mikrousługi są podłączone do sieci. Sieci nadgodzin, rozpakowane, podzielone - te wzorce awarii, które nie istnieją w pojedynczym - ciała są rutynowe w strukturach mikrousług. Bez rozsądnego czasu, ponownych testów i strategii topnienia, usługa wibruje jak domino.
- Spójność danych: ACID jest podstawą dla usług baz danych z pojedynczymi źródłami. W ramach każdej usługi istnieje własna baza danych, a operacje cross-service (następujące są: = usługa zamówień + usługa inwentaryzacji + usługa płatnicza) muszą opierać się na programach usług dystrybucyjnych, takich jak Saga lub TCC, aby zapewnić ostateczną spójność. Ta zmiana myślenia - z "zakończenia działalności" do "kompensaty mogą być możliwe dla każdego kroku" - jest najtrudniejszym progu poznawczego dla zespołu do przekroczenia.
- Debugowanie i determinacja: Zapytanie może przekroczyć 5- 8 micro- usług. Kiedy użytkownik zgłasza "w dół zamówienie nie powiodło się" musisz zderzyć pełny łańcuch wywołania z rejestru bramki, dziennika usług zamawiania, dziennika usług inwentaryzacji, dziennika usług płatniczych, bez rozproszonego śledzenia (np. Jaeger, SkyWalking), problem pozycjonowania jest jak igła.
3. Brak infrastruktury i mobilności
- Kontaineryzacja i organizacjaMikrousługi są naturalne dla wprowadzania kontenelizacji, ale Kubernetes sam ma stromą krzywą uczenia się. Pod Network, Discovery Service, Ingress Route, Configuration Map, Secret Management, HPA Resilent rozprysk - koncepcje, które są zerowe dla tradycyjnych zespołów.
- Kompleksowość CI / CD: Od linii strumienia do linii N (po jednej dla każdej usługi), budowa luster, pchnięcie, wdrożenie, rollback wymaga standaryzacji. Bez jednolitego szablonu linii strumienia i zarządzania produktem, fragmentacja procesu dostawy może być spowodowana przez oddzielne zespoły.
- ObserwacjaLogowanie, wskaźniki i śledzenie - trzy filary są jednym. W ramach struktur mikrousługowych brak jednego z filarów może prowadzić do znacznego zmniejszenia zdolności do eksmisji.
Myślenie projektowe programu
1. Progresywny podział zamiast Big Bang przepisać
ZhiHua Tech nalegał na transformację mikrousługHangler Fig Patterson• Stopniowo przesuwa się w kierunku funkcjonalnych modułów w nowej architekturze, zachowując normalne funkcjonowanie starego systemu, który współistnieje przez warstwy trasy do czasu całkowitego zastąpienia starego systemu:
- Najpierw usuniemy moduł zmiany HF.Priorytetem jest rozdzielenie najczęstszych i niezależnych modułów działalności gospodarczej (np. centrów użytkowników, centrów towarowych), które po ich demontażu korzystają z dywidend z niezależnego wdrożenia - zmiany nie są już ograniczone przez tempo uwalniania innych modułów.
- API Brama APIBrama jest odpowiedzialna za dystrybucję trasy, uwierzytelnianie prześwitu, ograniczenie przepływu i rekordy dziennika. Prośba o przekazanie bramki do odpowiedniej mononurycznej lub mikrousługi poprzez wstępne ustalanie ścieżki, bez poczucia przedniego końca.
- Baza danych jest podzielona: Każdy oddzielony mikroserwis posiada niezależną bazę danych, Schema (nawet przykład bazy danych stand- alone), która jest ostatecznie zgodna z jedną bazą danych poprzez synchronizację danych lub wywołanie API. Rozbieranie w etapach zmniejsza ryzyko za pomocą strategii "Dub- Book + -Top- Top- Top- Read".
2. Zarządzanie komunikacją w ramach usług
W przypadku gdy liczba usług mikroderiów przekracza 10, tradycyjne zarządzanie usługami SDK (SDK dla każdej usługi wprowadzonej do ram RPC) zaczyna ujawniać koszty utrzymania - modernizacja SDK wymaga zmiany struktury i publikacji wszystkich usług, różne usługi SDK wymagają innej realizacji, a zmiana strategii zarządzania wymaga zmian kodu.
ZhiHua Tech zaleca wprowadzenie po skali usługi osiągnął pewien poziom Mesh Service (np. Istio + Wysłannik), zdolność zarządzania świadczeniem usług na rzecz agenta Sidecar:
- Zarządzanie przepływemUwolnienie skali szarości (poprzez ważenie / odwrócenie nagłej / Cookie), nieskuteczne testowanie wtrysku, lusterka - możliwości te można osiągnąć poprzez konfigurację Istio 's Design Rule i Vital Services bez konieczności modyfikacji kodów biznesowych.
- Bezpieczna komunikacja: MTLS (uwierzytelnianie TLS dwukierunkowe) jest automatycznie włączone do komunikacji interservice, emisja, rotacja i cofnięcie certyfikatów jest automatycznie zarządzane przez Citadel, a deweloperzy biznesowi nie muszą postrzegać bottom- up mechanizmu bezpieczeństwa.
- Obserwacja: Sidecar automatycznie zbiera dane telemetryczne (opóźnione, skuteczne, wskaźnik błędów) dla wszystkich stacji przychodzących i wychodzących oraz wyjście do Prometeusza (wskaźnik) + Jaeger (link) + ELK (log), tworząc kompletny obserwowalny trójkąt.
Linia dostawy CI / CD i Gitoops
ZhiHua Tech pomaga klientom zbudować standaryzowany system CI / CD, podstawową zasadą jestWzór dotyczący budowy i wdrożenia wszystkich usług:
- Templatening linii wodnej: Wszystkie usługi mikrodrusowe mają ten sam zestaw szablonów CI / CD (Jenkinsfile lub GitHub Actions workworkwork szablon), które wymagają dostępu do kilku zmiennych (język, port, kwoty zasobów). Unikać fragmentacji przez każdy zespół.
- Gitops Deployment: Oświadczenie o wszystkich zasobach Kubernetes (Deployment, Service, Incongress, Configuration Map) jest przechowywane w Git Repository, gdzie ArgoCD stale monitoruje zmiany w Git Repository i synchronizuje je automatycznie do klastrów. Wszelkie ręczne modyfikacje klastra są rolowane przez kontroler Gitops, aby upewnić się, że "Git Repository = Grupa Real".
- Wypuszczanie z kanalizacji: Progressive dostawy poprzez Argo Rolouts - nowa wersja Pod wdrożony 5% pierwszy, wskaźnik błędu obserwacji i opóźnienia 5 minut, i normalne rozszerzenie wskaźnika do 25% 50% i 100%. Wskaźniki na każdym etapie automatycznie uruchamiają rollback.
Zakres zdolności systemu
Zapiąć się, skonfiskować bazę.
- Planowanie klastrów KubernetesWielośrodowiskowy (rozwój / testowanie / preprodukcja / produkcja) projekt architektury klastra, wybór specyfikacji węzłów, wybór wtyczki sieciowej (Calico / Cilium), projekt programu przechowywania (CSI).
- Zarządzanie lusterkami PorteraPoniżej przedstawiono kilka przykładów ostatnich wydarzeń w dziedzinie lustrzanego lustra: budowa magazynu Harbor, skanowanie bezpieczeństwa lustra (Trivy), strategia lustrzanego szczupłości (wielostopniowa konstrukcja, rozpuszczalność podstawowe lustro).
- Elastyczne rozciąganie: HPA (na podstawie procesora / RAM Poda poziome skalding) + Klaster Autoskaler (skalowanie poziomu węzłów) + KEDA (na podstawie skalowania na podstawie zdarzeń napędzanych niestandardowych wskaźników, takich jak głębokość kolejki komunikatów).
Zarządzanie usługami i komunikacja
- Brama API: Harmonizacja trasy, przepływ ograniczeń, uwierzytelnianie, logowanie, przetwarzanie domen. Obsługuje rozszerzenie pluginizacji do dopasowanej logiki.
- Rejestracja i odkrywanie usług: Odkrycie usług oparte na Kubernetes DNS + Service, zarządzanie metadanych usług zewnętrznych w połączeniu z Consul / Nacos.
- Konfiguracja CentrumNacos / Apollo centralnie zarządza konfiguracją środowiska, zmiany konfiguracji są wysyłane w czasie rzeczywistym, wspierając dystrybucję i rollback w skali szarości.
• System obserwacji
- Dziennik: Fluentd / Filebeat zebrać → Bufor Kafka → Sklep Elasticsearch → Wyświetlacz Kibana. Logi są powiązane z TraceID.
- WskaźnikiPrometeusz + Grafana, obejmujący wskaźniki infrastruktury (węzeł / kontener / Pod) oraz wskaźniki aplikacji (QPS / opóźnione / błędne / operacyjne).
- Śledzenie połączeń: OpenTelemetry + Jaeger, wyświetlanie pełnego łańcucha połączeń i czasu na skok pomiędzy usług wymaganych.
- Wezwij policję.: Alertmanager Secrified Alert (alarm / ostrzeżenie / powiadomienie), wysłany za pośrednictwem Enterprise Micro- Credits / Pertification / Flying Book, z ekranem panelu Grafana.
Dostawa CI / CD
- Standardyzacja repozytorium kodu (polityka oddziału, CODEOWNERS, szablon wniosku o połączenie)
- Automatyzacja, testowanie jednostek, skanowanie kodu (SonarQube), dostawa budowy lustra
- Gitoops Deployment (ArgoCD) + Cyancant / Blue Green Release Strategy
Architektura danych dystrybucyjnych
- Polityka podziału bazy danych: Split pionowo przez pole + Split poziomo przez czas / ID (SharingSfere). Odczyt i zapis oddzielny (pisanie w bibliotece głównej, czytanie z biblioteki).
- Usługi dystrybucyjneJest to niewielka liczba lokalnych kartek informacyjnych na podstawie otrzymanych informacji i lokalnych kartek informacyjnych.
- Struktura pamięci podręcznej: Redis Cluster Multi- Level Cache (lokalna Cafsee + Distribution Cache + Database), Cache Eside / Writer Behind.
Realizacja
| Faza | Dostawa | Główne elementy |
|---|---|---|
| Architektura | Dokument projektu struktury | Program desegregacji usług, definicja granic obszaru, kompaktowy interfejs (API), strategia segregacji danych i architektura infrastruktury |
| Infrastruktura | Klaster K8 + środkowy | Poziom produkcji Kubernetes Klaster wdrożenia (w tym sieci / przechowywania / konfiguracji bezpieczeństwa), brama API, sieć usług, centrum konfiguracji, centrum rejestracji, itp. |
| Obserwacja | System nadzoru i policji | Panel monitorujący Prometeusz + Grafana, platforma ELK log, śledzenie połączeń Jaeger, konfiguracja zasad alarmowych i kanał powiadomienia o hierarchii |
| CI/CD | Waterline + Gitops | Standardowy szablon linii przepływu CI / CD, konfiguracja ArgoCD, strategia wydania kanarka, automatyczny mechanizm zwrotny |
| Migracja | Program i przekazanie w ramach migracji | Program migracji dla Hangerów, skrypty migracji danych, podręcznik transportu, szkolenie zespołowe i 7x24 bezpieczeństwo online |
Docelowa orientacja wartości
- Znaczący wzrost wydajności w realizacjiUsługa jest niezależnie konstruowana, testowana i stosowana, a pojedynczy cykl uwalniania usług jest zmniejszany z "tygodniowego" na "godzinowy" poziom. Naprawa awaryjna nie jest już blokowana przez inne moduły.
- Izolacja i elastyczność błędów: Wyciek pamięci usługi nie powoduje zmniejszenia systemu. Automatyczne wzmocnienie (HPA / KEDA) zapewnia, że w przepływie szczytowym są wystarczające zasoby, aby zmniejszyć koszty automatycznego odzyskiwania zasobów w dolinach niskich.
- Wolność magazynów technologicznych: Różne usługi mogą wybrać najlepsze przedziały technologiczne z miejsca zdarzenia, a wprowadzenie nowych technologii nie będzie już wymagać pełnej przebudowy.
- Obserwacja zasięguBloger twierdzi, że rząd był w stanie "pokazać problem" od "nie ma problemu" do "nie ma wskaźników anomalii widzianych na Grafanie przed skargą użytkownika".
WIEDZI WIECEJ:
- Custom Software Design - Projektowanie i rozwój dla unikalnych procesów biznesowych
- Platforma cyfrowa Biznesu - budowa efektywnej i skalowalnej bazy technologicznej na poziomie przedsiębiorstw
- Transport produktów - pełne zapewnienie dostawy z linii przepływu CI / CD do transportu produkcyjnego
- Bezpłatne porady - komunikować się z zespołem ZhiHua Tech o swoich potrzebach strukturalnych
Czy istnieje potrzeba dalszej analizy w kontekście obecnego stanu przedsiębiorstwa?
Zapewniamy doradztwo techniczne IT, konstrukcję informacji o przedsiębiorstwach, projekt oprogramowania Outlook, FDE przedsiębiorstwo AI aplikacji i oprogramowania i usług dostawy.