百度APP基于Istio实现基础架构升级 - lightning talk - MichaelXu#IstioCon 百度APP基于Istio实现 基础架构升级 许超 #IstioCon 背景 l 核心业务线已完成微服务改造,数万个微服务对架构服务治理能力提出了更高的要求。 l 高级架构能力能否多语言、多框架支持? l 运维架构能力是否具备可移植性?是否能低成本复制新的产品线? l 可观测性不足,是否有通用机制提升产品线可观测性? Ø 部分模块上下游超时配置不合理,超时倒挂,集中管理调整成本比较高。 百度APP架构缺少上下游模块视图和流量视图,黄金指标不足,导致容量管理压测效率低、混沌工程实施成 本高、故障定位成本高。 #IstioCon 目标 l 服务治理策略平台化 联合公司内部,通过合作共建方式实现完整的Service Mesh架构,提升架构策略灵活性,缩 减服务治理迭代周期,降低服务治理研发成本。 l 服务治理能力通用化 基于Service Mesh架构共建高级架构能力,为不同模块、不同产品线、甚至整个公司内提供 能力可移植性。 #IstioCon 技术方案 l 核心原则 Ø 务实、高稳定性、低迁移成本。 l 核心思路 Ø 先单跳,后双跳。 Ø 服务发现下沉到Envoy。 Ø 基于 RPC + 服务发现实现透明流量劫持。 Ø 自建配置中心,产品化封装。 l 关键技术 Ø 内核劫持,使用Loopback IP 与 服务发现一一对应。 Ø RPC劫持,构建可快速扩展标准方案。 Ø 自身稳定性,降级(兜底)、隔离、监控多种方式保证。0 码力 | 9 页 | 2.20 MB | 1 年前3
Istio 在 Free Wheel 微服务中的实践产 品需要对接客户,提供视频广告投放优化界面,类似于 Web ERP,是一个典型 的三层架构。 微服务之痛 • 两年来,我们将若干复杂的Rails单体应用拆分、迁移到微服务架构, 逻辑用Golang重写,引入了Kubernetes。随着模块越来越多,复杂 的通信带来矛盾日渐突出:流量管理、监控… 最初的尝试:Gateway • 如右图,最初我们尝试用一个自研的 简单Gateway来提供统一的认证、授 • Telemetry提供监控数据收集能力 基本原理 • Istio从架构上可以分为4个板块: • Istio Proxy: Mesh的基础 • 网络安全:兼容Spiffe标准实现 • 配置管理:为C++实现的Proxy接 入k8s的动态配置管理 • Attribute Machine: 授权,Quota ,Tracing,监控的基础 Istio管理下的微服务 • 右图是部署mock1 择一部分来引入额外的机制(如权限控制、限流等),在应用运维中 这是很重要的能力,只要是不修改请求、响应的功能都可以采用扩展 Mixer来实现 • Sidecar里接入额外的反向代理其实提供了一个修改请求、响应的接口 ,如认证之后需要将用户信息通过header传给下游服务 扩展Mixer接入授权 • 这里实现的例子mymock会完全拒绝所有 被匹配到的流量,右图是mymock Handler的基本原理 • mymock0 码力 | 31 页 | 4.21 MB | 1 年前3
Istio audit report - ADA Logics - 2023-01-30 - v1.0Results summarised 6 fuzzers written and added to Istio's OSS-Fuzz integration 1 CVE found in Golang 1 vulnerability found that affected Googles managed Istio offering 11 issues found ● 5 system Googleʼs managed Istio offering, and it led to further investigation that revealed a vulnerability in Golang itself. The finding was reported by the auditing team to the Istio maintainers, because Istio does MaxBytesHandler introduces an http request smuggling attack vector. The issue was disclosed to the Golang security team who fixed the vulnerability and assigned it CVE-2022-41721. 3 Istio Security Audit0 码力 | 55 页 | 703.94 KB | 1 年前3
Istio Security Assessmentand Code-Assisted Security Assessment Type Kubernetes Service Mesh Method Code-assisted Platforms Golang, Kubernetes Dates 2020-07-06 to 2020-07-31 Environment Local Test Environment Consultants 4 Level be disabled in a production environment. See also finding NCC-GOIST2005-013 on page 18. 5https://golang.org/pkg/net/http/pprof/ 13 | Google Istio Security Assessment Google / NCC Group Confidential Finding access to the control plane can obtain unauthenticated access to this information. Description The Golang trace profiling library used by Pilot provides administrators debug information about Pilot itself0 码力 | 51 页 | 849.66 KB | 1 年前3
Automate mTLS
communication with
GoPay partners with
IstioAPI calls ● 3000+ deployments every week ● REST as well as gRPC services ● Services written in Golang, Java, Clojure, Ruby gRPC, Envoy, and ● GoPay has been using gRPC since 2016 ● GoPay had services0 码力 | 16 页 | 1.45 MB | 1 年前3
Istio-redirector: the way
to go to manage
thousands of HTTP
redirectionsBy creating a tool to ease the transition from a .csv file to an Istio VirtualService file. ● Golang service ○ Convert .csv to VirtualService ○ Open Pull Request on Github ○ Fetch info from Kubernetes0 码力 | 13 页 | 1.07 MB | 1 年前3
全栈服务网格 - Aeraki 助你在
Istio 服务网格中管理任何七层流量Demo: Dubbo 协议支持 ● Dubbo2Istio 连接 Dubbo 服务注册表,支持: ○ ZooKeeper ○ Nacos ○ Etcd ● Aeraki Dubbo Plugin 实现了控制面的管理,支持 下述能力: ○ 流量管理: ■ 七层(请求级别)负载均衡 ■ 地域感知负载均衡 ■ 熔断 ■ 基于版本的路由 ■ 基于 Method 的路由 ■ 基于 Header 地域感知负载均衡(Dubbo) 场景:在开通地域感知负载均衡功能时,consumer 的请求将缺省被发送到本区域 的provider实例,当本地域无可用的provider实例,请求会被分发到其他区域。 实现原理:控制面根据 consumer 和 provider 的地域属性为provider实例配置 不同的LB优先级,优先级的判断顺序如下: 1. 最高:相同 region,相同zone 2. 其次:相同 大部分七层协议的路由、熔断、负载均衡等能力的实现逻辑是类似的, 没有必要每个协议都全部从头实现,重复造轮子。 ● MetaProtocol 框架在 Service Mesh 提供七层协议的通用能力: ○ 数据面:MetaProtocol Proxy 实现 RDS、负载均衡、熔 断等公共的基础能力 ○ 控制面:Aeraki + Istio 提供控制面管理,实现按请求 header 路由、灰度发布、地域感知LB、流量镜像等高级0 码力 | 29 页 | 2.11 MB | 1 年前3
IstioMeetupChina 服务网格热升级技术分享IstioMeetup 服务网格数据平面热升级技术分享 ServiceMesh Data-Plane Hot-Upgrade 阿里云服务网格团队 – 史泽寰 • 为什么需要服务网格数据面热升级 • 实现热升级 • 实践热升级 目录 Catalog 2 为什么需要服务网格数据面热升级 Why do we need Hot-Upgrade for ServiceMesh Data-Plane • 只替换/重启Sidecar • 替换/重启过程中进/出不会出现请求失败,连接失败 • 易于运维,可以控制升级策略 理想的Sidecar升级 4 • 为什么需要服务网格数据面热升级 • 实现热升级 • 实践热升级 目录 Catalog 5 • Envoy热重启 • 以Epoch + 1的方式启动新实例,触发热重启 • ListenSocket转移到新实例 • 旧实例进行排水,不再接受新的请求 envoyproxy.io/envoy-hot-restart-1d16b14555b5 实现热升级 Implement Hot-Upgrade 6 • Sidecar生命周期管理能力 • 启动两个Sidecar,以进行Envoy热重启的排水流程两个实例并存的阶段 • 能够对整个热升级流程中的镜像替换进行控制 实现热升级 Implement Hot-Upgrade 7 • Sidecar生命周期管理能力0 码力 | 14 页 | 2.25 MB | 1 年前3
Envoy原理介绍及线上问题踩坑Technologies Co., Ltd. All rights reserved. Page 4 前言 • 微服务架构最早由Fred George在2012年的一次技术大会上所提出,他讲到如何通过拆分SOA服务实现服务之间的解耦, 这是微服务最早的雏形。 • 微服务架构通过细粒度的服务解耦拆分,带来缩短开发周期、独立部署、易扩展等好处的同时,同时带来对服务发现、负 载均衡、熔断等能力前所未有的诉求。 • 10版本。 Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 5 Envoy介绍 • Envoy采用C++实现,本身为四层及七层代理,可以根据用户应用请求内的数据进行高级服务治理 能力,包括服务发现、路由、高级负载均衡、动态配置、链路安全及证书更新、目标健康检查、 完整的可观测性等。 • 目前常见数据面 2. 监控到目标主机健康状态变化时,需要通知到工作线程内主机可用状态。 • 3. 当收到节点变化EDS消息时,需要通知到工作线程内新上线、下线主机。 • 4. Envoy使用前面提到的TLS方式实现集群状态更新,集群管理器保存一个TLS slot ,类型为ThreadLocalClusterManagerImpl。 当节点变化、DNS解析更新、健康状态变化时,将调用集群管理器的postThre0 码力 | 30 页 | 2.67 MB | 1 年前3
Extending service mesh capabilities using a streamlined way based on WASM and ORAS将其他过滤器集成到Envoy的源代码中,并编译新的Envoy版本。 ■ 这种方法的缺点是您需要维护Envoy版本,并不断使其与官方发行版保持同步。 ■ 此外,由于Envoy是用C++实现的,因此新开发的过滤器也必须用C++实现。 ○ 动态运行时加载: ■ 在运行时将新的过滤器动态加载到Envoy代理中。 ■ 简化了扩展Envoy的过程, 这种解决方案通常使用WebAssembly(WASM)的新技术, oy进程中,而无需停止或重新编译。 ○ 可维护性:不必更改Envoy自身基础代码库即可扩展其功能。 ○ 多样性:可以将流行的编程语言(例如C/C++和Rust)编译为WASM,因此开发人员可 以选择实现过滤器的编程语言。 ○ 可靠性和隔离性:过滤器会被部署到VM沙箱中,因此与Envoy进程本身是隔离的;即使 当WASM Filter出现问题导致崩溃时,它也不会影响Envoy进程。 ○ 安全性:过滤 Example Wasm filter configuration ● 下发到Envoy Proxy侧的配置 9 OCI Registry As Storage ● OCI Artifacts项目的参考实现, 可显著简化OCI注册库中任意内容的存储; ● 可以使用ORAS API/SDK Library来构建自定义工具, ○ 将WebAssembly模块推入到OCI注册库中; ○ 或者从OCI注册库中拉取WebAssembly模块;0 码力 | 23 页 | 2.67 MB | 1 年前3
共 17 条
- 1
- 2
相关搜索词
百度APP基于Istio实现基础架构基础架构升级lightningtalkMichaelXuFreeWheel服务实践auditreportADALogics20230130v1SecurityAssessmentAutomatemTLScommunicationwithGoPaypartnersredirectorthewaytogomanagethousandsofHTTPredirections全栈网格Aeraki管理任何七层流量IstioMeetupChina技术分享Envoy原理介绍及线问题ExtendingservicemeshcapabilitiesusingstreamlinedbasedonWASMandORAS













