Logo Crossweb

Logowanie

Nie masz konta? Zapomniałem hasła

Przypomnij hasło

close Wypełnij formularz.
Na Twój adres e-mail zostanie wysłane link umożliwiający zmianę hasła.
Wyślij

Stażowe Lesson Learned, czyli uniwersum technologii

Łukasz Marzec, 18 marca 2021
Stażowe Lesson Learned, czyli uniwersum technologii

Co roku Comarch zaprasza na wakacyjne staże IT około trzystu studentów. Moja przygoda z firmą, która trwa już ponad 13 lat, zaczęła się właśnie w ten sposób – od stażu. Od razu zaznaczę, że jest to skok na głęboką wodę, gdzie wszystkie umiejętności pozyskane na studiach można zweryfikować w pracy nad konkretnym produktem. I to właśnie te konkrety są największą zaletą stażu.


Możliwości dostosowywane są do umiejętności


Dopiero w zeszłym roku po raz pierwszy zostałem opiekunem stażowym. Opieka nad stawiającymi swoje pierwsze zawodowe kroki studentami to nie tylko dzielenie się wiedzą. Mentorów stażowych musi cechować wyrozumiałość i ciekawość – stażyści często zaskakują nas swoim podejściem do niektórych problemów. Nasze, często już odrobinę zastane rozwiązania przechodzą weryfikację właśnie w trakcie trwania programu stażowego. Dla mentorów rozpoczęcie działań stażowych zaczyna się dłuższą chwilę przed pojawieniem się nowych pracowników w budynkach firmy. Koordynacja stażystów mogłaby się wydawać prosta: w pracy pojawia się nowa osoba, a jej opiekun deleguje na nią mniej lubiane obowiązki. Na szczęście w branży IT – zwłaszcza gdy zatrudnia się ponad trzystu stażystów – sprawy mają się inaczej. Plan stażu musi zostać ustalony znacznie wcześniej, należy skonsultować go z przełożonymi. Zagadnienie musi być nie tylko praktyczne, powinno również pokrywać część obszaru zapotrzebowania danego zespołu lub centrum. Na początku należy wybrać odpowiedni stos technologiczny. Z reguły jest to uzależnione od problemu, jaki przyszły stażysta ma rozwiązać, a także od jego początkowych umiejętności, dlatego przy doborze technologii i projektów wychodzimy naprzeciw umiejętnościom młodych pracowników. Nikt przecież nie zleci osobie stawiającej swoje pierwsze kroki w tej branży konfiguracji macierzy, strojenia wydajnościowego bazy czy też tworzenia od zera klastra kubernetesowego. Jednak problemy, z jakimi mają zmierzyć się stażyści, nie należą do trywialnych. Ale wróćmy do samego początku. Następuje „dzień zero” i w biurze pojawia się nowy człowiek. W towarzystwie kierownika działu mija bramki wejściowe, zaznajamia się z rozmieszczeniem biura, by wreszcie zasiąść wygodnie za swoim nowym biurkiem, przy którym spędzi trzy miesiące, realizując wcześniej zaplanowany projekt. Oczywiście, jak w większości firm bywa, nową osobę czeka na starcie odrobina formalności i dokumentacji. Mimo że tego typu czynności nie należą do pasjonujących, to na szczęście nie są bardzo czasochłonne. Polityka bezpieczeństwa w każdej firmie IT jest traktowana priorytetowo, dlatego trzeba zwyczajnie przez to przejść.


Jakie technologie można poznać w trakcie stażu?


