Wprowadzenie DevOps dla początkujących

DevOps stał się modnym hasłem, co dla wielu ludzi oznacza wiele różnych rzeczy.

Trudno jest zrozumieć i zdefiniować, czym dokładnie jest DevOps. I dlatego, jeśli znasz podstawowe koncepcje DevOps, z którymi większość ludzi się kojarzy, oraz historię tego, jak ewoluował, uzyskaj całościowy pogląd na to.

Pochodzenie DevOps

DevOps to doskonały przykład zwinnego tworzenia oprogramowania. Pomysł DevOps wziął się z potrzeby nadążania za rosnącą szybkością działania oprogramowania i osiągania tego za pomocą zwinnych metod. W ciągu ostatniej dekady ogromne postępy w kulturze i praktykach zwinnych ujawniły potrzebę bardziej holistycznego podejścia do kompleksowego cyklu życia oprogramowania.

Być może zastanawiasz się, czym jest zwinne tworzenie oprogramowania –

Programowanie zwinne to szerokie pojęcie określające kilka iteracyjnych i przyrostowych metodologii tworzenia oprogramowania. Popularne metodyki zwinne to Scrum, Kanban, Scaled Agile Framework® (SAFe®), Lean Development i Extreme Programming (XP).

Podstawowe wartości i wizja wszystkich tych zwinnych metodologii są takie same, ale każda z nich ma unikalne podejście. Wszystkie te metodologie obejmują iteracje i ciągłe informacje zwrotne, aby skutecznie udoskonalać i dostarczać skalowalne oprogramowanie. Wszystkie te metodologie obejmują ciągłe planowanie, ciągłe testowanie, ciągłą integrację i inne niekończące się formy zarówno projektu, jak i oprogramowania.

W przeciwieństwie do konwencjonalnych procesów w stylu wodospadu, te zwinne metodologie są lekkie i mają z natury elastyczny charakter. Jedną z najlepszych rzeczy w tych zwinnych metodologiach jest to, że wszystkie skupiają się na wzmocnieniu pozycji ludzi, jeśli chodzi o współpracę i wspólne podejmowanie szybkich decyzji.

Obraz autorstwa Segue

Ideały DevOps realizują rozszerzoną praktykę programowania zwinnego, aby udoskonalić ruch zmian oprogramowania poprzez kompilację, walidację, wdrażanie i różne etapy dostarczania. Pozwala zespołowi międzyfunkcyjnemu mieć pełną własność oprogramowania, począwszy od projektowania po produkcję.

Wyzwania rozwiązane przez DevOps

Proces wdrażania — aplikacje rozproszone często wymagają wdrożenia plików binarnych i konfiguracyjnych na wielu serwerach. Staje się to trudniejsze, gdy ma się farmę serwerów. Trudno jest ustalić, co, jak i gdzie wdrożyć. Oczywistym wynikiem jest?

Długie oczekiwanie na przeniesienie artefaktów do następnego środowiska na trasie powoduje opóźnienia we wszystkich czynnościach, takich jak testowanie, czas życia itp.

DevOps pozwala programistom lub programistom internetowym i działaniom IT na wdrażanie procesów w sesji współpracy, która jest całkowicie bez winy. Pozwoli nam to zweryfikować, co działa, a następnie przenieść to na wyższy poziom z automatyzacją, aby wdrażać ciągły rozwój. Tworzy również drogi do częstszego rozwoju.

Cele DevOps

Poprawia współpracę między zainteresowanymi stronami od planowania do dostawy i wdraża automatyzację procesu dostawy, aby:

  • Popraw częstotliwość wdrażania
  • Osiągnij szybszy czas na wprowadzenie produktu końcowego na rynek
  • Zmniejsza awaryjność nowych wydań
  • Skraca czas między poprawkami
  • Poprawia w międzyczasie cel odzyskiwania

Wspólny scenariusz DevOps

Całe oprogramowanie dociera do punktu spotkania przed rozpoczęciem nowego projektu oprogramowania. Zespół składa się z programistów, testerów, specjalistów operacyjnych i wsparcia. Zespół opracowuje plan stworzenia w pełni funkcjonalnego oprogramowania, które jest gotowe do wdrożenia.

Każdego dnia nowy kod jest wdrażany, gdy programiści go ukończą. Zautomatyzowana procedura testowania zapewnia, że ​​kod jest gotowy do wdrożenia. Gdy kod otrzyma zielony sygnał z procesu testowania automatyzacji, jest on wdrażany u niewielkiej liczby użytkowników. Kod jest monitorowany przez krótki czas, aby upewnić się, że nie ma nieprzewidzianych problemów i jest stabilny. Nowy kod jest następnie wdrażany u pozostałych użytkowników, gdy ostateczne monitorowanie wykaże, że kod jest stabilny. Znaczna część kroków po planowaniu i rozwoju jest wykonywana bez interwencji człowieka.

Różne fazy dojrzałości DevOps

Istnieje wiele różnych faz dojrzałości DevOps. Oto kluczowe frazy, które musisz znać.

Rozwój wodospadu

Przed czasem ciągłej integracji zespoły programistyczne pisały ogromną ilość kodu, a następnie te z różnych zespołów łączyły się w celu wydania. Wersje kodu były tak różne, że wymagały dużej ilości zmian.

