Udostępnij przez


Co to jest metodyka DevOps?

Metodyka DevOps łączy programowanie (Dev) i operacje (Ops) w celu zjednoczenia ludzi, procesów i technologii w planowaniu aplikacji, tworzeniu, dostarczaniu i operacjach. Metodyka DevOps umożliwia koordynację i współpracę między wcześniej silosowymi rolami, takimi jak programowanie, operacje IT, inżynieria jakości i bezpieczeństwo.

Zespoły wdrażają kulturę, praktyki i narzędzia metodyki DevOps, aby zwiększyć zaufanie do aplikacji, które tworzą, lepiej reagują na potrzeby klientów i szybciej osiągają cele biznesowe. Metodyka DevOps pomaga zespołom stale dostarczać klientom wartość dzięki tworzeniu lepszych, bardziej niezawodnych produktów.

Metodyka DevOps i cykl życia aplikacji

Metodyka DevOps wpływa na cykl życia aplikacji w fazach planowania, programowania, dostarczania i operacji . Każda faza opiera się na innych fazach, a fazy nie są specyficzne dla roli. Kultura metodyki DevOps obejmuje wszystkie role w każdej fazie w pewnym stopniu.

Na poniższym diagramie przedstawiono fazy stylu życia aplikacji DevOps:

Diagram koncepcyjny ilustrujący cykl życia aplikacji DevOps.

Cele i korzyści metodyki DevOps

Gdy zespół przyjmuje kulturę, praktyki i narzędzia metodyki DevOps, może osiągnąć niesamowite rzeczy:

Skróć czas wprowadzania produktów na rynek

Dzięki zwiększonej wydajności ulepszona współpraca zespołowa, narzędzia automatyzacji i ciągłe wdrażanie — zespoły mogą szybko skrócić czas od powstania produktu do wprowadzenia na rynek.

Dostosowywanie się do rynku i konkurencji

Kultura Metodyki DevOps wymaga, aby zespoły skupiły się na kliencie. Dzięki zwinności, współpracy zespołowej i skoncentrowaniu się na środowisku klienta zespoły mogą stale dostarczać wartość swoim klientom i zwiększać konkurencyjność na platformie handlowej.

Utrzymywanie stabilności i niezawodności systemu

Dzięki wdrożeniu praktyk ciągłego ulepszania zespoły mogą budować większą stabilność i niezawodność wdrażanych produktów i usług. Te rozwiązania pomagają zmniejszyć liczbę niepowodzeń i ryzyka.

Popraw średni czas naprawy

Średni czas odzyskiwania metryki wskazuje, jak długo trwa odzyskiwanie po awarii lub naruszeniu. Aby zarządzać awariami oprogramowania, naruszeniami zabezpieczeń i planami ciągłego ulepszania, zespoły powinny mierzyć i pracować nad ulepszeniem tej metryki.

Wdrażanie kultury metodyki DevOps

Aby w pełni zaimplementować metodykę DevOps, należy wdrożyć kulturę DevOps. Kultywowanie kultury Metodyki DevOps wymaga głębokich zmian w sposobie pracy i współpracy ludzi. Gdy organizacje zatwierdzą kulturę Metodyki DevOps, tworzą środowisko, w którym zespoły o wysokiej wydajności będą się rozwijać. Przy wdrażaniu praktyk DevOps, które automatyzują i optymalizują procesy za pomocą technologii, bez przyjęcia kultury DevOps w organizacji i wśród jej pracowników, nie uzyskasz pełnych korzyści.

Na poniższej ilustracji przedstawiono kluczowe aspekty kultury witryny na żywo firmy Microsoft.

Diagram kultury witryny na żywo firmy Microsoft.

