Monday 12 February 2018

MicroServices


What is a Microservice?

MicroServices is an Services oriented architecture which reduces the time and development criticality.

What are the benefits of Microservices architecture?

  • Better fault isolation; if one microservice fails, the others will continue to work. 
  • Code for different services can be written in different languages. 
  • Easy integration and automatic deployment; using open-source continuous integration tools such as Jenkins, etc. 
  • The microservice architecture enables continuous delivery. 
What is the role of architect in Microservices architecture?
  1. Planner : 
  2. Technologies : 
  3. Tools : 
  4. Customization : 
What is the advantage of Microservices architecture over Service Oriented Architecture (SOA)?
Service Oriented Architecture is a software architecture where distinct components of the application provide services to other components via a communications protocol over a network.

1. Microservices, in a way, are the next step in the evolution of Service Oriented Architectures.

2. Building multiple services that are part of the same Service-Oriented Architecture

3. SOA development can be slow due to use of things like communication protocols SOAP, middleware and lack of principles but

On the other hand, Microservices are agnostic to most of these things. You can use any technology stack, any hardware/middleware, any protocol etc. as long as you follow the principles of Microservices.

Is it a good idea to provide a Tailored Service Template for Microservices development in an organization?
There are many organizations that provide tailored templates for Microservices. Eg. Dropwizard, Karyon etc. You can use these templates to make faster development of services in your organization.

Also remember that template code should not promote shared code. This can lead to tight coupling between Microservices.

What are the disadvantages of using Shared libraries approach to decompose a monolith application? 


What are the characteristics of a Good Microservice?

  1. Single Responsibility
  2. Private Data
  3. Monitored 
  4. Clustering 
What is Bounded Context?

Bounded Context is a central pattern in Domain-Driven Design. It is the focus of DDD's strategic design section which is all about dealing with large models and teams. DDD deals with large models by dividing them into different Bounded Contexts and being explicit about their interrelationships.

What are the points to remember during integration of Microservices?

I. Technology Agnostic APIs:
II. Breaking Changes:
III. Implementation Hiding:
IV. Simple to use:

Is it a good idea for Microservices to share a common database?

What is the preferred type of communication between Microservices? Synchronous or Asynchronous? 


In synchronous communication, a Microservice can provide instant response about success or failure. In real-time systems, synchronous service is very useful. In Asynchronous communication, a service has to react based on the response received in future.

Synchronous systems are also known as request/response based. Asynchronous systems are event-based.

Synchronous Microservices are not loosely coupled.

What is the difference between Orchestration and Choreography in Microservices architecture?
Service orchestration represents a single centralized executable business process
Service choreography is a global description of the participating services, which is defined by exchange of messages, rules of interaction and agreements between two or more endpoints.

What are the issues in using REST over HTTP for Microservices?

Due to JSON or plain text in response, performance of REST over HTTP is better than SOAP. But it is not as good as plain binary communication.

There is an overhead of HTTP in each request for communication.

HTTP is not well suited for low-latency communications.

Can we create Microservices as State Machines?

What is Reactive Extensions?

Reactive Extensions is a design approach in which we collect results by calling multiple services and then compile a combined response. It is also known as Rx.

What is DRY?

What is Semantic Versioning?

Is it a good idea to build a Microservice or buy a commercial off the shelf software?


Why do we break the Monolith software into Microservices?


What is Continuous Integration?


What is Continuous Delivery?


What is Ubiquitous language?


What is the benefit of Single Service per Host model in Microservices?


What are different types of Tests for Microservices?


What is Mike Cohn’s Test Pyramid?


What is the difference between Mock or Stub for Microservice tests?


How can we eradicate non-determinism in tests?


What is a Consumer Driven Contract (CDC)?


What is PACT?


How can we separate Deployment from Release of Microservices?


What is Canary Releasing?


What is the difference between Mean Time to Repair (MTTR) and Mean Time between failures (MTBF)?


How can we do cross-functional testing?


What is a good tool for monitoring multiple services at a time?


What is Semantic Monitoring?


Why do we use Correlation IDs in Microservices architecture?


What is the difference between Authentication and Authorization?


How does HTTPS authentication works in Microservices?


What are Client certificates?


Why some big companies use API keys for providing access to public APIs?


What is Confused Deputy Problem in security context?


How can we secure Data at Rest in an organization?


What are the different points to consider for security in Microservices architecture?


What is Conway’s law?


What are the important Cross-Functional Requirements to consider during the design of a Microservice?


What is a Circuit Breaker pattern in the context of Microservice?


What is Bulkhead design pattern?


What is Idempotency of a Microservice operation?


How can you scale a Database?


What is Command Query Responsibility Segregation (CQRS) design pattern?


How will you implement Caching in Microservice?


What is CAP theorem?


How will you implement Service Discovery in Microservices architecture?


What is a good tool for documenting the Microservices?


In which scenarios, implementing Microservices architecture is not a good idea?


What are the major principles of Microservices?

No comments:

Post a Comment

SpringBoot

SpringBoot SpringBoot Application :  Pros & Cons :  SpringBoot Application creation using spring.io :  SpringBoot Application Annotation...