Graceful Shutdown jest mechanizmem, który pozwala na zamknięcie aplikacji w “poprawny” sposób. Ale co tak naprawdę oznacza, że zamykamy aplikację w “poprawny” sposób? Odpowiedzi na to pytanie będziemy szukać w dzisiejszym artykułe. Implementację mechanizmu Graceful Shutdown oprzemy na przykładzie aplikacji napisanej przy wykorzystaniu Spring Boot 2.
spring
#3 Spring Boot 2 – Actuator
Autorzy rozwiązania Spring Boot bardzo mocno stawiają na fakt, iż aplikacja napisana z wykorzystaniem ich frameworku powinna być production-ready. Zgodnie z 12 factor manifesto, apikacja sama w sobie powinna dostarczać informacji na temat swojej telemetrii. Projekt actuator jest mechanizmem zbliżającym nas do pojęcia production-ready. Dostarcza on podstawowe metryki oraz informacje na temat aplikacji.
#2 Spring Boot 2 – Migrujemy pliki properties
Podczas migracji moich aplikacji do Spring Boot’a w wersji 2.0 okazało się, że kilka wykorzystywanych przeze mnie wpisów w pliku properties jest nieaktualnych. Dzięki wykorzystaniu IDE, udało mi się w łatwy sposób wykryć, które wpisy są nieaktualne, a co jeśli moje IDE nie wspierałoby takiego sprawdzania? Zapraszam do wpisu!
#1 Spring Boot 2 – Router functions
Poprzedni wpis był jedynie wprowadzeniem do Spring Boot’a 2.0. Pojawiło się tam pojęcie WebFlux. Jest to element, który w sposób reaktywny pozwala współpracować z warstwą webową. Ponadto, funkcjonalość ta dostarcza nam nowy sposób tworzenia endpointów poprzez użycie Router Functions. Zapraszam do wpisu!
#0 Spring Boot 2 – Introduction
Z początkiem roku już oficjalnie dołączył do nas Spring Boot w wersji 2.0. Wiele się zmieniło w porównaniu do wersji poprzedniej. Od teraz Spring Boot stoi pod hasłem programowanie reaktywne. Najnowszy Spring Boot oparty jest na projekcie Project Reactor, który jest Spring’ową implementacją specyfikacji Reactive Streams.
#31 Spring Boot – Zuul – API Gateway
API Gateway to wzorzec integracyjny. W wzorcu tym, tylko jeden serwis (może być oczywiście replikowany) udostępniony jest publicznie. Klientami naszego API mogą być aplikacje mobilne, strony web lub inne urządzenia. Musimy zapewnić im możliwość korzystania z naszego API w sposób zunifikowany. Aby to osiągnąć udostępniamy jeden publiczny serwis zwany API Gateway, który odpytywany przez różnych klientów zajmuje się kierowaniem ruchu na podstawie filtrów i określonych routingów.
#30 Spring Boot – Resource Server
W poprzednim wpisie przygotowaliśmy rozwiązanie korzystające z Single Sign-On. Teraz korzystając z tego mechanizmu chcielibyśmy zabezpieczyć inne moduły naszej aplikacji. Aby to osiągnąć, nasze moduły muszą stać się serwerami zasobów (ang. Resource Server). Jak to zrobić wykorzystując Spring Boot’a? Zapraszamy do wpisu!
#29 Spring Boot – Single Sign-On
Podczas tworzenia aplikacji prędzej czy później pojawi się temat bezpieczeństwa. Musimy zastanowić się w jaki sposób chcemy chronić nasze zasoby oraz jaki typ uwierzytelniania wybierzemy. W dobie mikroserwisów nie jest to już takie proste jak w monolicie. Dziś wpis dotyczący podejścia Single Sign-On, zapraszamy!
#0 Spring Basic – o co chodzi z tym Springiem
Rozpoczynamy kolejny cykl wpisów. Tym razem na tapecie framework Spring. Zamierzamy przedstawić wam podstawowe funkcjonalności Spring’a. Wiele osób zaczyna przygodę ze Spring’iem od Spring Boot’a, bez zrozumienia co dzieje się pod spodem. Poruszymy tematy takie jak tworzenie beanów, zasięg beanów czy rodzaje wstrzykiwania zależności. Jednakże, na początek zapraszamy na wpis wprowadzający do Spring’a,
#27 Spring Boot – Consumer Driven Contract
Z każdym kolejny mikroserwisem testowanie naszej aplikacji staje się coraz bardziej trudne (w przypadku gdy są one ze sobą powiązane). Oczywiście możemy zamokować zachowanie innych serwisów korzystając na przykład z biblioteki WireMock, jednakże po wdrożeniu naszej aplikacji na produkcję okazuje się, że aplikacja nie integruje się poprawnie. A no właśnie, okazało się, iż mój serwis odpytywał zły endpoint, ale jak to możliwe, skoro wszystkie testy były uzależniająco zielone?