Kim jest DevOps i jak wspiera projekty IT? Artykuł JPro

Kim jest DevOps i jak wspiera projekty IT?

Bartosz Komin | Usługi chmurowe | 15.04.2020

Ostatnio wiele osób spoza branży pytało mnie, kim jest DevOps i czym się zajmuje specjalista na tym stanowisku w pracy. Nie dziwi mnie to zainteresowanie – pojawia się coraz więcej ogłoszeń organizacji, które poszukują do swoich projektów DevOpsów. Skąd ta popularność? Wejdźmy głębiej w tajniki pracy DevOpsa i spróbujmy poszukać odpowiedzi na pytanie, dlaczego coraz więcej managerów IT 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ą wiedzę, a także umiejętności, 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 trudności napotkanych przez 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 wytwarzania oprogramowania i nie boimy się eksperymentować, ponieważ dzięki rozwiązaniom chmurowym nie wdrażamy zmian bezpośrednio w środowisku produkcyjnym. Pracujemy zwinnie, w zgodzie z metodami Agile, 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 produktu (czyli MVP – Minimum Viable Product). To pozwala szybko sprawdzić słuszność założeń wobec nowego rozwiązania. Duża złożoność wymagań biznesowych oraz poziom skomplikowania budowanych narzędzi wymuszają z kolei większą specjalizację umiejętności danych członków zespołu developerskiego. Wcześniejsze podejście – jeden specjalista od wszystkiego: od programowania, po wdrożenie produktu – nie ma dziś już racji bytu. Developer, skupiony na dostarczaniu oprogramowania, nie ma wystarczająco dużo czasu na wdrażanie go w środowisku serwerowym. Tak właśnie powstała potrzeba wskazania w zespole specjalisty, którego cechowałyby umiejętności w obszarze tworzenia aplikacji, ale także znajomość procesów ich wdrożenia. I tym kimś jest właśnie DevOps (ang. Development and Operations).

Dowiedz się więcej: Zespoły DevOps

Przeczytaj także o: Korzyściach z migracji firm do chmury

Kim jest specjalista DevOps?

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

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 (skrót. CI/CD) – przygotowanie i automatyzacja procesu budowania, testowania, weryfikacji jakości kodu, a następnie wdrożenia go w środowisku serwerowym przy pomocy dedykowanych narzędzi (Jenkins, CircleCI, GitHub itp.);

Instalacja, konfiguracja oraz aktualizacja narzędzi wspierających proces wytwarzania oprogramowania, co pozwala skrócić czas potrzebny do wdrożenia oraz wprowadzania zmian (repozytoria artefaktów i kontenerów Dockera, Sonar, Elastic Search, bazy danych);

Monitoring infrastruktury oraz sprawdzanie ostrzeżeń automatycznie generowanych przez system w przypadku anomalii.

Usprawnienie komunikacji z zespołem osób odpowiedzialnych za infrastrukturę (jeśli taki istnieje);

Automatyzacja procesów eliminująca 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).

Czym zajmuje się DevOps Engineer? Różne konfiguracje jednego specjalisty

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 pracy:

1) DevOps jest członkiem zespołu developerskiego

Zespół infrastruktury odpowiada za część serwerową, a DevOps jest „przedstawicielem” zespołu rozwijającego oprogramowanie, kontaktującym się z zespołem, który zajmuje się infrastrukturą.

Plusy

DevOps może brać czynny udział w rozwoju oprogramowania

DevOps 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

Plusy

Lepsza komunikacja pomiędzy specjalistami DevOps – nie tworzy się dwóch takich samych rozwiązań, co pozwala zachować większą spójność

Większa wydajność pracy dzięki automatyzacji i usprawnieniu procesów dostarczania oprogramowania

Minusy

Słabsza komunikacja z zespołem developerskim

Dlaczego warto mieć w projekcie inżyniera DevOps?

