What is software architecture?

A software architecture is a system organization consisting of various organizations, including Web servers, application servers, databases, storage, and communication layers, that have relationships with each other and with the environment.

 

What is microservices Architecture?

Microservices are the development of a single small but business-capable service, each with its own processing and lightweight communication mechanisms, that can be deployed on a single or multiple server.

 

Microservices also refer to a variety of loosely coupled service-oriented architectures with bounded contexts. That is, if every service is modified at the same time, they are not microservices because they are tightly coupled; If you need to master too many contextual scenarios for a service, then it is a service with context boundaries

What are the advantages of microservices?

  • Each microservice is small enough to focus on a specific business function or business requirement.
  • Microservices can be developed independently by small teams of two to five developers.
  • Microservices are loosely coupled, functional services that are independent of each other during development or deployment.
  • Microservices can be developed in different languages.
  • Microservices allow an easy and flexible way to integrate automatic deployment through continuous integration tools such as Jenkins, Hudson, bamboo.
  • A new member of a team can go into production faster.
  • Microservices can be easily understood, modified, and maintained by a single developer so that small teams can focus on their own work. You don’t have to collaborate to be valuable.
  • Microservices allow you to leverage the latest technology.
  • Microservices are just code for business logic, not mixed with HTML,CSS, or other interface components.
  • Microservices can be extended on demand instantly.
  • Microservices can be deployed on servers in low – and mid-range configurations.
  • Easy integration with third parties.
  • Each microservice has its own storage capacity and can have its own database. You can also have a unified database.

What are the downsides of the microservices architecture?

  • Microservice architectures can introduce too many operations.
  • DevOps skills are required
  • Maybe double the effort.
  • Distributed systems can be complex and difficult to manage.
  • Because distributed deployment tracking is difficult.
  • As the number of services increases, management complexity increases.

Where do microservices fit in?

It’s ok when you need to support desktop Web mobile smart TV wearable, even some future environment that you may not know about but need to support.

Which companies or products use microservices architecture?

Most large web systems such as Twitter, Netflix, Amazon, and eBay have migrated from a monolithic monolithic architecture to a microservice architecture

How do microservices communicate independently?

This depends on the requirement that the communication protocol is free by using HTTP/REST and using JSON or Binary Protocol (Protobuf) data format.

Why is everyone talking about microservices now?

In the 15 years since SOA was first introduced, with RESTful Web services and JSON data exchange formats becoming popular, it has become increasingly convenient to simply and quickly set up a connectable service.

With the promotion of the concept of continuous delivery and the popularity of Docker container, microservice combines these two concepts and technologies to form a new development model of microservice +API + platform, and proposes the concept of continuous delivery of containerized microservice.

Traditional Monolithic DevOps development team approach:

This holistic architecture requires the product team to span product management, Dev, development, QA, DBA, and system operation management. After the introduction of micro-service architecture, it is shown as follows:

 

Microservices catalyzed the reorganization of the DevOps approach, dividing a large, bloated product development team into product teams based on microservices and a large platform team responsible for operations management, with loose coupling between the two through API interactions.

Due to the introduction of Docker, different microservices can use different technical architectures, such as Node.js, Java, Ruby, Python and so on. These single services can independently complete the delivery life cycle, as follows:

Microservices case

Netflix’s microservice architecture is as follows, focusing on global distribution with high scalability and availability:

Twitter’s microservices architecture, focusing on efficient and scalable data centers: