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
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.