Co to jest DevOps? Omówienie metodologii DevOps, zasad i etapów



Dowiedz się, czym jest DevOps i różne etapy cyklu życia DevOps. Ten post zawiera również przykłady wyjaśniające każdą fazę związaną z DevOps od programowania do wdrożenia.

Jeśli pracujesz w branży IT, na pewno słyszałeś jedno z najpopularniejszych modnych słów zwanych DevOps. Jeśli chcesz rozpocząć karierę w DevOps, z pewnością skorzystanie z . Zanim przejdziemy dalej, zasugeruję przejrzenie następujących blogów:

10 najważniejszych powodów, dla których warto uczyć się DevOps





Wiele dużych firm IT przyjęło metodę DevOps jako swój krok naprzód. Dlatego na tym blogu omówię, czym dokładnie jest DevOps, a punkty, które omówię, są następujące:



Co to jest DevOps?

  • Termin DevOps to połączenie dwóch słów, mianowicie Development and Operations. DevOps to praktyka, która pozwala pojedynczemu zespołowi zarządzać całym cyklem życia aplikacji, czyli programowaniem, testowaniem, wdrażaniem i monitorowaniem.

  • Ostatecznym celem DevOps jest skrócenie czasu trwania cyklu rozwojowego systemu przy jednoczesnym dostarczaniu funkcji, poprawek i aktualizacji często w ścisłej synchronizacji z celami biznesowymi.

  • DevOps to podejście do tworzenia oprogramowania, za pomocą którego można szybko i niezawodnie tworzyć oprogramowanie najwyższej jakości. Składa się z różnych etapów, takich jak ciągły rozwój, ciągła integracja, ciągłe testowanie, ciągłe wdrażanie i ciągłe monitorowanie.



Skoro więc to jest DevOps, spójrzmy na historię DevOps.

Historia DevOps

Przed DevOps mieliśmy dwa podejścia do tworzenia oprogramowania, mianowicie Waterfall i Agile.

Model wodospadu

  • Model kaskadowy to model tworzenia oprogramowania, który jest dość prosty i liniowy. Ten model opiera się na podejściu odgórnym.

  • Ten model ma różne typy zaczynające się od Gromadzenie i analiza wymagań . Jest to faza, w której otrzymujesz od klienta wymagania dotyczące tworzenia aplikacji. Następnie spróbuj przeanalizować te wymagania.

  • Następna faza to Projekt etap, w którym przygotowujesz projekt oprogramowania. Tutaj myślisz o tym, jak faktycznie będzie wyglądać oprogramowanie.

  • Gdy projekt jest gotowy, możesz przejść dalej z Realizacja fazę, w której zaczynasz od kodowania aplikacji. Zespół programistów współpracuje nad różnymi komponentami aplikacji.

  • Po zakończeniu tworzenia aplikacji przetestuj ją w Weryfikacja faza. Istnieją różne testy aplikacji, takie jak testy jednostkowe, testy integracyjne, testy wydajnościowe itp.

  • Po zakończeniu wszystkich testów aplikacja jest wdrażana na serwerach produkcyjnych.

  • W końcu nadchodzi Konserwacja faza. Na tym etapie aplikacja jest monitorowana pod kątem wydajności. Wszelkie problemy związane z działaniem aplikacji są rozwiązywane na tym etapie.

Zalety modelu wodospadu:

  • Prosty do zrozumienia i użycia

  • Pozwala na łatwe testowanie i analizę

  • Oszczędza znaczną ilość czasu i pieniędzy

  • Dobre dla małych projektów, jeśli wszystkie wymagania są jasno określone

  • Umożliwia wydziałów i kontrolę zarządczą

Wady modelu wodospadu:

  • Ryzykowne i niepewne

  • Brak widoczności aktualnych postępów

    sql server tutorial dla początkujących z przykładami
  • Nie nadaje się, gdy wymagania ciągle się zmieniają

  • Trudno jest wprowadzić zmiany w produkcie, gdy jest w fazie testowania

  • Produkt końcowy jest dostępny dopiero pod koniec cyklu

  • Nie nadaje się do dużych i złożonych projektów

Agile Methodology

Agile Methodology to iteracyjne podejście do tworzenia oprogramowania, w którym projekt oprogramowania jest podzielony na różne iteracje lub sprinty. Każda iteracja ma fazy, takie jak model kaskadowy, takie jak gromadzenie wymagań, projektowanie, rozwój, testowanie i konserwacja. Czas trwania każdej iteracji wynosi zwykle 2-8 tygodni.

