Home / Project Guides Artykuł oryginalny

DevOps i system dostaw ciągłych

Automatyczne linie przepływu od składania kodów do wdrażania produkcji oraz tworzenie mierzalnych i trwałych pętli dostaw zamkniętych poprzez wspólne bariery w rozwoju, testowaniu, transporcie i wdrażaniu.

ZHIHUA OIGINAL Praktyka zawodowaZwiększenie wydajności i stabilności dostarczania oprogramowania z automatycznymi liniami przepływu, zamykaniem drzwi jakości i obserwacjamiDevOps i dostawy ZhiHua Tech oryginalny artykuł

Zastosuj scenę

Zespół programowy prawie nieuchronnie napotyka "wąskie gardła" w procesie zwiększania skali: częstotliwość składania kodu wzrasta, ale szybkość dostępu staje się wolniejsza; różne narzędzia i procesy są opracowywane, testowane i prowadzone na siebie, wymagające ręcznego kontaktu między trzema osobami i systemem w czasie; różnice środowiskowe sprawiają, że "uruchomić na mojej maszynie" słowny argument, a niepowodzenie linii, które wymagają log liczby logów, i utrata użytkowników, gdy problemy są wykrywane.

Problem nie polega na tym, że drużyna nie pracuje ciężko, ale że tak jest.Brak zautomatyzowanego systemu i norm współpracy łączących rozwój, testowanie, wdrażanie, transport i komunikację. Sceny opisane tutaj są dla zespołów oprogramowania, które spodziewają się zbudować znormalizowane praktyki DevOps i ciągłe możliwości dostawy, i są wyświetlane na stronachZhiHua Tech (Shanghai e- Seok- shu Hsien- Shui Information Technology Ltd.)Dostępne metody budowy i dostarczania systemu DevOps nie stanowią ujawniania danych dla konkretnych klientów.

Typowe wyzwania operacyjne

1. Długi cykl uwalniania, wiele operacji ręcznych i wysoki poziom błędu

  • Budowanie i rozmieszczanie ręczniePakiet manualny, serwer do wysyłania, usługa restartowania ręcznego po opracowaniu kodu - aktualizacja może zająć pół godziny. Każda wersja jest stresującą operacją, a nieznaczny wyciek może nie być udany.
  • Niespójność w zakresie ochrony środowiskaIstnieją ukryte różnice między środowiskiem deweloperskim, środowiskiem testowym, środowiskiem prepublikacyjnym i środowiskiem produkcyjnym - wersja systemu operacyjnego, konfiguracja pośrednia, poleganie na małych numerach wersji biblioteki. Różnice te prowadzą do ciągłego występowania osobliwości po tym, jak kod przyjęty przez test zostanie zastosowany do produkcji.
  • Brak standardowych mechanizmów wycofywania: Gdy po wydaniu wykrywa się poważną awarię, cofanie zależy od ręcznych operacji, a nawet od odzyskiwania kopii zapasowych, a czas cofania jest mierzony w godzinach, a nie minutach.

2. Opóźnienie reakcji z testów i ręcznej jakości dolnego

  • Łańcuch testowy to wąskie gardło.: Okres próbny może trwać tydzień po opracowaniu przedstawionego kodu. Zespół programistyczny nadal zapisuje kod do przodu, a do czasu powrotu testu, rozwój przebiega długą drogę, w oparciu o stary kod, a naprawa Bug stał się bolesnym "psychologicznym backsupposity".
  • Zakres badania regresji jest niewystarczający• Ręczne przypadki ucieczki przed wydaniem, ograniczone do czasu i siły roboczej, zwykle obejmujące tylko główny proces. Marginalizacja i degradacja są często wykrywane po reklamacji użytkownika.

