Hello,
I'm trying to see how I could run an app with the following architecture:
- Internet-facing website (web server, e.g.
https://www.domain.com)
- Internet-facing API (web server, e.g.
https://api.domain.com)
- Various internal microservices (HTTP-based) called by the API
- Various stateful backing services (DBs), off-cluster, so not an issue here
And I'd want scalable, load-balanced, health-checked processes for the web, api and each microservice.
From what I can see, a Deis app == a k8s service, and a k8s service is load-balanced and supports service discovery, so I guess the microservices would be separate Deis apps, so I'd have an app for each msvc + an app for the API and the Website? And the docs state that each app is reachable based on its name, but I want the microservices to be reachable only from within the cluster (via the API), how would I do that?
There's also the information about the app's processes, where it states that a non-cmd, non-web process type doesn't receive traffic from the deis router, so maybe that's what's needed for the msvc processes, but how would the callers be able to reach them and have them load-balanced/health-checked? This must be done at the raw k8s level?
I think an example github repo for such an architecture would be great (apologies if there's already one, I did take a quick look at the example-* repos under deis).
Thanks,
Martin