liveBook · Manning

Cloud-native architecture

As explained in gRPC Microservices in Go

A cloud-native application is an application designed to run using distributed, elastic, and container-oriented cloud infrastructure.

Cloud-native architecture designs applications for distributed, elastic, container-oriented infrastructure. In a microservice system, each service runs independently in a container, receives its own resource and scaling configuration, and can be deployed through a CI/CD pipeline. section 1.4.2 section 8.0

The approach addresses monolithic deployment limits such as inefficient resource use, coarse-grained scaling, and risky releases, while introducing distributed-system management concerns. Kubernetes supplies declarative deployment, orchestration, networking, load-balancer, and storage abstractions; container runtimes keep the resulting services portable. section 1.4.2 section 8.0

Apply the architecture by combining independent services with operational configuration:

  • Package each service as a Docker image and define its Kubernetes deployment specification. section 8.0
  • Use Kubernetes service names for gRPC addressing so consumers can locate services without directly managing their changing network addresses. section 1.4.2
  • Tune resource requests and horizontal scaling per service instead of scaling the whole application together. section 1.4.2
  • Select release strategies deliberately: RollingUpdate gradually replaces pods, Blue-Green switches between environments, and canary exposes experimental features selectively. section 8.5

Product service scaling

A Product service that receives heavy daytime search and browsing traffic can receive more capacity and a higher scaling factor than less-used services. Kubernetes changes that service’s deployment configuration without requiring every service to scale simultaneously. section 1.4.2

Delivery pipeline

A CI pipeline builds Docker images from Go gRPC services, and a CD pipeline deploys those artifacts to Kubernetes alongside services and CronJobs. Kubernetes manages declared resources, while cert-manager supports issuing and renewing certificates for TLS communication. section 8.0 section 8.5

How gRPC Microservices in Go covers it

How deep it goes
Explains containers, service discovery, resource configuration, certificates, and release strategies, but stops short of low-level runtime internals.
Examples
Uses Product service scaling, Docker images, Kubernetes deployments, CronJobs, TLS certificates, and RollingUpdate, Blue-Green, and canary releases.
What it assumes
Assumes microservices and distributed-system boundaries, then develops containerization, Kubernetes management, and deployment practices.
What you can do after
Build and deploy containerized Go gRPC services to Kubernetes with per-service scaling and selected release strategies.
How it connects
Connects microservices architecture with Docker, Kubernetes, gRPC, CI/CD, TLS, and deployment strategies.

Also explained in

Compare how 6 books explain cloud-native architecture →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of gRPC Microservices in Go. The section links point to the parts of the book it draws on.