3. Niska obserwowana odpowiedź na awarię w trybie online i biernym

  • Logi są rozproszone i trudne do podłączeniaW architekturze mikrousług, żądanie użytkownika może obejmować 5- 10 przykładów usług. Logi usług są rozproszone na różnych serwerach, a problemy są sprawdzane na podstawie log- by- linii, bez jednego serii trackID.
  • Spóźnimy się na obserwację.: Zasady alarmu są szerokie - często tylko wtedy, gdy liczba użytkowników znacznie spadła i firma została uszkodzona - i uruchamia alarm. Brak analizy połączeń i wczesnego ostrzegania o wskaźnikach operacyjnych (niższa ilość, wskaźnik sukcesu płatności) i wskaźników infrastruktury.

Myślenie projektowe programu

1. Budowa znormalizowanych linii przepływu CI / CD

  • Wyłączniki do składania kodów: Opracowanie kodu Push do określonej gałęzi automatycznie uruchamia budowę linii strumieniowej - kompilować, przetestować urządzenie, skanować kod (SonarQube), bezpieczne skanowanie, konstrukcja lustrzana. Jeśli jakiekolwiek połączenie nie powiedzie się, deweloper otrzymuje natychmiastowe powiadomienie w IDE lub Enterprise IM.
  • Samoobsługa środowiskowa: Środowisko testowe i środowisko przedwysyłkowe są zdefiniowane przez standardową definicję infrastruktury lub kodu (terraform / Andible), a każdy członek zespołu może stworzyć pełne środowisko jednym kluczem.
  • Wypuszczanie i rozmieszczanie w skali szarości: Wydawnictwa produkcyjne są najpierw stosowane 5- 10%, a obserwacja podstawowych wskaźników (błędy, opóźnienia, dane biznesowe) jest normalna, i skala do pełnej objętości. Automatycznie, zwroty są uruchamiane, gdy występują nieprawidłowości.

2. Ustanowienie zautomatyzowanych systemów stratyfikacji testowych

  • Piramida testowa: Duża liczba testów jednostkowych (szybki, wiarygodny) Odpowiedni test integracyjny Niewielka liczba testów końcowych. Każda linia strumieniowa jest uruchamiana najpierw testami jednostkowymi (sekundy), a następnie tylko po przejściu jest zintegrowany test.
  • Automatyzacja testu regresji: W każdym przypadku, gdy w wyniku przekazania następuje opóźnienie w interfejsie P99 przekraczającym próg, w każdym przypadku budowa automatycznie oznacza awarię.

3. Budowa pełnej wykrywalności łańcucha

  • Zjednoczone śledzenie dziennika i łącza: Na podstawie ELK / Loki + OpenTelemetry wszystkie dzienniki usług są gromadzone i wstawiane do TraceID. Wprowadź TraceID podczas wyszukiwania pytania, aby zobaczyć czas potrzebny na wywołanie pełnego łącza i każdego węzła.
  • D.D., patrz i uważaj.Monitorowanie infrastruktury (CPU / RAM / dysk / sieć) + Monitorowanie aplikacji (QPS / opóźniony / błąd) + Monitorowanie operacyjne (sukces w zakresie niższych / płatności) jest połączone z trzema warstwami. Zasady alarmu wspierają wykrywanie symetrii / pierścienia, aby uniknąć błędnego raportowania i zaniżania ustalonych progów.

Zakres zdolności systemu

Zarządzanie kodem i budową

  • GitFlow / Trunk- based
  • Zintegrowane budowanie i poleganie na zarządzaniu projektami wielomodułowymi
  • Pasek drzwi jakości kodu: skanowanie statyczne, wykrywanie luki bezpieczeństwa, kontrola pokrycia testowego
  • Zintegrowane zarządzanie magazynem produktów (lusterko dokujące / JAR / WAR / NPM)

• Trwająca integracja i wdrażanie

  • Jenkins / Gitlab CI / GitHub Actions Waterline
  • Automatyczne wdrażanie wielo-środowiskowe (opracowanie / badanie / publikacja wstępna / produkcja)
  • Wydanie w skali szarości, wdrożenie niebieskiej zielonej, strategia aktualizacji
  • Wydawanie i automatyzacja zapisów zmian w strumieniu homologacji

