Nie bujamy o obłokach, czyli o upskillingu w obszarze Amazon Web Services. Rozmowa z Pawłem Szymurą, Architektem Oprogramowania w FP.
- Processes, standards and quality
- Technologies
- Others
Codzienność Architekta to ciągłe poszukiwania rozwiązań problemów biznesowych za pomocą technologii. W gąszczu narzędzi nie wystarczy śledzić tego, co dzieje się w obszarze, w którym jesteśmy ekspertami. Warto rozglądać się dookoła. Przykład Pawła i jego wejścia w chmurę AWS pokazuje, że można również połączyć rozwój kompetencji z codzienną pracą. Nasz architekt opowiada, jak w ciągu 9 miesięcy udało mu się zdobyć nowe umiejętności cloudowe i potwierdzić je certyfikatem.
Pawle, jesteś architektem oprogramowania w Future Processing. Słowo “architekt” niesie z sobą pewien ciężar odpowiedzialności, jakby osoba na tym stanowisku miała wiedzieć wszystko. A jak jest naprawdę? Opowiedz, jakie są Twoje mocne strony technologiczne, w czym się specjalizujesz?
Paweł Szymura Solutions Architect: Najtrudniej ocenić siebie. Zawsze patrzyłem na siebie jako na kogoś, kto potrafi coś zrobić łatwiej, prościej, schludniej. Swoją przygodę z programowaniem zaczynałem w czasach, kiedy kilka bajtów pamięci czy taktów procesora miało kolosalne znaczenie np. dla prędkości działania komputera. Program musiał się zmieścić w 640 kB! Dzisiaj wydajność programu czy raczej usługi www rozbija się o skalę użytkowania, np. o obsługę 100 tysięcy żądań jednocześnie. Inna skala, ale sprowadza się do tego samego i w dalszym ciągu często taniej wychodzi dorzucenie procesorów i RAMu 😉.
W ostatnim czasie razem z zespołem projektowym skupiam się na wyznaczaniu granic modułów i takim zarządzaniem komunikacją między modułami, by była jak najbardziej efektywna. To bardzo ważny aspekt pracy w systemach rozproszonych. Brak działań w tym obszarze może spowodować dotarcie do najgorszego punktu w systemach rozproszonych, takiego „big ball of mud”, czyli rozproszonego monolitu.
Podobno potrzebowałeś w dość krótkim momencie „nadgonić” pewne kwalifikacje z obszaru AWS. Nim o tym opowiemy, opisz proszę krótko, co rozwijacie w projekcie i dlaczego usługami chmurowymi ten projekt stoi?
Klient ma już rozwiązanie działające w chmurze, jednak nie wykorzystuje ono w pełni jej zalet. Dodatkowo, zarządzanie infrastrukturą chmurową zostało przekazane do zewnętrznego orkiestratora. Jednym z celów projektu jest odwrócenie tego stanu rzeczy.
Klient chce odzyskać kontrolę i samodzielnie zarządzać chmurą oraz lepiej wykorzystać jej zasoby. Wszędzie tam, gdzie była możliwość oraz zasadność, wybieraliśmy usługi zarządzane. Finalnie wykorzystujemy ponad 15 różnych usług i potencjalnie, jest szansa, że dodamy kolejne.
Generalnie system umożliwia bezpieczne udostępnianie poufnych dokumentów korporacyjnych w ramach tzw. Pokojów Danych. Ma to zapewnić realizacje międzynarodowych transakcji na najwyższym poziomie. Siłą tego systemu (a zarazem wyróżnikiem według klienta) to rozbudowany proces Q&A do udostępnianych dokumentów. Pytania są przypisywane do kategorii, które mogą mieć swoich ekspertów. Każde pytanie i odpowiedź mogą być moderowane, akceptowane, odrzucane.
Wyobraźmy sobie, że miałbyś napisać artykuł w stylu „zdobył kompetencje AWS-owe w kilka dni, sąsiedzi go nienawidzą” 😀 Czy jest to w ogóle możliwe? Jak najlepiej uzupełnić braki w wiedzy, gdzie szukać wsparcia i ile czasu faktycznie to zajmuje?
Czy da się zdobyć skilla w kilka dni? Da się, o ile jest to jakiś pojedynczy temat. Zagadnienie AWS Cloud jest jednak bardzo szerokie i w moim przypadku – chociaż poszło wszystko sprawnie – zajęło to 9 miesięcy. Nie chcę zabrzmieć jak osoba, która się chwali, a trzeba pamiętać, że zdobycie nowych umiejętności mocno zależy od indywidualnych predyspozycji i dotychczasowego zakresu wiedzy w danym temacie.
W moim przypadku wszystko działo się bardzo szybko. Początkowo moje kompetencje AWS-owe wymagały poprawienia. Zaczęło się od poleconego przez FPAcademy kursu. FPAcademy to jednostka w FP, która odpowiada za rozwój i szkolenia pracowników. Potem przyszła pora na praktykę, czyli opracowanie koncepcji architektury systemu opartej o Cloud oraz obrona tejże koncepcji przed zewnętrznym konsultantem zatrudnionym przez klienta.
Zarówno podczas przygotowania koncepcji architektury, jak i jej obrony, mogłem liczyć na wsparcie innych architektów. Dzięki współpracy z nimi mogłem szybko identyfikować swoje słabe punkty (bądź architektury 😉) i skupić się bardziej na wybranych aspektach. Potem przyszła pora na szczegółowy kurs, a równolegle pracowałem codziennie z chmurą w projekcie. Na koniec bezpośrednie przygotowanie do egzaminu i studiowanie konkretnych przypadków testowych.
Możesz opowiedzieć bardziej szczegółowo, jak wyglądał ten proces?
Gdybym miał przedstawić jakiś sprawdzony algorytm, to wyglądałby on mniej więcej tak:
- Poznać teorię na dość ogólnym poziomie, ale też o szerokim zakresie tak, by móc zacząć działać praktycznie i znać kontekst owej technologii. Tutaj dużym wsparciem było dla mnie FPAcademy.
- Przejść do praktyki najlepiej pod okiem kogoś doświadczonego. W Future Processing mamy społeczność architektów – Technical Expertise – w ramach której wymieniamy się wiedzą i doświadczeniami projektowymi. To sporo ułatwia.
- Wrócić do teorii na wyższym poziomie wtajemniczenia, by poznać szczegóły, zagregować dotychczasową wiedzę i praktykę.
- Dalej praktykować zdobytą kompetencję i monitorować nowości (o ile to taki rodzaj kompetencji).
Ważne, by na każdym z powyższych czterech etapów, można było mieć dostęp do wsparcia osób bardziej doświadczonych. Nawet kwestia dobrania odpowiednich kursów może być kluczowa. To znacznie przyśpiesza i ułatwia proces zdobywania skilla. Pozwala też wystrzec się ślepych zaułków, w jakie często możemy zabrnąć. W moim przypadku wsparcie TE oraz FPAcademy było kluczowe.
Rozumiemy, że certyfikacja się powiodła? 😊
Tak. Moim punktem kulminacyjnym w przygodzie z Cloudem było zdanie egzaminu „AWS Certified Solutions Architect – Associate”.
Super, gratulujemy! Czy powiedziałbyś, że umiejętności cloudowe przydają się w obecnym czasie wszędzie?
Podczas przygotowań do projektu architektury systemu (czy później bezpośrednio do certyfikacji), miałem świetną powtórkę bardzo wielu pojęć, konceptów itp. Przykładowo, w kursie, który miałem okazję skończyć, była mowa o takich rzeczach, jak np. sposoby adresacji i masek IP, aby dobrze przedstawić temat infrastruktury sieciowej w Cloud.
Co więcej, nie trzeba mieć w projekcie do czynienia z chmurą, by zastosować zdobyte w tym zakresie kompetencje. Znajomość zagadnień chmurowych „przywraca” nieco świadomość, gdzie i jak nasze aplikacje są uruchamiane. Cloudowe koncepcje dotyczące zapewnienia bezpieczeństwa, wysokiej dostępności czy disaster recovery są uniwersalne.
Cloud to przede wszystkim najlepsze pomysły, jak może wyglądać architektura systemów. Nawet gdybyśmy budowali system w oparciu fizyczną serwerownię, to wzorowanie się na rozwiązaniach chmurowych pomoże nam lepiej zaprojektować całość.
Ciekawi nas, jak w dobie wysokiego tempa rozwoju technologii wzmacniać wiedzę na temat wiodących rozwiązań, w których się specjalizujemy a do tego dołożyć zdobywanie nowych kwalifikacji. Możesz opowiedzieć, jak to u Ciebie wygląda?
Przede wszystkim, ważna jest systematyczność. Nawet jeśli codziennie poświęcimy 15 minut, to po 3 miesiącach mamy średnio 22 godziny i 45 minut. To jest na prawdę bardzo dużo. Pytasz skąd wziąć 15 minut dziennie? Najprościej z wycięcia Facebooka, Instagrama, Netflixa i Onetu. Serio, da się. Choć sam często się łapię na tym, że nie jest tak łatwo. Nie chcę w żaden sposób porównywać rozrywki do nauki czy pracy. Warto jednak zauważyć, że jeśli ktoś interesuje się np. znaczkami pocztowymi 😉 to z pewnością znajdzie czas na to, by codziennie kilka minut poczytać na ten temat. Tak samo może być z jakimkolwiek innym obszarem wiedzy. Największym wrogiem jest tu prokrastynacja. W większości przypadków wystarczy „tylko” ustawić siebie do porządku.