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 | 6 月前3
Operator 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-0 码力 | 21 页 | 3.06 MB | 9 月前3
13 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 | 6 月前3
TiDB 与 TiFlash扩展——向真 HTAP 平台前进 韦万0 码力 | 45 页 | 2.75 MB | 6 月前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 月前3
Python 3.12 正则表达式 HOWTO 标记为字母的所有字符。通过在编译正则表达式时提供 re.ASCII 标志,可以在 str 表达式中使用较为狭 窄的 \w 定义。 以下为特殊序列的不完全列表。有关 Unicode 字符串正则表达式的序列和扩展类定义的完整列表,参见 标准库参考中 正则表达式语法的最后一部分。通常,Unicode 版本的字符类会匹配 Unicode 数据库的相应 类别中的任何字符。 \d 匹配任何十进制数字,等价于字符类 [0-9] 。 \D 参数,用于启用各种特殊功能和语法变体。我们稍后将介绍可用 的设置,但现在只需一个例子 >>> p = re.compile('ab*', re.IGNORECASE) 正则作为字符串传递给 re.compile() 。正则被处理为字符串,因为正则表达式不是核心 Python 语言的 一部分,并且没有创建用于表达它们的特殊语法。(有些应用程序根本不需要正则,因此不需要通过包含 它们来扩展语言规范。)相反,re 它们来扩展语言规范。)相反,re 模块只是 Python 附带的 C 扩展模块,就类似于 socket 或 zlib 模块。 将正则放在字符串中可以使 Python 语言更简单,但有一个缺点是下一节的主题。 3.2 反斜杠灾难 如前所述,正则表达式使用反斜杠字符 ('\') 来表示特殊形式或允许使用特殊字符而不调用它们的特殊 含义。这与 Python 在字符串文字中用于相同目的的相同字符的使用相冲突。 假设你想要编写一个与字符串0 码力 | 17 页 | 404.43 KB | 11 月前3
Python 3.12 正则表达式 HOWTO 标记为字母的所有字符。通过在编译正则表达式时提供 re.ASCII 标志,可以在 str 表达式中使用较为狭 窄的 \w 定义。 以下为特殊序列的不完全列表。有关 Unicode 字符串正则表达式的序列和扩展类定义的完整列表,参见 标准库参考中 正则表达式语法的最后一部分。通常,Unicode 版本的字符类会匹配 Unicode 数据库的相应 类别中的任何字符。 \d 匹配任何十进制数字,等价于字符类 [0-9] 。 \D 参数,用于启用各种特殊功能和语法变体。我们稍后将介绍可用 的设置,但现在只需一个例子 >>> p = re.compile('ab*', re.IGNORECASE) 正则作为字符串传递给 re.compile() 。正则被处理为字符串,因为正则表达式不是核心 Python 语言的 一部分,并且没有创建用于表达它们的特殊语法。(有些应用程序根本不需要正则,因此不需要通过包含 它们来扩展语言规范。)相反,re 它们来扩展语言规范。)相反,re 模块只是 Python 附带的 C 扩展模块,就类似于 socket 或 zlib 模块。 将正则放在字符串中可以使 Python 语言更简单,但有一个缺点是下一节的主题。 3.2 反斜杠灾难 如前所述,正则表达式使用反斜杠字符 ('\') 来表示特殊形式或允许使用特殊字符而不调用它们的特殊 含义。这与 Python 在字符串文字中用于相同目的的相同字符的使用相冲突。 假设你想要编写一个与字符串0 码力 | 17 页 | 404.43 KB | 11 月前3
Python 3.13 正则表达式 HOWTO 标记为字母的所有字符。通过在编译正则表达式时提供 re.ASCII 标志,可以在 str 表达式中使用较为狭 窄的 \w 定义。 以下为特殊序列的不完全列表。有关 Unicode 字符串正则表达式的序列和扩展类定义的完整列表,参见 标准库参考中 正则表达式语法的最后一部分。通常,Unicode 版本的字符类会匹配 Unicode 数据库的相应 类别中的任何字符。 \d 匹配任何十进制数字,等价于字符类 [0-9] 。 \D 参数,用于启用各种特殊功能和语法变体。我们稍后将介绍可用 的设置,但现在只需一个例子 >>> p = re.compile('ab*', re.IGNORECASE) 正则作为字符串传递给 re.compile() 。正则被处理为字符串,因为正则表达式不是核心 Python 语言的 一部分,并且没有创建用于表达它们的特殊语法。(有些应用程序根本不需要正则,因此不需要通过包含 它们来扩展语言规范。)相反,re 它们来扩展语言规范。)相反,re 模块只是 Python 附带的 C 扩展模块,就类似于 socket 或 zlib 模块。 将正则放在字符串中可以使 Python 语言更简单,但有一个缺点是下一节的主题。 3.2 反斜杠灾难 如前所述,正则表达式使用反斜杠字符 ('\') 来表示特殊形式或允许使用特殊字符而不调用它们的特殊 含义。这与 Python 在字符串文字中用于相同目的的相同字符的使用相冲突。 假设你想要编写一个与字符串0 码力 | 17 页 | 403.17 KB | 11 月前3
Python 3.13 正则表达式 HOWTO 标记为字母的所有字符。通过在编译正则表达式时提供 re.ASCII 标志,可以在 str 表达式中使用较为狭 窄的 \w 定义。 以下为特殊序列的不完全列表。有关 Unicode 字符串正则表达式的序列和扩展类定义的完整列表,参见 标准库参考中 正则表达式语法的最后一部分。通常,Unicode 版本的字符类会匹配 Unicode 数据库的相应 类别中的任何字符。 \d 匹配任何十进制数字,等价于字符类 [0-9] 。 \D 参数,用于启用各种特殊功能和语法变体。我们稍后将介绍可用 的设置,但现在只需一个例子 >>> p = re.compile('ab*', re.IGNORECASE) 正则作为字符串传递给 re.compile() 。正则被处理为字符串,因为正则表达式不是核心 Python 语言的 一部分,并且没有创建用于表达它们的特殊语法。(有些应用程序根本不需要正则,因此不需要通过包含 它们来扩展语言规范。)相反,re 它们来扩展语言规范。)相反,re 模块只是 Python 附带的 C 扩展模块,就类似于 socket 或 zlib 模块。 将正则放在字符串中可以使 Python 语言更简单,但有一个缺点是下一节的主题。 3.2 反斜杠灾难 如前所述,正则表达式使用反斜杠字符 ('\') 来表示特殊形式或允许使用特殊字符而不调用它们的特殊 含义。这与 Python 在字符串文字中用于相同目的的相同字符的使用相冲突。 假设你想要编写一个与字符串0 码力 | 17 页 | 403.16 KB | 11 月前3
Python 3.10.15 正则表达式 HOWTO 记为字母的所有字符。通过在编译正则表达式时提供 re.ASCII 标志,可以在 str 表达式中使用较为狭窄的 \w 定义。 以下为特殊序列的不完全列表。有关 Unicode 字符串正则表达式的序列和扩展类定义的完整列表,参见标准 库参考中 正则表达式语法的最后一部分。通常,Unicode 版本的字符类会匹配 Unicode 数据库的相应类别中 的任何字符。 \d 匹配任何十进制数字,等价于字符类 [0-9] 。 \D 匹配任何非数字字符,等价于字符类 参数,用于启用各种特殊功能和语法变体。我们稍后将介绍可用的 设置,但现在只需一个例子 >>> p = re.compile('ab*', re.IGNORECASE) 正则作为字符串传递给 re.compile() 。正则被处理为字符串,因为正则表达式不是核心 Python 语言的一 部分,并且没有创建用于表达它们的特殊语法。(有些应用程序根本不需要正则,因此不需要通过包含它们 来扩展语言规范。)相反,re 来扩展语言规范。)相反,re 模块只是 Python 附带的 C 扩展模块,就类似于 socket 或 zlib 模块。 将正则放在字符串中可以使 Python 语言更简单,但有一个缺点是下一节的主题。 4 3.2 反斜杠灾难 如前所述,正则表达式使用反斜杠字符 ('\') 来表示特殊形式或允许使用特殊字符而不调用它们的特殊含 义。这与 Python 在字符串文字中用于相同目的的相同字符的使用相冲突。 假设你想要编写一个与字符串0 码力 | 18 页 | 391.85 KB | 11 月前3
共 132 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14













