Najlepsze praktyki DevOps
DevOps wymaga zmian kulturowych, zautomatyzowania procesów i inwestycji w odpowiednie technologie

Wypróbuj Compass bezpłatnie
Ulepsz środowisko programistyczne, skataloguj wszystkie usługi i popraw kondycję oprogramowania.
Najlepsze praktyki DevOps obejmują zarządzanie projektami zgodne z metodyką Agile, zastosowanie CI/CD, automatyzację, monitorowanie, wgląd i ciągłe informacje zwrotne.
Czym jest DevOps?
Najlepiej zdefiniować DevOps jako dążenie do poprawy komunikacji i współpracy między zespołami programistycznymi i operacyjnymi w celu zwiększenia szybkości i jakości wdrażania oprogramowania. To nowy sposób pracy, który ma znaczący wpływ na zespoły i organizacje, dla których pracują.
Znaczenie DevOps
Choć transformacja w kierunku DevOps wymaga przebudowy struktur i procesów biznesowych, wysiłek jest tego wart. W ankiecie Atlassian DevOps Trends 202099 procent respondentów stwierdziło, że DevOps ma pozytywny wpływ na ich organizację.
W innym badaniu dotyczącym DevOps, raporcie DORA 2019 State of DevOps, czytamy, że elitarni praktycy wdrażają produkty 208 razy częściej i 106 razy szybciej niż zespoły o niskim poziomie wydajności. Nie chodzi tu tylko o szybkość wprowadzania na rynek — DevOps oferuje lepszą jakość przejawiającą się tym, że elitarne zespoły odnotowują siedmiokrotnie niższy wskaźnik awarii w porównaniu z zespołami o niskim poziomie wydajności.
Naszych 8 najlepszych praktyk dotyczących wdrażania DevOps
1. Zwinne zarządzanie projektami
Agile to iteracyjne podejście do zarządzania projektami i tworzenia oprogramowania, które pomaga zespołom dostarczać wartość klientom szybciej i przy mniejszej liczbie problemów. Zespoły Agile skupiają się na realizacji zadań w mniejszej liczbie kroków, zamiast wyczekiwać jednej ważnej daty wydania. Wymagania, plany i wyniki są oceniane w sposób ciągły, co umożliwia zespołom odpowiadanie na informacje zwrotne i reagowanie w razie potrzeby.
Poniżej przedstawiono kluczowe pojęcia dotyczące zarządzania projektami zgodnego z metodyką Agile:
Zacznij od przepływ pracy, który obejmuje cztery fazy: do zrobienia, w toku, przegląd kodu i gotowe. Przeczytaj więcej o przepływach pracy.
Zespoły muszą podzielić duże projekty na mniejsze zadania i reagować na zmiany potrzeb lub zakres w miarę postępów. Przeczytaj więcej o tym, jak używać epików, historyjek i motywów do pracy nad zakresem i strukturą.
Jak planować, śledzić i mierzyć pracę w toku? Scrum i kanban są podstawowymi modelami dla zespołów praktykujących metodykę Agile.
2. Przesunięcie w lewo dzięki CI/CD
Kiedy zespoły dokonują „przesunięcia w lewo” (Shift left), wprowadzają testy do swoich procesów tworzenia kodu na wczesnym etapie. Zamiast wysyłać wiele zmian do oddzielnego zespołu testowego lub QA, różne testy wykonuje się w całym procesie kodowania, dzięki czemu programiści mogą naprawić błędy lub poprawić jakość kodu podczas pracy na odpowiedniej sekcji bazy kodu. Kluczowa dla „przesunięcia w lewo” jest praktyka ciągłej integracji i ciągłego dostarczania (CI/CD) oraz wdrażania. Dowiedz się więcej o CI/CD.
3. Tworzenie za pomocą odpowiednich narzędzi
Łańcuch narzędzi DevOps wymaga odpowiednich narzędzi dla każdej fazy cyklu życia DevOps, dając kluczowe możliwości poprawy jakości oprogramowania i szybkości dostarczania. Dowiedz się więcej na temat wybierania narzędzi DevOps i sprawdzania funkcjonalności dla każdej fazy cyklu życia DevOps.
4. Stosowanie automatyzacji
Ciągła integracja i dostarczanie pozwala programistom na regularne scalanie kodu w głównym repozytorium. CI/CD automatyzuje proces sprawdzania kodu, od podziału na partie w określonym oknie do częstych commitów. Oprócz CI/CD niezbędnym elementem praktyk DevOps jest zautomatyzowane testowanie. Zautomatyzowane testy mogą obejmować testy kompleksowe, jednostkowe, integracyjne i testy wydajności. Dowiedz się więcej na temat włączania automatyzacji do procesów tworzenia oprogramowania. Dowiedz się więcej o automatyzacji.
5. Monitorowanie pipeline'u DevOps i aplikacji
Ważne jest, aby monitorować pipeline DevOps, tak by błędna kompilacja lub nieudany test nie spowodowały niepotrzebnych opóźnień. Automatyzacja znacznie zwiększa szybkość tworzenia oprogramowania, ale jeśli ma dojść do awarii w zautomatyzowanym procesie i nikt o tym nie wie, lepiej wykonać pracę ręcznie. Na podobnej zasadzie ważne jest monitorowanie aplikacji produkcyjnych w celu zidentyfikowania awarii lub ograniczeń wydajności, zanim poinformują nas o tym klienci.
6. Wgląd
Branża odeszła od monolitycznych systemów i aplikacji lokalnych do natywnych aplikacji w chmurze aplikacji opartych na mikrousługach, monitorowanie jest teraz znacznie bardziej skomplikowane. W rezultacie wzrasta zainteresowanie wglądem. Często mówi się, że trzy filary wglądu to dzienniki, ślady i wskaźniki. Dzienniki są generowane przez większość komponentów systemów i aplikacji i składają się z danych szeregów czasowych dotyczących funkcjonowania takiego systemu lub aplikacji. Ślady śledzą przepływ logiki w aplikacji. Wskaźniki obejmują rezerwację lub użycie procesora/pamięci RAM, miejsce na dysku, łączność sieciową i wiele innych parametrów. Wgląd oznacza po prostu wykorzystanie wszystkich trzech z tych źródeł informacji w celu dokonywania odkryć i prognoz dotyczących funkcjonowania złożonego systemu, co byłoby trudne do wykonania innymi sposobami. Dowiedz się więcej o wglądzie.
7. Zbieranie ciągłych informacji zwrotnych
Ciągłe informacje zwrotne dostarczają członkom zespołu wszystkich danych potrzebnych do wykonania zadania w odpowiednim czasie. W przypadku zespołów programistycznych oznacza to, że są one niezwłocznie powiadamiane o wszelkich awariach w pipelinie. Ponadto programistom udostępniane są tak szybko jak to możliwe przejrzyste, dokładne wyniki testów kodu. Zespoły zarządzania produktem są informowane o wszelkich awariach produkcji lub obniżeniu wydajności lub zgłaszanych błędach. Dawniej uważano powszechnie, że zespół programistyczny może optymalizować swoją pracę tylko pod kątem szybkości albo jakości. Ciągłe informacje zwrotne są jednym z elementów DevOps, który umożliwia osiągnięcie obu tych celów.
8. Zmiana kultury
DevOps wymaga współpracy, przejrzystości, zaufania i empatii. Jeśli Twoja organizacja jest jedną z niewielu firm, w których te cechy są już ugruntowane, wdrożenie praktyk DevOps nie powinno przysporzyć zespołom problemu. W przeciwnym razie potrzeba będzie trochę wysiłku, aby wypracować te cechy. Najczęściej spotykane struktury organizacyjne znajdują się w tak zwanych „silosach”, co oznacza, że różne zespoły mają oddzielne obszary odpowiedzialności i obowiązki oraz że istnieje minimalna komunikacja i współpraca między zespołami. Aby DevOps było skuteczne, trzeba wyeliminować te bariery poprzez zastosowanie praktyki „odpowiadasz za to, co tworzysz”. Nie oznacza to, że nie ma osób ani zespołów, które się w czymś specjalizują, ale że linie komunikacji i współpracy między zespołami są otwarte i wykorzystywane. Przeczytaj więcej na temat budowania kultury zespołowej.
Doskonalenie praktyk DevOps to niekończący się proces. Rozpoczynając transformację DevOps, warto skupić się na ludziach i procesach, i sięgnąć po zaawansowane narzędzia, integrację i funkcjonalność funkcji, gdy zespół stanie się dojrzalszy.
Jeśli dopiero zaczynasz przygodę z DevOps, poznaj najlepsze metody postępowania dzięki naszemu Przewodnikowi po DevOps dla początkujących. Aby zacząć korzystać z DevOps w praktyce, zalecamy wypróbowanie Open DevOps, który zapewnia zespołom wszystko, czego potrzebują do opracowywania i obsługi oprogramowania. Zespoły mogą utworzyć odpowiadający im łańcuch narzędzi DevOps dzięki integracjom z produktami wiodących dostawców i aplikacjom ze sklepu Marketplace. Wypróbuj teraz.