Poniżej przedstawiono kluczowe składniki kultury metodyki DevOps:

  • Współpraca, widoczność i dopasowanie: cechą charakterystyczną zdrowej kultury Metodyki DevOps jest współpraca między zespołami. Współpraca zaczyna się od widoczności. Programowanie, it i inne zespoły powinny dzielić się swoimi procesami, priorytetami i problemami DevOps. Planując pracę razem, są lepiej przygotowani, aby dostosować się do celów i mierników sukcesu w odniesieniu do biznesu.
  • Przesunięcia w zakresie i odpowiedzialności: Gdy zespoły się dopasowują, przejmują odpowiedzialność i angażują się w inne fazy cyklu życia — nie tylko te kluczowe dla ich ról. Na przykład deweloperzy stają się odpowiedzialny nie tylko za innowacje i jakość ustanowioną w fazie opracowywania, ale także wydajność i stabilność zmian w fazie działania. Jednocześnie operatorzy IT muszą uwzględnić nadzór, zabezpieczenia i zgodność w fazie planowania i opracowywania.
  • Krótsze cykle wydania: zespoły DevOps pozostają elastyczne, wydając oprogramowanie w krótkich cyklach. Krótsze cykle wydawania ułatwiają planowanie i zarządzanie ryzykiem, ponieważ postęp jest przyrostowy, co zmniejsza również wpływ na stabilność systemu. Skrócenie cyklu wydawania umożliwia również organizacjom dostosowanie i reagowanie na zmieniające się potrzeby klientów i presję konkurencyjną.
  • Ciągłe uczenie się: zespoły DevOps o wysokiej wydajności ustanawiają nastawienie na rozwój. Szybko odnoszą porażki i wyciągają wnioski, które wdrażają do swoich procesów. Dążą do ciągłego ulepszania, zwiększania zadowolenia klientów oraz przyspieszania innowacji i adaptacji na rynku.

Implementowanie praktyk metodyki DevOps

Metodyka DevOps jest implementowana zgodnie z praktykami devOps (opisanymi w poniższych sekcjach) w całym cyklu życia aplikacji. Niektóre z tych rozwiązań pomagają przyspieszyć, zautomatyzować i poprawić określoną fazę. Inne obejmują kilka faz, pomagając zespołom tworzyć bezproblemowe procesy, które pomagają zwiększyć produktywność.

Ciągła integracja i ciągłe dostarczanie (CI/CD)

Ciągła integracja (CI) to praktyka używana przez zespoły programistyczne do automatyzowania, scalania i testowania kodu. Ciągła integracja pomaga wychwytywać błędy na wczesnym etapie cyklu rozwoju, co sprawia, że są one tańsze do naprawienia. Testy automatyczne są wykonywane w ramach procesu ciągłej integracji w celu zapewnienia jakości. Systemy ciągłej integracji tworzą artefakty i przekazują je do procesów wydania, aby umożliwić częste wdrożenia.

Ciągłe dostarczanie (CD) to proces, za pomocą którego kod jest kompilowany, testowany i wdrażany w co najmniej jednym środowisku testowym i produkcyjnym. Wdrażanie i testowanie w wielu środowiskach zwiększa jakość. Systemy ciągłego wdrażania generują artefakty przeznaczone do wdrożenia, w tym infrastrukturę oraz aplikacje. Zautomatyzowane procesy wydawania wykorzystują te artefakty w celu wydania nowych wersji i poprawek istniejących systemów. Systemy monitorujące i wysyłające alerty działają nieprzerwanie, aby zapewnić wgląd w cały proces ciągłego wdrażania.

Kontrola wersji

Kontrola wersji to praktyka zarządzania kodem w wersjach — śledzenie poprawek i historii zmian w celu ułatwienia przeglądu i odzyskiwania kodu. Ta praktyka jest zwykle implementowana przy użyciu systemów kontroli wersji, takich jak Git, co umożliwia wielu deweloperom współpracę w kodzie tworzenia. Systemy te zapewniają jasny proces scalania zmian kodu, które występują w tych samych plikach, obsługują konflikty i cofają zmiany we wcześniejszych stanach.