Dokonanie takiej liczby wykorzystywanych zmian zajmuje więcej niż kilka miesięcy. Ten proces nie był produktywny.

Ciągła integracja

Jest to praktyka szybkiego integrowania nowo opracowanego kodu z głównym kodem, który ma zostać wydany. Jeśli chodzi o wydawanie kodu, ciągły rozwój pozwala zaoszczędzić sporo czasu.

DevOps nie wprowadził tego terminu. Ciągła integracja to zwinna praktyka inżynierska wywodząca się z metodologii Extreme Programming. DevOps przyjął tę praktykę, ponieważ automatyzacja jest wymagana, jeśli chodzi o pomyślne przeprowadzanie ciągłej integracji. Ciągła integracja jest często pierwszym krokiem na drodze do dojrzałości DevOps.

Ciągła integracja z perspektywy DevOps obejmuje takie kroki, jak sprawdzanie kodu, kompilowanie go w użyteczny kod i uruchamianie niektórych niezbędnych testów walidacyjnych. ’

Ciągła dostawa

Jest rozszerzeniem ciągłej integracji i drugim etapem DevOps.

Ciągłe dostarczanie pozwala na dodanie dodatkowej automatyzacji i testowania, dzięki czemu nie tylko szybko scalisz kod z główną linią kodu, ale także uzyskasz kod prawie gotowy do wdrożenia bez interwencji człowieka.

Praktyką jest utrzymywanie bazy kodu w stanie prawie gotowym do wdrożenia.

Ciągłe wdrażanie

Ciągłe wdrażanie to zaawansowana ewolucja ciągłego dostarczania. Ta praktyka pozwala nam wdrożyć wszystkie sposoby produkcji bez interwencji człowieka.

Zespół, który pracuje nad ciągłym rozwojem, nigdy nie wdraża żadnego kodu bez testowania. Cały nowo utworzony kod przechodzi przez automatyczne testy przed przejściem do etapu produkcyjnego. Kod jest wdrażany u niewielkiej liczby użytkowników i istnieje zautomatyzowana pętla informacji zwrotnych, która monitoruje jakość i użycie, zanim kod przejdzie na wyższy poziom.

Niewielka liczba firm, takich jak Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU, Google itp., stale się rozwija.

Wartość

DevOps bardzo koncentruje się na rozwijaniu kultury współpracy i poprawie wydajności poprzez automatyzację za pomocą różnych narzędzi DevOps. Aby wdrożyć DevOps dla swojego rozwiązania programowego, musisz użyć kombinacji kultury i narzędzi.

Kultura DevOps

DevOps to szczególna kultura, która pomaga usprawnić współpracę, zmniejszyć chaos, lepiej radzić sobie ze wspólnymi obowiązkami, wdrożyć automatyzację, poprawić jakość, wycenę informacji zwrotnych i zwiększyć automatyzację.

Metody zwinne zawsze były najlepszym holistycznym sposobem dostarczania oprogramowania. Jeśli chodzi o mierzenie postępów, zespół programistów Agile robi to w zakresie działającego oprogramowania. Zwinna metoda kultury DevOps pozwala właścicielom produktów, programistom, testerom i osobom zajmującym się UX ściśle współpracować w tym samym celu.

Narzędzia DevOps

Obejmuje narzędzia do zarządzania konfiguracją, testowania i budowania systemów, tworzenia aplikacji, kontrolowania wersji i monitorowania. Jeśli chodzi o wdrażanie Continuous Integration, Continuous Delivery i Continuous Deployment, wymagają różnych narzędzi, a jednocześnie korzystają z tych samych narzędzi. W miarę postępów w łańcuchu dostaw będziesz potrzebować większej liczby narzędzi.

Poznaj niektóre z popularnych narzędzi i praktyk.

Repozytorium kodu źródłowego – to miejsce, w którym programiści mogą zameldować się i zmienić kod. Repozytorium kodu źródłowego zarządza różnymi wersjami kodu, który jest zaewidencjonowany, dzięki czemu może upewnić się, że programiści piszą nawzajem swój kod.

Git, Apache Subversion, IBM Rational, Artifactory, Nexus, Eclipse itp. to tylko niektóre z popularnych narzędzi repozytorium kodu.

Serwer kompilacji: – serwer kompilacji to narzędzie do automatyzacji, które służy do kompilacji kodu w kodzie źródłowym, który jest częścią bazy kodu wykonywalnego. Niektóre z najczęściej używanych narzędzi serwera kompilacji to Jenkins, SonarQube i Artifactory.

Zarządzanie konfiguracją — Puppet, Chef, Ansible, SaltStack, Run Deck itp. pomaga zarządzać konfiguracją aplikacji i infrastruktury w celu zachowania spójności w różnych środowiskach.

Infrastruktura wirtualna — AWS, GCP i Azure to trzech największych dostawców chmury publicznej, którzy oferują prawie każdą usługę infrastruktury. Oferują API, które pozwala na udostępnianie infrastruktury i zarządzanie nią jak kodem.

Wniosek

Mam nadzieję, że daje ci to pojęcie o DevOps, a jeśli to cię ekscytuje, możesz wypróbować ten kurs mistrzowski online.

Artykuł autorstwa Payal Goyal