LFCA Poznaj podstawowe pojęcia DevOps - część 21

LFCA Poznaj podstawowe pojęcia DevOps - część 21

Devops od dłuższego czasu jest popularnym tematem i udało się zwrócić uwagę zarówno specjalistów technologicznych, jak i przedsiębiorstw. Jako początkujący może być trudne do opakowania głowy wokół koncepcji Devops, I w tym temacie wyrzucimy podstawowe pojęcia tego internetowego modnego słowa.

Zacząć, Devops to portmanteau dwóch słów: Rozwój I Operacje. Jest to zestaw praktyk i narzędzi, które promują współpracę między zespołami programistów (Deweloperzy) i operacje (Ops). Cel Devops jest usprawnienie cyklu życia programistycznego, zminimalizowanie wskaźników awarii, skalowanie częstotliwości wdrażania i osiągnięcie wysokiej jakości oprogramowania.

Aby lepiej zrozumieć Devops W dzisiejszym nowoczesnym środowisku informatycznym zajrzyjmy do tego, jak był model wdrażania przed nadejściem DevOps.

Tradycyjne praktyki

Zanim Devops, Zespoły programistów i inżynierowie QA wykorzystali klasyczny model wodospadu. Pracujący krajobraz został w dużej mierze wyciszony, a testowanie i wdrażanie aplikacji miało miejsce w całkowitej izolacji. Spowodowało to nakładanie się obowiązków, luki, opóźnień w opinii i innych nieefektywnościach, które wymagały dodatkowego czasu na ukończenie projektu. Ograniczona i opóźniona informacja zwrotna oznaczała, że ​​jakość oprogramowania nie była dokładnie kontrolowana do ostatniej fazy rozwoju.

Ponadto ręczne wdrożenie kodu było spowodowane przez ludzkie błędy, a zatem wymagało więcej czasu na debugowanie aplikacji. Również różne zespoły miały różne terminy wykonywania swoich zadań i nierzadko zdarzało się, że harmonogram nie zsynchronizował się, prowadząc do dalszych opóźnień w realizacji produktu końcowego.

Wpisz DevOps

Koncepcja Devops został wymyślony w latach 2007–2010 przez dwóch programistów: Andrew Shafer I Patrick Debois. Od samego początku wspierał płynną współpracę między zespołami operacyjnymi i programistami na każdym etapie cyklu rozwoju oprogramowania. To zwiastowało nowe koncepcje, takie jak Ciągła integracja ( Ci ) & Ciągła dostawa ( płyta CD ) i wiele innych, które przyczyniają się do szybkiego dostarczania oprogramowania.

Model i praktyki DevOps

Devops nie jest tylko współpracą i właściwym nastawieniem do osiągnięcia celu. Obejmuje najlepsze praktyki, które mają pomóc w dostarczaniu wysokiej jakości i rynku oprogramowania w możliwie najkrótszym czasie. Rzućmy okiem na niektóre z tych najlepszych praktyk, które pomogą Ci zwiększyć wydajność i szybkie dostarczanie kodu.

Ciągła integracja (CI)

Ciągła integracja to praktyka tworzenia oprogramowania, w której programiści łączą zmiany kodu w jedno centralne repozytorium. Następnie zautomatyzowane testy i kompilacje są wykonywane w kodzie. Celem ciągłej integracji jest przyspieszenie debugowania aplikacji, skrócenie czasu potrzebnego na wydanie nowych aktualizacji oprogramowania i poprawa jakości oprogramowania.

Ciągła dostawa (CD)

Ciągła dostawa (płyta CD) to kolejna praktyka, w której zmiany kodu są automatycznie budowane i wdrażane do energicznych testów. Później przeprowadzane są zautomatyzowane testy w stosunku do wdrożonego kodu, aby umożliwić programistom identyfikację i naprawę błędów. Zwykle kod jest stopniowo poddawany wielu środowiskom testowym, w których dzięki standardowej zautomatyzowanej procedurze kod osiąga najwyższy znak jakości.

Popularne narzędzia CI/CD obejmują Jenkins, Travis CI, Circle CI, Azure Devops i AWS Code Build.

Testy ciągłe

Celem ciągłego testowania jest zidentyfikowanie błędów i potencjalnego ryzyka we wczesnych etapach cyklu życia oprogramowania w celu zminimalizowania błędów, które objawiłyby się w produkcie końcowym. Gdy kod nie zawodzi energicznych testów, zwykle jest on odesłany do programistów w celu uzyskania rewizji, zanim został przekazany działowi zapewnienia jakości w celu oceny i testowania funkcjonalnego. Powszechnie używane narzędzia do testowania ciągłych obejmują Travis i Selen.

Ciągłe monitorowanie i loggin

