AService discovery: Service discovery maps logical service names to physical addresses. Microservices use service discovery to find the physical address of a given service.
BMicroservices: Microservices are typically deployed in multiple instances for availability and reliability. Each microservice contains a local library that controls how microservices communicate with each other. The local library also implements additional functionality for microservices such as logging, tracing, and configuration.
CMonolith: Most organizations have an existing, monolithic code base, and incrementally adopt microservices.
DLoad balancer: The monolith sits behind a load balancer, which distributes incoming requests between available instances of the monolith.
EProxy: Outbound requests from the monolith are sent through a local proxy. The local proxy receives up-to-date data about the location of microservices from service discovery. The proxy is used so that the monolith does not need to be modified.
FApplications: Typically written by third parties, applications perform specialized functions such as persistence or search. The applications typically have static entries in service discovery, and may be behind a load balancer.
GControl layer: Each microservice sends and receives metadata: heartbeat data, logging data, routing information, and so forth. All of this metadata is shared in a logical layer called the Control Layer.
HTraffic layer: Microservices also sends and receives actual requests or messages to process. These messages are sent over a logical layer called the Traffic Layer. The specific routes a messages traverses in the traffic layer is managed by the control layer.
Try the open source Datawire Blackbird deployment project.