Architektura systemu

Spine-architekturaCałość składa się z dwóch głównych komponentów. Interfejsu www oraz agenta.

Interfejs WWW

Interfejs www służy do wprowadzania konfiguracji do bazy danych. Za jego pomocą można też zobaczyć podstawowe informacje na temat systemu. Na chwilę obecną są dostępne dane takie jak adresy IP serwerów, zużycie CPU, dysku i pamięci operacyjnej. Jest to centralne miejsce z którego poziomu możemy konfigurować wszystkie serwery.

Agent

Drugim komponentem jest agent, który jest uruchomiony zarówno po stronie interfejsu www jak i po stronie klienta.

Agent po stronie klienta w interwale 5-cio sekundowym wysyła informacje na temat stanu systemu. Odpowiada za to proces spine-sender. Na kliencie uruchomiony jest dodatkowy proces o nazwie spine-reciver, który służy do odbierania od serwera aktualnej konfiguracji. W ramach procesu recivera odbywa się rekonfiguracja usług w systemie klienckim.

Agent po stronie serwera uruchamia jedynie recivera, który odbiera od klienta dane systemowe. Proces ten bezpośrednio komunikuje się z bazą danych. Zajmuje się aktualizacją informacji w bazie i wyciąganiem z niej danych konfiguracyjnych. Agent na serwerze nie utrzymuje stałych połączeń do klientów. Aby wysłać aktualną konfigurację po prostu w czasie trwania sesji klienta nawiązuje połączenie zwrotne na czas przesłania danych, po czym od razu je zamyka.

Agenty pracujące po obu stronach przesyłają sobie informacje za pomocą zwykłego bufora znakowego. Wykorzystują jsona jako format danych.

IP API

Widoczne na schemacie IP API nie stanowi integralnej części systemu. Jest to prosty mechanizm, który zwyczajnie zwraca adres IP. Agent uruchomiony na klientach używa go do ustalenia publicznego adresu IP hosta. Czasami się to przydaje. Np. w chmurze Amazona (AWS).

Wypadałoby to jeszcze dopracować. Zbadać jak zachowa się system w przypadku braku połączenia z IP API i ew. Obsłużyć potencjalny problem.