Poziom wiedzy stażysty zostaje zweryfikowany na etapie rekrutacji, jednak dopiero w trakcie trwania naszego wakacyjnego programu możemy sprawdzić w praktyce, co nasz młody adept potrafi. Przedstawiamy plan projektu, ustalamy kolejność działań i rozmawiamy o technologiach, które byłyby mile widziane przez opiekuna. Ważne jest również ustalenie kroków pośrednich, które czekają na stażystów w drodze do osiągnięcia ich celu. Zadaniem firmowego debiutanta, który był pod moją opieką, było przygotowanie narzędzia służącego do migracji projektów pomiędzy różnymi instancjami GitLaba. Zawartość kilku niezależnych instancji GitLaba podlegających pod różne zespoły deweloperskie miała zostać przeniesiona do jednego centralnego repozytorium. Pierwotnie do tego celu miało być wykorzystane narzędzie bazujące na Selenium/RobotFramework, które używane było do przenoszenia pojedynczych projektów. Biorąc pod uwagę ilość instancji GitLaba oraz sumaryczną liczbę projektów, jakie należało przetworzyć, pomysł ten został porzucony. Wydajność tego narzędzia nie była zadowalająca, musieliśmy zastanowić się na innym rozwiązaniem. Pojawił się pomysł użycia REST-API GitLabowego oraz języka skryptowego Python opakowującego wywołania do api GitLaba. Ten pomysł okazał się trafiony z uwagi na fakt, że stażysta był już bardzo dobrze zaznajomiony z językiem Python, pozostało jedynie zagłębić się w dokumentację dotyczącą używania API. Pierwsze rezultaty połączenia Pythona oraz API GitLaba mogliśmy sprawdzać już w drugim tygodniu pracy naszego stażysty. Testowe uruchomienia skryptu dawały bardzo obiecujące wyniki, ale testy wykonywane były w bardzo małej skali zaledwie kilku projektów. Pojawiła się potrzeba powiększenia środowiska testowego i zwiększenia ilości danych. Z pomocą przyszła nam nasza wewnętrzna chmura obliczeniowa oparta na Open Stacku. Przygotowanie nowej maszyny wirtualnej, zainstalowanie na niej własnej instancji GitLaba, Pythona wraz z zależnościami oraz zasilenie jej w dane testowe zajęło nam kilka godzin. Niewątpliwą zaletą realizowania tego typu projektów jest fakt, że środowisko testowe można mieć niemalże natychmiast, istnieje także możliwość skalowania jego zasobów np. ilości RAM-u czy przydzielonych wirtualnych procesorów. Dzięki temu prace naszego stażysty mogły bez zwłoki trwać nadal. Tempo przygotowywania rozwiązania było na tyle duże, że w pewnym momencie pojawił się pomysł, żeby rozszerzyć zakres zaplanowanego harmonogramu stażu. Tuż po paśmie sukcesów potwierdzających wysokie umiejętności stażysty, którym się zajmowałem, pojawiły się jednak nieuniknione „schody”. Podczas prób zwiększenia wydajności nowego narzędzia oraz zrównoleglenia kilku wykonywanych jednocześnie czynności wystąpił problem race condition. Znalezienie przyczyn błędu, który pojawił się nagle i całkowicie zaburzył dotychczasowy postęp prac, zajęło kilka dni, ale dzięki temu mój stażysta po raz pierwszy w swojej praktyce, zetknął z problemem, o którym słyszał tylko na wykładach. Takich przygód podczas stażu zdarzyło się jeszcze kilka, a każda z nich na pewno zapadnie w pamięci naszemu adeptowi i przyda się w przyszłej pracy zawodowej. Na koniec najważniejsza część tej przykładowej historii. Narzędzie, które przygotował nasz stażysta, po niewielkich poprawkach dołączyło do puli skryptów i programów, które w ramach zarządzania infrastrukturą wewnętrzną wykorzystujemy do pracy przy instancjach GitLaba. Bycie mentorem to też szansa na naukę nowych rozwiązań. W trakcie stażu wspieramy się i uczymy od siebie nawzajem.


Co po stażu?


