​Hi Devs,

This is to discuss the clustering model of the cloud controller:


​

As shown in the above diagram the idea is to have a coordinator node to
handle data persistence logic and message publishing (topology, instance
status, etc). The coordinator will be selected randomly and at a given time
there will be only one coordinator. If the existing coordinator node goes
down, another member will become the coordinator automatically (similar to
carbon clustering agent).

According to this design Autoscaler (AS)/Stratos Manager (SM) will talk to
Cloud Controller (CC) via the Cloud Controller Service endpoint exposed via
the load balancer.

*Data Replication*
When a request comes into one of the CC instances it will execute the
necessary actions and update the data holder and/or topology which is in
memory. At this point the data holder changes will be replicated to other
instances using a distributed map. Once the coordinator receives the above
updates it will persist the changes to the registry database.

In this design we might not need to replicate the topology since it is
already there in the message broker. The idea is to let coordinator publish
the topology changes and the other members to listen to it.

Please add your thoughts.

Thanks


-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to