 02 TiDB Operator 架构与实现 付业成TiDB Operator: Design & Implemention Presented by Yecheng Fu (@cofyc) PingCAP.com Agenda ● TiDB Operator 简介 ● 扩展 Kubernetes 的几种方式 ● TiDB Operator 实现 TiDB Operator 是什么 PingCAP.com Cloud Native Scaling - Handle network, hardware failures, etc. - Backup/Restore/Data migration - ... TiDB Operator TiDB PingCAP.com Kubernetes Pattern - Declarative Model - 用户描述自己的期望,提交给 Kubernetes API Server implemented TiDB Operator Kubernetes Pattern - Declarative Model PingCAP.com Operator Pattern - Extending Kubernetes TiDB Operator TiDB PD API Kubernetes API PingCAP.com Operator Pattern - Custom0 码力 | 47 页 | 1.73 MB | 6 月前3 02 TiDB Operator 架构与实现 付业成TiDB Operator: Design & Implemention Presented by Yecheng Fu (@cofyc) PingCAP.com Agenda ● TiDB Operator 简介 ● 扩展 Kubernetes 的几种方式 ● TiDB Operator 实现 TiDB Operator 是什么 PingCAP.com Cloud Native Scaling - Handle network, hardware failures, etc. - Backup/Restore/Data migration - ... TiDB Operator TiDB PingCAP.com Kubernetes Pattern - Declarative Model - 用户描述自己的期望,提交给 Kubernetes API Server implemented TiDB Operator Kubernetes Pattern - Declarative Model PingCAP.com Operator Pattern - Extending Kubernetes TiDB Operator TiDB PD API Kubernetes API PingCAP.com Operator Pattern - Custom0 码力 | 47 页 | 1.73 MB | 6 月前3
 Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践Operator Pattern:用 Go 扩展 K8s 的最佳实践 吴学强 ApeCloud KubeBlocks Maintainer & 研发总监 目 录 认识我们 00 什么是 Operator 01 Operator 基础模型 02 Operator 最佳实践 03 我们是谁 云猿生(ApeCloud)是一家提供数据库内核与管理平台的基 础软件开发商. KubeBlocks 从被收购到卷王(si) 回到初(qi)心(dian) KubeBlocks Maintainer & 研发总监 free6om 什么是 Operator 第一部分 Operator 前世今生 TPR Operator CRD Operator Pattern 2015.11 2016.12 2017.12 Now K8s 1.1 版本中正式推出 TPR (ThirdPartyResource),首次尝 K8s API 的扩展性问题, 但存在诸多问题,Alpha 阶段既 夭折 CoreOS 提出 Operator 概念,用 于管理和运行基于应用程序领 域的复杂有状态应用程序。 给出了用 TPR + controller- runtime 早期版本的 sample: etcd operator K8s 1.9 版本发布,CRD进入 beta 阶段并正式取代 TPR; controller-runtime0 码力 | 21 页 | 3.06 MB | 9 月前3 Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践Operator Pattern:用 Go 扩展 K8s 的最佳实践 吴学强 ApeCloud KubeBlocks Maintainer & 研发总监 目 录 认识我们 00 什么是 Operator 01 Operator 基础模型 02 Operator 最佳实践 03 我们是谁 云猿生(ApeCloud)是一家提供数据库内核与管理平台的基 础软件开发商. KubeBlocks 从被收购到卷王(si) 回到初(qi)心(dian) KubeBlocks Maintainer & 研发总监 free6om 什么是 Operator 第一部分 Operator 前世今生 TPR Operator CRD Operator Pattern 2015.11 2016.12 2017.12 Now K8s 1.1 版本中正式推出 TPR (ThirdPartyResource),首次尝 K8s API 的扩展性问题, 但存在诸多问题,Alpha 阶段既 夭折 CoreOS 提出 Operator 概念,用 于管理和运行基于应用程序领 域的复杂有状态应用程序。 给出了用 TPR + controller- runtime 早期版本的 sample: etcd operator K8s 1.9 版本发布,CRD进入 beta 阶段并正式取代 TPR; controller-runtime0 码力 | 21 页 | 3.06 MB | 9 月前3
 Pipeline Architectures in C++: Overloaded Pipe Operator | and Its Monadic Operationsoverview of what the poster reports on. Title: Pipeline architectures in C++: overloaded pipe operator | std::expected and its monadic operations Brief overview: Functional programming in C++ is the overloaded pipe operator. In this poster I show how to implement a custom pipeline framework that employs std::expected, available since C++23. An overloaded custom pipe operator | will be presented my book about C++ [1][3]. One of the topics was to describe the behavior of the overloaded pipe operator | in std::ranges. I came across Ankur's Satle lecture [4] and decided to expand on this topic –0 码力 | 3 页 | 422.24 KB | 6 月前3 Pipeline Architectures in C++: Overloaded Pipe Operator | and Its Monadic Operationsoverview of what the poster reports on. Title: Pipeline architectures in C++: overloaded pipe operator | std::expected and its monadic operations Brief overview: Functional programming in C++ is the overloaded pipe operator. In this poster I show how to implement a custom pipeline framework that employs std::expected, available since C++23. An overloaded custom pipe operator | will be presented my book about C++ [1][3]. One of the topics was to describe the behavior of the overloaded pipe operator | in std::ranges. I came across Ankur's Satle lecture [4] and decided to expand on this topic –0 码力 | 3 页 | 422.24 KB | 6 月前3
 File I/O for Game Developers: Past, Present, and FutureRAM, more disk capacity • Moving data into and out of RAM • File IO in C++ from fstream to the OS SDK • The 64-bit address spaceSUB-MEGABYTE DAYS • Why do we have files?SUB- MEGABYTE DAYSSUB- MEGABYTE size, size_t count, std::FILE* stream);MOVING DATA INTO AND OUT OF RAM • fstream • operator>>(char&), operator<<(char const&) • fgetc(FILE*), fputc(FILE*)MOVING DATA INTO AND OUT OF RAM struct staff_member basic_istream& operator>>(staff_member&); basic_ostream& operator<<(staff_member const&);MOVING DATA INTO AND OUT OF RAM operator();MOVING DATA INTO AND OUT OF RAM operator(); operator[];MOVING DATA0 码力 | 64 页 | 2.69 MB | 6 月前3 File I/O for Game Developers: Past, Present, and FutureRAM, more disk capacity • Moving data into and out of RAM • File IO in C++ from fstream to the OS SDK • The 64-bit address spaceSUB-MEGABYTE DAYS • Why do we have files?SUB- MEGABYTE DAYSSUB- MEGABYTE size, size_t count, std::FILE* stream);MOVING DATA INTO AND OUT OF RAM • fstream • operator>>(char&), operator<<(char const&) • fgetc(FILE*), fputc(FILE*)MOVING DATA INTO AND OUT OF RAM struct staff_member basic_istream& operator>>(staff_member&); basic_ostream& operator<<(staff_member const&);MOVING DATA INTO AND OUT OF RAM operator();MOVING DATA INTO AND OUT OF RAM operator(); operator[];MOVING DATA0 码力 | 64 页 | 2.69 MB | 6 月前3
 Nacos架构&原理