Jak widać, choć DevOps jest specjalistą o szerokim zakresie kompetencji, w niczym nie przypomina zamkniętego w serwerowni administratora. Wiele organizacji chętnie zatrudnia specjalistów DevOps, a nie które firmy nawet całe zespoły DevOps, gdyż stoją za tym konkretne korzyści:

Szybsze wdrożenie – DevOps dzięki swojej wiedzy w zakresie wdrożeń odciąża developerów, którzy skupiają się na programowaniu;

– 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, mającemu na celu przeprowadzenie różnego rodzaju testów oprogramowania;

– dzięki wieloetapowemu procesowi Continuous Integration, mającemu na celu 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 „DevOps Sec ” – od słowa security;

– DevOps posiada szeroką wiedzę w zakresie bezpieczeństwa. W kontekście roli DevOpsa często pojawia się rozwinięcie „DevOps ” – od słowa security; Wysoka dostępność – są różne sposoby wdrażania oprogramowania na serwerze. Można wdrożyć jedną instancję aplikacji, przy czym w chwili awarii staje się ona niedostępna. Dzięki wdrożeniu przez DevOpsa w tzw. wysokiej dostępności (High Availability) istnieje kilka instancji aplikacji. Ma to na celu utrzymanie dostępu do usługi oraz pełnej funkcjonalności oprogramowania;

– są różne sposoby wdrażania oprogramowania na serwerze. Można wdrożyć jedną instancję aplikacji, przy czym w chwili awarii staje się ona niedostępna. Dzięki wdrożeniu przez DevOpsa w tzw. wysokiej dostępności (High Availability) istnieje kilka instancji aplikacji. Ma to na celu utrzymanie dostępu do usługi oraz pełnej funkcjonalności oprogramowania; Skalowalność – DevOps może wdrożyć rozwiązanie umożliwiające automatyczne zwiększenie liczby instancji aplikacji przy nagłym wzmożonym ruchu;

– DevOps może wdrożyć rozwiązanie umożliwiające automatyczne zwiększenie liczby instancji aplikacji przy nagłym wzmożonym ruchu; Self-healing – wdrożenie przez inżyniera DevOps mechanizmów utrzymania pozwala nadać aplikacji zdolność do naprawienia się w przypadku awarii. Automatyzacja może polegać na regularnym, np. co 10 sekund, wykonaniu testu, czy dana aplikacja działa, i w razie potrzeb automatycznie uruchomić ją ponownie.

Przeczytaj także: Automatyzacja procesów z Azure Durable Function

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 2019 roku specjaliści DevOps znajdowali się wg raportu LinkedIn na trzecim miejscu najbardziej pożądanych kompetencji. Nic dziwnego, że coraz więcej organizacji publikuje oferty pracy dla DevOps Engineera. Część firm decyduje się także na zatrudnienie całego zespołu DevOps, korzystając ze wsparcia firm specjalizujących się w rozwoju oprogramowania. Powody są różne: trzeba skrócić czas wdrożenia aplikacji, jest chęć poprawy bezpieczeństwa i komunikacji między zespołami projektowymi czy chęć posiadania wysokiej jakości aplikacji. A jaki byłby twój powód?

Tworzenie oprogramowania

Tworzenie oprogramowania

Firma posiada wysokiej klasy programistów umiejących tworzyć indywidualne aplikacje (programy dedykowane) dostosowane do potrzeb zamawiającego. Specjalizujemy się głównie w tworzeniu aplikacji związanych z danymi przestrzennymi.

W sposób ciągły tworzymy i rozwijamy oprogramowania do sprzedaży według założeń przez nas opracowanych lub uwag i wniosków licznych użytkowników.

Na indywidualne zapotrzebowanie nasi specjaliści dokonają analizy stawianych wymagań i przygotują ofertę wraz z harmonogramem prac. Po akceptacji wykonają aplikację, przeprowadzą testy i uruchomią oprogramowanie. Mogą również prowadzić dalsze prace związane z utrzymaniem oprogramowania.

Produkcja z myślą o środowisku – to możliwe

Zanieczyszczone powietrze i woda, zmiany klimatyczne czy zbyt duża ilość odpadów to globalne problemy, z którymi walczą przywódcy państw i rządzący. Potrzebę większej dbałości i odpowiedzialności za środowisko dostrzegają także firmy z sektora przemysłowego, implementując nowoczesne, ekologiczne rozwiązania. O tym, jakie działania można wdrożyć, aby produkcja była bardziej ekologiczna, opowiadają Marcin Terelak – Technical Manager oraz Andrzej Majewski, dyrektor fabryki Cedo.

Działalność firm coraz częściej idzie w parze z filozofią odpowiedzialnej produkcji. Zielona polityka modyfikuje nie tylko procedury i techniki zarządzania, ale przede wszystkim niesie ogromne zmiany w samym procesie produkcyjnym, stawiając nacisk na oszczędzanie energii i surowców oraz redukcję odpadów do minimum. Konieczność wdrożenia prośrodowiskowych rozwiązań widzą nie tylko giganci rynku przemysłowego, ale także mniejsze przedsiębiorstwa. Raport DNB Bank Polska i PwC „Kierunki 2020. Zielona odpowiedzialność biznesu. Czy biznes przyjazny środowisku się opłaca?” wskazuje, że aż 67% polskich dużych firm wprowadziło proekologiczne rozwiązania, a 14,5% ma zamiar je urzeczywistnić w przyszłości.

– Ekologia to jeden z filarów zrównoważonego rozwoju. Niestety przez lata była traktowana przez biznes trochę „po macoszemu”, jako przymus, który regulowały normy i dyrektywy. Na szczęście to podejście się zmienia, a organizacje coraz częściej dostrzegają korzyści, jakie płyną z wdrażania rozwiązań przyjaznych środowisku oraz możliwość rozwoju – komentuje Andrzej Majewski, dyrektor fabryki Cedo i dodaje: ważne, aby angażować się w przyjętą politykę ochrony środowiska, a nie traktować jej jedynie jako element budowania wizerunku. Cele tych działań powinny iść w parze z misją firmy oraz stać się ważnym punktem w strategii biznesowej.

W zieloną stronę

Zmiany środowiskowe, które są wynikiem działalności człowieka, wymuszają poszukiwanie nowych, lepszych rozwiązań zarówno w zakresie wydobycia surowców, jak i wykorzystania zasobów w procesie produkcyjnym. Potrzeby są ogromne, a na celowniku wielu firm jest tzw. polityka „zero” w zakresie ograniczenia odpadów stałych, ale także obniżenia zużycia wykorzystywanej energii czy wody. Wśród ekoinwestycji widać zorientowanie na wtórne wykorzystanie przetwarzanych surowców, wyeliminowanie uciążliwych dla środowiska komponentów wyrobu czy sięganie do energii odnawialnej.

– Recykling jest niejako wpisany w DNA firmy Cedo – produkujemy jednorazowe artykuły gospodarstwa domowego z odpadów pokonsumenckich, dając tworzywom sztucznym drugie życie. W naszym oddziale w Holandii posiadamy jedną z największych w Europie instalacji do przetwarzania tworzyw sztucznych pochodzących z gospodarstw domowych. Urządzenia myją, suszą i odseparowują odpad PE (polietylen) od PP (polipropylen). W naszym procesie produkcji worków na śmieci wykorzystujemy wyłącznie odpad PE, który w następnych krokach procesu recyklingu, po dokładnym przetopieniu i przefiltrowaniu, powraca do postaci granulatu. Nasze worki na śmieci niemal w całości pochodzą z materiałów, które kiedyś były odpadem, a sam proces produkcyjny jest tak skonstruowany, aby powstały przy produkcji odpad powtórnie przetworzyć na wartościowy granulat. Jesteśmy skupieni na maksymalnym wykorzystaniu odpadów – dopiero to, czego nie da się przetworzyć, poddajemy odpowiednim procesom utylizacji. W naszych polskich zakładach funkcjonują także linie do ekstruzji i konwersji produktów biodegradowalnych – wytwarzamy worki na śmieci z surowców naturalnych, czyli skrobi ziemniaczanej czy kukurydzy. Zauważamy także dużą wartość w produkcji o niskiej emisyjności, dlatego do 2030 roku chcielibyśmy osiągnąć neutralność klimatyczną. W najbliższych latach planujemy pozyskiwać energię ze źródeł odnawialnych – wiatru, wody i słońca, choć już teraz pracujemy nad projektami, których celem jest zmniejszenie zużycia energii. Jednym z nich jest jeszcze bardziej wydajny układ free-coolingu, który w okresie jesienno-zimowym pozwala zredukować zużycie energii związanej z procesem chłodzenia o 90%, korzystając z naturalnego chłodu na zewnątrz – mówi Marcin Terelak – Technical Manager w firmie Cedo.

Małe-wielkie kroki

Aby wdrożyć z powodzeniem koncepcję ochrony środowiska w firmie, nie wystarczą wielotysięczne inwestycje w technologię, która spełni wyśrubowane normy. Potrzebne jest także, a może aż, zaangażowanie pracowników wszystkich szczebli – od produkcji po kadrę zarządzającą. Według raportu DNB Bank Polska i PwC dobre praktyki wewnętrzne są stosowane w wielu firmach – 76% przedsiębiorstw bierze udział w segregacji śmieci, 73% korzysta z energooszczędnych żarówek, a prawie 50% tworzy akcje edukacyjne dla pracowników.

– Budowanie świadomości ekologicznej w firmie to podstawa. Dlatego w Cedo wdrożyliśmy segregację odpadów, aby pokazać pracownikom, że papier, plastik czy folia, który użytkują na co dzień, może być wykorzystany w recyklingu wewnętrznym. Papier jest w 100% recyklingowany i dostarczany do papierni, podobnie aluminium. Zrezygnowaliśmy także z jednorazowych opakowań na wodę, zastępując je butelkami wielokrotnego użytku. Bidony przypadły do gustu naszym pracownikom i często z nich korzystają. Proekologiczne zmiany wprowadziliśmy również w obszarze oświetlenia, zastępując tradycyjne źródła światła oświetleniem LED-owym. Każdy z tych punktów jest ważny, ponieważ buduje kulturę organizacji i pokazuje, że dla naszej firmy ochrona środowiska nie jest tylko zapiskiem w dokumentach – komentuje Marcin Terelak – Technical Manager w firmie Cedo.

Wspólna odpowiedzialność

W dobie kryzysu klimatycznego proekologiczna działalność firm ma duże znaczenie. Rewolucyjne zmiany w zarządzaniu i produkcji, jakie zachodzą w wielu zakładach przemysłowych, są bardzo potrzebne, jednak bez porozumienia na linii firma – konsument niewiele da się wywalczyć. Przed biznesem stoi niełatwe zadanie połączenia produkcji przyjaznej środowisku z kształtowaniem proekologicznych postaw konsumenckich.

– Produkcja z myślą o środowisku to bardzo pojemne pojęcie. Nie ogranicza się tylko do stosowania norm środowiskowych, gospodarowania odpadami czy korzystania z energii odnawialnej. Nigdy nie możemy powiedzieć, że jako producent zrobiliśmy dość, że już wystarczy. Ochrona środowiska w tak specyficznym obszarze jak produkcja przemysłowa stanowi wyzwanie, aby ciągle poszukiwać nowych rozwiązań i korzystać z możliwości, które stwarza technologia – podsumowuje Andrzej Majewski, dyrektor fabryki Cedo.

Jarosław Kułak
Jarosław Kułak

Leave a Comment