Korzystanie z kontroli wersji jest podstawową praktyką metodyki DevOps, pomagając zespołom deweloperów współpracować, dzielić zadania kodowania między członkami zespołu i przechowywać cały kod w celu łatwego odzyskiwania w razie potrzeby. Kontrola wersji jest również niezbędnym elementem w innych rozwiązaniach, takich jak ciągła integracja i infrastruktura jako kod.

Tworzenie oprogramowania Agile

Agile to podejście programistyczne, które podkreśla współpracę zespołową, opinie klientów i użytkowników oraz wysoką elastyczność w celu zmiany w krótkich cyklach wydania. Zespoły, które praktykują metodę Agile, zapewniają ciągłe zmiany i ulepszenia dla klientów, zbierają ich opinie, a następnie uczą się i dostosowują się w zależności od oczekiwań i potrzeb klientów. Agile różni się znacznie od innych bardziej tradycyjnych modeli, takich jak kaskadowy model, który obejmuje długie cykle wydawnicze zdefiniowane jako fazy sekwencyjne. Kanban i Scrum to dwie popularne struktury skojarzone z agile.

Infrastruktura jako kod

Infrastruktura jako kod definiuje zasoby systemowe i topologie w sposób opisowy, który umożliwia zespołom zarządzanie tymi zasobami w taki sposób, jak w przypadku kodu. Definicje te można również przechowywać i wersjonować w systemach kontroli wersji, gdzie można je przeglądać i przywracać — podobnie jak kod.

Praktykowanie infrastruktury jako kodu pomaga zespołom wdrażać zasoby systemowe w niezawodny, powtarzalny i kontrolowany sposób. Infrastruktura jako kod pomaga również zautomatyzować wdrażanie i zmniejsza ryzyko błędu ludzkiego, zwłaszcza w przypadku złożonych dużych środowisk. To powtarzalne, niezawodne rozwiązanie do wdrażania środowiska umożliwia zespołom utrzymanie środowisk programistycznych i testowych, które są identyczne z środowiskiem produkcyjnym. Duplikowanie środowisk do różnych centrów danych i platform w chmurze również staje się prostsze i bardziej wydajne.

Zarządzanie konfiguracją

Zarządzanie konfiguracją odnosi się do zarządzania stanem zasobów w systemie, w tym serwerów, maszyn wirtualnych i baz danych. Za pomocą narzędzi do zarządzania konfiguracją zespoły mogą wdrażać zmiany w kontrolowany, systematyczny sposób, zmniejszając ryzyko modyfikacji konfiguracji systemu. Zespoły używają narzędzi do zarządzania konfiguracją do śledzenia stanu systemu i pomagają uniknąć dryfu konfiguracji, czyli sposobu, w jaki konfiguracja zasobu systemowego różni się w czasie od żądanego stanu zdefiniowanego dla niego.

Wraz z infrastrukturą jako kodem można łatwo templatyzować i automatyzować definicję i konfigurację systemu, co ułatwia zespołom obsługę złożonych środowisk na dużą skalę.

Ciągłe monitorowanie

Ciągłe monitorowanie oznacza pełny wgląd w wydajność i kondycję całego stosu aplikacji w czasie rzeczywistym. Ta widoczność waha się od podstawowej infrastruktury uruchamianej przez aplikację po składniki oprogramowania wyższego poziomu. Widoczność odbywa się za pośrednictwem zbierania danych telemetrycznych i metadanych oraz ustawiania alertów dla wstępnie zdefiniowanych warunków, które uzasadniają uwagę operatora. Dane telemetryczne składają się z danych zdarzeń i dzienników zebranych z różnych części systemu, które są przechowywane, gdzie można je analizować i wykonywać zapytania.

