Stiamo lavorando ad un'applicazione cloud nativa da distribuire in Cloud Foundry e, dopo l'iniziale "usiamo tutti i gadget di Netflix", abbiamo iniziato a chiederci se la sovrapposizione con CF giustifica l'utilizzo dei componenti di Netflix.Valore di Eureka nell'ambiente Cloud Foundry/PaaS?
Soprattutto nel caso di Eureka, stavamo progettando di utilizzarlo per l'individuazione dei servizi, ma la funzionalità molto simile è fornita immediatamente dalla CF e dalle rotte. Quello che ci mancherebbe è la registrazione dei servizi di runtime (che in caso di architettura che non cambia spesso non è una grande sfida e sarebbe in realtà una mappa statica di serviceID -> percorso CF) e heartbeat (a livello di app, dal Presumo sul livello del contenitore CF si sta accertando che tutto sia a posto).
Così ora mi chiedo: come lo usi nelle tue applicazioni (app di vita reale) quando usi CF? Quali sono i vantaggi di mantenerlo nell'architettura?
Grazie,
Leszek
PS. È interessante notare che se l'eureka memorizza la mappa semplice di serviceID -> CF route, allora se ho ragione, anche il valore di Zuul diminuisce (poiché LB sarebbe fornito da CF e gorouter è un'ottima opzione).
Bene, questo è vero se assumiamo URL con hardcoded, ma cosa succede se usiamo il servizio di configurazione (che spero la maggior parte delle persone usa oggigiorno comunque) per memorizzare le informazioni sul serviceID -> mappatura del percorso di fonderia del cloud? La mappatura sarà diversa per la macchina locale, per il QA e per la PROD (contraddistinta dal profilo della molla) e verrà sottratta dalla mia app. Se ho ragione, questo approccio mi darebbe esattamente ciò che Eureka dà in CF, ma eliminerebbe un componente (Eureka Server) più le librerie Eureka Client da ciascun servizio. Quindi una pura vittoria dal mio pov ...? :) –
Questo è sicuramente un approccio praticabile, ma richiede di mantenere i percorsi in due punti e mantenerli sincronizzati. Sarà necessario definire il percorso associato a cf (ad es. In manifest.yml), quindi definire il percorso corrispondente in config-server. Se qualcosa cambia, devi risolvere in entrambi i casi. Nelle distribuzioni più grandi, è opportuno evitare questi tipi di attività di sincronizzazione non automatica. Ma se funziona per te nel tuo ambiente, è fantastico! –
Buon punto. Così ora mi chiedo - se già abbiamo Redis nell'architettura, allora la mappatura di serviceID -> route potrebbe essere mantenuta in Redis. Vantaggi - nessun componente aggiuntivo, con tutto il valore di Eureka se ho ragione? –