Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?递给适配器的数据。 这些包括“metrics”,“logentry”,“tracepan”等。这些抽 象与后端想要消费的数据不匹配,导致运维需要编写一些手动配置, 以便在规范的 Istio 样式和后端特定的样式之间进行映射。原本期望 这种映射可以在适配器中实现很大程度上的自动化,但是最终还是 太复杂并需要手动配置。如果要性能,该怎么做? Part 1:ServiceMesh灵魂拷问一:要架构还是要性能? https://github.com/envoyproxy/envoy-wasm +Web Assembly介绍 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办? Mozilla官方定义: WebAssembly是一种新的编码方式,可以在现代的网络浏览器中运行 - 它是一种低级的类汇编语言,具有 紧凑的二进制格式,可以接近原生的性能运行,并为诸如C / C ++等语言提供一个编译目标,以便它们可以 3:ServiceMesh灵魂拷问三:要不要支持虚拟机? Traffic Director:效仿k8s/Istio的方式来管理服务 k8s service Google Traffic Director 服务 服务定义 通过 k8s 在控制台手工创建 创建服务 通过k8s自动注册 手工关联服务和托管实例组 服务注册 k8s进行健康检查 通过托管式实例组配置健康检查 健康检查 通过Istio支持 通过托管式实例组支持0 码力 | 43 页 | 2.90 MB | 6 月前3
蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘Ø屏蔽IO处理细节 Ø定义网络链接生命周期,事件机制 Ø定义可编程的网络模型,核心方法,监控指标 Ø定义可扩展的插件机制PROTOCOL 5 Ø定义编解码核心数据结构 üMesh处理三段式:Headers + Data + Trailers Ø定义协议Codec核心接口 ü编码:对请求数据进行编码并根据控制指令发送数据 ü解码:对IO数据进行解码并通过扩展机制通知订阅方 •定义扩展机制通知解码事件STREAMING •定义扩展机制通知解码事件STREAMING 6 Ø定义Stream模型 ü 向上确保协议行为一致性 ü 为网络协议请求/响应提供可编程的抽象载体 ü 考虑PING-PONG,PIPELINE,分帧STREAM三种典型流程特征 Ø定义Stream生命周期,核心事件 Ø定义Stream层编/解码核心接口 ü 核心数据结构复用Protocol层 Ø定义可扩展的插件机制 Ø对于满足请求Stream池化的需求 Ø需处理上层传入的状态事件PROXY on ADS Ø支持全动态配置启动运行 Ø支持API核心功能点,不断完善中扩展机制 4 • 网络层扩展 • 事件订阅 • 自定义filter • 协议层处理扩展 • 事件订阅 • 自定义filter • TCP层自定义私有协议 • 自定义Codec • 自定义Stream • 其他 • 路由 • 后端管理4 性能单核优化点 1 Ø绑核 ü 更好的 runtime G-P-M data0 码力 | 44 页 | 4.51 MB | 6 月前3
Service Mesh结合容器云平台的思考和实践ent的部署形式 pilot-agent在pilot/cmd包下面,是个单独 的二进制。 pilot-agent跟envoy打包在同一个docker镜 像里,镜像由Dockerfile.proxy定义, Makefile(include了tools/istio- docker.mk)把这个dockerfile build成了 ${HUB}/proxy:${TAG}镜像,也就是 Kubernetes里跟应用放在同一个pod下的 pilot-agent的role类型为model包下的Proxy,决定了pilot-agent的“角色”,role包括以下属性: 1.Type pilot-agent有三种运行模式。根据role.Type变量定义,类型为model.Proxy,定义在context.go文件中,允许的3个取值范围为: i. "sidecar" 默认值,可以在启动pilot-agent,调用proxy命令时覆盖。Sidecar type is used standalone proxies acting as L7/L4 routers. 2. IPAddress, ID, Domain 它们都可以通过pilot-agent的proxy命令的对应flag来提供用户自定义值。如果用户不提供,则会在proxy命令执行时,根据istio连接 的服务注册中心(service registry)类型的不同,会采用不同的配置方式。agent当前使用的具体service registry类型保存在0 码力 | 28 页 | 3.09 MB | 6 月前3
蚂蚁金服 API Gateway Mesh 思考与实践靳文祥(花名:贾岛) 蚂蚁金服 高级技术专家1/21 /01 /02 /03 API Gateway Mesh 的定义 蚂蚁金服 API Gateway Mesh 实践 云原生 API Gateway 的思考2/21 API Gateway Mesh 的定义 /013/21 LB\Ingress API Gateway Sidecar App POD Sidecar App0 码力 | 22 页 | 1.72 MB | 6 月前3
SOFAMesh的通用协议扩展Service Endpoints Watch ADS Config Renew DNS Create Service Create RPC ServiceCRD 定义 RPC Service 对应一个微服务,对应 RPC 框架中的接口定义 一个应用可能包含多个 RPC Service RPC Service 关联到一个 Kubernetes 服务 RPC Service 的域名就是其接口X-PROTOCOL0 码力 | 28 页 | 4.73 MB | 6 月前3
Service Mesh Meetup #3 深圳站code review ,批准合并之后,feature/new_branch 会合并到 develop; • 8. Merge 触发 Jenkins/Drone 自动构建; • 9. 构建成功就执行你定义的工作流:打包镜像,触发 deploy 以及其他后续的 Automation Testing 等流程; • 10 . Drone 通知工作流程情况给开发/或者交付 QA 测试;如何提升工程效率?我是作者名称2017 Jenkins(plugins/drone-jenkins) • Gitlab-CI(plugins/drone-gitlab-ci) • Drone(plugins/drone-downstream) • 支持自定义插件(你可以自己实现自己所需的插件) • 本机测试 .drone.yml : drone execAPI 支持我是作者名称.drone.yml代码质量检测 SonarQube 参考资料:https://github0 码力 | 45 页 | 18.62 MB | 6 月前3
Service Mesh 高可用在企业级生产中的实践(等待时间=0) 常用限 流算法25/总页数 治理策略 & 高可用 • 微服务高可用设计手段 - 服务限流 • 基于来源限流(from) • 系统标签 • 自定义标签 • 基于标签匹配(to) • 系统标签 • 自定义标签 常用限 流用法 matchLabels Exclusion matching26/总页数 治理策略 & 高可用 • 微服务高可用设计手段 - 熔断27/总页数0 码力 | 38 页 | 1.38 MB | 6 月前3
SOFAMOSN持续演进路径及实践分享日志操作异步化&多次合 并 Ø 基于RCU的高性能配置更 新安全 & 可观察性 0.1.0 0.2.0 0.3.0 0.4.0 Ø mTLS支持 Ø 支持inspector探测 Ø TLS扩展支持,支持自定义 证书获取 Ø RBAC Ø Tracing框架,已支持 SOFA Tracer Ø Metrics扩展,已支持 prometheus Ø 支持Mixer filter Ø 平滑升级迁移支持metrics 通过中间件通道对应用推送 MOSN调用地址 ü 通过扩展cluster类型的方式 动态获取配置中心后端 ü MOSN出向路由基于明确的 服务依赖关系生成 ü 服务通过 id:version 定义 ü 适用于SOA化服务,标准微 服务 ü 适用于跨语言通信的场景蚂蚁落地 – 复杂路由 ü 基于链式路由机制扩展,使 用router match,subset等 开源能力实现 ü 适配蚂蚁三地五中心机房部0 码力 | 29 页 | 7.03 MB | 6 月前3
严选 ServiceMesh 实践04.服务监控 • 借助APM的能力 • 发现异常调用链 • 分析请求来源及去向 06.问题定位与诊断 • 服务元数据定义:服务等级、服务集群、服 务器规格及环境 • 服务地图:可视化的服务关系,如业务拓扑、 服务依赖拓扑,集群视图 01.服务定义 • 限流、资源隔离、熔断、降级等配置 • 负载均衡:流量调配、分流、切流量等 • 服务路由 • 访问控制配置 03.调用控制0 码力 | 25 页 | 2.07 MB | 6 月前3
Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展方案二:在Envoy中 bypass TCP 流量 -不需要对应用进行改造,但Envoy要具备区分TCP和 HTTP流量的能力,需对Envoy进行改造 改造方案: Ø Envoy侧:通过一个自定义的envoy listener filter区分HTTP 和非HTTP的TCP流量 Ø Pilot侧:修改Pilot下发的LDS配置,将TCP流量转到一个指 定的filter chain 处理,通过tcp_proxy 可在一个TCP请求没有对应的TCP服务,并且端口和HTTP服务没有冲突的情况下, TCP请求会被缺省发送到原始目的地。 遗留问题: 端口冲突的情况下,TCP请求将会被丢弃,导致客户端请求失败。 长期演进方案:通过自定义Envoy Filter扩展Service Mesh对应用层协议的处理能力产品化增强:异步通信的流量管理 Service Mesh Service V1 Service V1 Service0 码力 | 27 页 | 11.99 MB | 6 月前3
共 18 条
- 1
- 2













