Wpis z mikrobloga

Mam pytanie, mam zrobić aplikacje webową składającą się z 3 mikroserwisów (jeden ma pobierać dane, drugi wykonywać obliczenia, trzeci wizualizować dane), oparte to ma być na #flask #python.
I tutaj potrzebuje odpowiedzi od kogoś kto się zna, bo nikt mi tego nie doprecyzował... pytanie mam głupie ale nie wiem jak na nie dobrze odpowiedzieć.
Mianowicie...

Jeśli mają być 3 mikroserwisy, to każdy ma być na oddzielnym "flasku" (bo taka jest chyba zasada mikroserwisów), czy może ma być to na "jednym flasku" ?

#programowanie #programista15k
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ZdeformowanyKreciRyj: no właśnie sam nie wiem jak to mam rozumieć, czy mają to być 3 aplikacje komunikujące się między sobą ( ale jak to zrobić na jednym komputerze ?). Czy może ma to działać w ramach jednego projektu (ale wg mnie wtedy to się kłóci z zasadą mikroserwisów XD)
  • Odpowiedz
@Nullek: Jeśli to mają być mikroserwisy to oczywiście że mają być 3 osobne aplikacje flaskowe. A najłatwiej (IMHO) zrobić to tak że sobie stawiasz każdy osobny mikroserwis w osobnym kontenerze dockera. Tutaj przykładowy tutorial jak postawić kontener z serwisem we flasku.
Możesz zrobić też tak jak sugeruje @aloucie.
  • Odpowiedz
@Nullek: generalnie to trochę decyzja projektowa. Można odpalać zarówno trzy serwisy na tym samym komputerze jak i na trzech osobnych. Komunikacja też jest decyzja projektowa. Ale jak nie wiesz jak zacząć to taki najczęstszy setup to każdy serwis pakujesz do kontenera, serwisy komunikują się po restowym API http. A i jak to ma być produkcyjne to pamiętaj żeby ten serwer flaskowy zastąpić jakimś gunicornem czy czymś podobnym
  • Odpowiedz
@running: @ZdeformowanyKreciRyj: dzięki, utwierdziliście w moim przekonaniu, natomiast jaki sens jest tu robienia bazy danych (która miała być zrobiona), skoro serwisy miedzy sobą powinny wymieniać informacji po api, a nie być połączone bazą danych.
A skoro mają być mikro serwisami to raczej z założenia nie maja mieć wspólnej bazy danych, a w takim przypadku po co osobna baza danych każdemu serwisowi, np serwisowi 1 który ma tylko pobrać
  • Odpowiedz
@Nullek: wszystko zależy od wymagań, może musisz zapisywać logi albo wizualizacje. Może zamiast wysyłania komunikatow przez API restowe masz użyć jakiegoś message brokera np redisa, którego ktoś mógł nazwać baza danych. Trochę ciężko zgadnąć bo z tego co piszesz to dostałeś jakaś specyfikację, której tu nie znamy
  • Odpowiedz
@ZdeformowanyKreciRyj: update dopytałem... okazało się że tylko 1 serwis ma mieć bazę danych która ma być swego rodzaju archiwum na dane, a co do reszty to jest właśnie tak jak mówiliście ( ͡° ͜ʖ ͡°)
@running: jeszcze raz wam dziękuje
  • Odpowiedz