Książka "Building Modular Cloud Apps with OSGi"

Recenzja książki „Building Modular Cloud Apps with OSGi”

Przygotowując się do tematyki tworzenia aplikacji działających w chmurze znalazłem książkę Building Modular Cloud Apps with OSGi (Paul Bakker, Bert Ertman) z 2013 roku. Pierwszego z autorów kojarzyłem z ciekawych i dynamicznie prowadzonych prezentacji na polskich konferencjach JDD (2013, 2014 i 2015), więc zdecydowałem się na jej przeczytanie.

Książka, jak sam tytuł wskazuje, opisuje standard OSGi dodający do języka Java modułowość, tzn. czyli m.in. możliwość ograniczania dostępności pomiędzy fragmentami kodu na poziomie bardziej zaawansowanym niż tylko modyfikatory private/package/protected/public. Jest to coś co jest długo oczekiwane przez programistów Java i aktualnie spodziewane w wersji 9 języka. OSGi, wraz z konkretnymi implementacjami dostarczało to już w 2013 roku.

Samo rozwiązanie proponowane przez OSGi mnie nie przekonało: koncepcja narzędzia budującego BNDTools, olbrzymie pliki deskryptorów, wizardy i edytory wizualne wbudowane w pluginy do IDE Eclipe próbujące zamaskować skomplikowaną konfiguracje znajdującą się poniżej. To coś co stoi w sprzeczności z lekkością współczesnych systemów zarządzania zależnościami i budowania aplikacji, do jakich ostatnio przyzwyczaił nas np. Gradle. Do tego „Apache Felix Dependency Manager” w którym rejestracja przez API w Javie wygląda jak złe wspomnienie lat 2000-ych…

Oczywiście OSGi obiecuje coś znacznie więcej niż tylko zarządzanie zależnościami – przede wszystkim podmiany „w locie” działających modułów kodu w serwerze aplikacyjnym, tak aby upgrade odbywał się bez zatrzymania serwera i w sposób niewidoczny dla klientów. Inną przewagą nad znanymi nam obecnie architekturami microservice’owymi jest fakt że cały ekosystem usług działa w jednym JVM, więc powinien zużywać mniej pamięci operacyjnej do działania i nie powodować narzutu na ruch sieciowy.

Jako duży plus książki można wymienić, że mimo że temat OSGi jest wiodący, to opisuje ona przystępnie wiele ciekawych zagadnień związanych z tworzeniem współczesnych aplikacji, jak aplikacje SPA (Angular), zasady uwierzytelniania przy korzystaniu z REST, podstawy JDBC, JPA i baz noSQL (MongoDB), typy architektur chmurowych (IaaS, PaaS, SaaS), deployment i skalowalność w chmurze AWS (Amazon AutoScaling).

Reasumując: lektura w sumie ciekawa ale dla mnie OSGi nie rokuje praktycznego zastosowania. Ciekaw jestem jak faktycznie bardzo popularna jest ta technologia i ile rzeczywistych wdrożeń na tym działa – niestety nie starczyło mi już czasu i chęci żeby to sprawdzić.

O autorze

Marek Berkan Marek Berkan: programista, entuzjasta tworzenia oprogramowania, zarządzania zespołami technicznymi. Prywatnie motocyklista, kolarz MTB, biegacz, żeglarz, rekreacyjny wspinacz, zamiłowany turysta. Witryny: , , .

2 komentarze do “Recenzja książki „Building Modular Cloud Apps with OSGi”

  1. Szymon

    OSGi jest obecny w frameworku Apache Sling. Sam Apache Sling jest z powodzeniem wykorzystywany w cms od adobe – AEM (adobe experience manager).

    Odpowiedz

Skomentuj Szymon Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *