Czym jest metodologia DevOps i dla kogo jest potrzebna

Przyglądamy się istocie metodologii i kto może na niej skorzystać.

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

Czym jest metodologia DevOps i dla kogo jest potrzebna
Zdjęcie Matt Moor / Flickr / CC BY-SA

Czym jest DevOps

DevOps to metodologia tworzenia oprogramowania, której celem jest poprawa współpracy między programistami a administratorami systemów w firmie. Jeśli specjaliści IT z różnych działów nie rozumieją swoich zadań, wydanie nowych aplikacji i aktualizacji się wydłuża.

DevOps tworzy "bezszwowy" cykl rozwoju, co pomaga przyspieszyć wydanie produktu programowego. Szybsze tempo osiąga się dzięki wdrożeniu systemów automatyzacji. Dodatkowo programiści zaczynają uczestniczyć w konfiguracji serwerów i wyszukiwaniu błędów, na przykład mogą pisać zautomatyzowane testy.

W ten sposób poprawia się współpraca między działami. Pracownicy zaczynają lepiej rozumieć, jakie etapy przechodzi produkt programowy, zanim trafi w ręce użytkownika.

Kiedy programista rozumie, z czym boryka się administrator podczas konfiguracji serwera, stara się złagodzić możliwe "ostre krawędzie" w kodzie. Skraca to liczbę błędów podczas wdrażania aplikacji — według statystyk zmniejsza się około pięciokrotnie.

Dla kogo metodologia jest potrzebna i dla kogo nie

Wiele Eksperci IT uważają, że DevOps przyniesie korzyści każdej organizacji zajmującej się tworzeniem oprogramowania. Jest to prawdziwe nawet w przypadku, gdy firma jest jedynie konsumentem usług IT i nie tworzy własnych aplikacji. W takim przypadku wdrożenie kultury DevOps pomoże skupić się na innowacjach.

Wyjątek stanowią startup'y, ale i tu wszystko zależy od skali projektu. Jeśli Twoim celem jest uruchomienie minimalnie działającego produktu (minimum viable product, MVP), aby przetestować nowy pomysł, można obejść się bez DevOps. Na przykład, założyciel Groupon na początku pracy nad serwisem samodzielnie publikował wszystkie oferty na stronie i zbierał zamówienia. Nie korzystał z żadnych narzędzi automatyzacji.

Wdrożenie metodologii i narzędzi automatyzacji ma sens tylko wtedy, gdy aplikacja zaczyna zdobywać popularność. To pomoże usprawnić procesy biznesowe i przyspieszyć wydawanie aktualizacji.

Jak wdrożyć DevOps

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

Zidentyfikuj problemy w procesach biznesowych. Przed wdrożeniem metodologii określ cele i problemy organizacji. Od nich będzie zależała strategia przejścia na DevOps. Sporządź listę pytań, na przykład:

  • Na co marnuje się najwięcej czasu podczas aktualizacji oprogramowania?
  • Czy można zautomatyzować ten proces?
  • Czy ma to związek ze strukturą organizacyjną?

Szczegółowo o identyfikowaniu problemów w organizacji można poczytać w książkach «Projekt "Feniks"” i „Podręcznik DevOps" od autorów metodologii.

Zmień kulturę w firmie. Ważne jest, aby przekonać wszystkich pracowników do zmiany przyzwyczajeń i poszerzenia swoich kompetencji. Na przykład w Facebooku wszyscy programiści są odpowiedzialni za cykl życia aplikacji w całości: od pisania kodu po wdrożenie. Ponadto w Facebooku nie ma oddzielnego działu do testowania — testy piszą sami разработчики.

Zacznij od małych kroków. Wybierz proces, który zajmuje najwięcej czasu i wysiłku podczas wydawania aktualizacji, i zautomatyzuj go. To może być testowanie lub proces wdrażania aplikacji. Eksperci zalecają najpierw wdrożyć narzędzia do rozproszonego zarządzania wersjami. Z nimi łatwiej zarządzać kodem źródłowym. Do takich rozwiązań należą najbardziej znane Git, Mercurial, Subversion (SVN) i CVS.

Warto również zwrócić uwagę na systemy ciągłej integracji, odpowiedzialne za budowanie i testowanie gotowego produktu. Przykłady takich narzędzi to Jenkins, TeamCity i Bamboo.

Oceniaj poprawki. Opracuj metryki efektywności wdrożonych rozwiązań i sporządź listę kontrolną. Metrykami mogą być częstotliwość wydania, czas pracy nad funkcjami oprogramowania, liczba błędów w kodzie. Dyskutuj o wynikach nie tylko z menedżerami, ale również z resztą zespołu pracującego nad projektem. Pytaj, jakich narzędzi brakuje. Uwzględnij te prośby przy dalszej optymalizacji procesów.

Ostrzeżenia dotyczące DevOps

Choć metodologia pomaga organizacjom szybciej podejmować decyzje dotyczące rozwoju aplikacji, redukuje liczbę błędów w oprogramowaniu i zachęca pracowników do nauki nowych rzeczy, ma również swoich krytyków.

