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ą.”