Un team in ufficio sta sviluppando micro-servizi web destinati a supportare i siti di vendita e le app mobili con un numero totale di ordini inferiore a 100 K (non è sicuro quanto meno ma superiore a 10 K) al mese.
Utilizzano NodeJS, Docker e AWS. La loro idea è che ogni servizio avrà solo uno o due endpoint e il proprio DB.
Ad esempio, esiste un servizio Tax
che restituisce solo la tassa calcolata per un oggetto Order
, quindi un altro servizio PlaceOrder
riceve un POST con un oggetto Order
, probabilmente un altro CheckStatus
servizio restituirebbe stato attuale per un Order
oggetto o ID ecc.
Ciascuno di questi servizi è in realtà un progetto NodeJS completamente separato, ospitato in un repository separato, compilato da un progetto Jenkins separato e inserito nel proprio contenitore Docker, che viene poi distribuito su un server a sé stante (Beanstalk)
Ognuno di questi server ottiene quindi un nome di dominio per ciascuna delle sue fasi (DEV, QA, INT, STAGE, PROD), quindi per i due servizi che abbiamo nell'esempio ci sono 10 nomi di dominio: PHASE.taxService.api.company.com
e PHASE.orderService.api.company.com
La domanda è: è una pratica normale, vedi vantaggi o problemi con questo scenario. C'è un motivo per preferire o dev.taxService.api.company.com
o dev.company.com/api/taxService
?