Przyglądamy się istocie metodologii i kto może na niej skorzystać.
Porozmawiamy też o specjalistach DevOps: ich zadaniach, wynagrodzeniach i umiejętnościach.
Zdjęcie / 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 około pięciokrotnie.
Dla kogo metodologia jest potrzebna i dla kogo nie
Wiele , ż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 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 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 «” i „" 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 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 testowanie lub proces wdrażania aplikacji. Eksperci 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 organizacjom szybciej podejmować decyzje dotyczące rozwoju aplikacji, liczbę błędów w oprogramowaniu i zachęca pracowników do nauki nowych rzeczy, ma również swoich krytyków.
Tak , ż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 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ć, .

Zdjęcie / 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, 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 , , . 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 giganci IT tacy jak Amazon, Adobe i Facebook. Pracują także w Netflix, Walmart i Etsy.
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 najwięcej w branży. Średnie wynagrodzenie takich specjalistów na świecie wynosi od 100 do 125 tys. dolarów rocznie.
W USA oni 90 tys. dolarów rocznie (500 tys. rubli miesięcznie). W Kanadzie zarabiają 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 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 .
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 lub . Użytkownicy Hacker News mogą również przeczytać książki „” i „” (o których wspominaliśmy powyżej) i „” wydanej przez O’Reilly Media.
Można także zapisać się do , czytać artykuły tematycznego i zacząć rozmawiać z inżynierami DevOps w Warto także zapoznać się z darmowymi kursami na lub .
Posty z naszego bloga:
Źródło: habr.com
