Atak klonów

Przygotowując się do premiery najnowszej części sagi Gwiezdne Wojny postanowiłem obejrzeć jeszcze raz wszystkie części i uporządkować sobie „who is who”. Scenariusz kompletnego relaksu wzbogacony dobrym trunkiem i jeszcze lepszym towarzystwem ukochanej żony zapowiadał się bardzo obiecująco kiedy nagle… Bum! Atak klonów!

https://flic.kr/p/oXuR28

Na nowo włączył się mały gremlin w mojej głowie dbający nieustannie o to, żebym czasem nie pomyślał o czymś innym niż wszechobecna technologia. Oglądając proces produkcji klonów, potężnych w swojej prostocie a jednocześnie bardzo powtarzalnych, zastępowalnych i na dodatek w liczbach tak ogromnych, żeby żadna armia w galaktyce nie mogła im się oprzeć sprowokowałem mojego potworka.

Ten widząc klony, droidy o różnych specjalizacjach wrzasnął, typowo po polsku: „O k…..!!!!!! One są jak… MIKROUSŁUGI”. Gremlin dostał ciastko i skończyło się komfortowe oglądanie filmu bo myśli już poleciały w kierunku aplikacji trzeciej generacji, kontenerów, DevOps i innych wynalazków, którym starzy wyjadacze wieszczą świetlaną przyszłość. A ja, tak się złożyło, w te akurat przepowiednie mocno wierzę – a przecież od dawna stawiałem sobie za cel bycia choć w części uczestnikiem (r)ewolucynych zmian w IT jakie przychodzi nam obserwować.

Jednym z powodów jest fakt, że jako geek lubię nowości, ficzery, unboxing i inne odchylenia i fetysze przypadające maniakom IT, których nie poczują zwykli użytkownicy komputera. Aplikacje oparte na mikrousługach to powiew nowości, to architektura genialna w swojej prostocie i chyba jedyna gotowa na dzisiejsze wyzwania.

Mikrousługi to nic innego jak z dywersyfikowane na mniejsze, prostsze elementy usługi klasycznej aplikacji trójwarstwowej (front, serwer aplikacji, baza danych) jakich dzisiaj większość organizacji wykorzystuje. W świecie opisanym na warstwie oprogramowania niezwykle łatwo jest uruchomić wiele instancji np. silnika serwera aplikacji ale uproszczonego do granic możliwości. Prosta mikrousługa jest łatwa do rozwijania, wspierania ale też… nie ma się za bardzo co popsuć. Zespół deweloperski odpowiedzialny za jej rozwój nie jest duży, każdy jest łatwo zastępowalny a na dodatek wszyscy jego członkowie są skupieniu na stałym ulepszaniu kodu. To czego tak uproszczony silnik aplikacji nie potrafi zapewne potrafi inna mikrousługa.

Dzięki takiemu uproszczeniu zyskujemy dodatkową wolność: język i platforma programowania. Żeby rozwijać kompleksową aplikację przedsiębiorstwa nie musimy bazować na jednym błogosławionym IDE, na jednym języku czy platformie – jak usługa została stworzona przestaje nas interesować – ważne by działała tak jak ją opisane. Proste ?

Nie bez znaczenia pozostaje niezwykła elastyczność zapotrzebowania na infrastrukturę bo ta przestaje mieć znaczenie. Oczywiście ważne jest żeby zapewnić jej elastyczność, gotowość np. na obsługę kontenerów, na balansowanie obciążenia, komunikację sieciową ale nie jesteśmy skazani na jedną konkretą. Aplikacja się nie będzie „interesowała” działa na Azure, AWS czy we własnym centrum danych na platformie wirtualnej.

Na koniec wysoka dostępność, która w przypadku mikrousług jest fenomenalna. Dlaczego jednego w produkcji George’a Lucasa w miejsce jednego droida czy klona znajduje się kilka nowych ? Ponieważ są takie same, idealnie proste do zbudowania od nowa! Celowo użyłem słowa „zbudowania”, ponieważ „odtworzenie” kojarzy się raczej z przywracaniem z kopii zapasowej. Tej nie mają najwięksi twardziele, a Ci co ją mają i tak modlą się żeby tym razem udało się system odzyskać i to jeszcze z zachowaniem konsystencji. Nad głową stoi co najmniej bezpośredni przełożony a sekundy huczą w głowie nawet jeśli używamy zegarka elektronicznego…

A mikrousługi? Jak droidy – jeden komponent zginął jest 5 nowych. Ten mechanizm jest już wykorzystywany między innymi w Onet.pl, czy też allegro!

Nowa nadzieja…

Skoro zatem aplikacji 3 generacji oparte na systemach rozproszonych i mikrousługach mają wkrótce najbardziej wpływać na rozwój IT, warto na nie postawić i rozpoznawać różne technologie związane z tym trendem. Na rynku jest ich tysiące – często są to zupełnie mało znane nazwy, szczególnie jeśli ktoś wyrósł na infrastrukturze. Pamiętajmy, że „tylko Jedi może pokonać Jedi”, zatem jeśli chcemy uczestniczyć w zmianach a nie tylko je pokornie obserwować – czas zacząć je rozpoznawać! I taki jest mój plan a efektami tych  eksperymentów postanowiłem chwalić się tutaj, na inleo – w kuźni technologii. To moja Nowa Nadzieja. Niech moc będzie z Wami.