LFCA Poznaj podstawowe pojęcia DevOps - część 21
- 4784
- 989
- Maria Piwowarczyk
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)- « Jak ograniczyć użycie przepustowości sieci w Linux za pomocą strumienia
- Jak przeprowadzić kontrola bezpieczeństwa systemu Linux za pomocą narzędzia LYNIS »