# Odnajdywanie usług
Odnajdywanie usług (ang. Service Discovery) to ustalenie lokalizacji sieciowej usługi na podstawie jej pośredniego lub bezpośredniego identyfikatora.
W środowiskach lokalnych zakres zmian w lokalizacji sieciowej i ilości usług współpracujących jest ograniczony. To pozwala, aby każdej uruchomionej usłudze operator wskazał bezpośrednie dane do połączenia z innymi usługami, które powinny być wykorzystywane w komunikacji.
W przypadku środowiska chmury, istnieje możliwość, aby usługi miały zmienną lokalizację sieciową z powodu m. in. restartu, awarii i skalowania węzłów. Ręczne utrzymanie pliku konfiguracyjnego jest wówczas trudne lub po prostu niemożliwe. W celu umożliwienia odnajdywania usług wykorzystuje się wyspecjalizowane usługi, które mają możliwość wskazania dla korzystających z nich aktualnych lokalizacji innych usług. W komunikacji z tą usługą może być wykorzystywane m. in. protokół DNS, HTTP, etcd.
Przykładowo, w przypadku wykorzystania serwera typu "load-balancer", który równoważy ruch na kilka serwerów aplikacyjnych. Ich liczba może ulegać zmianie w celu obsłużenia zwiększonego ruchu lub prac administracyjnych. W środowisku lokalnych adresy serwerów aplikacyjnych mogłyby zostać wprowadzone do konfiguracji serwera typu "load-balancer". W przypadku środowiska chmury load-balancer informacje o lokalizacji sieciowej dostępnych serwerów aplikacji uzyska od wspomnianej wyspecjalizowanej usługi umożliwiającej odnajdywanie usług.
# Odnajdywanie jednostkowego Zasobu
Adres dostępowy Zasobu stanowi właściwość Zasobu przydzieloną przez Platformę dla Zasobów, do których istnieje możliwość połączenia z sieci Internet. Adres dostępowy Zasobu umożliwia zidentyfikowanie lokalizacji sieciowej Punktu Końcowego tj. adresu IP z wykorzystaniem DNS. Adres dostępowy posiada format {identyfikator_zasobu}.{typ_zasobu}.{kategoria_zasobu}.{identyfikator_regionu}.hyperone.cloud
.
Przykładowo, identyfikator 5cd16b4341486992c824b745.vm.compute.pl-waw-1.hyperone.cloud
umożliwia połączenie do Wirtualnej Maszyny o identyfikatorze 5cd16b4341486992c824b745
w regionie pl-waw-1
.
# Odnajdywanie puli Zasobów
Platforma umożliwia realizacje odnajdywanie usług w oparciu o pośredni identyfikator - odpowiednią nazwę lub tag. Ustalenie lokalizacji sieciowej odbywa się poprzez protokół DNS z wykorzystaniem adresów w formacie:
{nazwa_zasobu}-{id_projektu}.{typ_zasobu}.{typ_zasobu}.{identyfikator_regionu}.hyperone.cloud
{klucz_tagu}-{id_projektu}.{typ_zasobu}.{typ_zasobu}.{identyfikator-regionu}.hyperone.cloud
Przykładowo, w przypadku utworzenia dwóch Kontenerów w projekcie o identyfikatorze 5cd2bd5dc7b8b31d52d8ab43
w regionie pl-waw-1
o nazwie app-www
możliwe jest odnalezienie ich poprzez adres app-www-5cd2bd5dc7b8b31d52d8ab43.instance.container.pl-waw-1.hyperone.cloud
. Wykorzystanie tego adresu sprawia, że usunięcie lub utworzenie kolejnego Kontenera o nazwie app-www
nie będzie wymagała rekonfiguracji usług go wykorzystującego. Stanowi to duże uproszczenie np. podczas wdrożenia nowej wersji.