Zespoły DevOps o wysokiej wydajności zapewniają, że ustawiają praktyczne, znaczące alerty i zbierają bogate dane telemetryczne, dzięki czemu mogą uzyskiwać szczegółowe informacje z ogromnych ilości danych. Te szczegółowe informacje pomagają zespołowi rozwiązać problemy w czasie rzeczywistym i zobaczyć, jak ulepszyć aplikację w przyszłych cyklach programowania.

Planning

W fazie planowania zespoły DevOps tworzą pomysł, definiują i opisują funkcje i możliwości aplikacji i systemów, które planują utworzyć. Zespoły śledzą postęp zadań na niskim i wysokim poziomie szczegółowości— od pojedynczych produktów po wiele portfolio produktów. Zespoły używają następujących rozwiązań DevOps do planowania w sposób zwinny i przejrzysty:

Aby zapoznać się z omówieniem kilku lekcji i praktyk, które firma Microsoft przyjęła w celu obsługi planowania metodyki DevOps w zespołach oprogramowania firmy, zobacz How Microsoft plans with DevOps (Jak firma Microsoft planuje za pomocą metodyki DevOps).

Rozwój

Faza programowania obejmuje wszystkie aspekty tworzenia kodu oprogramowania. W tej fazie zespoły DevOps wykonują następujące zadania:

Aby szybko wprowadzać innowacje bez poświęcania jakości, stabilności i produktywności, zespoły DevOps:

Aby zapoznać się z omówieniem praktyk programistycznych przyjętych przez firmę Microsoft w celu wsparcia ich przejścia do metodyki DevOps, zobacz Jak firma Microsoft opracowuje rozwiązania DevOps.

Dostarcz

Dostarczanie to proces spójnego i niezawodnego wdrażania aplikacji w środowiskach produkcyjnych, najlepiej poprzez ciągłe dostarczanie (CD).

W fazie dostarczania zespoły DevOps:

  • Zdefiniuj proces zarządzania wydaniami z przejrzystymi etapami zatwierdzania ręcznego.
  • Ustaw automatyczne bramy, aby przenosić aplikacje między etapami aż do końcowego wydania dla klientów.
  • Automatyzacja procesów dostarczania, aby były skalowalne, powtarzalne, kontrolowane i dobrze przetestowane.

Dostarczanie obejmuje również wdrażanie i konfigurowanie podstawowej infrastruktury środowiska dostarczania. Zespoły DevOps używają technologii takich jak infrastruktura jako kod (IaC),kontenery i mikrousługi w celu dostarczania w pełni zarządzanych środowisk infrastruktury.

Bezpieczne praktyki wdrażania mogą identyfikować problemy, zanim wpłyną one na środowisko klienta. Te rozwiązania pomagają zespołom DevOps dostarczać często łatwość, pewność siebie i spokój.

Podstawowe zasady i procesy DevOps, które firma Microsoft ewoluowała w celu zapewnienia wydajnych systemów dostarczania, opisano w temacie Jak firma Microsoft dostarcza oprogramowanie za pomocą metodyki DevOps.

Operations

Faza operacji obejmuje obsługę, monitorowanie i rozwiązywanie problemów z aplikacjami w środowiskach produkcyjnych, w tym chmur hybrydowych lub publicznych, takich jak platforma Azure. Zespoły DevOps dążą do zapewnienia niezawodności systemu, wysokiej dostępności, silnego bezpieczeństwa i zerowego przestoju.

Zautomatyzowane rozwiązania dotyczące dostarczania i bezpiecznego wdrażania pomagają zespołom szybko identyfikować i rozwiązywać problemy, gdy wystąpią. Utrzymywanie czujności wymaga rozbudowanej telemetrii, alertów z możliwością działania i pełnego wglądu w aplikacje i systemy bazowe.

Rozwiązania używane przez firmę Microsoft do obsługi złożonych platform online są opisane w temacie Jak firma Microsoft obsługuje niezawodne systemy za pomocą metodyki DevOps.

Dalsze kroki

Inne zasoby

Szkolenia i certyfikaty