Tak opinia, że programiści nie powinni zgłębiać szczegółów pracy administratorów systemów. Podobno DevOps prowadzi do tego, że w firmie zamiast specjalistów ds. rozwoju lub administracji pojawiają się ludzie, którzy znają się na wszystkim, ale tylko powierzchownie.

Uważa się również, że DevOps nie działa przy złym zarządzaniu. Jeśli zespoły programistyczne i administracyjne nie mają wspólnych celów, to wina menedżerów, którzy nie organizują współpracy między zespołami. Aby rozwiązać ten problem, potrzebna jest nie nowa metodologia, ale system oceny menedżerów oparty na opiniach pracowników. Tutaj można przeczytać, jakie pytania należy uwzględnić w formularzach ankiet dla pracowników.

Czym jest metodologia DevOps i dla kogo jest potrzebna
Zdjęcie Ed Ivanushkin / Flickr / CC BY-SA

Kim jest inżynier DevOps

Inżynier DevOps zajmuje się wdrażaniem metodologii DevOps. Synchronizuje wszystkie etapy tworzenia produktu oprogramowania: od pisania kodu po testowanie i wydanie aplikacji. Taki specjalista kontroluje działy rozwoju i administracji oraz automatyzuje wykonywanie ich zadań, wprowadzając różne narzędzia programowe.

Cechą inżyniera DevOps jest to, że łączy wiele zawodów: administratora, programistę, testera i menedżera.

Joe Sanchez, ewangelista DevOps z VMware, firmy zajmującej się tworzeniem oprogramowania do wirtualizacji, wyróżnił szereg umiejętności, które powinien posiadać inżynier DevOps. Oprócz oczywistej znajomości metodologii DevOps, ta osoba powinna mieć doświadczenie w administracji systemami operacyjnymi Windows i Linux oraz doświadczenie w pracy z narzędziami automatyzacji takimi jak ChefPuppetAnsible. Powinna umieć pisać skrypty i kod w kilku językach oraz znać technologie sieciowe.

Inżynier DevOps odpowiada za jakąkolwiek automatyzację zadań związanych z konfiguracją i wdrażaniem aplikacji. Na jego barkach spoczywa również monitorowanie oprogramowania. W celu rozwiązania tych zadań stosuje 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órej działalność związana jest z tworzeniem aplikacji lub zarządzaniem dużą ilością serwerów. Inżynierów DevOps zatrudniają giganci IT tacy jak Amazon, Adobe i Facebook. Pracują także w Netflix, Walmart i Etsy.

Nie zatrudniają DevOps to głównie startupy. Ich zadaniem jest wypuszczenie minimalnego produktu, aby przetestować nowy pomysł. W większości przypadków startupy mogą obejść się bez DevOps.

Ile zarabiają

Inżynierowie DevOps zarabiają najwięcej w branży. Średnie wynagrodzenie takich specjalistów na świecie wynosi od 100 do 125 tys. dolarów rocznie.

W USA oni otrzymują 90 tys. dolarów rocznie (500 tys. rubli miesięcznie). W Kanadzie zarabiają płacą 122 tys. dolarów rocznie (670 tys. rubli miesięcznie), a w UK — 67,5 tys. funtów rocznie (490 tys. rubli miesięcznie).

Jeśli chodzi o Rosję, to moskiewskie firmy są gotowe płacić specjalistom DevOps od 100 do 200 tys. rubli miesięcznie. W Sankt Petersburgu pracodawcy są trochę hojniesi — oferują 160–360 tys. rubli miesięcznie. W regionach podają wynagrodzenie 100–120 tys. rubli miesięcznie.

Jak zostać specjalistą DevOps

DevOps to stosunkowo nowe kierunek w IT, więc nie ma ustalonej listy wymagań dla inżynierów DevOps. W ogłoszeniach o pracę można spotkać zarówno umiejętności administrowania Debianem i CentOS, jak i umiejętność pracy z dyskowymi macierzami RAID.

Na tej podstawie można wnioskować, że przede wszystkim inżynier DevOps powinien mieć dobry techniczny horyzont. Taka osoba musi ciągle uczyć się nowych narzędzi i technologii.

Najłatwiej zostać inżynierem DevOps osobie z doświadczeniem jako administrator lub programista. Już mają oni szereg umiejętności, które wystarczy rozwijać. Głównym zadaniem jest zdobycie minimalnego zestawu wiedzy o DevOps, zrozumienie, jak pracować z narzędziami automatyzacji i wypełnić luki w umiejętnościach administracji, programowania i wirtualizacji.

Aby zrozumieć, gdzie brakuje wiedzy, można skorzystać z mini-wikipedii na GitHubie lub mapy myśli. Użytkownicy Hacker News mogą również zaleca się przeczytać książki „Projekt "Feniks"” i „Podręcznik DevOps” (o których wspominaliśmy powyżej) i „Filozofia DevOps. Sztuka zarządzania IT” wydanej przez O’Reilly Media.

Można także zapisać się do biuletynu Devops Weekly, czytać artykuły tematycznego portalu DZone i zacząć rozmawiać z inżynierami DevOps w czacie Slack.Warto także zapoznać się z darmowymi kursami na Udacity lub edX.

Posty z naszego bloga:



Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster