devops automation how is automation applied devops practice
Automatyzacja w DevOps:
W ostatnim samouczku dowiedzieliśmy się, jak ważne jest Kontrola źródła w DevOps . Tutaj, w tym samouczku, dowiemy się o automatyzacji w DevOps.
Automatyzacja to ostateczna potrzeba praktyki DevOps, a „Automatyzacja wszystkiego” to podstawowa zasada DevOps. W DevOps automatyzacja rozpoczyna się od wygenerowania kodu na maszynie Developers, aż do wypchnięcia kodu do kodu, a nawet po tym, aby monitorować aplikację i system w produkcji.
Sugerowana lektura => Informacyjna seria samouczków DevOps
Cały potok DevOps zawierający ciągłą integrację, ciągłe testowanie i ciągłe wdrażanie, w tym monitorowanie wydajności aplikacji na żywo, jest zautomatyzowany.
Automatyzacja instalacji i konfiguracji infrastruktury oraz wdrażania oprogramowania to kluczowy element praktyki DevOps. Praktyka DevOps jest w dużym stopniu zależna od automatyzacji w celu realizacji dostaw w ciągu kilku godzin i częstych dostaw na różne platformy.
W ten sposób automatyzacja w DevOps sprzyja szybkości, większej dokładności, spójności, niezawodności i zwiększa liczbę dostaw. Ostatecznie automatyzacja w DevOps obejmuje wszystko, począwszy od tworzenia, wdrażania i monitorowania.
WIDEO Część 2 Blok 3: Automatyzacja DevOps- 16 minut 40 sekund
Pozwól nam szczegółowo zrozumieć znaczenie automatyzacji w praktyce DevOps w tym samouczku.
Tutaj omówimy:
- W jaki sposób automatyzacja jest stosowana w praktyce DevOps?
- Potrzeba i rola automatyzacji?
- Co zautomatyzować?
- Narzędzia i ramy, ciągłe testowanie?
Boję się trochę mówić o automatyzacji. Ponieważ, jak dużo mówię o automatyzacji, według mnie, nigdy nie jest ona kompletna.
Nie trzeba dodawać, że automatyzacja to po prostu odejście od ręcznych zadań. Ludzie chcą zmniejszyć swoje zaangażowanie w przyziemne, rutynowe zadania i wykorzystać swój czas i inteligencję na coś nowego lub innowacyjnego.
Mimo to rola automatyzacji w DevOps jest bardzo ważna i bardzo kluczowa w ciągłym dostarczaniu wartości klientowi.
Odpowiedzmy razem, w jaki sposób automatyzacja jest stosowana w praktyce DevOps oraz co zautomatyzować, ponieważ na oba te pytania odpowiedziano razem.
Co zautomatyzować?
Nie sądzę, aby odpowiedź na to pytanie w erze automatyzacji wymagała wielu wyjaśnień. Gdziekolwiek się udamy, widzimy rzeczy, które są zautomatyzowane, przy minimalnej lub żadnej interwencji człowieka. Tak więc DevOps nie jest wyjątkiem.
W tradycyjnej metodzie tworzenia oprogramowania to tylko zespół programistów i ich działania były zautomatyzowane, w szczególności testowanie. Kiedyś tak było, że automatyzacja oznacza testowanie i automatyzację przypadków testowych, to także tylko funkcjonalne przypadki testowe, ale nawet niefunkcjonalne testy, takie jak wydajność i bezpieczeństwo.
Żadna z innych czynności, zwłaszcza operacji, nie była zautomatyzowana. Niepowodzenie ręcznego wdrożenia na ogromnym klastrze obejmującym 8 serwerów i spowodowane przez to straty są bardzo duże Przykład złożoności związanej z wdrożeniami i jasno wyjaśnia potrzebę automatyzacji działań Devops.
najlepsi twórcy gier
Widziałem siebie, że organizacje zatrudniające wysoko wykwalifikowanych i inteligentnych ludzi, płacąc olbrzymią pensję, za konfigurację sieci i środowisk, które robili w oparciu o ich inteligencję, wiedzę w danej dziedzinie, ich doświadczenie i wiedzę, co było kompletna praca ręczna.
Jak wszyscy wiedzą, konfiguracja ręczna jest zawsze podatna na błędy. Zwykle zdarzało się w przypadku ręcznej konfiguracji, że przez pewien czas, po wielokrotnym wykonywaniu tej samej pracy, ci inteligentni ludzie, konfiguratorzy sieci używają, aby znudzić się tymi czynnościami i skończyć popełnianiem błędów z powodu zaniedbania.
Wiesz, że są bardzo błyskotliwi i te zajęcia będą dla nich bardzo proste i nieciekawe i potrzebują każdego dnia nowych wyzwań, a nie tego nudnego zadania.
Tak więc wprowadzenie automatyzacji instalacji oprogramowania i kontroli wersji części infrastruktury stało się ogromnym zyskiem i zmniejszyło liczbę ludzkich błędów, a także zaoszczędziło czas i umożliwiło to każdemu zwykłemu człowiekowi, usuwając w ten sposób zależność od wykwalifikowanych pracowników.
Ponadto omijanie procesów w przypadku konfigurowania nowego środowiska, na przykład podniesienie przepustki do skonfigurowania nowego środowiska, zespół IT pracujący od tyłu nad jego konfiguracją, wszystkie te kłopoty zostają usunięte.
W ten sposób poszczególni członkowie zespołu są uprawnieni do wykonywania zadań. Wyobraź sobie szybkość, niezawodność i spójność, jaką zapewnia automatyzacja. A więc automatyzacja strasznie wzrosła, liczba dostaw do produkcji.
Więc teraz, w praktyce DevOps, zespół Operations również rozpoczął automatyzację we wszystkich swoich pracach, co stało się kluczem do sukcesu DevOps.
W rzeczywistości w praktyce DevOps automatyzacja rozpoczyna się od wygenerowania kodu na maszynie deweloperskiej, aż do wyjścia kodu na produkcję, a nawet później w monitorowaniu aplikacji na żywo. To typowy cykl DevOps.
Zespół programistów i operacji sprawdza w kodzie i konfiguracjach środowiska, aż po kontrolę źródła, skąd automatyzacja uruchamia się w celu wyzwalania kompilacji, uruchamiania przypadków testów jednostkowych i innych podstawowych jakości kodu, przypadków testowych pokrycia, przypadków testowych związanych z bezpieczeństwem itp.
Gdy kod jest już gotowy, jest automatycznie kompilowany, zapisywany w kontroli wersji i automatycznie wdrażany w dalszych środowiskach w celu dalszego testowania, a ostatecznie do wydania produkcyjnego.
Widzimy, jak automatyzacja jest wykonywana na każdym etapie rozwoju, począwszy od uruchomienia kompilacji, przeprowadzenia testów jednostkowych, pakowania, wdrożenia w określonych środowiskach, przeprowadzenia testów weryfikacji kompilacji, testów dymnych, przypadków testów akceptacyjnych, a na końcu wdrożenia do końcowego środowiska produkcyjnego.
css3 pytania i odpowiedzi do wywiadu pdf
Nawet jeśli mówimy o automatyzacji przypadków testowych, nie chodzi tylko o testy jednostkowe, ale testy instalacyjne, testy integracji, testy doświadczenia użytkownika, testy interfejsu użytkownika itp.
DevOps wymusza na zespole operacyjnym, poza działaniami programistycznymi, automatyzację wszystkich swoich działań, takich jak udostępnianie serwerów, konfigurowanie serwerów, konfigurowanie sieci, konfigurowanie zapór ogniowych, monitorowanie aplikacji w systemie produkcyjnym.
Stąd odpowiedź na pytanie, co zautomatyzować, to wyzwalacz kompilacji, kompilowanie i budowanie, wdrażanie lub instalowanie, automatyzacja infrastruktury skonfigurowanej jako zakodowany skrypt, konfiguracje środowiska jako zakodowany skrypt, nie trzeba wspominać o testowaniu, monitorowanie wydajności po wdrożeniu w życiu, monitorowanie logów, monitorowanie alertów, wysyłanie powiadomień na żywo i otrzymywanie alertów na żywo w przypadku jakichkolwiek błędów i ostrzeżeń itp.,
Ostatecznie automatyzacja wszystkich dokumentów związanych z projektem.
Mogę więc powiedzieć, że automatyzacja w języku DevOps oznacza ciągłą integrację, ciągłe testowanie, ciągłe wdrażanie i ciągłe dostarczanie. W kolejnych częściach szczegółowo przeanalizujemy każdy z nich.
Ogólnie rzecz biorąc, DevOps umożliwia każdą czynność związaną z rozwojem i operacjami, gdzie tylko jest to możliwe, cokolwiek można zautomatyzować, cokolwiek jest powtarzalne, wszędzie tam, gdzie wymagana jest dokładność, cokolwiek zajmuje dużo czasu, jest zautomatyzowane.
Niemniej jednak, jeśli nie wspomnimy o narzędziach, które mają być używane do automatyzacji, dyskusja na temat automatyzacji jest niepełna.
Tak więc wybór odpowiedniego frameworka i narzędzia do automatyzacji jest kluczowym wymogiem automatyzacji w DevOps.
Na rynku dostępnych jest wiele narzędzi, zarówno open source, jak i narzędzi licencjonowanych, które wspierają kompleksową automatyzację całego potoku dostaw, w tym działań wykonywanych przez zespół Ops, maszyn aprowizacyjnych, obracających się zautomatyzowanych serwerów, konfigurowania sieci, zapór ogniowych, a nawet monitorowanie wydajności oprogramowania.
Ponadto niektóre organizacje opracowały własne ramy, aby zintegrować kompleksowy proces DevOps, który rozpoczyna się od zobowiązania kodu do wdrożenia kodu, w tym dokumentacji, która jest pojedynczym zintegrowanym narzędziem, a zespół nie musi wychodzić poza ramy dla niczego związanego do programowania, czy to kontrola wersji, pisanie przypadków testowych, przegląd, zrzucanie wyników przypadków testowych, analiza itp.,
Na przykład: marionetka, menedżer zasobów platformy Azure, szef kuchni itp.,
Korzyści z automatyzacji w DevOps
Widzieliśmy wcześniejsze wersje, ponieważ brak automatyzacji zajmował lata, aby dostać się do produkcji, a także ostatnio w przypadku zwinności, czy to lean, scrum czy safe, a przy poprawie procentowej automatyzacji terminy wydania są skracane do kilku miesięcy tygodni.
Ale automatyzacja jest absolutnie konieczna, aby wydania były tak szybkie, jak to możliwe w ciągu kilku godzin. Myślę więc, że niemożliwe jest dokonywanie tak szybkich i częstych wersji, jeśli nie wprowadzimy automatyzacji w całym procesie.
Zatem, całkiem oczywiście, jeśli chcemy osiągnąć cele DevOps, wysoką jakość i wartość dostarczaną klientom poprzez częste i szybkie dostawy, automatyzacja wszystkiego jest koniecznością.
Oczywiście już wiemy, że automatyzacja usuwa błędy ręczne, zależność od jednostki, działa szybciej i osiąga dokładność, a tym samym zapewnia spójność i niezawodność. W związku z tym automatyzacja wszystkiego umożliwia devopsowi osiągnięcie wysokiej jakości dostarczania, umożliwia częste i szybsze wydania.
Krótko mówiąc, automatyzacja,
- Usuwa błędy ręczne
- Członkowie zespołu są uprawnieni
- Usunięto zależność
- Usunięto opóźnienie
- Zwiększa liczbę dostaw
- Skraca czas realizacji
- Zwiększa częstotliwość wydań
- Zapewnia szybszą informację zwrotną
- Zapewnia szybkość, niezawodność i spójność
Krótko mówiąc, automatyzacja w DevOps ostatecznie obejmuje wszystko, począwszy od budowania, wdrażania i monitorowania.
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Znaczenie małych przyrostów dostaw w DevOps
- Kontrola źródła lub kontrola wersji w DevOps (samouczek wideo, część 2 - blok 2)
- Samouczek DevOps: Kompletny przewodnik po DevOps (ponad 25 samouczków)
- Praktyka DevOps oparta na manifeście Agile (część 2 - blok 1)
- Samouczek testowania DevOps: Jak DevOps wpłynie na testy QA?
- Samouczek AWS CodeCommit dotyczący wdrażania DevOps w chmurze
- Zobacz samouczek automatyzacji testów: przewodnik po narzędziu do automatyzacji testów mobilnych
- Ciągłe dostarczanie w DevOps