Polecane tematy
Mikrousługi, jako podstawa aplikacji trzeciej generacji
Patrząc na otaczającą nas fale nowości technologicznych, premier kinowych i pięknego kolorowego świata przystrojonego w ramach przygotowań do Świąt Bożego Narodzenia zastanawiałem się przez moment na przyszłością własną i mi podobnych architektów, specjalistów IT, programistów i innych ludzi, którzy tworzą środowisko IT. W jakie obszary rynku warto zainwestować swój czas i pokierować rozwój.
Osobiście jestem przekonany do modelu świata IT, który definiują aplikacje. Nawet najbardziej wyszukane rozwiązania korporacyjne mają przecież użytkownika, który oczekuje więcej i więcej, a przy tym wygodniej i skuteczniej. Co więcej, odbiorcy przyzwyczaili się już do wygodnego myślenia, że w IT można wszystko, pytanie tylko na kiedy i za jaką cenę.
Biznes definiowany aplikacjami
Dlatego właśnie dzisiaj coraz częściej spotykamy się z firmami stworzonymi dzięki nowoczesnym rozwiązaniom, jak choćby Uber, BlaBlaCar czy Skycash, które ułatwiają nam podróżowanie. Jednak na tym nie koniec. Błyskawicznie pojawiają się chętni, aby jeszcze bardziej ułatwić nasze życie oprogramowując praktycznie dowolny proces wygodną aplikacją na urządzenie mobilne. Nie tak dawno pojawiła się aplikacja Starbucks do płatności w kawiarniach, a już rośnie kolejka chętnych do używania Touch ID w celu autentykacji.
Oczekujemy nie tylko funkcjonalności na żądanie, ale także pełnego funkcjonowania danej aplikacji czy usługi. Dzisiejszy konsument nie wybacza chce uzyskać produkt w pełni funkcjonujący od razu i niechętnie godzi się z faktem, że część funkcjonalności będzie dostępna po jakimś czasie. Tu dobrym przykładem może być nasz rodzimy Yanosik – mierzenie prędkości średniej względem dopuszczalnej na monitorowanym odcinku to oczekiwanie, które pojawiło się natychmiast po ogłoszeniu o starcie tego systemu na polskich drogach. Yanosik odpowiedział na tę potrzebę błyskawicznie, ale tylko dla urządzeń mobilnych opartych na Androida i Windows. Użytkownicy rozwiązań Apple’a będą musieli jeszcze poczekać.
Odpowiedzą świata IT na nowe potrzeby biznesu są m.in. aplikacje trzeciej generacji. W ich założeniu jest przede wszystkim dramatyczna zmiana w modelu tworzenia i dostarczania. Ważna zmiana to przeniesienie decyzyjności w zakresie rozwoju linii biznesowych bliżej, bezpośrednio z nimi związanych działów rozwoju aplikacji. Same aplikacje są zaś przekształcane z klasycznych trzech warstw na model mikrousług, czyli niewielkich, prostych obiektów o bardzo małym zakresie działania.
Aplikacje to także wysoka dostępność. Dzisiaj nie wybaczamy błędów. Aplikacja ma działać, bo jeśli nie to poszukamy konkurencyjnej, a tu chętnych do przejęcia części rynku nie brakuje.
Mikrousługi: zmiana modelu tworzenia i dostarczania aplikacji
Odpowiedzą świata IT na nowe potrzeby biznesu są m.in. aplikacje trzeciej generacji. W ich założeniu jest przede wszystkim dramatyczna zmiana w modelu tworzenia i dostarczania. Ważna zmiana to przeniesienie decyzyjności w zakresie rozwoju linii biznesowych bliżej, bezpośrednio z nimi związanych działów rozwoju aplikacji. Same zaś aplikacje są przekształcane z klasycznych trzech warstw na model mikrousług, czyli niewielkich, prostych obiektów o bardzo małym zakresie działania. Takie mikrousługi są niesamowicie proste w rozwoju, przy stosunkowo małych zespołach skupionych wyłącznie na unowocześnianiu i ulepszaniu kodu tego granularnego elementu.
Taki atomowy podział zapewnia też wolność w użyciu narzędzi deweloperskich, tak mnogich, że nawet świadomych programistów wielokrotnie zaskakują dostępne języki, platformy czy bibliotek. Zespół, zazwyczaj maksymalnie trzy osobowy, może więc skupić się na jednej mikrousłudze i rozwijać ją w dowolny sposób, nie przejmując się resztą aplikacji, gdyż wszystkie inne funkcjonalności będą realizowały inne mikrousługi zupełnie niezależnie. Znika również problem rotacji personelu, gdyż o wiele łatwiej wdrożyć pracownika w małym zespole, o stosunkowo wąskim zakresie odpowiedzialności.
Ciągłe dostarczanie nowych rozwiązań
Na to wszystko przychodzi model dostarczania aplikacji – „continous delivery” czyli kompletna automatyzacja i optymalizacja procesów DevOps. Programista zasila repozytoria, narzędzia same kojarzą właściwe wersje kodów i środowisk, przeprowadzają różnego rodzaju testy w tym wydajnościowe i regresyjne. Następnie następuje integracja kodów, która również jest procesem ciągłym, to znaczy w dużym uproszczeniu, znika część ograniczeń związanych z oczekiwaniem propagowanej wersji kodu na właściwe środowisko integracyjne a tym samym skraca się czas do przejścia na produkcje. Ten ostatni etap również może nastąpić automatycznie – choć jak pokazują doświadczenia – zwykle zachowujemy dozę zdrowego rozsądku i ostatecznie czekamy na decyzję ludzką.
Atomowy podział aplikacji zapewnia też wolność w użyciu narzędzi deweloperskich, tak mnogich, że nawet świadomych programistów wielokrotnie zaskakują dostępne języki, platformy czy bibliotek. Zespół, zazwyczaj maksymalnie trzy osobowy, może więc skupić się na jednej mikrousłudze i rozwijać ją w dowolny sposób, nie przejmując się resztą aplikacji, gdyż wszystkie inne funkcjonalności będą realizowały inne mikrousługi zupełnie niezależnie. Znika również problem rotacji personelu, gdyż o wiele łatwiej wdrożyć pracownika w małym zespole, o stosunkowo wąskim zakresie odpowiedzialności.
Po stronie technologicznej stało się to wszystko możliwe m.in. dzięki platformom PaaS i kontenerom. Nareszcie programista został uwolniony od przywiązania do maszyny wirtualnej. Dzisiaj może on po prostu uruchamiać kod. Jednym z pierwszych, zauważalnych w Polsce takich podjeść tego typu był OpenStack. Programiści chętnie wykorzystywali go do generowania sobie obiektów infrastrukturalnych. Dzisiejsze możliwości, które daje np. Microsoft Azure, Amazon AWS, Salesforce czy Cloud Foundry realnie pozwalają twórcy tworzyć, zamiast zastanawiać się nad wieloma aspektami technicznymi infrastruktury, jak choćby wydajność, wysoka dostępność czy bezpieczeństwo.
Czy to jest właściwy kierunek rozwoju, także własnych kompetencji? Dzisiaj myślę, że najbardziej ciekawy, dynamiczny i niosący wiele rewolucyjnych zmian. Aplikacje 3. generacji doskonale uzupełniają koncepcję publicznej chmury obliczeniowej. To pociąg, który już ruszył, warto do niego wsiąść zamiast stać i patrzeć jak odjeżdża.