Microsoft is an architectural approach to software development that accelerates the software delivery cycle and improves software stability and scalability. In the Microsoft architecture, software products have many independent modules or services that can be built to interact via APIs.

One of the most important aspects of the microservices architecture are dynamic and robust services that can respond to failures and frequent changes in load. In modern architecture, we develop our own dependencies for services to maintain a couple’s viewpoint.

Service discovery includes service health screening and automatic discovery of new services. Traditional service discovery solutions such as Consul, ATD or Zookeeper solve this problem if an agent is installed in the container or services are already unconfirmed. Previously, to ensure that independent services were discovered and connected, one had to run their service discovery system or connect each service to a load balancer. Now, one can enable service discovery for containerized services in the Amazon ECS (Elastic Container Service) console or Amazon ECS API.

Amazon uses the Route 53 Auto Naming API to create and manage the Amazon ECS service name registry. The name is automatically mapped to a set of DNS records, so that one can use another alias to refer to the service, and automatically resolve the other to the endpoint where the service is running. Amazon ECS can specify the health check conditions in the service definition of the service and Amazon ECS will only return the normal service endpoint through the service search

Service Discovery Concepts:

Service discovery namespace: This is a logical group of services that share the same domain name. Each route requires 53 hosted regions and each VPC needs a namespace. If service discovery is used from the Amazon ECS console, a private namespace is created for each ECS cluster.
Service discovery service: This service exists in the search namespace that contains the namespace’s service name and DNS configuration.

It provides the following main components:

Service Directory: This allows searching for services through the Amazon Route 53 Auto Naming API or DNS and obtaining one or more available endpoints that can be used to connect to the service.
Health checkup: ECS container health checkups are done regularly. If an endpoint fails a health check then it is removed from DNS routing.

Route 53 is updated whenever the services have an up or down scaling so that other services can make connections based on the status of each service. The Route 53 service discovery API can be used to list all available services.

Amazon ECS service discovery is available for use in all major Amazon regions such as Northern Virginia, Ohio, Oregon and Ireland.  Service health screening does not incur additional costs.

The major advantage of using Amazon ECS service discovery with Amazon Route 53 is that one does not need to configure or maintain a separate service discovery tool or solution, thus saving operational time. It helps to focus more on the development of independent modules or services rather than registering and de-registering new services in service discovery tools.

Jim, the sales head of one of the major pharmaceutical companies, receives monthly sales dashboards from his business intelligence team. He has to explain to the board why his top-selling drug sales have been down in the United States for the past two months. As if the task was not challenging enough, Jim would also have to submit to the board the reasons and strategies for resuming sales within the next 12 hours.

Now, let’s see how Jim will take up the same business problem in different eras.

                                           2016: Self Service Era

The gym has a readymade dashboard that updates in real-time. He tests the hypotheses he has prepared and stops when some of his hypotheses are confirmed. This results in other important factors and a suboptimal conclusion. However, Jim has less reliance and more time on data scientists to connect the findings to build a coherent story.