当前位置:网站首页>Detailed explanation of Zadig's self-test and joint debugging sub environment for developers
Detailed explanation of Zadig's self-test and joint debugging sub environment for developers
2022-06-28 22:16:00 【InfoQ】
- establish / Destroy the environment
- Copy the environment
- Hosting environment
- Self test mode ( since v1.11.0 Version launch )
Service form

A -> B -> Cx-env=dev1A' -> B -> C'x-env=dev2A -> B'' -> C''
Model

- One K8s colony , There can be multiple sets of self-test environments
- Each project , There can be multiple sets of self-test environments
- In each self-test environment , Have a baseline environment and n Sub environment (n≥0)
- In each self-test environment , All services are in one K8s colony , Cannot deploy across clusters
- In each self-test environment , The sub environment can only interact with the base environment , The request chain passes through at most one sub environment
- In each self-test environment , Request interaction between sub environments is not supported
- Services in an environment , There is at most one version
- Anytime , The baseline environment hasTotal quantityservice
- The service of the synchronization request passes through K8s Service visit
- The request chain of synchronous requests passes through tracing Information concatenation
- Operational in the sub environment ( newly added / Delete / to update ) The services of are a subset of the benchmark environment services
- Benchmark environment 、 Sub environment 、 Direct visitors need to be in the same Mesh in
Realization principle
- Each component and service on the link can be based onRequest traffic characteristicsConductDynamic routing
- Need to identifyDifferent grayscale traffic
- The flow needs to beGrayscale identification
- All nodes under the service need to be grouped , canDifferentiated service versions
- All traffic passes through the traffic management component --- Dynamic routing according to traffic characteristics
- Routing rules can be configured at the traffic management component level --- Controllable gray scale
- The traffic passing through the traffic management component maintains a special mark --- Gray scale can be transmitted through the whole link
- The traffic management component can mark according to traffic , Select the corresponding service instance --- Performed by business independent components Dynamic routing / Service discovery
- Different versions of services can be deployed in different environments -- Differentiated service versions
- all ( north and south / thing ) The traffic flows through the gateway
- Some east-west traffic does not pass through the gateway
- Can be based on http header And other dynamic routing traffic
- be based on K8s Service Service discovery
- proxy Support header propagation
- Temporary does not support SMI TrafficSplit v1alpha3/v1alpha4, That is, based on http header Wait for dynamic routing ,issue Seelink
- Temporary does not support header propagation,issue Seelink
Technical realization
Traffic management
- VirtualService
- EnvoyFilter

- DestinationRule It's also Istio Common resources in , stay VirtualSerivce After the route takes effect , The service that controls the actual import of traffic
- But through Zadig The model of self-test mode shows , Only one version of the service can be deployed in an environment , Service versions can be differentiated by environment , Therefore, there is no need to use DestinationRule To distinguish different versions of the same type of service in an environment
Gray scale transfer
- The outgoing request caused by the application itself for the incoming request , Actively transfer the corresponding gray scale
- Integrated tracing Application of ability , Will pass tracing sdk Etc trace id Wait for the serial request ,Istio It can be recorded when the service receives the request trace id And gray scale , Then the service sends a request according to trace id Automatically increase the gray scale
- about Java Language , It can be done by Java Agent Hijack program runtime traffic , The outgoing request caused by the incoming request , Automatically add gray scale

- When requesting access to the service ,Envoy Will ask Cache Service record trace id and Gray scale Correspondence of
- When the request flows out of the service ,Envoy According to the request trace id, Inquire about Cache Service acquisition Gray scale , Configure the outgoing request
User operation implementation

Core code
- K8s project :
- Back end :https://github.com/koderover/zadig/pull/1214
- front end :https://github.com/koderover/zadig-portal/pull/660
- Helm project :
- Back end :https://github.com/koderover/zadig/pull/1425
- front end :https://github.com/koderover/zadig-portal/pull/791
expectation
边栏推荐
- 杆会睡不着觉
- VR全景创业为了把控风险,如何选择加盟公司?
- Un voyage profond d'IA dans Huawei Cloud
- To be a cross-border e-commerce, you must learn to use PRA software, free your hands and improve efficiency!
- Laravel文档阅读笔记-Adding a Markdown editor to Laravel
- C#/VB.NET 将PDF转为Excel
- IC Nansha|AMD高级副总裁、大中华区总裁潘晓明:制程、架构、平台优化突破计算边界
- 【selenium自动化过程中的api抓包】browsermobproxy的安装和配置
- Sword finger offer:[day 1 stack and queue (simple)] --- > stack containing min function
- Get to know Alibaba cloud (Cloud Computing) - development history, technical architecture, region and availability zone!
猜你喜欢

零基础自学SQL课程 | SQL中的日期函数大全

Adding a markdown editor to lavel

GO语言-反射reflect

河狸生存记:90后女博士与AI开发者们

Zero foundation self-study SQL course | complete collection of date functions in SQL

Gross vs60 billion. Is food safety the biggest obstacle to Weilong's listing?

视觉弱监督学习研究进展

PE file-

项目管理到底管的是什么?

Live broadcast preview | can SQL also play industrial machine learning? Mlops meetup V3 takes you to the bottom!
随机推荐
Introduction to wrk pressure test tool
Zadig 构建究竟何强大?一起来实践
[golang] leetcode intermediate subset & Word Search
Go cryptobin common encryption and decryption Libraries
[linq] execute SQL like in statements using EF to LINQ
小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现
终于有人把云原生架构讲明白了
Adding a markdown editor to lavel
Live broadcast preview | can SQL also play industrial machine learning? Mlops meetup V3 takes you to the bottom!
常用工具类与commons 类库
Zadig 面向开发者的自测联调子环境技术方案详解
Hyperjumptech/grule-rule-engine: rule engine implementation of golang
PHP login problem
Is it safe to open an account for stocks on mobile phones in 2022? Who can I ask?
硬件开发笔记(七): 硬件开发基本流程,制作一个USB转RS232的模块(六):创建0603封装并关联原理图元器件
There is no picture problem when using tcpdf to generate pdf
Appium automated test Jiugongge unlock
用指针计算数组的个数
To be a cross-border e-commerce, you must learn to use PRA software, free your hands and improve efficiency!
How to open a safe and reliable securities account in the financial management class of qiniu school?