Ostatnio wiele osób spoza branży pytało mnie, kim właściwie jest DevOps i czym zajmuję się na tym stanowisku w pracy. Nie dziwi mnie to zainteresowanie – pojawia się coraz więcej ogłoszeń firm, które poszukują do swoich projektów DevOpsów. S Skąd ta popularność? Wejdźmy głębiej w tajniki pracy DevOpsa i spróbujmy poszukać odpowiedzi na pytanie, dlaczego coraz więcej firm decyduje się na stworzenie takiej roli w projekcie.

Rozwój oprogramowania kiedyś…

Dawno, dawno temu, za czasów, gdy wszystkie aplikacje na świecie budowane były przez zespoły developerskie w architekturze monolitycznej, uruchomieniem tychże aplikacji zajmował się wszechmogący Admin. Dlaczego wszechmogący? Admin posiadał ogromną władzę zarówno w zakresie sprzętu, jak i jego konfiguracji. Nic więc dziwnego, że jego władza była duża. W czasach, gdy rozwiązania chmurowe nie istniały, spoczywała na nim ogromna odpowiedzialność za prawidłowe konfigurowanie monolitycznej architektury w środowisku produkcyjnym, w którym ruch często był ogromny, a wymagania wobec niezawodności – wysokie. Taki podział obowiązków tworzył jednak ogromne bariery między zespołem wytwarzającym oprogramowanie, a wymienionym adminem. Osoba kontrolująca dostęp do zasobów serwera, zamknięta w swojej twierdzy, nie rozumiała problemów developerów i nierzadko winiła ich za wszystkie problemy. W drugą stronę działało to podobnie, a brak komunikacji potrafi poważnie spowolniać każdy projekt.

 

Jak to robimy dziś?

Dziś mamy dużo większe możliwości w zakresie rozwoju oprogramowania i nie boimy się eksperymentować, ponieważ dzięki rozwiązaniom chmurowym nie wdrażamy zmian bezpośrednio w środowisku produkcyjnym. Pracujemy zwinnie, stawiamy na komunikację, transparentność, budujemy zgrane zespoły, zwracając uwagę na Time to Market. W dobie start-upów zrodziła się też potrzeba szybkiego uruchomienia środowiska developerskiego oraz wdrażania w środowisku produkcyjnym choćby podstawowej wersji aplikacji (czyli MVP – Minimum Viable Product). To pozwala szybko sprawdzić słuszność założeń biznesowych wobec nowej aplikacji. Duża złożoność wymagań biznesowych oraz poziom skomplikowania budowanych aplikacji wymuszają z kolei większą specjalizację członków zespołu developerskiego. Wcześniejsze podejście – jeden specjalista od wszystkiego – nie ma dziś już racji bytu. Nic więc dziwnego, że developer, skupiony na dostarczaniu aplikacji, nie ma już wystarczająco dużo czasu na wdrażanie jej w środowisku serwerowym. Tak właśnie powstała potrzeba wskazania w zespole specjalisty, który posiadałby kompetencje zarówno w obszarze tworzenia aplikacji, jak i jej wdrożenia. I tym kimś jest właśnie DevOps.

Dowiedz się więcej: Zespoły DevOps

Kim jest specjalista DevOps?

DevOps to rola, w której specjalista jest lub może być odpowiedzialny za:

  • Przygotowanie środowisk na różnych poziomach, które umożliwiają odpowiednio: rozwój oprogramowania, testy, wdrożenie w środowisku developerskim i wdrożenie na produkcji.
  • Proces Continuous Integration / Continuous Delivery CI/CD) – przygotowanie procesu budowania, testowania, weryfikacji jakości kodu aplikacji, a następnie wdrożenia go w środowisku serwerowym przy pomocy dedykowanych narzędzi (Jenkins, CircleCI, GitHub itp.).
  • Instalację, konfigurację oraz aktualizację narzędzi wspomagających rozwój oprogramowania (repozytoria artefaktów i kontenerów dockera, Sonar, Elastic Search, bazy danych).
  • Monitoring infrastruktury oraz sprawdzanie ostrzeżeń automatycznie generowanych przez system w przypadku anomaliiUsprawnienie komunikacji z zespołem odpowiedzialnym za infrastrukturę (jeśli taki istnieje).
  • Automatyzację procesów eliminującą błędy wynikające z „czynnika ludzkiego”, czyli IaC (Infrastructure as Code), przy wykorzystaniu narzędzi takich jak np. Terraform, Ansible.
  • Wdrożenie skalowalnej, elastycznej i samonaprawiającej się aplikacji (głównie w chmurze).

DevOps – różne konfiguracje

