百度APP基于Istio实现基础架构升级 - lightning talk - MichaelXu
rpc框架查询bns-agent IP与治理策略数据。 Ø bns-agent判断否使用envoy进行服务治理。 Ø rpc框架根据反馈的IP,治理策略信息请求对 应IP,会cache数据,需要即时更新。 Ø envoy离线或者被干预则立即通知bns-agent, fallback会使用原有治理策略。 #IstioCon 架构介绍 Ø Mesh控制中心: ü 运维中心:基于Mesh的统一运维操作中心。 ü 配置中心:维护模块上下游拓扑,管理路由配0 码力 | 9 页 | 2.20 MB | 1 年前3Envoy原理介绍及线上问题踩坑
启动日志写入线程,每个目标日志文件有独立线程负责输出 • 启动concurrency数目的工作线程 • 启动看门狗线程监控各个工作线程是否定期touch,否则SIGABRT杀掉线程 • 启动admin RESTful监听,处理运行状态输出,prometheus收集等请求 • 定期将工作线程内监控数据stat进行合并 • 定期刷新DNS信息,加速域名解析。 • 目标cluster内主机列表健康状态判断。 • worker线程: Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 13 Envoy网络及线程模型-集群信息更新 • 1. Envoy需要在运行中支持添加集群并监控每个集群内目标主机列表变化 • 2. 监控到目标主机健康状态变化时,需要通知到工作线程内主机可用状态。 • 3. 当收到节点变化EDS消息时,需要通知到工作线程内新上线、下线主机。 连接 socket 数据传输 事件 L4处理 读写 延迟 删除 L7处理 阻塞 运行 ConnectionHandler 匹配 监听器 • Envoy启动时创建的Listener与工作线程绑定并启动监听 (向libevent注册Read回调onSocketEvent),并进入阻 塞运行状态,直到进程退出。 • 当新连接到达时,内核网络协议栈调用回调并创建新连接 的Socket。0 码力 | 30 页 | 2.67 MB | 1 年前3Extending service mesh capabilities using a streamlined way based on WASM and ORAS
也必须用C++实现。 ○ 动态运行时加载: ■ 在运行时将新的过滤器动态加载到Envoy代理中。 ■ 简化了扩展Envoy的过程, 这种解决方案通常使用WebAssembly(WASM)的新技术, 它是一种有效的可移植二进制指令格式,提供了可嵌入和隔离的执行环境。 6 使用Wasm for Proxy ● Pros ○ 敏捷性:过滤器可以动态加载到正在运行的Envoy进程中,而无需停止或重新编译。 执行结果, wasm filter生效 22 Summary & Tips ● 开发阶段 22 使用Wasm sdk 生成Wasm二进制 使用oras cli OCI镜像仓库 ● 部署运行阶段 创建 ASMFilterDeplo yment CR 确认Istio EnvoyFilter CR Troubleshooting 在ASM中开启 wasm能力 确认Workload部 署变更生效0 码力 | 23 页 | 2.67 MB | 1 年前3探讨和实践基于Istio的微服务治理事件监控
的包括日志、网络数据在内的所 有信息。 宏观下的监控需求 链路总体展示 展示整个服务调用过程中链路上 每一个节点的服务状况,包括延 时、吞吐量等基本信息。 服务器总体展示 展示当前所有服务器的运行状况, 包括CPU、内存、网络、I/O读写 等信息 业务总体展示 展示当前业务相关数据的 从宏观上快速定位问题,在微观上找到问题根因的 监控方案问题二:现有的系统能否完全满足需求 现有系统 5 8 9 Request Response JVM 6 10 7 Class Loader Engine Agent A’.class JavaAgent 监控数据暂 存区 运行时数据区如何基于Istio的现有组件去实现 Kubernetes Cluster MIxer 全链路关联 平台 Cloud Native App POD Agent logfile Compiled In Adapter Out Of Process Adapter • Adapter与mixer代码需要一起打包编译,最终生成 一个可执行文件。 Adapter作为grpc服务端,运行在独立的pod当中, Mixer通过通过rpc调用,将属性与日志发送给Adapter。基于Mixer的二次开发的流程 • 编写grpc服务端程序,接收来自mixer的数据,并实现自身业务逻辑 •0 码力 | 29 页 | 8.37 MB | 5 月前3在网格的边缘试探:企业 Istio 试水指南
Mixer按照我个人的看法,API较为混乱,重构风险比较大Istio还用不用? • 你要的是不是API网关? • Service Mesh为什么诞生的? • Istio 为什么诞生的? • 它能在我们的环境里运行么? • 它能解决我们的问题么? • 有条件的,慎重的用选定试用功能 • 性价比的灵魂拷问: • 会给业务带来什么风险? • 需要什么程度的投入? • 可能出现什么故障? • 能有什么好处? • 演练 • 在测试版本和后备版本之间根据预案进行切换。 • 验证相关服务的工作状况。 • 最终保障试点上线 • 在通过测试验证和切换演练的过程之后,就可以将试用的网格应 用上线到生产 环境开始试运行了。和所有其他上线活动一样,在 上线之后需要提高监控级别,关注试用服务自身和试用服务影响 范围内的相关功能的健康情况。新书广告0 码力 | 19 页 | 11.41 MB | 5 月前3Istio 与 Knative 踩坑实录
/03 实践进展 Istio的价值和问题 Knative的实践和瓶颈3/25 分享主题:字号 实践进展 /01 酷家乐在服务网格和FAAS方向上的实践进展汇总4/25 生产环境Istio稳定运行 酷家乐于2018年8月29日在国际站生产环 境开始全面使用Istio 1.0.1 版本 486 天 服务范围 覆盖了不同业务链路的四十余个服务 40+ 服务 K8S安装环境 覆盖自建机房、IDC机房、云主机、海外云0 码力 | 26 页 | 1.35 MB | 5 月前3
共 6 条
- 1