架构 < 18 用户层  OpenAPI:暴露标准 Rest 风格 HTTP 接口,简单易用,方便多语言集成。  Console:易用控制台,做服务管理、配置管理等操作。  SDK:多语言 SDK,目前几乎支持所有主流编程语言。  Agent:Sidecar 模式运行,通过标准 DNS 协议与业务解耦。  CLI:命令行对产品进行轻量化管理,像 git ⼀样好用。 业务层 插件机制:实现三个模块可分可合能力,实现扩展点 SPI 机制,用于扩展自己公司定制。  事件机制:实现异步化事件通知,SDK 数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。  日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。  回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。  寻址模式:解决 Server Server IP 直连,域名访问,Nameserver 寻址、广播等多种寻址模式,需要可 扩展。  推送通道:解决 Server 与存储、Server 间、Server 与 SDK 间高效通信问题。  容量管理:管理每个租户,分组下的容量,防止存储被写爆,影响服务可用性。  流量管理:按照租户,分组等多个维度对请求频率,长链接个数,报文大小,请求流控进行控制。  缓存机制:容灾目录,本地缓存,Server0 码力 | 326 页 | 12.83 MB | 9 月前3 Nacos架构&原理
架构 < 18 用户层  OpenAPI:暴露标准 Rest 风格 HTTP 接口,简单易用,方便多语言集成。  Console:易用控制台,做服务管理、配置管理等操作。  SDK:多语言 SDK,目前几乎支持所有主流编程语言。  Agent:Sidecar 模式运行,通过标准 DNS 协议与业务解耦。  CLI:命令行对产品进行轻量化管理,像 git ⼀样好用。 业务层 插件机制:实现三个模块可分可合能力,实现扩展点 SPI 机制,用于扩展自己公司定制。  事件机制:实现异步化事件通知,SDK 数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。  日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。  回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。  寻址模式:解决 Server Server IP 直连,域名访问,Nameserver 寻址、广播等多种寻址模式,需要可 扩展。  推送通道:解决 Server 与存储、Server 间、Server 与 SDK 间高效通信问题。  容量管理:管理每个租户,分组下的容量,防止存储被写爆,影响服务可用性。  流量管理:按照租户,分组等多个维度对请求频率,长链接个数,报文大小,请求流控进行控制。  缓存机制:容灾目录,本地缓存,Server0 码力 | 326 页 | 12.83 MB | 9 月前3
 Service Mesh 在『路口』的产品思考与实践业务逻辑 SDK 协议编解码 服务发现 负载均衡 熔断限流 服务路由 …… 混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 每次升级都要重新发布应用 升级成本高 版本碎片化严重 中间件演进困难6/39 微服务治理与业务逻辑解耦 Part 1: 为什么需要Service Mesh? Service 业务逻辑 SDK 协议编解码 熔断限流 服务路由 …… Service 业务逻辑 轻量级 SDK 协议编解码 Sidecar (MOSN) + 服务发现 负载均衡 熔断限流 服务路由 …… - 专注业务实现 - 无需感知Mesh - 专注服务间通讯和相 关能力 - 与业务逻辑无关 将SDK客户端 的功能剥离 混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 也有各种功能, 每次升级都要重新发布应用 业务进程专注于业务逻辑 SDK 中的大部分功能, 拆解为独立进程, 以 Sidecar 的模式运行 将服务治理能力下沉到基础设施,实现独立演进,透明升级7/39 异构系统统一治理 Part 1: 为什么需要Service Mesh? 多语言、多协议 图片来源:https://www.redhat.com/en/topic0 码力 | 40 页 | 15.86 MB | 6 月前3 Service Mesh 在『路口』的产品思考与实践业务逻辑 SDK 协议编解码 服务发现 负载均衡 熔断限流 服务路由 …… 混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 每次升级都要重新发布应用 升级成本高 版本碎片化严重 中间件演进困难6/39 微服务治理与业务逻辑解耦 Part 1: 为什么需要Service Mesh? Service 业务逻辑 SDK 协议编解码 熔断限流 服务路由 …… Service 业务逻辑 轻量级 SDK 协议编解码 Sidecar (MOSN) + 服务发现 负载均衡 熔断限流 服务路由 …… - 专注业务实现 - 无需感知Mesh - 专注服务间通讯和相 关能力 - 与业务逻辑无关 将SDK客户端 的功能剥离 混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 也有各种功能, 每次升级都要重新发布应用 业务进程专注于业务逻辑 SDK 中的大部分功能, 拆解为独立进程, 以 Sidecar 的模式运行 将服务治理能力下沉到基础设施,实现独立演进,透明升级7/39 异构系统统一治理 Part 1: 为什么需要Service Mesh? 多语言、多协议 图片来源:https://www.redhat.com/en/topic0 码力 | 40 页 | 15.86 MB | 6 月前3
 Conan 2.6 Documentationinclude versions like 1.0, 1.2.3 and 1.9, but will not include 0.3, 2.0 or 2.1 versions. The tilde ~ operator can be used to define an “approximately” equal version range. requires = "pkg/[~1]" will include Likewise requires = "pkg/[~2.5]" will include 2.5.0 and 2.5.3, but exclude 2.1, 2.7, 2.8. The caret ^ operator is very similar to the tilde, but allowing variability over the last defined digit. requires = "pkg/[^1 51, but will exclude 1.0, 2, 2.0. It is also possible to apply multiple conditions with the OR operator, like requires = "pkg/[>1 <2.0 || ^3.2]" but this kind of complex expressions is not recommended0 码力 | 777 页 | 4.91 MB | 10 月前3 Conan 2.6 Documentationinclude versions like 1.0, 1.2.3 and 1.9, but will not include 0.3, 2.0 or 2.1 versions. The tilde ~ operator can be used to define an “approximately” equal version range. requires = "pkg/[~1]" will include Likewise requires = "pkg/[~2.5]" will include 2.5.0 and 2.5.3, but exclude 2.1, 2.7, 2.8. The caret ^ operator is very similar to the tilde, but allowing variability over the last defined digit. requires = "pkg/[^1 51, but will exclude 1.0, 2, 2.0. It is also possible to apply multiple conditions with the OR operator, like requires = "pkg/[>1 <2.0 || ^3.2]" but this kind of complex expressions is not recommended0 码力 | 777 页 | 4.91 MB | 10 月前3
 Conan 2.10 Documentationinclude versions like 1.0, 1.2.3 and 1.9, but will not include 0.3, 2.0 or 2.1 versions. The tilde ~ operator can be used to define an “approximately” equal version range. requires = "pkg/[~1]" will include Likewise requires = "pkg/[~2.5]" will include 2.5.0 and 2.5.3, but exclude 2.1, 2.7, 2.8. The caret ^ operator is very similar to the tilde, but allowing variability over the last defined digit. requires = "pkg/[^1 51, but will exclude 1.0, 2, 2.0. It is also possible to apply multiple conditions with the OR operator, like requires = "pkg/[>1 <2.0 || ^3.2]" but this kind of complex expressions is not recommended0 码力 | 803 页 | 5.02 MB | 10 月前3 Conan 2.10 Documentationinclude versions like 1.0, 1.2.3 and 1.9, but will not include 0.3, 2.0 or 2.1 versions. The tilde ~ operator can be used to define an “approximately” equal version range. requires = "pkg/[~1]" will include Likewise requires = "pkg/[~2.5]" will include 2.5.0 and 2.5.3, but exclude 2.1, 2.7, 2.8. The caret ^ operator is very similar to the tilde, but allowing variability over the last defined digit. requires = "pkg/[^1 51, but will exclude 1.0, 2, 2.0. It is also possible to apply multiple conditions with the OR operator, like requires = "pkg/[>1 <2.0 || ^3.2]" but this kind of complex expressions is not recommended0 码力 | 803 页 | 5.02 MB | 10 月前3
 Conan 2.9 Documentationinclude versions like 1.0, 1.2.3 and 1.9, but will not include 0.3, 2.0 or 2.1 versions. The tilde ~ operator can be used to define an “approximately” equal version range. requires = "pkg/[~1]" will include Likewise requires = "pkg/[~2.5]" will include 2.5.0 and 2.5.3, but exclude 2.1, 2.7, 2.8. The caret ^ operator is very similar to the tilde, but allowing variability over the last defined digit. requires = "pkg/[^1 51, but will exclude 1.0, 2, 2.0. It is also possible to apply multiple conditions with the OR operator, like requires = "pkg/[>1 <2.0 || ^3.2]" but this kind of complex expressions is not recommended0 码力 | 795 页 | 4.99 MB | 10 月前3 Conan 2.9 Documentationinclude versions like 1.0, 1.2.3 and 1.9, but will not include 0.3, 2.0 or 2.1 versions. The tilde ~ operator can be used to define an “approximately” equal version range. requires = "pkg/[~1]" will include Likewise requires = "pkg/[~2.5]" will include 2.5.0 and 2.5.3, but exclude 2.1, 2.7, 2.8. The caret ^ operator is very similar to the tilde, but allowing variability over the last defined digit. requires = "pkg/[^1 51, but will exclude 1.0, 2, 2.0. It is also possible to apply multiple conditions with the OR operator, like requires = "pkg/[>1 <2.0 || ^3.2]" but this kind of complex expressions is not recommended0 码力 | 795 页 | 4.99 MB | 10 月前3
 Conan 2.7 Documentationinclude versions like 1.0, 1.2.3 and 1.9, but will not include 0.3, 2.0 or 2.1 versions. The tilde ~ operator can be used to define an “approximately” equal version range. requires = "pkg/[~1]" will include Likewise requires = "pkg/[~2.5]" will include 2.5.0 and 2.5.3, but exclude 2.1, 2.7, 2.8. The caret ^ operator is very similar to the tilde, but allowing variability over the last defined digit. requires = "pkg/[^1 51, but will exclude 1.0, 2, 2.0. It is also possible to apply multiple conditions with the OR operator, like requires = "pkg/[>1 <2.0 || ^3.2]" but this kind of complex expressions is not recommended0 码力 | 779 页 | 4.93 MB | 10 月前3 Conan 2.7 Documentationinclude versions like 1.0, 1.2.3 and 1.9, but will not include 0.3, 2.0 or 2.1 versions. The tilde ~ operator can be used to define an “approximately” equal version range. requires = "pkg/[~1]" will include Likewise requires = "pkg/[~2.5]" will include 2.5.0 and 2.5.3, but exclude 2.1, 2.7, 2.8. The caret ^ operator is very similar to the tilde, but allowing variability over the last defined digit. requires = "pkg/[^1 51, but will exclude 1.0, 2, 2.0. It is also possible to apply multiple conditions with the OR operator, like requires = "pkg/[>1 <2.0 || ^3.2]" but this kind of complex expressions is not recommended0 码力 | 779 页 | 4.93 MB | 10 月前3
共 332 条
- 1
- 2
- 3
- 4
- 5
- 6
- 34














 
 