Czym jest metodologia DevOps i komu jest ona potrzebna

Zastanówmy się, jaka jest istota tej metodologii i komu może ona przynieść korzyść.

Porozmawiamy także o specjalistach DevOps: ich zadaniach, wynagrodzeniach i umiejętnościach.

Czym jest metodologia DevOps i komu jest ona potrzebna
Strzał Fotek Matta Moore'a /Flickr/CC BY-SA

Co to jest DevOps

DevOps to metodologia tworzenia oprogramowania, której zadaniem jest nawiązanie interakcji pomiędzy programistami a administratorami systemów w firmie. Jeżeli informatycy z różnych działów nie rozumieją nawzajem swoich zadań, wydawanie nowych aplikacji i aktualizacji dla nich opóźnia się.

DevOps tworzy „płynny” cykl rozwoju, pomagając w ten sposób przyspieszyć wydanie oprogramowania. Przyspieszenie osiąga się poprzez wprowadzenie systemów automatyki. Ponadto programiści zaczynają brać udział w konfigurowaniu serwerów i znajdowaniu błędów, na przykład mogą pisać automatyczne testy.

Usprawnia to interakcję pomiędzy działami. Pracownicy zaczynają lepiej rozumieć, jakie etapy przechodzi oprogramowanie, zanim trafi w ręce użytkownika.

Kiedy programista zrozumie, z czym spotyka się administrator podczas konfigurowania serwera, spróbuje wygładzić ewentualne „ostre zakręty” w kodzie. Zmniejsza to liczbę błędów podczas wdrażania aplikacji - według statystyk to maleje około pięć razy.

Kto potrzebuje i nie potrzebuje metodologii

Wiele Eksperci IT uważająże DevOps przyniesie korzyści każdej organizacji tworzącej oprogramowanie. Dzieje się tak nawet wtedy, gdy firma jest prostym konsumentem usług IT i nie tworzy własnych aplikacji. W tym przypadku wdrożenie kultury DevOps pomoże Ci skupić się na innowacjach.

Wyjątek załóż konto startupów, ale tutaj wszystko zależy od skali projektu. Jeśli Twoim celem jest uruchomienie minimalnego opłacalnego produktu (MVP) w celu przetestowania nowego pomysłu, możesz obejść się bez DevOps. Przykładowo założyciel Groupona zaczął pracować nad usługą ręcznie wysłano wszystkie oferty znajdujące się na stronie oraz zebrane zamówienia. Nie korzystał z żadnych narzędzi automatyzujących.

Wdrażanie metodologii i narzędzi automatyzacji ma sens dopiero wtedy, gdy aplikacja zaczyna zyskiwać na popularności. Pomoże to usprawnić procesy biznesowe i przyspieszyć wydawanie aktualizacji.

Jak wdrożyć DevOps

Poniżej znajduje się kilka zaleceń dotyczących przejścia na nową metodologię.

Identyfikuj problemy w procesach biznesowych. Przed wdrożeniem metodologii należy podkreślić cele i problemy organizacji. Od nich będzie zależeć strategia przejścia na DevOps. Aby to zrobić, utwórz listę pytań, na przykład:

  • Co zajmuje najwięcej czasu podczas aktualizacji oprogramowania?
  • Czy można zautomatyzować ten proces?
  • Czy struktura organizacji ma na to wpływ?

Dowiedz się więcej o identyfikowaniu problemów w organizacji można przeczytać w książkach «Projekt „Feniks”"A"Przewodnik DevOps» od autorów metodologii.

Zmień kulturę w firmie. Ważne jest, aby przekonać wszystkich pracowników do zmiany dotychczasowego sposobu pracy i poszerzenia zakresu kompetencji. Na przykład na Facebooku wszyscy programiści odpowiedź przez cały cykl życia aplikacji: od napisania kodu po wdrożenie. Facebook nie ma też osobnego działu testów – testy piszą sami programiści.

Zacznij od małego. Wybierz proces, który wymaga najwięcej czasu i wysiłku przy wydawaniu aktualizacji i zautomatyzuj go. Ten może proces testowania lub wdrażania aplikacji. Eksperci doradzać Pierwszym krokiem jest wdrożenie rozproszonych narzędzi kontroli wersji. Ułatwiają zarządzanie źródłami. Wśród takich rozwiązań najbardziej znane to Git, Mercurial, Subversion (SVN) i CVS.

Warto także zwrócić uwagę na systemy ciągłej integracji odpowiedzialne za montaż i testowanie finalnego produktu. Przykłady takich narzędzi: Jenkins, TeamCity i Bamboo.

Oceń ulepszenia. Opracuj wskaźniki wydajności wdrożonych rozwiązań i utwórz listę kontrolną. Metryki mogą obejmować częstotliwość wydawania wersji, czas spędzony na pracy nad funkcjami oprogramowania i liczbę błędów w kodzie. Omów wyniki nie tylko z menedżerami, ale także z resztą zespołu zaangażowanego w projekt. Zapytaj, jakich narzędzi brakuje. Weź te prośby pod uwagę przy dalszej optymalizacji procesów.

Krytyka DevOps

Chociaż metodologia pomaga organizacje mogą szybciej podejmować decyzje dotyczące rozwoju aplikacji, cięcia liczbę błędów w oprogramowaniu i zachęca pracowników do uczenia się nowych rzeczy, ma też swoich krytyków.

Jest opiniaże programiści nie powinni rozumieć szczegółów pracy administratorów systemów. Podobno DevOps prowadzi do tego, że zamiast specjalistów ds. rozwoju czy administracji firma ma ludzi, którzy wszystko rozumieją, ale powierzchownie.