Zwinny proces

  • W Agile firma wydaje aplikację z niektórymi funkcjami o wysokim priorytecie w pierwszej iteracji.

  • Po jej wydaniu użytkownicy końcowi lub klienci przekazują informacje zwrotne na temat wydajności aplikacji.

  • Następnie dokonujesz niezbędnych zmian w aplikacji wraz z kilkoma nowymi funkcjami, a aplikacja jest ponownie wydawana, co jest drugą iteracją.

  • Powtarzasz całą procedurę, aż uzyskasz żądaną jakość oprogramowania.

Zalety Agile Model

  • Adaptacyjnie reaguje korzystnie na zmiany wymagań

  • Naprawianie błędów na wczesnym etapie procesu programowania sprawia, że ​​proces ten jest bardziej opłacalny

  • Poprawia jakość produktu i czyni go wysoce bezbłędnym

  • Pozwala na bezpośrednią komunikację pomiędzy osobami zaangażowanymi w projekt oprogramowania

  • Doskonale nadaje się do dużych i długoterminowych projektów

  • Minimalne wymagania dotyczące zasobów i bardzo łatwe w zarządzaniu

Wady Agile Model

  • W dużym stopniu zależy od jasnych wymagań klientów

  • Dość trudno przewidzieć czas i wysiłek w przypadku większych projektów

  • Nie nadaje się do złożonych projektów

  • Brakuje wydajności dokumentacji

  • Zwiększone ryzyko konserwacji

Przejdźmy teraz do omówienia etapów i narzędzi DevOps.

Etapy i narzędzia DevOps

Jak wspomniano wcześniej, różne etapy, takie jak ciągły rozwój, ciągła integracja, ciągłe testowanie, ciągłe wdrażanie i ciągłe monitorowanie, stanowią cykl życia DevOps. Przyjrzyjmy się teraz kolejno każdemu z etapów cyklu życia DevOps.

Etap - 1: Ciągły rozwój

Używane narzędzia: Git, SVN, Mercurial, CVS

Przebieg procesu:

  • Jest to faza, która obejmuje „planowanie” i „kodowanie” oprogramowania. Ty decydujesz o wizji projektu na etapie planowania, a programiści rozpoczynają tworzenie kodu aplikacji.

  • Nie ma Narzędzia DevOps które są wymagane do planowania, ale istnieje wiele narzędzi do obsługi kodu.

  • Kod może być w dowolnym języku, ale utrzymujesz go za pomocą narzędzi kontroli wersji. Ten proces utrzymywania kodu jest znany jako zarządzanie kodem źródłowym.

  • Po opracowaniu kodu przechodzisz do fazy Continuous Integration.

Etap - 2: Ciągła integracja

Narzędzia: Jenkins, TeamCity, Travis

Przebieg procesu:

  • Ten etap jest rdzeniem całego cyklu życia DevOps. Jest to praktyka, w której programiści wymagają częstszego zatwierdzania zmian w kodzie źródłowym. Może to mieć miejsce codziennie lub co tydzień.

  • Następnie budujesz każde zatwierdzenie, co pozwala na wczesne wykrywanie problemów, jeśli występują. Tworzenie kodu obejmuje nie tylko kompilację, ale także przegląd kodu, testy jednostkowe, testy integracyjne i pakowanie.

  • Kod obsługujący nową funkcjonalność to z istniejącym kodem. Ponieważ oprogramowanie jest nieustannie rozwijane, konieczna jest ciągła i płynna integracja zaktualizowanego kodu z systemami, aby odzwierciedlić zmiany dla użytkowników końcowych.

  • Na tym etapie używasz narzędzi do budowania / pakowania kodu w plik wykonywalny, aby można było przekazać go do następnych faz.

Etap - 3: Testowanie ciągłe

Narzędzia: Jenkins, Selenium TestNG, JUnit

