Introduction to and necessity of service chaining
As different services in the CoreOS clusters are deployed as a docker/Rackt container, it is inevitable that we will provide a mechanism to communicate between these services. These services may run in the same CoreOS instances of a cluster or they may run across different CoreOS instances in the cluster.
An example is, when a web server is deployed in node1 of a CoreOS cluster and database services are deployed in node2 of the cluster. Here, the database service provides a service to the web server and we can call this a service provider. Using the service discovery mechanisms described in the previous chapter, the web server service may discover the database service and its parameters such as its connection string with IP, port no., and so on. Once this information is discovered, the web server may need to interact with the database service for storing some information persistently or to fetch some information from the persistent storage...