Przejdź do Treści

Platform engineering – opcja czy konieczność w nowoczesnych firmach IT?

Jarosław Czerwiński
Oct 9, 2023

Dziś, gdy każda firma dąży do tego, by przyspieszyć pracę i wydawać kolejne wersje oferowanych produktów, jeszcze bardziej na znaczeniu zyskuje czas. We wpisie chciałbym poruszyć temat Platform Engineering. Jest to sformułowanie, które już jakiś czas istnieje, niemniej jednak jest jeszcze na tyle nowe, że warto o nim mówić w kontekście przyspieszenia prac zespołów IT.

Miałem okazję pracować jako Devops w firmach, w których takie platformy nie istniały, jak również byłem członkiem zespołu Platform Engineering w jednym z największych banków europejskich. Zważywszy na zdobyte doświadczenia chciałbym podzielić się z Wami moimi spostrzeżeniami.

Co to jest Platform Engineering?

Platform Engineering (w skrócie PE); jak sama nazwa wskazuje; jest procesem projektowania i budowy wewnętrznej infrastruktury w firmie, który ma służyć przyspieszeniu pracy różnym zespołom. Zespołowi deweloperskiemu pomaga w rozwoju produktów zaś dla operacyjnego stanowi ułatwienie w zarządzaniu oraz skalowaniu środowiska. Dla SRE jest pomocny w utrzymywaniu ciągłości pracy produktów, monitorowaniu i reagowaniu na awarie.

Mówiąc o miejscu w większości przypadków mam na myśli elastyczne ekosystemy chmurowe. PE to pewna abstrakcja, która jest udostępniana różnym zespołom w odmiennym zakresie.

Po co mi Platform Engineering?

Dzięki wprowadzeniu dodatkowej warstwy abstrakcji, możemy odciążyć poszczególne zespoły firmy eliminując niepotrzebną i nieefektywną pracę związaną z obszarami, na których pracownicy nie powinni się skupiać. Przykładowo zespół developerski nie musi na bieżąco śledzić nowości, które związane są z daną chmurą (chociaż oczywiście powinien rozwijać swoje umiejętności programistyczne). Nie jest konieczne, aby śledził nowinki dotyczące nowych funkcji monitorowania pracy wirtualnych maszyn lub sposobów wdrażania aplikacji. W ten sposób zwiększamy efektywność zespołów oraz częstotliwość dostarczania kodu.

Dodatkową zaletą jest standaryzacja. Projektowanie solidnej platformy do budowy i wdrażania aplikacji wymusza stworzenie powtarzalnego schematu, który znacznie łatwiej jest modyfikować, wymieniać i utrzymywać w odróżnieniu od typowych rozwiązań On-Premises. Dokładne określenie zakresu odpowiedzialności, które narzuca platforma i dostarczenie dobrej dokumentacji pozytywnie wpłyną również na czas wprowadzania nowych członków teamu. Jest to bardzo istotny aspekt w czasach, gdy rotacja pracowników jest wysoka.

Dzięki PE możemy zdjąć z zespołów developerskich niepotrzebne obowiązki związane z wyborem narzędzi do zadań, dbaniem o środowiska, sposobem przechowywania aplikacji, ich konfiguracją, uruchamianiem i ciągłym doskonaleniem się w technologiach chmurowych, które nie są bezpośrednio związane z ich dziedziną. Dzięki temu osoby pracujące nad projektem mogą całkowicie skupić się na rozwoju aplikacji co tym samym zwiększy ich wydajność i efektywność pracy. Ułatwi również skalowanie środowisk, poprawi bezpieczeństwo systemu i usprawni komunikację między poszczególnymi grupami.

Wybór narzędzi

W mojej opinii przy doborze narzędzi nie chodzi o to, aby wybierać tylko najnowsze rozwiązania. Nie będziemy w stanie wdrożyć najnowszych narzędzi, ponieważ stale pojawiają się kolejne – nowsze. Zamiast tego powinniśmy skupić się na synergii między nimi. Sztuką jest dobór narzędzi, które dobrze ze sobą współpracują, uzupełniają się wzajemnie i tworzą korzystne połączenie. Powinny być one także elastyczne i modularne, aby można było je względnie łatwo wymienić na nowe lub rozszerzyć ich możliwości w przyszłości.

Podsumowując

Platform Engineering jest niezbędnym elementem dla firm dążących do efektywności, skalowalności i stabilności w dziedzinie technologii. Odpowiednio zaprojektowane i zarządzane platformy pozwalają organizacjom dotrzymać kroku dynamicznie zmieniającym się potrzebom klientów. Mimo, że stworzenie takiej platformy jest bezsprzecznie dużym wyzwaniem, to z pewnością ten wysiłek zwróci się z nawiązką.

Author:

Jarosław Czerwiński

Senior Software Engineer
Ukończyłem Automatykę i Robotykę na Politechnice Śląskiej w Gliwicach. Przez lata pracy jako programista robotów przemysłowych w sektorze motoryzacyjnym zdobyłem doświadczenie, które przekształciłem w pasję do automatyzacji. Teraz jako Senior Software Engineer w Capgemini, specjalizuję się w automatyzacji procesów i chmurze AWS. Mam trzyletnie doświadczenie jako specjalista DevOps w sektorze bankowym, jestem członkiem AWS Community Builder i posiadam kilka certyfikatów z tej chmury. Kładę nacisk na prostotę i efektywność, wierząc, że mniej kodu oznacza mniejszą ilość błędów, która jest kluczem do sukcesu.