Uważa się również, że DevOps nie działa ze złym zarządzaniem. Jeśli zespoły programistyczne i administracyjne nie mają wspólnych celów, to winni są menadżerowie, którzy nie organizują komunikacji pomiędzy zespołami. Aby rozwiązać ten problem, nie jest potrzebna nowa metodologia, ale system oceny menedżerów oparty na informacjach zwrotnych od podwładnych. Można to przeczytać tutaj, jakie pytania powinny znaleźć się w formularzach ankiet pracowniczych.

Czym jest metodologia DevOps i komu jest ona potrzebna
Strzał Fotek Eda Iwanuszkina /Flickr/CC BY-SA

Kim jest inżynier DevOps

Inżynier DevOps wdraża metodologię DevOps. Synchronizuje wszystkie etapy tworzenia oprogramowania: od pisania kodu po testowanie i wypuszczenie aplikacji. Taki specjalista kontroluje działy rozwoju i administracji, a także automatyzuje realizację swoich zadań, wdrażając różne narzędzia programowe.

Sztuką inżyniera DevOps jest to, że łączy wiele profesji: administratora, programistę, testera i menadżera.

Joe Sanchez, ewangelista DevOps w VMware, firmie produkującej oprogramowanie do wirtualizacji, wyróżniony szereg umiejętności, które musi posiadać inżynier DevOps. Oprócz oczywistej znajomości metodologii DevOps, osoba ta powinna posiadać doświadczenie w administrowaniu systemami operacyjnymi Windows i Linux oraz doświadczenie w pracy z narzędziami do automatyzacji takimi jak Szef kuchniMarionetkaWiarygodne. Powinien także umieć pisać skrypty i kod w kilku językach oraz rozumieć technologie sieciowe.

Inżynier DevOps odpowiada za wszelką automatyzację zadań związanych z konfiguracją i wdrażaniem aplikacji. Na jego barkach spada także monitorowanie oprogramowania. Aby rozwiązać te problemy, wykorzystuje różne systemy zarządzania konfiguracją, rozwiązania wirtualizacyjne i narzędzia chmurowe do równoważenia zasobów.

Kto zatrudnia

Inżynierowie DevOps mogą przynieść korzyści każdej organizacji, która tworzy aplikacje lub zarządza dużą liczbą serwerów. Inżynierowie DevOps zatrudniają Giganci IT, tacy jak Amazon, Adobe i Facebook. Działają również na Netflix, Walmart i Etsy.

Nie zatrudniam Inżynierowie DevOps to dopiero start-upy. Ich zadaniem jest wypuszczenie minimalnego wykonalnego produktu w celu przetestowania nowego pomysłu. W większości przypadków startupy mogą obejść się bez DevOps.

Ile zapłacić

Inżynierowie DevOps zarabiać więcej niż ktokolwiek w branży. Średnie zarobki takich specjalistów na całym świecie wahają się od 100 do 125 tysięcy dolarów rocznie.

W USA oni dostać 90 tysięcy dolarów rocznie (500 tysięcy rubli miesięcznie). W Kanadzie oni płacić dolarów rocznie (122 tys. rubli miesięcznie), a w Wielkiej Brytanii - 670 tys. funtów szterlingów rocznie (67,5 tys. rubli miesięcznie).

Jeśli chodzi o Rosję, firmy moskiewskie gotowy płacić specjalistom DevOps od 100 do 200 tysięcy rubli miesięcznie. W Petersburgu pracodawcy są nieco bardziej hojni – oferują 160–360 tysięcy rubli miesięcznie. W regionach pensje kształtują się na poziomie 100–120 tysięcy rubli miesięcznie.

Jak zostać specjalistą DevOps

DevOps to stosunkowo nowy kierunek w IT, dlatego nie ma ustalonej listy wymagań stawianych inżynierom DevOps. Na wolnych stanowiskach wśród wymagań na to stanowisko można znaleźć zarówno umiejętności administrowania Debianem, jak i CentOS-em oraz umiejętność pracy z dyskami twardymi. Macierze RAID.

Na tej podstawie możemy stwierdzić, że inżynier DevOps musi przede wszystkim posiadać dobre zaplecze techniczne. Dla takiej osoby ważne jest ciągłe poznawanie nowych narzędzi i technologii.

Inżynierem DevOps najłatwiej jest zostać administratorem systemu lub programistą. Mają już wiele umiejętności, które muszą jeszcze rozwinąć. Głównym zadaniem jest doskonalenie minimalnego zestawu wiedzy z zakresu DevOps, zrozumienie, jak pracować z narzędziami do automatyzacji oraz uzupełnienie luk w umiejętnościach administracji, programowania i wirtualizacji.

Aby zrozumieć, gdzie wciąż brakuje wiedzy, możesz użyć mini-Wikipedia na GitHubie lub mapę mentalną. Mieszkańcy Hacker News także polecić czytać książki "Projekt „Feniks”"A"Przewodnik DevOps„ (o czym wspomnieliśmy powyżej) i „Filozofia DevOps. Sztuka zarządzania IT» pod pieczęcią O'Reilly Media.

Możesz także subskrybować Cotygodniowy biuletyn Devops, przeczytaj aktualne artykuły portalu DZone i zacznij komunikować się z inżynierami DevOps w Luźny czat. Warto także sprawdzić bezpłatne kursy na witrynie Udacity lub EDX.

Wpisy z naszego bloga:



Źródło: www.habr.com

Dodaj komentarz