How to deploy high availability? #790
Replies: 5 comments 6 replies
-
@beelzebub2006 Hi there! High availability for SDK consumers means ensuring that Edge and Dacha are available - so you would normally need at least 3 of those, one in each AZ. High availability for your users means multiple MR instances and a highly reliable replicated database. The Kubernetes configuration would normally give you this (except the database) as is. Did you have anything more specific in mind? |
Beta Was this translation helpful? Give feedback.
-
@rvowles We want to make this more HA, is it possible to also have an instance of the Edge service running in the external clusters as well that communicates back to the centralized cluster? So the app/SDK would just call the edge running local to them, is this possible or have you seen before? |
Beta Was this translation helpful? Give feedback.
-
You would really need to have Dacha in that cluster as well, because Edge stores no state and relies on Dacha. Dacha2 if the state is missing will make a call back to MR (which can be protected by configuration - it would allow you to expose it securely). But to get Dacha to be kept up to date, you could need to configure one or more NATS servers (presuming you aren't using Google PubSub) to connect back to your main cluster as well, because both Dacha and Edge rely on NATs for streaming updates. So the answer is yes, its absolutely possible - NATs is particularly well suited to that use case and running Dacha/Edge once it is up and running is easy. |
Beta Was this translation helpful? Give feedback.
-
@rvowles We can see it normally just connects locally over the |
Beta Was this translation helpful? Give feedback.
-
I raised an issue ref setting the nats.urls in a secure manner. As currently it means exposing username and password in plain text |
Beta Was this translation helpful? Give feedback.
-
How to deploy high availability?
Beta Was this translation helpful? Give feedback.
All reactions