Deploying our application in a microservices manner inside a cluster is simple enough in principle, but actually quite complex to implement.
First, you must provision servers to act as nodes inside your cluster. Then, we'll need to set up a handful of tools that work in concert with each other to manage your cluster. These tools can be categorized into two groups:
- Cluster-level tools: Works at the cluster level, and makes global decisions that affect the whole cluster
- Node-level tools: Resides within each node. It takes instructions from, and feedback to, cluster-level tools in order to coordinate the management of services running inside the node.
For the cluster-level tools, you'll need the following:
- A scheduler: This dictates which node a particular service will be deployed on.
- A Discovery Service: This keeps a record of how many instances...