SOFAMesh的通用协议扩展
SOFA MESH 的通用协议扩展 Service Mesh Meetup #3 深圳站 邵俊雄(熊啸) 2018.08.25AGENDA • SOFA MESH 介绍 • SERVICE MESH 落地的问题 • SOFA MESH 的通用落地方案 • DNS 服务寻址方案 • X-PROTOCOL 通用协议 • 问答SOFA MESH • 从 ISTIO 克隆并保持同步更新 • 使用 寻址 • 使用 iptables/ebpf 透明地路由所有网络流量 • 服务治理规则,服务,实例和配置都是 Kubernetes 资源 • 使用 Controller Pattern 通过 CRD 扩展新的能力 • …MESH 落地碰到的问题 • 客户端服务发现与负载均衡无法与 ISTIO 一起工作 • ENVOY 不支持微服务使用的通信协议 • RPC 服务使用的接口,方法,参数语义无法匹配 ISTIO Kubernetes 服务 RPC Service 的域名就是其接口X-PROTOCOL 通用协议扩展目标 • Kubernetes Native,高性能,低侵入性的通用 Mesh 落地方案 • 支持新 RPC 框架和通信协议低成本接入 • 协议扩展对 Mesh 控制平面透明化 • 允许对协议多层次,插件化的扩展X-PROTOCOL 配置SOFA MOSN 调用流程 Upstream protocol0 码力 | 28 页 | 4.73 MB | 5 月前3curvefs client删除文件和目录功能设计
© XXX Page 1 of 15 curvefs client 删除文件和目录功能设计© XXX Page 2 of 15 背景 相关调研 moosefs chubaofs 方案设计思考 1.Trash机制是实现1个(类似chubaofs),还是2个(类似moosefs)? 2. Trash放在哪里? 3. 是否需要做session机制(在metaserver打开),来维护inode的打开情况? ent崩溃) 相关调研 moosefs moosefs 未对接forget moosefs 实现了在mds上open,因此删除时可以判断文件是否被打开 moosefs使用了两种机制,来实现上述功能,分别是trash机制和reserve机制(最新版本叫sustained),两种机制如下: trash机制: 对于所有TYPE_FILE类型的文件在删除时, ,则不会立即将该文件彻底删除,而是将 inode的打开情况? 经讨论,需要实现session机制,以应对打开文件被另一个进程删除的场景的场景。 方案设计 经小组会议讨论,决定使用trash + session机制去实现上述功能。 ulink流程如下:© XXX Page 10 of 15© XXX Page 11 of 15 1. 2. 3. 1. 2. 3. 4. 5. Trash机制:0 码力 | 15 页 | 325.42 KB | 5 月前3Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践
Operator Pattern:用 Go 扩展 K8s 的最佳实践 吴学强 ApeCloud KubeBlocks Maintainer & 研发总监 目 录 认识我们 00 什么是 Operator 01 Operator 基础模型 02 Operator 最佳实践 03 我们是谁 云猿生(ApeCloud)是一家提供数据库内核与管理平台的基 础软件开发商. KubeBlocks Operator Pattern 2015.11 2016.12 2017.12 Now K8s 1.1 版本中正式推出 TPR (ThirdPartyResource),首次尝 试解决 K8s API 的扩展性问题, 但存在诸多问题,Alpha 阶段既 夭折 CoreOS 提出 Operator 概念,用 于管理和运行基于应用程序领 域的复杂有状态应用程序。 给出了用 TPR + controller- 表达式运行定时任务的对象叫 CronJob,本次实验会用 Kubebuilder 构建一个 Operator,重新实现 CronJob 的 功能(实验链接)。本次实验目标: 1. 通过实验,对 Operator 有一个真实体感,加深基础知识理解 2. 实验中覆盖 Kubebuilder 框架大部分功能特性,以便对 kubebuilder 有一个全面熟悉和了解 3. 实验以实现一个生产环境可用的 Operator 为目标,以便整个过程更加接近实际的0 码力 | 21 页 | 3.06 MB | 9 月前313 Istio 流量管理原理与协议扩展 赵化冰
Istio 流量管理原理与协议扩展 赵化冰 赵化冰 腾讯云 服务网格团队 https://zhaohuabing.com Service Mesh Service Mesh Layer 处理服务间通信(主要是七层通信)的云原生基础设施层: Service Mesh 将各个服务中原来使用 SDK 实现的七层通信相关功能抽象 出来,使用一个专用层次来实现,Service Mesh 对应用透明,因此应用 Istio 支持的七层协议非常有限:HTTP 1.1、 HTTP2、 gRPC 其余协议只能在四层进行处理(Thrift、Redis 等其他七层协议的控制面支持非常有限) 11 Istio 协议扩展:控制面和数据面需要进行的改动 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews-route xDS 配置下发 优点: • 控制面改动小,可以快速实现对新协议的支持 问题: • Pilot 目前缺少一个良好的协议扩展机制 • Pilot 需要理解 Envoy filter 中协议特定的知识 • Pilot 代码中维护众多七层协议的代价较大 12 Istio 协议扩展:常见七层协议的路由 Protocol Destination service Parameters could be0 码力 | 20 页 | 11.31 MB | 5 月前3TiDB 与 TiFlash扩展——向真 HTAP 平台前进 韦万
0 码力 | 45 页 | 2.75 MB | 5 月前3基于 Kubernetes 构建标准可扩展的云原生应用管理平台-孙健波、周正喜
1 阿里云 — 云原生应用平台团队 孙健波/周正喜 基于 Kubernetes 构建标准可扩展的云原生应用管理平台 2 3 有奖品? 我的工作内容? • 构建云原生应用管理平台 @ 阿里巴巴 Kubernetes 工程师 PaaS 工程师 基础设施运维工程师 … YAML 工程师 我们是如何构建的? PaaS Serverless Operator Platform 研发与运维人员日益增长的应用管理诉求 传统 PaaS 有限的、不可扩展的专有API 与能力 K8s 生态“无限”的应用基础设施能力 不停构建“PaaS”平台不是“银弹” 与其 基于 K8s 构建平台 不如 把 K8s 变成面向开发者的平台 构建一个具备“以应用为中心的 API 抽象”、“用户友好” 且“高度可扩展”的 K8s! 以应用为中心的 API 抽象 • 应用的工作负载和运维能力的抽象程度越高,用户体验越好 route $ rio up riofile 抽象程度 vs 可扩展性 • 随着抽象程度的增高可以显著降低学习曲线,但是却不得不在扩展性上妥协 抽象程度 可扩展性 高 低 低 高 CRD + Controllers = Everything 通过编写遵循严格限制 的 Buildpack 和 Addon 进行扩展 没有直接扩展 工作负载 和 运维能力 的途径 通过 annotations0 码力 | 27 页 | 3.60 MB | 9 月前3Nacos架构&原理
王建伟(正己) 卿亮 许进 7 > 推荐序 推荐序 阿里巴巴合伙人 - 蒋江伟(小邪) 随着企业加速数字化升级,越来越多的系统架构采用了分布式的架构,主要目的是为了解决集中化 和互联网化所带来的架构扩展性和面对海量用户请求的技术挑战。这里面其中有⼀个关键点是软负 载。因为整个分布式架构需要有⼀个软负载来协作各个节点之间的服务在线离线状态、数据⼀致性、 以及动态配置数据的推送。这里面最简单的需求 alibba/Sentinel/Seata)组合始终走在前列,引领着微服务领域的发展趋势。Nacos 作为核心引擎 孵化于 2008 年的阿里五彩石项目,自主研发完全可控,经历十多年双 11 洪峰考验,沉淀了高性能、 高可用、可扩展的核心能力,2018 年开源后引起了开发者的广泛关注和大量使用。本书也将介绍 Nacos 偏 AP 分布式系统的设计、全异步事件驱动的高性能架构和面向失败设计的高可用设计理念 等。相信开发者阅读后不仅可以更深入了解 Diamond、Configserver、Vipserver,无论在架构先进性、功能丰富度以及性能方面均 有非常出色的积累,2018 年初中间件团队决定把这⼀领域的技术进行重新梳理并开源,这就是本书 介绍的主角 Nacos,经过三年时间的发展,Nacos 已经被大量开发者和企业客户用于生产环境,本 书详尽介绍了 Nacos 的架构设计、功能使用和最佳实践,推荐分布式应用的开发人员、运维人员和 对该领域感兴趣的技术爱好者阅读。0 码力 | 326 页 | 12.83 MB | 9 月前3Python 标准库参考指南 3.10.15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 8.15.1 异常 . . . . . . . . . . . . . random --- 生成伪随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 9.6.1 簿记功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 9.6.2 用于字节数据的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 11.7 glob --- Unix 风格路径名模式扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 11.8 fnmatch --- Unix 文件名模式匹配0 码力 | 2072 页 | 10.39 MB | 9 月前3Python 标准库参考指南 3.10.15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 8.15.1 异常 . . . . . . . . . . . --- 生成伪随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 9.6.1 簿记功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 9.6.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 11.7 glob --- Unix 风格路径名模式扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 11.8 fnmatch --- Unix 文件名模式匹配0 码力 | 2207 页 | 10.45 MB | 9 月前3Python 标准库参考指南 3.8.20
生成临时文件和目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 11.7 glob --- Unix 风格路径名模式扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 11.8 fnmatch --- Unix 文件名模式匹配 字符的工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 16.13 curses.panel --- curses 的 panel 栈扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 16.14 platform --- 获取底层平台的标识数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117 21.6 urllib.request --- 用于打开 URL 的可扩展库 . . . . . . . . . . . . . . . . . . . . . . . . 1117 21.7 urllib.response --- urllib 使用的 Response0 码力 | 1927 页 | 9.69 MB | 9 月前3
共 175 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18