Choć często pojawiają się ogłoszenia o pracę na stanowisku „DevOps Engineer”, niektórzy twierdzą, że nie ma takiej roli. Prawdopodobnie dlatego, że zakres obowiązków takiej osoby bywa bardzo różny, w zależności od rozmiaru projektu. W praktyce możemy więc spotkać różne konfiguracje tego stanowiska:

1) DevOps jest członkiem zespołu developerskiego

Zespół infrastruktury odpowiada za część serwerową a DevOps jest „przedstawicielem” zespołu rozwoju oprogramowania, kontaktującym się z zespołem infrastruktury.

DevOps

 

Plusy 

  • DevOps może brać czynny udział w rozwoju oprogramowania
  • Może lepiej wsłuchać się w potrzeby zespołu programistów

Minusy 

  • Ma mniejszy wpływ na to, co dzieje się po stronie infrastruktury
  • Komunikacja z DevOpsami z innych zespołów jest słabsza

2) Specjaliści DevOps tworzą oddzielny zespół, a każdy DevOps jest przypisany do zadań jednego lub dwóch zespołów developerskich

 

DevOps

Plusy 

  • Lepsza komunikacja pomiędzy DevOpsami – nie powiela się wcześniej zrealizowanych rozwiązań; większa spójność
  • Większa wydajność pracy związana z usprawnianiem procesów dostarczania oprogramowania

Minusy 

  • Słabsza komunikacja z zespołem developerskim

Dlaczego warto mieć w projekcie DevOpsa?

Jak widać, choć DevOps jest specjalistą o szerokim zakresie kompetencji, w niczym nie przypomina zamkniętego w serwerowni administratora. Firmy chętnie zatrudniają specjalistów DevOps lub całe zespoły DevOps, gdyż stoją za tym konkretne korzyści:

  • Szybsze wdrożenie aplikacji – DevOps dzięki swojej wiedzy w zakresie wdrożeń odciąża developerów, którzy skupiają się na programowaniu
  • Znacząca poprawa jakości oprogramowania – dzięki wieloetapowemu procesowi Continuous Integration, zakładającemu przeprowadzenie różnego rodzaju testów oprogramowania
  • Poprawa bezpieczeństwa dostarczonego rozwiązania – DevOps posiada szeroką wiedzę w zakresie bezpieczeństwa. W kontekście roli DevOpsa często pojawia się rozwinięcie „DevOpsSec” – od słowa security
  • Wysoka dostępność aplikacji – są różne sposoby wdrażania aplikacji na serwerze. Przy wdrożeniu jednej instancji aplikacji, jeśli ulegnie ona awarii, aplikacja staje się niedostępna. Dzięki wdrożeniu aplikacji przez DevOpsa w tzw. wysokiej dostępności (High Availability) istnieje kilka jej instancji. W przypadku awarii jednej z nich pozostałe zapewniają dostępność usługi.
  • Skalowalność dostarczanej aplikacji – DevOps może wdrożyć rozwiązanie umożliwiające automatyczne zwiększenie liczby instancji aplikacji przy nagłym wzmożonym ruchu oraz jej zdolność do naprawienia się w przypadku awarii (self-healing). DevOps może na przykład wdrożyć mechanizm, który sprawdza, np. co 10 sekund, czy dana aplikacja działa, i w razie potrzeb automatycznie uruchamia ją ponownie.

Podsumowanie

Pędząca transformacja cyfrowa sprawia, że podejście do rozwoju oprogramowania się zmienia, a firmy szukają specjalistów, którzy usprawnią i przyspieszą ten proces. Pozyskanie ich jest jednak niełatwe i w ubiegłym roku specjaliści DevOps znajdowali się wg raportu LinkedIn na trzecim miejscu najbardziej pożądanych kompetencji. Nic dziwnego, że coraz więcej firm decyduje się na zatrudnienie DevOpsa lub zespołu DevOps, korzystając ze wsparcia firm specjalizujących się w rozwoju oprogramowania. Powody są różne: potrzeba szybszego wdrożenia aplikacji, chęć poprawy bezpieczeństwa i komunikacji między zespołami projektowymi, chęć posiadania wysokiej jakości aplikacji. A jaki byłby twój powód?

Autorem wpisu jest:
Bartosz Komin

Java Developer z ponad 10-letnim doświadczeniem projektowym. Aktualnie zafascynowany ideą DevOps oraz rozwiązaniami chmurowymi.

Dodaj komentarz

Komentarze:

Skontaktuj się z nami

Chcesz dowiedzieć się więcej o naszych usługach? Napisz do nas – odpowiemy na każdą wiadomość.

Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
• w celach handlowych,
• w celach marketingowych,
• w celach rekrutacyjnych;
• w celach przyszłych rekrutacji.
3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
• w celach handlowych,
• w celach marketingowych,
• w celach rekrutacyjnych;
• w celach przyszłych rekrutacji.
3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.