Architektura Reaktywna

by Paweł Widera
0 komentarzy

Sekcje w tym poście:

  1. Dlaczego reaktywność?
  2. Manifest Reaktywności

Dlaczego reaktywność?

Zanim zagłębimy się w szczegóły architektury reaktywnej zadajmy sobie pytanie dlaczego w ogóle reaktywność? Mianowicie co co takiego zmieniło się w naszym świecie, że zaczęliśmy szukać nowych rozwiązań na tworzenie systemów. Czy stara i dobrze nam znana monolityczna architektura trójwarstwowa jest już przestarzała?

Tak naprawdę na przestrzeni ostatnich kilkunastu lat technologia zaczęła wkraczać w coraz to nowsze dziedziny funkcjonowania człowieka. I nie mówimy tu tylko o wszelkiego rodzaju urządzeniach smart, które towarzyszą nam w codziennym życiu. Mówimy tutaj o tym, że weszliśmy w nową erę. Czas cyfrowej transformacji.  Oznacza to, że wszystkie firmy, które chcą się liczyć na rynku zamieniają swoje papierowe procesy na systemy informatyczne.

I tak w 2016r w raporcie firmy McKinsey określony został potencjał cyfryzacyjny Europy na poziomie 12%. Oznacza to, dwie rzeczy. Po pierwsze przed nami wszystkimi jest jeszcze wiele systemów do napisania. Po drugie na świecie istnieje ciagle mnóstwo danych, które w przyszłości będziemy musieli zdigitalizować.

Warto także zwrócić uwagę, że zmienia się podstawowy kanał do komunikacji z klientem. Dzisiaj większość użytkowników woli korzystać z aplikacji na telefonie niż z przeglądarek w swoich komputerach. Oznacza to, że w każdej minucie, każdej sekundzie maja dostęp do naszych systemów, które tak samo jak infrastruktura droga powinny być przygotowane na godziny szczytu.

Obecne systemy nie wyglądają już tak jak kiedyś. W tej chwili rządzą nimi takie trendy jak między innymi środowisko rozproszone, skalowalność, kontenery, mikroserwisy, kolejki czy eventy. Co więcej, nawet te proste mają wiele kanałów wejściowych i wyjściowych, a struktura komunikacyjna pomiędzy aplikacjami i usługami przypomina raczej pajęczą sieć.

Manifest Reaktywności

Ilość dostępnych w środowisku danych, usług i funkcjonalności urosła do tak dużego poziomu, że potrzebne był nowe rozwiązania. I tak rozpoczęła się w 2013 roku historia Architektury Reaktywnej. Zebrała się wtedy grupa specjalistów z zakresu wydajnego programowania rozproszonego pod przewodnictwem dyrektora technologicznego firmy Lightbend. Jest to firma która stworzyła m.in narzędzie Akka.

W wyniku pracy tego zespołu powstał dokument nazwany The Reactive Manifesto. Określa on cztery podstawowe cechy, które musi spełniać system, aby można było go nazwać reaktywnym .

Responsywny (Responsive) – system powinien odpowiadać w najszybszym czasie jak to możliwe

Niezawodny (Resilent) – system powinien pozostać responsywny nawet w przypadku awarii. Jeśli natomiast taka ma już miejsce to powinna ona być ograniczona do tylko 1 elementu. Możemy to uzyskać np. poprzez izolacje ( instalowanie 1 usługi na 1 serwerze) lub replikacje ( powielanie naszych usług na różnych serwerach)

Elastyczny (Elastic) – możliwość automatycznego skalowania w zależności od ruchu. Jak również unikanie wąskich gardeł. Uzyskiwane np. poprzez wspomnianą już replikacje lub sharding danych ( dzielenie danych na mniejsze partycje, którym szybciej i łatwiej się zarządza)

Oparty na komunikatach (Message Driven) – wymiana informacji przy pomocy asynchronicznych komunikatów. Dzięki temu uzyskujemy luźne powiązania między aplikacjami.

System reaktywny to system, którego reaktywność jest manifestowana na wszystkich poziomach. Również na poziomie pojedynczego komponentu czyli aplikacji. 

The Reactive Manifesto

Należy tutaj jednak pamiętać o jednej bardzo ważnej rzeczy, że system reaktywny to system, którego reaktywność jest manifestowana na wszystkich poziomach. Architektura Reaktywna odpowiada na problem projektowania całego systemu złożonego z wielu aplikacji i usług. Jak zatem poprawnie zaprojektować aplikację, która będzie reaktywnie funkcjonować w takim środowisku? Reaktywność na poziomie pojedynczej aplikacji, także wymaga odpowiedniego podejścia. Jedną z pomocnych w tym zakresie technologi jest programowanie reaktywne. Zapraszam Cię do kolejnego posta, już wkrótce.

> zobacz inne posty z cyklu „Architektura Reaktywna”

Zostaw komentarz