Jak pracuje się przy projekcie IT dla klienta z Doliny Krzemowej
Jesteśmy zespołem realizującym projekt dla firmy telco z Doliny Krzemowej, specjalizującej się w firewallach, bezpieczeństwie sieci i ruchu w chmurach publicznych. Przygotowujemy green-fieldowe rozwiązanie automatyzujące deployment komponentów VNF i operacje na infrastrukturze (np. stawianie i zarządzanie środowiskami), a także współtworzymy wiedzę domenową.
Obecnie poszukujemy inżyniera DevOps / Network, który dołączy do naszego teamu i pomoże nam wdrożyć dobre praktyki w organizacji klienta. Dlatego przeczytajcie, co mówi o pracy przy tym projekcie nasz DevOps Engineer :)
Jaka jest specyfika tego projektu?
Projekt polega na stworzeniu kolekcji skryptów do automatyzacji deploymentów w chmurach publicznych. W dużej części przypadków są to firewalle, a więc elementy mocno zintegrowane z infrastrukturą i organizacją sieci. Klienci końcowi chcieliby jak najszerzej wdrażać praktyki takie jak samodokumentujący się kod lub IaaC i nasz produkt wpisuje się w ten trend.
Deployment będzie tutaj procedurą zapisaną, elastycznie konfigurowalną i dającą powtarzalne i dokładne wyniki. To szczególnie przydaje się klientom, którzy są dużymi, globalnymi podmiotami — skalowalność i możliwość powielania tych samych struktur w różnych centrach danych jest kluczowym wymaganiem.
Stack technologiczny, którego używamy, to przede wszystkim Terraform i Python. Docelowo chcemy otworzyć nasze moduły w publicznym repozytorium i pokazać światu. Każdy specjalista zainteresowany tematem deploymentów w chmurach będzie mógł przekonać się, jak wyglądają takie rozwiązania niejako „od kuchni”. Aspekt „open source” jest popularnym trendem i coraz więcej producentów rozwiązań sieciowych i chmurowych się na niego otwiera.
Której chmury używacie w projekcie i dlaczego?
Nasze skrypty i scenariusze muszą być kompatybilne ze wszystkimi największymi chmurami: Azure, Google, AWS, ale też Oracle, IBM czy Alibaba. Ta wszechstronność pomaga naszemu partnerowi pozyskiwać klientów operujących na różnych chmurach i wspiera jego biznes. Jednocześnie taka różnorodność jest dla nas, jako inżynierów, bardzo rozwijająca.
W projekcie trzeba wiedzieć sporo o sieciach. Które zagadnienia musiałeś zgłębić na potrzeby tego projektu?
Gdy zaczynałem karierę na stanowisku administratora systemów i sieci, to musiałem uczyć się w zasadzie wszystkiego po trochu. Jestem przyzwyczajony do ciągłego poszerzania wiedzy. W szczególności w obecnym projekcie musiałem douczyć się o implementacji sieci w chmurach: w każdej z nich rozwiązania są inne, implementacje, np. load balancingu lub gateway’ów mogą się bardzo różnić. Wdrażamy głównie firewalle, więc interakcja z organizacją sprzętu „pod spodem” jest za każdym razem nowa i wymaga pracy, jednak zyskujemy masę doświadczenia. Ciągle coś się dzieje i ciągle coś się zmienia. Fajne, bo nie jest to monotonne.
Co jest największym wyzwaniem w realizacji projektu?
Chyba rozpiętość geograficzna i kulturowa projektu. Zespół zlokalizowany jest w Polsce, ale już nasz partner jest w USA, a jego klienci końcowi są rozproszeni po całym świecie. Tu nawet nie chodzi o elastyczność komunikacyjną, ale czasem o głębokie różnice w podejściu do technologii i wykorzystaniu wiedzy technicznej. Jako że jesteśmy odpowiedzialni za architekturę i implementację naszego kodu, to dużą część czasu spędzamy na tłumaczeniu naszych wyborów i koncepcji, bo od tego zależy powodzenie operacji biznesowych naszych klientów. Zatem umiejętności miękkie bardzo się przydają.
Co do wyzwań czysto technicznych, pewną niedogodnością jest ograniczona kompatybilność wsteczna samego Terraforma. Z każdą nową wersją wprowadzanych jest sporo zestawów funkcji, ale też bugi i niejednokrotnie regresje i różne niespodzianki. W naszym przypadku oznacza to wydłużony cykl testowania — nie tylko z aktualną wersją Terraforma, ale też kilkoma poprzednimi.
Co sprawia Ci na co dzień największą satysfakcję w pracy przy tym projekcie?
Odpowiedzialność za produkt i wdrożenia od strony technicznej. To ważne, że możemy swobodnie dobierać techniki tak, żeby nasz kod był optymalny i dobrze spełniał swoje zadanie. Mamy podgląd jak wyglądają rozwiązania konkurencyjne dostępne na rynku i muszę powiedzieć, że bardzo często nasze moduły są wyższej jakości niż te od uznanych dostawców. Cieszę się, że pracuję w środowisku, gdzie tworzymy rozwiązania na poziomie światowym.
Myślę, że jeszcze większą satysfakcję będę mieć z tej pracy, gdy otworzymy nasz kod do publicznego repozytorium i będziemy mogli się pod nim podpisać jako twórcy. Fajnie jest być częścią ruchu, który robi coś dla „open source”, nawet jeśli — patrząc na ogół rynku IT — to zagadnienia niszowe.
Zaaplikuj na ofertę pracy i realizuj się w ciekawym projekcie! :)