Przebieg procesu:

  • Jest to etap, na którym stale testujesz opracowane oprogramowanie pod kątem błędów przy użyciu narzędzi do testowania automatyzacji. Narzędzia te umożliwiają zespołom kontroli jakości dokładne równoległe testowanie wielu baz kodu, aby upewnić się, że nie ma w nich wad. W tej fazie można użyć kontenerów platformy Docker do symulacji środowiska testowego.

  • Selen służy do testowania automatyzacji, a raporty są generowane przez TestNG . Możesz zautomatyzować całą tę fazę testowania za pomocą narzędzia ciągłej integracji o nazwie Jenkins.

  • Załóżmy, że napisałeś kod selenu w Javie, aby przetestować swoją aplikację. Teraz możesz zbudować ten kod za pomocą ant lub maven. Po utworzeniu kodu testujesz go pod kątem testów akceptacji użytkowników (UAT). Cały proces można zautomatyzować za pomocą Jenkins .

    co to jest klasa pojo w java z przykładem

Etap - 4: Ciągłe wdrażanie

Narzędzia użyte:

Zarządzanie konfiguracją - Chef, Puppet, Ansible

Konteneryzacja - Docker, Vagrant

Przebieg procesu:

  • To jest etap, na którym wdrażasz kod na serwerach produkcyjnych. Ważne jest również, aby upewnić się, że kod został poprawnie wdrożony na wszystkich serwerach. Zanim przejdziemy dalej, spróbujmy zrozumieć kilka rzeczy o zarządzaniu konfiguracją i Narzędzia do kontenerowania . Ten zestaw narzędzi pomaga w uzyskaniu ciągłego wdrażania (CD).

  • Zarządzanie konfiguracją jest czynnością polegającą na ustanowieniu i utrzymaniu spójności wymagań funkcjonalnych i wydajności aplikacji. Ujmę to w prostszych słowach, jest to akt zwalniania wdrożeń na serwery, planowania aktualizacji na wszystkich serwerach i, co najważniejsze, utrzymywania spójnych konfiguracji na wszystkich serwerach.

  • Narzędzia kontenerowe odgrywają równie istotną rolę na etapie wdrażania. Narzędzia do konteneryzacji pomagają uzyskać spójność w środowiskach programistycznych, testowych, przejściowych i produkcyjnych. Poza tym pomagają również w szybkim zwiększaniu i zmniejszaniu liczby instancji.

Etap - 5: Ciągłe monitorowanie

Wykorzystane narzędzia: Splunk, ELK Stack, Nagios, New Relic

Przebieg procesu:

  • Jest to bardzo krytyczny etap cyklu życia DevOps, w którym stale monitorujesz wydajność swojej aplikacji. Tutaj zapisujesz istotne informacje o korzystaniu z oprogramowania. Następnie przetwarzasz te informacje, aby sprawdzić poprawność działania aplikacji. W tej fazie rozwiązujesz błędy systemowe, takie jak brak pamięci, nieosiągalny serwer itp.

  • Ta praktyka wymaga udziału zespołu operacyjnego, który będzie monitorował aktywność użytkowników pod kątem błędów lub niewłaściwego zachowania systemu.Narzędzia do ciągłego monitorowania ułatwiają dokładne monitorowanie wydajności aplikacji i serwerów, a także umożliwiają proaktywne sprawdzanie stanu systemu.

Na koniec omówimy, kto dokładnie jest inżynierem DevOps.

Kim jest inżynier DevOps?

DevOps Engineer to osoba, która rozumie cykl życia oprogramowania i ma całkowitą wiedzę na temat różnych narzędzi automatyzacji do tworzenia cyfrowych potoków (potoki CI / CD).

DevOps Engineer współpracuje z programistami i personelem IT, aby nadzorować wydania kodu. Są to albo programiści, którzy interesują się wdrażaniem i operacjami sieciowymi, albo administratorzy, którzy mają pasję do tworzenia skryptów i kodowania i przechodzą do strony programistycznej, gdzie mogą usprawnić planowanie testów i wdrożeń.

To wszystko było z mojej strony w tym artykule o tym, co to jest DevOps. Mam nadzieję, że zrozumiałeś wszystko, o czym tutaj mówiłem. Jeśli masz jakieś pytania, napisz to w sekcji komentarzy.

Poniżej znajduje się lista blogów, które mogą Cię zainteresować:

  1. Samouczek dotyczący ciągłego dostarczania
  2. Samouczek dotyczący kontenerów platformy Docker
  3. Samouczek lalek

Teraz, kiedy zrozumiałeś Co to jest DevOps , Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie Edureka DevOps Certification Training pomaga uczniom zrozumieć, czym jest DevOps i zdobyć wiedzę na temat różnych procesów i narzędzi DevOps, takich jak Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack i GIT do automatyzacji wielu kroków w SDLC.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy, a my skontaktujemy się z Tobą.