Jak to koniec z ServiceMix ?
Kolejny klient, kolejna platforma integracyjna do wdrożenia. Niejako wyspecjalizowałem się co nieco w integracji opartej o rozwiązania open-source (jakoś tak już mam, że nie lubię płacić za soft), a w szczególności rodzinę Apache ServiceMix, Camel, ActiveMQ i tak dalej. Zwykle moje projekty oparte były o którąś konkretną wersję ServiceMix, na którym instalowałem swoje paczki/bundle i ewentualne brakujące zależności. W ostatnim czasie dotarło do mnie, że ServiceMix to nic innego jak specyficzna dystrybucja Apache Karaf z preinstalowanymi: ActiveMQ, CXF, Camel i ostatnio Activiti. Cała reszta w zasadzie już wyleciała, mam tu na myśli wsparcie dla JBI (ktoś jeszcze używa?) i NMR, którego w wersji 5 już chyba nie ma. Więc w zasadzie, ServiceMix daje mi całkiem mało. Do tego dochodzi cykl wydawniczy, który jest z lekka opóźniony w stosunku do całej reszty. Jak się chce użyć nowszego Camel’a, to trzeba czekać X czasu aż pojawi się nowe wydanie ServiceMix. W zasadzie wystarczyłoby mi już powodów, aby odejść od używania ServiceMix, ale pojawił się jeszcze RedHat, który kupił FuseSource, zrobiło się zamieszanie i skończyło się wsparcie dla ServiceMix wydawanego przez FuseSource (pod nazwą FuseESB). Pojawił się oczywiście JBossFuse, ale to nie zupełnie to samo. Więć kończę z ServiceMix, pewnie na zawsze.Więc może Fabric8 ?
Skoro nie ServiceMix, to może coś nowego? Pojawił się Fabric8, projekt open-source sponsorowany przez RedHat, rozwijany przez tą samą ekipę co Camel, ActiveMQ i kiedyś ServiceMix. Brzmi interesująco, centralny rejestr konfiguracji w ZooKeeperze, instalowanie kontenerów przez SSH w sieciach lokalnych i w chmurze, jest też wsparcie dla Docker i nowiutka konsola oparta o Hawtio. Sęk w tym, że to już nie jest tylko kontener OSGI z preinstalowanymi bundlami Camela i CXF. Pojawia się właśnie ZooKeeper, pojawia się ConfigAdmin, który korzysta z Git'a, są rozbudowane profile kontenerów, Karaf jest już tylko jedną z opcji - bo można uruchamiać też gołe aplikacje Javy, SpringBoot, Tomcata i WildFly. Ma to związek z microservices - bo ponoć uberjar SpringBoot jest bardziej micro od usługi na OSGI :) Niee, to nie dla mnie. Integracja sama w sobie jest tak skomplikowana, że dorzucanie tak złożonej machiny raczej nie poprawi sytuacji. Integrację należy upraszczać ! Fabric8 jak dla mnie jest zbyt skomplikowany.Własne distro ?
I tu pojawia się pytanie: Co dalej? Skoro ServiceMix nic mi nie daje, a Fabric8 przytłacza złożonością, jakie są dalsze opcje? Okazuje się, że własna dystrybucja Karaf'a jest odpowiedzią! Karaf daje wszystko co jest potrzebne aby taką dystrybucję wykonać: jest karaf-maven-plugin, są przykłady, nic nie stoi na przeszkodzie, aby wykroić dokładnie taki runtime jaki jest nam potrzebny. Żadnych brakujących ani nadmiarowych zależności, możliwość preinstalowania własnych paczek z integracją i usługami, żyć nie umierać! Jest to bardzo wygodne, bo można totalnie pominąć proces deploymentu aplikacji w kontenerze: build maven kończy się po prostu wygenerowaniem preinstalowanej dystrybucji ze wszystkim co jest potrzebne. Nic nie stoi na przeszkodzie, by nawet w ramach jednego projektu generować kilka dystrybucji podzielonych w/g wymagań funkcjonalnych.
Jak mi sił wystarczy, to następnym razem opiszę jak taką dystrybucję przygotować. Howgh !
Brak komentarzy:
Prześlij komentarz