Kubernetes + OAM 让开发者更简单来自应用开发者的“灵魂拷问” “ Kubernetes 让 Devops 更复杂了!” Kubernetes 对于应用开发复杂在哪里 1. 关注点不同 业务研发 2. 语义与抽象程度不同 业务运维 3. 交互与使用习惯不同 业务研发、运维 YAML 文件 图形化界面 命令行工具 IaC 配置语言 扩容策略 • 当 RT 上升 10% 时,自动扩容 100 个实例 发布策略 • 当金丝雀实例通过 Deployment Ingress Service YAML 文件 代码、应用、CICD 流水线 容器 Pod Controller 调度 Node Sidecar CNI CSI 研发都要做 Kubernetes 专家? Kubernetes 构建 Platform on Kubernetes 控制器 各种各样的控制器(Controller) 容器 虚拟机 负载均衡 数据库 声明式 API 对象 基础设施层能力 业务运维 平台工程师 业务研发 扩容策略 发布策略 分批策略 访问控制 流量配置 应用管理平台 (Openshift、Cloudfoundry、阿里内部、腾讯内部 …) 应用 CI/CD 流水线 K8s PaaS K8s 但是,K8s PaaS 正面临着“能力困境” 研发与运维人员日益增长的应用管理诉求 PaaS 有限的、不可扩展的专有API0 码力 | 22 页 | 10.58 MB | 1 年前3
Redis 多数据中心双向同步 祝辰Redis 多数据中心双向同步 祝辰 • 携程框架架构部门 • 资深研发工程师 • 专注于 Redis 高可用系统的 研发工作 • 对分布式存储系统有所涉猎 讲师介绍 祝辰 1 开篇 2 3 4 5 目 录 CONTENTS 携程的Redis架构 分布式理论 双向/多向同步的问题 CRDT 19 世纪的通讯 “At 12:30 am on April 4th0 码力 | 45 页 | 1.74 MB | 1 年前3
Django 官方教程翻译项目Django 项目, 第五部分 自动化测试简介 自动化测试是什么? 为什么你需要写测试 测试将节约你的时间 测试不仅能发现错误,而且能预防错误 测试使你的代码更有吸引力 测试有利于团队协作 基本测试策略 第一个测试 首先得有个 Bug 写个测试来发现 Bug 运行测试 修复 Bug 更全面的测试 测试视图 针对视图的测试 Django 测试工具之 Client 改善视图代码 规划时没有包含测试是不科学的。” 其他的开发者希望在正式使用你的代码前看到它通过了测试,这是你需要写测试的另一个重要原因。 前面的几点都是从单人开发的角度来说的。复杂的应用可能由团队维护。测试的存在保证了协作者不 会不小心破坏了了你的代码(也保证你不会不小心弄坏他们的)。如果你想作为一个 Django 程序 员谋生的话,你必须擅长编写测试! 测试有几种不同的应用方法。 一些开发者遵循 测试驱动开发(test-driven 字段比当前时间还晚时也会返回 True(这 是个 Bug)。 你能从管理页面确认这个 Bug。创建一个发布日期是将来的投票,在投票列表里你会看到它被标明为 测试使你的代码更有吸引力 测试有利于团队协作 基本测试策略 第一个测试 首先得有个 Bug 创建你的第一个 Django 项目, 第五部分 - 55 - 本文档使用 书栈(BookStack.CN) 构建 最近发布(published0 码力 | 103 页 | 1.86 MB | 1 年前3
Build web application with Golangusername=?,departname=?,created=?") checkErr(err) res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09") checkErr(err) id, err := res.LastInsertId() checkErr(err) departname, created) values(?,?,?)") checkErr(err) res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09") checkErr(err) id, err := res.LastInsertId() checkErr(err) QueryRow("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) returning uid;", "astax ie", "研发部门", "2012-12-09").Scan(&lastInsertId) How to use PostgreSQL 123 checkErr(err) fmt0 码力 | 327 页 | 1.63 MB | 1 年前3
Flask入门教程(程序),比如 ls、cat、nano、ssh 等,这些命令我们在后面会用到。 使用 Git Git 是一个流行的版本控制工具,我们可以用它来记录程序源码和文件的变动情 况,或是在编程时进行多人协作,你可以把它看做一个优雅的代码变动备份工具。 如果你还不熟悉 Git 也没关系,可以先按照书中的命令去做,有时间再去了解原 理。现在要做的第一件事就是在你的电脑上安装 Git (可以执行 git 创建,这部分操作你也可以使用编辑器来完成。 将程序托管到 GitHub(可选) 这一步是可选的,将程序托管到 GitHub、GitLab 或是 BitBucket 等平台上,可以更 方便的备份、协作和部署。这些托管平台作为 Git 服务器,你可以为本地仓库创建 远程仓库。 首先要注册一个 GitHub 账户,点击访问注册页面,根据指示完成注册流程。登录 备用。 设置 SSH 密钥 一0 码力 | 127 页 | 7.62 MB | 1 年前3
Kubernetes for Edge Computing across
Inter-Continental Haier Production Sites基于云的开放式物联网操作系统,实现全 面的系统集成和数据融合,打破数据孤岛 Mindsphere平台 德国联邦政府支持相关行业协会建设工业4.0平台,负 责工业4.0国家战略的宣传推广,标准制定,人才培养 和技术研发。 以工业大数据为驱动,以云计算,大数据, 物联网技术为核心的工业互联网开放平台, 实现产品,机器,数据,人的全面互联互 通和综合集成 INDICS平台 根云平台 COSMOPlat平台 …0 码力 | 33 页 | 4.41 MB | 1 年前3
8. Continue to use ClickHouse as TSDBContinue to use ClickHouse as TSDB 邰翀 青云QingCloud 数据库研发工程师 ► Look back: Why we choose it ► Now: How we do ► Future: What we do Content Why we choose it Why we choose it Why we choose it0 码力 | 42 页 | 911.10 KB | 1 年前3
Python 标准库参考指南 3.6.15 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有,在静态编译语言或仅支 持单继承的语言中是不存在的。这使得实现“菱形图”成为可能,在这时会有多个基类实现相同的方 法。好的设计强制要求这种方法在每个情况下具有 分 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确 并不限于在方法内部使用。两个参数的形式明确 指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要的细节 以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 tuple([iterable]) 虽然被称为函数,但tuple 实际上是一个不可变的序列类型,参见在元组 与序列类型—list, tuple0 码力 | 1886 页 | 8.95 MB | 10 月前3
Python 标准库参考指南 3.6.15 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有,在静态编译语言或仅支 持单继承的语言中是不存在的。这使得实现“菱形图”成为可能,在这时会有多个基类实现相同的方 法。好的设计强制要求这种方法在每个情况下具有 分 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确 并不限于在方法内部使用。两个参数的形式明确 指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要的细节 以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 tuple([iterable]) 虽然被称为函数,但tuple 实际上是一个不可变的序列类型,参见在元组 与序列类型—list, tuple0 码力 | 1886 页 | 8.95 MB | 10 月前3
Python 标准库参考指南 2.7.18 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有,在静态编译语言或仅支 持单继承的语言中是不存在的。这使得实现“菱形图”成为可能,在这时会有多个基类实现相同的方 法。好的设计强制要求这种方法在每个情况下具有 分 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 Also note that super() is not limited to argument form specifies the arguments exactly and makes the appropriate references. 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 2.2 新版功能. tuple([iterable]) Return a tuple whose items are the same and0 码力 | 1552 页 | 7.42 MB | 10 月前3
共 27 条
- 1
- 2
- 3













