 Service Mesh落地之后_为sidecar注入灵魂 - 周群力1 周群力 Co-founder of Layotto Service Mesh 落地之后: 为 sidecar 注入灵魂 2 • Multi Runtime: 从 sidecar 到机甲 • Runtime API: 解决跨云部署和厂商绑定难题 • WebAssembly in sidecar: 让业务逻辑跑在sidecar里 • Service Mesh 回顾 • 展望2022:待解决的问题 Runtime: 所有中间件下沉: 业务逻辑和基础设施分离 多语言治理 同一套代码移植到不同组件 59 Service Mesh 落地之后, 架构演进的思路是? 60 为 sidecar 注入 灵魂 61 终 社区广告: 来了就是朋友 62 https://github.com/mosn/layotto 63 微信扫码进群 与五湖四海的开发者们 进行技术交流,探索技术创新0 码力 | 63 页 | 880.85 KB | 1 年前3 Service Mesh落地之后_为sidecar注入灵魂 - 周群力1 周群力 Co-founder of Layotto Service Mesh 落地之后: 为 sidecar 注入灵魂 2 • Multi Runtime: 从 sidecar 到机甲 • Runtime API: 解决跨云部署和厂商绑定难题 • WebAssembly in sidecar: 让业务逻辑跑在sidecar里 • Service Mesh 回顾 • 展望2022:待解决的问题 Runtime: 所有中间件下沉: 业务逻辑和基础设施分离 多语言治理 同一套代码移植到不同组件 59 Service Mesh 落地之后, 架构演进的思路是? 60 为 sidecar 注入 灵魂 61 终 社区广告: 来了就是朋友 62 https://github.com/mosn/layotto 63 微信扫码进群 与五湖四海的开发者们 进行技术交流,探索技术创新0 码力 | 63 页 | 880.85 KB | 1 年前3
 Go Web编程7.2 JSON处理 7.3 正则处理 7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 9.安全与加密 9.1 预防CSRF攻击 9.2 确保输入过滤 9.3 避免XSS攻击 9.4 避免SQL注入 9.5 存储密码 9.6 加密和解密数据 9.7 ookie和植入恶意广告等。 对XSS最佳的防护应该结合以下两种方法:一是验证所有输入数据,有效检测攻击(这个我们前面小节已经有过介绍); 另一个是对所有输出数据进行适当的处理,以防止任何已成功注入的脚本在浏览器端运行。 那么Go里面是怎么做这个有效防护的呢?Go的html/template里面带有下面几个函数可以帮你转义 func HTMLEscape(w io.Writer, b []byte) Query()函数用来直接执行Sql返回Rows结果。 stmt.Exec()函数用来执行stmt准备好的SQL语句 我们可以看到我们传入的参数都是=?对应的数据,这样做的方式可以一定程度上防止SQL注入。 links links 目录 121 上一节: database/sql接口 下一节: 使用SQLite数据库 122 5.3 使用SQLite数据库 5.3 使用SQLite数据库0 码力 | 295 页 | 5.91 MB | 1 年前3 Go Web编程7.2 JSON处理 7.3 正则处理 7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 9.安全与加密 9.1 预防CSRF攻击 9.2 确保输入过滤 9.3 避免XSS攻击 9.4 避免SQL注入 9.5 存储密码 9.6 加密和解密数据 9.7 ookie和植入恶意广告等。 对XSS最佳的防护应该结合以下两种方法:一是验证所有输入数据,有效检测攻击(这个我们前面小节已经有过介绍); 另一个是对所有输出数据进行适当的处理,以防止任何已成功注入的脚本在浏览器端运行。 那么Go里面是怎么做这个有效防护的呢?Go的html/template里面带有下面几个函数可以帮你转义 func HTMLEscape(w io.Writer, b []byte) Query()函数用来直接执行Sql返回Rows结果。 stmt.Exec()函数用来执行stmt准备好的SQL语句 我们可以看到我们传入的参数都是=?对应的数据,这样做的方式可以一定程度上防止SQL注入。 links links 目录 121 上一节: database/sql接口 下一节: 使用SQLite数据库 122 5.3 使用SQLite数据库 5.3 使用SQLite数据库0 码力 | 295 页 | 5.91 MB | 1 年前3
 Go 入门指南(The way to Go)通道、超时和计时器(Ticker) 14.6 协程和恢复(recover) 14.7 新旧模型对比:任务和worker 14.8 惰性生成器的实现 14.9 实现 Futures 模式 第 15 章 网络,模板和网页应用 15.1 tcp服务器 15.2 一个简单的网页服务器 15.3 访问并读取页面 15.4 写一个简单的网页应用 第 16章 常见的陷阱与错误 16.1 误用短声明导致变量覆盖 本书将会从最基础的概念讲起,同时也会讨论一些类似在应用 goroutine 和 channel 时有多少种不同的模式, 如何在 Go 语言中使用谷歌 API,如何操作内存,如何在 Go 语言中进行程序测试和如何使用模板来开发 Web 应 用这些高级概念和技巧。 在本书的第一部分,我们将会讨论 Go 语言的起源(第 1 章),以及如何安装 Go 语言(第 2 章)和开发环境 前言 用更少的代码,更短的编译时间,创建运行更快的程序,享受更多的乐 能够方便完整地查阅 Go 文档。 21. 能够方便地在不同的 Go 环境之间切换。 22. 能够导出不同格式的代码文件,如:PDF,HTML 或格式化后的代码。 23. 针对一些特定的项目有项目模板,如:Web 应用,App Engine 项目,从而能够更快地开始开发工作。 24. 具备代码重构的能力。 25. 集成像 hg 或 git 这样的版本控制工具。 26. 集成 Google App0 码力 | 466 页 | 4.44 MB | 1 年前3 Go 入门指南(The way to Go)通道、超时和计时器(Ticker) 14.6 协程和恢复(recover) 14.7 新旧模型对比:任务和worker 14.8 惰性生成器的实现 14.9 实现 Futures 模式 第 15 章 网络,模板和网页应用 15.1 tcp服务器 15.2 一个简单的网页服务器 15.3 访问并读取页面 15.4 写一个简单的网页应用 第 16章 常见的陷阱与错误 16.1 误用短声明导致变量覆盖 本书将会从最基础的概念讲起,同时也会讨论一些类似在应用 goroutine 和 channel 时有多少种不同的模式, 如何在 Go 语言中使用谷歌 API,如何操作内存,如何在 Go 语言中进行程序测试和如何使用模板来开发 Web 应 用这些高级概念和技巧。 在本书的第一部分,我们将会讨论 Go 语言的起源(第 1 章),以及如何安装 Go 语言(第 2 章)和开发环境 前言 用更少的代码,更短的编译时间,创建运行更快的程序,享受更多的乐 能够方便完整地查阅 Go 文档。 21. 能够方便地在不同的 Go 环境之间切换。 22. 能够导出不同格式的代码文件,如:PDF,HTML 或格式化后的代码。 23. 针对一些特定的项目有项目模板,如:Web 应用,App Engine 项目,从而能够更快地开始开发工作。 24. 具备代码重构的能力。 25. 集成像 hg 或 git 这样的版本控制工具。 26. 集成 Google App0 码力 | 466 页 | 4.44 MB | 1 年前3
 Go 入门指南(The way to Go)goroutine 和 channel 时有多少种不同的模 Go入门指南 - 1 - 本文档使用 看云 构建 式,如何在 Go 语言中使用谷歌 API,如何操作内存,如何在 Go 语言中进行程序测试和如何使用模板来 开发 Web 应用这些高级概念和技巧。 在本书的第一部分,我们将会讨论 Go 语言的起源(第 1 章),以及如何安装 Go 语言(第 2 章)和开发 环境(第 3 章)。 在本书的第二部分,我们将会带领你贯穿 能够方便完整地查阅 Go 文档。 21. 能够方便地在不同的 Go 环境之间切换。 22. 能够导出不同格式的代码文件,如:PDF,HTML 或格式化后的代码。 23. 针对一些特定的项目有项目模板,如:Web 应用,App Engine 项目,从而能够更快地开始开发工 作。 24. 具备代码重构的能力。 25. 集成像 hg 或 git 这样的版本控制工具。 26. 集成 Google encoding/xml :简单的 XML1.0 解析器,有关 JSON 和 XML 的实例请查阅第 12.9/10 章节。 text/template :生成像 HTML 一样的数据与文本混合的数据驱动模板(参见第 15.7 节)。 net - net/http - html :(参见第 15 章) net : 网络数据的基本操作。 http : 提供了一个可扩展的 HTTP 服务器和基础客户端,解析0 码力 | 380 页 | 2.97 MB | 1 年前3 Go 入门指南(The way to Go)goroutine 和 channel 时有多少种不同的模 Go入门指南 - 1 - 本文档使用 看云 构建 式,如何在 Go 语言中使用谷歌 API,如何操作内存,如何在 Go 语言中进行程序测试和如何使用模板来 开发 Web 应用这些高级概念和技巧。 在本书的第一部分,我们将会讨论 Go 语言的起源(第 1 章),以及如何安装 Go 语言(第 2 章)和开发 环境(第 3 章)。 在本书的第二部分,我们将会带领你贯穿 能够方便完整地查阅 Go 文档。 21. 能够方便地在不同的 Go 环境之间切换。 22. 能够导出不同格式的代码文件,如:PDF,HTML 或格式化后的代码。 23. 针对一些特定的项目有项目模板,如:Web 应用,App Engine 项目,从而能够更快地开始开发工 作。 24. 具备代码重构的能力。 25. 集成像 hg 或 git 这样的版本控制工具。 26. 集成 Google encoding/xml :简单的 XML1.0 解析器,有关 JSON 和 XML 的实例请查阅第 12.9/10 章节。 text/template :生成像 HTML 一样的数据与文本混合的数据驱动模板(参见第 15.7 节)。 net - net/http - html :(参见第 15 章) net : 网络数据的基本操作。 http : 提供了一个可扩展的 HTTP 服务器和基础客户端,解析0 码力 | 380 页 | 2.97 MB | 1 年前3
 04. GraphQL in Chaos Mesh 2.0 - 李晨曦李晨曦 GitHub: hexilee PingCAP R&D PingCAP 研发工程师,CNCF 开源项目 Chaos Mesh® 核心贡献者, 主要负责工程效率提升和 HTTP 故障注入功能的设计实现。并推动 GraphQL 在 Chaos Mesh 项目中的实践落地。 目录 1. Chaos Mesh 介绍 2. 问题与解决方案 3. 设计思路与实现 4. 后续的工作 ● 提供对 Pod 或者具体容器的错误注入, 包括网络、系统 IO、内核以及一些应用层注入 chaos-mesh.org github.com/chaos-mesh Chaos Mesh 是什么 我们的目标 ● 建立一个完全闭环的云原生混沌工程平台 ● 让混沌工程变得更易用 问题与解决方案 集群中的状态 Chaos Mesh 本身的运行和注入的故障会 给各组件以及目标 Pod 带来各种状态。 Status Logs Event Others Mounts Processes ipset iptables Pid Command Fds 集群中的状态 在实际混沌实验过程中,可能会出现注入的错误不符合预期,甚至完全没有效果的情况。能否高效 地获取各种状态则决定了故障诊断的效率。 集群状态大致可以分为两类,主要分类依据是能否通过 kubernetes API 直接查询。 k8s 可直接查询的状态0 码力 | 30 页 | 1.29 MB | 1 年前3 04. GraphQL in Chaos Mesh 2.0 - 李晨曦李晨曦 GitHub: hexilee PingCAP R&D PingCAP 研发工程师,CNCF 开源项目 Chaos Mesh® 核心贡献者, 主要负责工程效率提升和 HTTP 故障注入功能的设计实现。并推动 GraphQL 在 Chaos Mesh 项目中的实践落地。 目录 1. Chaos Mesh 介绍 2. 问题与解决方案 3. 设计思路与实现 4. 后续的工作 ● 提供对 Pod 或者具体容器的错误注入, 包括网络、系统 IO、内核以及一些应用层注入 chaos-mesh.org github.com/chaos-mesh Chaos Mesh 是什么 我们的目标 ● 建立一个完全闭环的云原生混沌工程平台 ● 让混沌工程变得更易用 问题与解决方案 集群中的状态 Chaos Mesh 本身的运行和注入的故障会 给各组件以及目标 Pod 带来各种状态。 Status Logs Event Others Mounts Processes ipset iptables Pid Command Fds 集群中的状态 在实际混沌实验过程中,可能会出现注入的错误不符合预期,甚至完全没有效果的情况。能否高效 地获取各种状态则决定了故障诊断的效率。 集群状态大致可以分为两类,主要分类依据是能否通过 kubernetes API 直接查询。 k8s 可直接查询的状态0 码力 | 30 页 | 1.29 MB | 1 年前3
 Go 2 Generics? A (P)review使用方法及穷举类型来限制并描述可能的参数 类型 ● comparable/arithmetic 等内建合约 评述 ● 这样的代码合法吗? ○ _ = Max(1.0, 2) ○ 如何写出更一般的形式? ● 可变模板参数的支持情况缺失(后面会提) ● 没有算符函数、重 载 [Revised] 2020 © Changkun Ou · Go 夜读 · Go 2 Generics? A (P)review Contracts 义容器类。如:表、向量和关 联数组等。」 「回过头看,模板恰好成 为精炼一种新语言特征的两种策略之 间的分界线。在模板之前,我(Bjarne Stroustrup)一直通过实现、使用、 讨论、再实现的过程去精炼一个语言特征。而在模板之后, [...] 实现通常是和这些并行讨论的。有关模板的讨论并没有像他所应该做的 那样广泛,我也缺乏批判性的 实现经验。这就导致后来基于实现和使用经验又对模板进行了多方面的修 订。」 「我 「我确实认为,在开始描述模板机制时自己是过于谨慎和保守了。我们原来就应该把许多特性加进来,[...] 这些特性并没有给实现者增 加多少负担,但是却对用户特别有帮助。」 ——"The Design and Evolution of C++" Chapter 15: Templates, 15.2 Templates 2020 © Changkun Ou · Go 夜读 · Go 2 Generics0 码力 | 41 页 | 770.62 KB | 1 年前3 Go 2 Generics? A (P)review使用方法及穷举类型来限制并描述可能的参数 类型 ● comparable/arithmetic 等内建合约 评述 ● 这样的代码合法吗? ○ _ = Max(1.0, 2) ○ 如何写出更一般的形式? ● 可变模板参数的支持情况缺失(后面会提) ● 没有算符函数、重 载 [Revised] 2020 © Changkun Ou · Go 夜读 · Go 2 Generics? A (P)review Contracts 义容器类。如:表、向量和关 联数组等。」 「回过头看,模板恰好成 为精炼一种新语言特征的两种策略之 间的分界线。在模板之前,我(Bjarne Stroustrup)一直通过实现、使用、 讨论、再实现的过程去精炼一个语言特征。而在模板之后, [...] 实现通常是和这些并行讨论的。有关模板的讨论并没有像他所应该做的 那样广泛,我也缺乏批判性的 实现经验。这就导致后来基于实现和使用经验又对模板进行了多方面的修 订。」 「我 「我确实认为,在开始描述模板机制时自己是过于谨慎和保守了。我们原来就应该把许多特性加进来,[...] 这些特性并没有给实现者增 加多少负担,但是却对用户特别有帮助。」 ——"The Design and Evolution of C++" Chapter 15: Templates, 15.2 Templates 2020 © Changkun Ou · Go 夜读 · Go 2 Generics0 码力 | 41 页 | 770.62 KB | 1 年前3
 基于open-falcon的平安云监控query- proxy mysql web alarm gitlab 主机 主机 主机组 主机组 模板 模板 父模板 父模板 联系人 联系人 策略 策略 策略 策略 策略 策略 配置数据模型 租户 租户 主机 主机 主机组 主机组 模板 模板 父模板 父模板 联系人 联系人 策略 策略 策略 策略 策略 策略 租户隔离 解读argus的架构 Ø 异地容灾,高可用0 码力 | 30 页 | 10.40 MB | 1 年前3 基于open-falcon的平安云监控query- proxy mysql web alarm gitlab 主机 主机 主机组 主机组 模板 模板 父模板 父模板 联系人 联系人 策略 策略 策略 策略 策略 策略 配置数据模型 租户 租户 主机 主机 主机组 主机组 模板 模板 父模板 父模板 联系人 联系人 策略 策略 策略 策略 策略 策略 租户隔离 解读argus的架构 Ø 异地容灾,高可用0 码力 | 30 页 | 10.40 MB | 1 年前3
 go web 框架 严清*Error func (err Error) From(e error) *Error 充分利利⽤用⾮非引⽤用定义⽅方法的复制特性,实现了了 errors 模板机制 集中、智能、灵活的异常处理理 Gear 预定义的 errors 模板常量量及使⽤用观感 // Predefined errors var ( Err = &Error{Code: http.StatusInternalServerError *Context) Error(e error) error // and more… Web 服务必备的操作 HTTP 的⽅方法及扩展能⼒力力 强⼤大、实⽤用的 HTTP 操作语法糖 // 定义请求数据模板和验证逻辑: type loginTemplate struct { Name string `json:"name" form:"name"` Pass string `json:"pass"0 码力 | 23 页 | 333.12 KB | 1 年前3 go web 框架 严清*Error func (err Error) From(e error) *Error 充分利利⽤用⾮非引⽤用定义⽅方法的复制特性,实现了了 errors 模板机制 集中、智能、灵活的异常处理理 Gear 预定义的 errors 模板常量量及使⽤用观感 // Predefined errors var ( Err = &Error{Code: http.StatusInternalServerError *Context) Error(e error) error // and more… Web 服务必备的操作 HTTP 的⽅方法及扩展能⼒力力 强⼤大、实⽤用的 HTTP 操作语法糖 // 定义请求数据模板和验证逻辑: type loginTemplate struct { Name string `json:"name" form:"name"` Pass string `json:"pass"0 码力 | 23 页 | 333.12 KB | 1 年前3
 1.6 resource scheduling & container technology for financial service_yujun分布式高可用控制系统   基于Raft/Chubby算法和GOSSIP协议的分布式高可用控 制系统与服务发现  智能模板和堆叠式组件管理系统   深度优化和预置的多层堆叠式开源软件发布和管理系统, 可以在保障版本统一的条件下,智能推送和维护应用模板  运维过程数据的大数据分析系统  自主研发Horus  运维数据处理平台   100%  Written0 码力 | 21 页 | 27.20 MB | 1 年前3 1.6 resource scheduling & container technology for financial service_yujun分布式高可用控制系统   基于Raft/Chubby算法和GOSSIP协议的分布式高可用控 制系统与服务发现  智能模板和堆叠式组件管理系统   深度优化和预置的多层堆叠式开源软件发布和管理系统, 可以在保障版本统一的条件下,智能推送和维护应用模板  运维过程数据的大数据分析系统  自主研发Horus  运维数据处理平台   100%  Written0 码力 | 21 页 | 27.20 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Go 版数据结构与算法的关系 如图 1‑4 所示,数据结构与算法高度相关、紧密结合,具体表现在以下三个方面。 ‧ 数据结构是算法的基石。数据结构为算法提供了结构化存储的数据,以及操作数据的方法。 ‧ 算法为数据结构注入生命力。数据结构本身仅存储数据信息,结合算法才能解决特定问题。 ‧ 算法通常可以基于不同的数据结构实现,但执行效率可能相差很大,选择合适的数据结构是关键。 图 1‑4 数据结构与算法的关系 数据结构与算法犹如图 取当前看来最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 方式。 ‧ 数据结构与算法紧密相连。数据结构是算法的基石,而算法为数据结构注入生命力。 ‧ 我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式等代表数据结构, 拼装积木的步骤则对应算法。 1. Q & A Q:作为一名程序员,我在日常工作中从未0 码力 | 384 页 | 18.49 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Go 版数据结构与算法的关系 如图 1‑4 所示,数据结构与算法高度相关、紧密结合,具体表现在以下三个方面。 ‧ 数据结构是算法的基石。数据结构为算法提供了结构化存储的数据,以及操作数据的方法。 ‧ 算法为数据结构注入生命力。数据结构本身仅存储数据信息,结合算法才能解决特定问题。 ‧ 算法通常可以基于不同的数据结构实现,但执行效率可能相差很大,选择合适的数据结构是关键。 图 1‑4 数据结构与算法的关系 数据结构与算法犹如图 取当前看来最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 方式。 ‧ 数据结构与算法紧密相连。数据结构是算法的基石,而算法为数据结构注入生命力。 ‧ 我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式等代表数据结构, 拼装积木的步骤则对应算法。 1. Q & A Q:作为一名程序员,我在日常工作中从未0 码力 | 384 页 | 18.49 MB | 10 月前3
共 17 条
- 1
- 2














