What is microservices?

You may already have knowledge of microservices architecture, but here’s a quick summary of the features of microservices.

Divide into multiple small “microservices” according to business functions and build applications by linking them.

  • Each service runs in an independent process
  • Each service has a well-defined open interface (REST (JSON / HTTPS), gRPC, etc.)

Benefits of microservices

  • Available with multiple technologies
  • High fault tolerance and maintainability
  • Easy to scale and redundant
  • You can make your development team smaller
  • Easy to understand because each service is small
  • Higher service reusability

Microservices challenges

  • Service discovery: Discovery of services and existence relationships
  • Security: Connect securely
  • Traffic control: Rate limit and retry settings
  • Load balancing: routing to multiple service instances
  • Observability: It is difficult to understand how the whole works together
  • Distributed trace: Difficult to understand internal operation between services
  • Advanced Deployment: Deploy safely and efficiently

What is a service mesh?

Service meshes are an approach to solving the problems of microservices.

The main functions of the service mesh are:

  • Service authentication
  • load distribution
  • Time-out, retry circuit breaker
  • Connection pool size management
  • Fine-grained routing
  • Telemetry
  • Request tracking
  • Intentional error implementation

There are many products that provide service mesh functionality, but typical software is Istio, Linkerd, and Consul. Next, I would like to introduce the most popular Istio.

Istio

“Istio” is an initiative that IBM, Google, Red Hat, etc. are focusing on, and it will enable management of microservices across various systems in the cloud in units called service meshes.
architecture

Istio provides a data plane consisting of Envoy-based sidecars. These intelligent proxies control all network traffic inside and outside meshed apps and workloads.
The control plane uses the following components to manage configuration, policies, and telemetry.

  • Mixer-Applies access control and usage policies. Collect telemetry from the proxy pushed to Prometheus.
  • Pilot-Provides proxy service detection and traffic management policies / configurations.
  • Citadel-Provides identity and security features that enable mTLS between services.
  • Galley-Abstracts and provides configuration for components.

Google Cloud Anthos Service Mesh (ASM)
Anthos Service Mesh (ASM) is a fully managed service mesh for Google Cloud’s complex microservices architecture. A fully managed service mesh that allows you to manage the complex environment of microservices and enjoy all the benefits they guarantee. The platform simplifies overall service operations, from traffic management to mesh telemetry to protecting communications between services, significantly reducing the burden on operations and development teams.