Kiedy zaczynałem pracę, mogłem się pochwalić podstawową znajomością Perla i obróbki plików xml-owych. Po stażu zostałem wcielony do zespołu produktyzacji, który odpowiedzialny był za przygotowywanie narzędzi na potrzeby wewnętrzne projektów. Z upływem czasu oraz rozwojem moich umiejętności zostałem osobą pełniącą obowiązki release managera. Do moich zadań należała koordynacja wypuszczania wersji systemu bilingowego, przygotowywanie instalatorów poszczególnych jego modułów, zarządzanie systemami kontroli wersji SVN/GIT, narzędziami continious integration Bamboo/Jenkins czy też repozytoriami artefaktów Nexus/JFrog. Dodatkowo spoczywała na mnie odpowiedzialność wymiany informacji pomiędzy zespołami developerów, testerów, wdrożeniowców. Od kilku lat należę do zespołu DevOps, który obejmuje zasięgiem swoich działań administrację baz danych, zarządzanie maszynami fizycznymi oraz wirtualnymi, administrację chmurą OpenStack oraz prace związane z tworzeniem nowych środowisk testowych, monitorowania istniejących, jak również rozwiązywanie problemów powstałych w środowiskach produkcyjnych u naszych klientów. Zespół jest mocno zaangażowany w tworzenie środowisk opartych o klastry kubernetesowe oraz przygotowywanie mechanizmu do zarządzania systemem zainstalowanym na takim klastrze (pipeliney gitlabowe). Ciekawie i intensywnie, prawda?

Aktualnie jestem zaangażowany w projekt realizowany dla naszego szwajcarskiego klienta Quickline, który polega na dostarczeniu systemu bilingowego zainstalowanego w Kubernetes oraz mechanizmu do jego zarządzania. Projekt jest dla mnie szczególny, ponieważ pracuję przy nim od samego początku, odkąd tylko podpisana została umowa. Daje to możliwości wpływania na kształt instalacji systemu zarówno na naszych wewnętrznych środowiskach testowych, jak i na środowiskach po stronie klienta. Fakt uczestnictwa w większych projektach oraz możliwość bezpośrednich konsultacji z klientem daje sporo satysfakcji. Oczywiście zdarzają się również problemy, które podnoszą poziom stresu, ale to tylko dodatkowy napęd do działania i mobilizacji. Dzięki temu lubię to, co robię, szczególne w tak świetnie dobranym zespole, w jakim mam przyjemność pracować.


Zasada win-win


Czy warto skorzystać z uczestnictwa w stażu? Myślę, że zdecydowanie tak. Jeżeli sięgnę pamięcią do czasów, kiedy sam byłem stażystą i próbowałem wykorzystać wiedzę zdobytą samodzielnie czy też na wykładach w tak zwanym prawdziwym życiu, to mimowolnie sam się do siebie uśmiecham. Niestety, realia pracy przy prawdziwych projektach znacznie różnią się od warunków akademickich. Dzięki bardzo pomocnemu opiekunowi, który podpowiedział, zaproponował, wskazał odpowiednie przykłady, nauczyłem się jak szukać rozwiązań. To zrozumiałe, że osoba, która przychodzi na staż, może czegoś nie wiedzieć, nie znać, nie używać. Oczywiście wiedza bazowa jest niezbędna, bo bez fundamentów nic nie da się zbudować, ale staż na pewno nauczy samodzielności. Dodatkowo stażysta ma dostęp do technologii niejednokrotnie objętych drogimi płatnymi licencjami, na które samodzielnie ciężko byłby sobie pozwolić. Na koniec warto wspomnieć o najważniejszym. Uczestnik stażu ma dostęp do szerokiego grona ludzi z doświadczeniem, którzy chętnie dzielą się swoją wiedzą. Chyba nie trzeba już nikogo bardziej namawiać.


Dowiedz się więcej o wakacyjnych stażach i możliwościach rozwoju kariery z Comarch.


----

Autor: Łukasz Marzec – związany z Comarchem od ponad 13 lat. Zaczynał od stażu, aktualnie jest inżynierem systemowym należącym do działu DevOps.

___________________________________


Artykuł powstał w ramach cyklu wpisów gościnnych, tworzonych we współpracy z naszymi klientami i partnerami.




Blog - najnowsze wpisy