This page looks best with JavaScript enabled

Microservices Architecture

 ·  ☕ 3 min read

1. SOA

Service-Oriented Architecture (SOA) holds that a complex enterprise IT system should be divided along different, reusable granularities, organizing a group of functionally related service providers together to serve consumers. Its purpose is to solve the information silo problem caused by different IT resources within an enterprise being unable to interconnect.

The basic design idea of SOA is: expose only a simple interface to the outside, encapsulate the underlying complexity, and do not care about the technical implementation.

Because SOA is itself broad and abstract, people hold different perceptions and understandings of it. Following the SOA design idea, implementations such as ESB, REST, SOAP, RPC, RMI, and DCOM have appeared, and the microservices architecture can also be seen as a derivative or interpretation of SOA.

2. Microservices Architecture

A microservices architecture is an architectural pattern that advocates dividing a single application into a set of small services, where the services coordinate and cooperate with each other to deliver final value to the user. Each service runs in its own independent process, and services communicate with each other through lightweight communication mechanisms (usually RESTful APIs over HTTP). Each service is built around a specific business and can be deployed independently to production or production-like environments. In addition, unified, centralized service management mechanisms should be avoided as much as possible; for a given service, the appropriate language and tools should be chosen to build it according to the business context.

It has the following characteristics:

  • Modularity. A single service can be developed, understood, and maintained on its own, exposing only the service interface externally.
  • Independent deployment. Each service can be deployed and maintained independently; it is only one of the services of the whole system and does not affect all of them.
  • Independent scaling. It can scale its own hardware resources and distributed architecture according to the service’s scale, without affecting other services.
  • Independent operation. A single service runs independently, providing a single reliable service.

These characteristics were already touched on by other technical schemes under the guidance of SOA thinking. The microservices that have been discussed more in recent years gained rapid recognition with the spread of the continuous delivery concept and the popularization of Docker containers. Microservices combine these two ideas and technologies to form a new development model of microservices + API + platform, and put forward the concept of continuous delivery of containerized microservices.

3. Continuous Delivery of Containerized Microservices

The continuous delivery capability of containerized microservices is very important for agile development. Traditional development, testing, and deployment involve complex internal processes, whereas microservices narrow the scope of testing, and containerization provides a test context environment for testing.


WeChat Official Account
WRITTEN BY
WeChat Official Account