Jak można się spodziewać, aplikacje i podstawowa infrastruktura wymagają ciągłego monitorowania, aby sprawdzić ich tożsamość wydajności wszelkie błędy lub wady oraz zapewnić zgodność z różnymi standardami branżowymi. Monitoruje się szeroką gamę wskaźników, w tym:

  • Wykorzystanie pamięci i procesora
  • Zastosowanie miejsca na dysku
  • Wykorzystanie przepustowości
  • Interakcja z klientem

Monitorując i analizując dane i dzienniki generowane przez aplikacje, programiści mogą łatwo uzyskać wgląd w to, w jaki sposób funkcje lub konfiguracje wpływają na użytkowników. Ponadto konfigurowanie alertów pomoże w identyfikacji błędów lub niepożądanych zmian na każdym kroku. Ostatecznie ciągłe monitorowanie zapewnia wysoką dostępność aplikacji i inspiruje, że wszystko działa zgodnie z oczekiwaniami.

Popularne narzędzia monitorujące obejmują Prometeusz, Grafana, Nagios, Zabbix i NetData, aby wspomnieć o kilku.

Infrastruktura jako kod

Skrócony jako IAC, Infrastruktura jako kod jest opisywany jako wdrażanie i zarządzanie zasobami, takimi jak serwery wirtualne, oraz równoważenie ładowania przy użyciu plików konfiguracyjnych odczytujących maszynowo w przeciwieństwie do interaktywnych narzędzi konfiguracyjnych. Jest to szczególnie niezbędne w środowiskach chmurowych, takich jak AWS, w których można łatwo zwrócić instancje obliczeniowe, określając szczegóły instancji w pliku konfiguracyjnym i narzędziach, takich jak Terraform w celu wdrożenia zasobów.

Na przykład, Amazon AWS Zapewnia interfejsy API, które pozwalają użytkownikom na programatyczną interakcję z platformą chmurową z wiersza poleceń. Ułatwia to szybkie wdrażanie zasobów poprzez eliminowanie procesów ręcznych i luzu. Mówiąc najprościej, IAC wykonuje więcej pracy w krótkim czasie.

Mikrousług

Architektura MicroServices to miejsce, w którym pojedyncza aplikacja jest integracją lub połączeniem różnych mniejszych usług luźno sprzężonych. Każda usługa działa niezależnie i komunikuje się z resztą aplikacji za pomocą interfejsów API opartych na HTTP. MicroServices można wdrożyć jako grupa usług S lub pojedyncza usługi

Architektura mikrousług różni się od tradycyjnej architektury monolitycznej. W tradycyjnej architekturze aplikacje są jednopoziomowe, a wszystkie komponenty, w tym kod i interfejs użytkownika, są pakowane w jeden program.

MicroServices ułatwiają niezależne wdrażanie i zarządzanie zasobami. Zapewniają również wysoką dostępność, zapobiegając pojedynczego punktu awarii. Gdy pojedyncza aplikacja zawiedzie, reszta będzie kontynuowana.

Korzyści z modelu DevOps

Patrząc na Devops Najlepsze praktyki, skupmy się teraz na korzyściach z przyjęcia modelu DevOps.

Poprawa wydajności i wydajności między zespołami

Współpraca między zespołami ds. Rozwoju i operacji przekłada się na wspólną odpowiedzialność, co ostatecznie zwiększa produktywność i wspiera zaangażowanie zespołu.

Zmniejszone szanse na awarię produktu

Współpraca umożliwia również zespołom łatwe debugowanie kodu na każdym etapie przed przejściem do ostatecznej fazy. To daje oprogramowanie wysokiej jakości i gotowego na rynku.

Szybka dostawa oprogramowania

Wdrożenie aplikacji jest bardziej usprawnione i znacznie szybsze dzięki narzędziom automatyzacji, które zapewnia DevOps (takie jak Ansible, Chef i Puppet) i Advanced Ciągła integracja (CI).

Więcej przejrzystości produktu

Ponieważ wiedza o produkcie jest rozłożona na różne działy, istnieje wyraźny cel i wizja produktu, przekładając się na lepsze podejmowanie decyzji na każdym etapie rozwoju

Streszczenie

Zakorzenione przekonanie, że zespoły rozwoju i operacji muszą na zawsze działać osobno, jest od dawna przestarzałe i wady. Silona filozofia może nadal żyć w niektórych branżach, ale spowodowało to rażącą nieefektywność po drodze.

DevOps dąży do zintegrowania zespołów rozwojowych i operacyjnych oraz wspierania zmiany kulturowej od starego sposobu pracy w silosach do pracy w tandemie w celu zmniejszenia błędów w kodzie, poprawy jakości oprogramowania, przyspiesze. Ostatecznie użytkownik końcowy kończy z wysokiej jakości produktem w odpowiednim czasie.

Zostań Certyfikowaną Fundacją Linux IT Associate (LFCA)