Istio: gray publish and technology

Outline

  1. Typical release type comparison
  2. Istio flow control technology to resolve
  3. Published introduce smart gray
  4. Grayscale display publishing

Typical release type comparison

  1. Blue-green release
  2. Gray-release (canary release)
  3. A/B Test

May refer to: Road K8s of application management - Upgrade Part (b) https://blog.csdn.net/fly910905/article/details/99696319

Blue-green release

Gray-release (canary release)

A/B Test

  • After A / B Test main sampling a particular user, do the relevant comparison of the feedback data collected, and then make decisions based on the comparison result.
  • Methods used to test the functional performance of applications, focusing on application availability, popularity and so on.                                           

Istio flow control technology to resolve

Istio traffic management

Configuration Rules

  1. VirtualService define routing rules in Istio service grid, routing control how to route to the service.
  2. DestinationRule after VirtualService route takes effect, configure the application with the requested set of policies.
  3. ServiceEntry is typically used to enable requests for services outside Istio service grid.
  4. Gateway is configured to HTTP / TCP traffic load balancer, the most common operating at the edge of the grid, the inlet flow to enable the application.

DestinationRule

VirtualService

Weight-based routing
 

Content-based routing request

VirtualService gradation in complex scenes 

Published introduce smart gray

Intelligent gray publish, equivalent unattended

Gray-publishing process

Smart gray release

Goal : continuous delivery of fine-grained control of automation

Features :

  1. User segment
  2. Traffic Management
  3. The key indicators can be observed
  4. Release Process Automation

Adaptive gray-scale publishing parameters

  • Load state of health
  • Request success rate 
  • The average delay request
  • Traffic weights steps
  • Rollback Threshold

监控指标

RED

  • (Request) Rate - the number of requests, per second, your services are serving.
  • (Request) Errors - the number of failed requests per second.
  • (Request) Duration - The amount of time each request takes expressed as a time interval


USE( utilization, saturation, errors)

  • CPUs: sockets, cores, hardware threads (virtual CPUs)
  • Memory: capacity
  • Network interfaces
  • Storage devices: I/O, capacity
  • Controllers: storage, network cards
  • Interconnects: CPUs, memory, I/O

flagger

flagger
kubectl -n test describe canary/podinfo

相关链接

  • https://support.huaweicloud.com/usermanual-cce/cce_01_0050.html
  • https://bbs.huaweicloud.com/videos/e4927c347e4a41da82feb9c8c0bf6b30
  • https://github.com/stefanprodan/flagger
  • https://github.com/magneticio/vamp2setup/blob/master/BASIC_TUTORIAL.md
  • https://github.com/intuit/wasabi
发布了391 篇原创文章 · 获赞 1081 · 访问量 165万+

Guess you like

Origin blog.csdn.net/fly910905/article/details/104036201