Badanie automatyki

  • Moduł Test / Zintegrowana Polityka Testowania / Koniec-Koniec-Koniec
  • Ocena wartości odniesienia i badania regresji
  • Badanie umowy (pakt) w celu zapewnienia wzajemnej zgodności usług
  • Test Chaos Mesh w celu sprawdzenia odporności

• Platformy obserwacyjne

  • ELK / Grafana Loki Platforma centralnego dziennika
  • Prometeusz + Wskaźnik Grafana Monitoring i wizualizacja
  • OpenTelemetria, śledzenie połączeń.
  • + Powiadomienie o wielu kanałach (rejsy / mikro / fly book / PagerDuty)

Infrastruktura jest kodem

  • Terraform / Pulumi Cloud Resource Organization
  • Zarządzanie konfiguracją Andible / SaltStack
  • Zarządzanie klastrem Kubernetes i Auto- Scalp
  • Standardowy sposób wdrażania aplikacji Helm Chart

Realizacja

Faza Dostawa Główne elementy
Ocena DevOps Diagnoza obecnej sytuacji Obecne procesy badawczo-rozwojowe i ocena łańcucha narzędzi, kwantyfikacja punktów bólu, ocena dojrzałości i mapa drogowa na potrzeby poprawy
Linia wody działa. Bieżąca linia CI / CD Operacyjna budowa, testowanie i rozmieszczanie linii strumieniowych, w tym skanowanie kodów, testowanie zabezpieczeń i automatyczna integracja testowa
System sterowania Platforma obserwacyjna Logi / wskaźniki / linki zakończone, konfiguracje kluczowych zasad alarmowych wprowadzone, monitorowane dostawy dużych dysków
Regulacja dokumentu DevOps Codebook Polityka oddziału, proces przeglądu kodeksu, proces wydania, proces wycofania, normy cła i reagowania kryzysowego
Umocnienie zespołu. Szkolenia i ćwiczenia Szkolenie operacyjne łańcucha narzędzi, awaryjna defekcja (dzień gry), szablon przekazywania fragmentów i ulepszone śledzenie

Docelowa orientacja wartości

  • Zarówno częstotliwość, jak i niezawodność wydania: Do i nawet częściej, miesięczne wydania są wydawane na żądanie, z każdym wydaniu jest znacznie zmniejszona o mały zestaw zmian.
  • 70% +• Eliminacja sztucznych połączeń i połączeń oczekujących poprzez automatyczne linie przepływu.
  • Średni czas naprawy nieprawidłowości (MTTR) skompresowanych od rodzica do minuty: śledzenie łańcucha + inteligentny alarm, pozycja root już nie odgadnąć.
  • Praca zespołowa przeszła z "seriali i tak dalej" do "komedii".: Samoobsługa środowiskowa, automatyczna zwrotna, rozwój i QA nie czekają już na siebie.

WIEDZI WIECEJ:

  • Transport Dostawy Produktu - Automatyzacja Wdrożenia ZhiHua Tech, Monitoring alarmów i usług Zakładowych Transportu
  • Custom Software Development - Specyficzny dla systemu projekt i rozwój dla unikalnych procesów biznesowych
  • Współpraca projektowa i przewodnik dostaw - pełny proces współpracy od komunikacji na żądanie po akceptację i inspekcję
  • Bezpłatne porady - komunikować się ze swoim szczególnym potrzebami z zespołem ZhiHua Tech
Profesjonalne usługi dla ZhiHua Tech

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.

Konsultanci łącznikowi
Deklaracja odpowiedzialności za zawartość

Organ publikacyjny: Szanghaj, podobnie jak ZhiHua Tech. Niniejszy dokument jest wykorzystywany do celów technicznych i decyzyjnych projektów; fakty, dane i perspektywy zewnętrzne są prezentowane na stronie i mogą być zweryfikowane w zakresie i nie stanowią zobowiązania do wyników konkretnego projektu.Kontrola rozliczania treści, źródła informacji i polityki korekty