Ciągłe dostarczanie oprogramowania w języku Java – recenzja

Ciągłe dostarczanie oprogramowania w języku Java – recenzja

“Ciągłe dostarczanie oprogramowania w języku Java. Najlepsze narzędzia i praktyki wdrażania kodu” Daniela Bryant i Abrahama Marin-Perez jest książką o continuous delivery. Jednak wdrożenie continuous delivery jest trudniejsze niż ciągłej integracji to jednak, dzięki tej książce będziesz wiedział od czego zacząć.

Historia

Pierwsza część książki omawia czym jest ciągłe dostarczanie oprogramowanie. Jakie dzięki niemu możesz odnieść korzyści a także jakie stoją przed Tobą wyzwania. Również tutaj jest przedstawione jak dawniej wdrażało się oprogramowanie na serwery poprzez pliki EAR lub WAR. Później przez nowsze wykonywalne archiwa JAR aż do budowania obrazów kontenerów czy funkcji w chmurze. Oczywiście książka w większości skupia się na CD w chmurze, jednak rady w niej zawarte możesz wykorzystać nie tylko tam.

Ciągłe dostarczanie oprogramowania

Kolejna część książki skupia się na budowaniu aplikacji i budowaniu pipelinów. W dużym skrócie opiera się to o 12 factor app. Warto tu wspomnieć o dużej ilości narzędzi, które mogą Ci pomóc. Od prostych narzędzi w bashu, docker i kubernates, po narzędzia które pozwolą Ci wirtualizować aplikacje chmurowe lokalnie.

Ciągłe dostarczanie oprogramowania w języku Java
Ciągłe dostarczanie oprogramowania w języku Java

Testy i obserwowalność

Książka dużą cześć poświęca testom. Nie tylko unitom, integracyjnym czy akceptacyjnym ale także architektury, wydajnościowym, kontraktom a nawet chaosu. Do większości typów testu autorzy prezentują różne narzędzia i możliwe podejścia. Nawet jeśli dużo wiesz o testach, to jednak możesz dowiedzieć się tutaj czegoś nowego. Oprócz testów również ważną rzeczą jest obserwowalność aplikacji. Składa się ona z:

  • monitorowania – wszystkie metryki, które pomogą Ci widzieć co się z dzieje z aplikacją, od zajętości dysków, ruch sieciowy po ilość requestów i czasy odpowiedzi.
  • logowanie – jak i co logować, jakie są dobre praktyki. A tak przy okazji wiesz, że logi mogą przyjmować postać jsona a nie zwykłego tekstu?
  • śledzenie – pozwala powiązać ze sobą requesty i dzięki temu masz lepszy ogląd co się dzieje w aplikacji. Tracing jest bardzo przydatny w mikroserwisach.

Migracja do ciągłego dostarczania

Jak dla mnie najważniejszy rozdział książki. Dzięki niemu poznasz sposoby jak wdrożyć ciągłe dostarczanie oprogramowania. Nie dotyczy to tylko małych, zwinnych firm i startupów ale również dużych organizacji gdzie cykl wydawniczy jest bardzo rzadki. Autorzy proponują próby od małych, drobnych elementów, które możesz przetestować w ramach swojego zespołu. Po skończonym eksperymencie pokaż przełożonemu co zyskałeś, ale musisz mieć dowody. Tymi dowodami mogą być metryki, na przykład takie, że mniej błędów pojawiło się na produkcji bo była szybsza pętla zwrotna z feedbackiem lub czas pracy nad taskiem był szybszy. Gdy udowodnisz, że ciągłe dostarczanie działa, łatwiej będzie Ci wdrażać dalej.

Czy warto

Podczas lektury tej książki, miałem wrażenie, że nie jest ona dla każdego. Jednak ten ostatni rozdział zmienił moje zdanie. Jestem świadomy, że nie w każdej firmie istnieje możliwość CD to jednak zawsze można w jakiś sposób ulepszyć ten proces. A tam gdzie już ciągłe dostarczanie oprogramowania jest wdrożone lub dopiero wdrażane, to dzięki tej książce możesz jeszcze ten proces usprawnić. Również dużym plusem tej książki jest ogromna ilość pokazanych narzędzi i jednoczesne wskazanie książek, które je opisują. Może podzielisz się jak u Ciebie wygląda continous delivery lub jak wygląda wdrożenie tej techniki.

Jeśli jesteś zainteresowany tą książką to możesz ją kupić tutaj.