Spring Cloud Config – czyli jak ułatwić sobie zarządzanie scentralizowaną konfiguracją.

Swego czasu pracowałem w projekcie gdzie była architektura “pseudo mikroserwisowa”. Jeden z centralnych komponentów do którego odwoływaliśmy się z kilku konsumentów był zdeployowany na odseparowanym boxie, a ponieważ wdrożenie service discovery z punktu biznesu nie przynosiło nowych funkcjonalności to adres tego komponentu był utrzymywany w postaci parametru w pliku konfiguracyjnym. W efekcie ta sama wartość często była używana/zapisana w kilku miejscach. Jakie rodziło to problemy ? Wystarczyło że któryś z tych parametrów(url, port itp) się zmienił i trzeba było poświęcić sporo czasu na zmianę we wszystkich węzłach co było bardzo czasochłonne. Jak można było tego uniknąć ? Sposób jest wiele. Ktoś zadecydował o użyciu puppeta do automatycznego budowania konfiguracji dla tomcatów, jetty, jbossa itd. Minusem tego było “składanie” środowiska na czas rekonfiguracji co zaprzeczało założeniom zero downtime.

Problem można było rozwiązać znacznie mniejszym nakładem pracy bez angażowania zespołu ops’ów. Wystarczyłby Spring Cloud Config. Continue reading “Spring Cloud Config – czyli jak ułatwić sobie zarządzanie scentralizowaną konfiguracją.”

Database migration – fast and easy with Flyway and Spring Boot

Migracja jest wręcz niezbędna. To dzięki niej mamy pewność że schemat naszej bazy danych na produkcji jest aktualny. Ułatwia współpracę zespołów developerskich, pozwala łatwo wersjonować strukturę.

Obecnie do dyspozycji mamy wiele rozwiązań, bardzo dużo z nich jest cross platformowych, nie jest dedykowana pod konkretną technologię oraz wspiera wiele współczesnych silników bazodanowych. Pliki migracyjne mogą być w wielu różnych formatach. W rozwiązaniach obsługujących równocześnie kilka różnych baz danych wciąż popularna jest konfiguracja za pomocą XML’a (m.in. LiquiBase). Mimo większej czasochłonności podczas ich przygotowywania niż w przypadku skryptów migracyjnych  napisanych w sql, często bywa to przewagą nad innymi rozwiązaniami. Dlaczego ? W takim podejściu narzędzie migracyjne generuje skrypty sql specyficzne dla wybranej, używanej bazy danych. Podczas gdy pisząc je samodzielnie musielibyśmy przygotować N wersji tego samego skryptu dla różnych silników. Continue reading “Database migration – fast and easy with Flyway and Spring Boot”

Spring Data JPA with Spring Boot – really fast start

Jakiś czas temu zrobiłem wstęp do Spring Boot. Nadeszła pora aby pójść krok dalej i rozpocząć persystencje danych w relacyjnej bazie danych z jego pomocą. Persystencje? Dla niektórych brzmi to groźnie, niezrozumiale. Oznacza to zapis danych w ściśle określony sposób, w zdefiniowanych strukturach. Jest to niezwykle łatwe i szybkie dzięki starterom dostarczanym przez Spring Boota. Continue reading “Spring Data JPA with Spring Boot – really fast start”

Spring Boot – czyli jak w 5 minut powstało RESTful API

Czasy gdy wystartowanie projektu opartego na Springu trwało godzinami przemijają. A to wszystko za sprawą Spring Boot. Dzięki niemu *.jar wrócił do łask. Zapytacie “ale jak to? Przecież nie zrobię deploy’a na tomcata(…)”.

A po co tomcat, jetty czy jakikolwiek inny serwer aplikacji ? Przecież można prościej. Spring Boot domyślnie udostępnia nam embedowaną wersję Tomcata, który jest spakowany w naszym jarku, wystarczy go tylko uruchomić.

Continue reading “Spring Boot – czyli jak w 5 minut powstało RESTful API”