基于 mesos 的容器调度框架2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 1/36 基于 mesos 的容器调度框架 Gopher 杭州 meetup 5 August 2017 黄励博(huangnauh) 又拍云 2017/8/3 基于 mesos 的容器调度框架 http://go-talks http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 2/36 What's Upone 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 3/36 Mesos 介绍 Image credit: apache.org (http://mesos.apache.org/) 官方称之为分布式系统内核, 它把数据中心的 CPU、内存、磁盘等抽象成一个资源池 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 4/36 Mesos 调度 各个 Agent0 码力 | 36 页 | 2.49 MB | 1 年前3
1.2 基于 Golang 构建高可扩展的云原生 PaaS 平台- Erda 02 Erda 架构的思考 03 模块化开发框架 04 开源新时代的挑战 05 ⾯向云原⽣的软件交付 第⼀部分 ⾯向云原⽣的企业软件产品 - 敏捷开发 - 微服务化和容器化 - 交付标准化 - 可观察性 特点: 敏捷的⽬标是提升研发效能 需要⼀个 DevOps 平台来⽀撑敏捷开发的落地 这⾥需要有⼀个标准的交付平台 运⾏环境 业务 数据 业务系统 C 应⽤运⾏在统⼀平台 构建标准的交付环境 交付产物标准化 - 业务配置 - 资源配置 - 依赖配置 - 流⽔线配置 配置即代码 : 实现⼤规模交付的部署过程可被验证 PaaS 平台:资源管理,容器编排,基础监控和告警 APM 监控:应⽤诊断,链路追踪,⽇志分析 微服务治理组件 可靠的业务 贴身护航 基础⽀撑 持续保障系统稳定性 只需很少的运维投⼊即可保证系统稳定性 端点⼀站式 Erda 第⼆部分 端点 PaaS 发展历程 有状态服务 Job / JobFlow 批计算 流计算 ⽆状态服务 DaemonSet Workloads 多集群调度 混合云调度 跨云迁移 多环境调度 业务数据统⼀调度 集群核⼼服务 Helm 镜像服务 Add-on filebeat / telegraf 监控 ⽇志 HPA Operator 注册中⼼ 配置中⼼0 码力 | 40 页 | 8.60 MB | 1 年前3
Go 2 Generics? A (P)reviewIsEmpty() bool { return len(*s) == 0 } 15 func (s *Stack(E)) Len() int { return len(*s) } 实现大部分通用容器不需要使用合 约定义 2020 © Changkun Ou · Go 夜读 · Go 2 Generics? A (P)review go2go 支持情况 28 ● 2020-03-13:首次发布 Attitude 32 「对于与大多数人而言,(在 1988 年)使用 C++ 最大的问题就是缺乏一个扩充的标准库。要编写这种库,遇到的最主要 问题就是,C++ 没有提供一种充分一般的机制,以便与定 义容器类。如:表、向量和关 联数组等。」 「回过头看,模板恰好成 为精炼一种新语言特征的两种策略之 间的分界线。在模板之前,我(Bjarne Stroustrup)一直通过实现、使用、 讨论、再实现的过程去精炼一个语言特征。而在模板之后, Go 也需要这种社区的力量(尽管 Go 团队喜欢「一意孤行」??????♂) ● 引入泛型会打破向前兼容性吗? ○ 从现在的设计来看,不会 ○ 但从 C++ 的历史经验来看,已经积累的代码的迁移过程将是痛苦且漫长的 2020 © Changkun Ou · Go 夜读 · Go 2 Generics? A (P)review 这么多不同版本的泛型设计里,你最喜欢哪一个? 2020 ©0 码力 | 41 页 | 770.62 KB | 1 年前3
Go 入门指南(The way to Go)语言还能够在运行时进行反射相关的操作。 使用 go install 能够很轻松地对第三方包进行部署。 此外,Go 语言还支持调用由 C 语言编写的海量库文件(第 3.9 节),从而能够将过去开发的软件进行快 速迁移。 1.2.4 指导设计原则 Go语言通过减少关键字的数量(25 个)来简化编码过程中的混乱和复杂度。干净、整齐和简洁的语法也 能够提高程序的编译速度,因为这些关键字在编译过程中少到甚至不需要符号表来协助解析。 Object-C、Python、Ruby),在你 进入到 Go 语言的世界之后,你将会像迷恋你的 X 语言一样无法自拔。Go 语言使用了与其它语言不同的 设计模式,所以当你尝试将你的X语言的代码迁移到 Go 语言时,你将会非常失望,所以你需要从头开始, 用 Go 的理念来思考。 如果你在至高点使用 Go 的理念来重新审视和分析一个问题,你通常会找到一个适用于 Go 语言的优雅的 解决方案。 go install 是安装 Go 包的工具,类似 Ruby 中的 rubygems。主要用于安装非标准库的包文件,将 源代码编译成对象文件。 go fix 用于将你的 Go 代码从旧的发行版迁移到最新的发行版,它主要负责简单的、重复的、枯燥无 味的修改工作,如果像 API 等复杂的函数修改,工具则会给出文件名和代码行数的提示以便让开发人 员快速定位并升级代码。Go 开发团队一般也使用这个工具升级0 码力 | 380 页 | 2.97 MB | 1 年前3
1.每秒百万数据点 Go 应用监控系统演进兼容 Prometheus,可以无缝迁移 ● 成本更低,只需要 thanos 的 50% 资源 ● 扩展性强,所有组件支持水平扩容 2023 年底架构 VictoriaMetrics 架构 VMStorage VMSelect VMInsert Why VictoriaMetrics so good? 第四部分 极致的设计与优化 ● 根据容器可用的 CPU 数量计算协程数量 ●0 码力 | 42 页 | 2.32 MB | 1 年前3
02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力• 联盟。联合众多厂商成立、参与 CNCF,让企业用户相信 Kubernetes 完全可 信且『不受 Google 控制』 • 中立 API。让用户在各种环境中用 Kubernetes,这样更便于迁移到云上 Runtime API 29 中立的 Runtime API spec Runtime API 共建 30 Runtime API 31 Layotto RPC 通信 RPC API 另一种视角看待 Runtime API 33 抽象的看: OS=治理软件 + 抽象硬件 (把不同硬件抽象成一样的 API,让编程更简单) 数据中心 OS OS K8S = 治理软件(容器) Runtime API = 抽象基础设施 Runtime API + K8S = 可能是下一代分布式 OS 另一种视角看待 Runtime API 34 OS Kernal mode0 码力 | 63 页 | 880.85 KB | 1 年前3
3.云原生边云协同AI框架实践LocalController ⚫ 特性本地流程控制 ⚫ 本地通用管理: 模型, 数据集等 3. Worker ⚫ 执行训练或推理任务, 训练/推理程序, 基于现有AI框 架开 ⚫ 按需启动, docker容器或function ⚫ 不同特性对应不同的worker组, 可部署在边上或云 上, 进行协同 4. Lib ⚫ 面向AI开发者和应用开发者, 暴露边云协同AI功能给 应用 Cloud Lib库, 开发边云协同联邦学习程序。 ② 启动联邦学习任务,部署训练 程序到边缘 ③ 多任务检测,划分Non-IID样本集,与云端配合识别相似任务 ④ 本地训练,模型参数上传云端,云端运行跨边迁移+模型聚合算法。 Cloud EdgeNode 1 EdgeNode 2 Sedna Federated-Learning Service API model local samples0 码力 | 37 页 | 2.36 MB | 1 年前3
Go 入门指南(The way to Go)语言还能够在运行时进行反射相关的操作。 使用 go install 能够很轻松地对第三方包进行部署。 此外,Go 语言还支持调用由 C 语言编写的海量库文件(第 3.9 节),从而能够将过去开发的软件进行快速迁移。 Go语言通过减少关键字的数量(25 个)来简化编码过程中的混乱和复杂度。干净、整齐和简洁的语法也能够提高程 序的编译速度,因为这些关键字在编译过程中少到甚至不需要符号表来协助解析。 这些方 、Object-C、Python、Ruby),在你进入到 Go 语言的世界之后,你将会像迷恋你的 X 语言一样无法自拔。Go 语言使用了与其它语言不同的设计模式,所以当 你尝试将你的X语言的代码迁移到 Go 语言时,你将会非常失望,所以你需要从头开始,用 Go 的理念来思考。 如果你在至高点使用 Go 的理念来重新审视和分析一个问题,你通常会找到一个适用于 Go 语言的优雅的解决方案。 1 go install 是安装 Go 包的工具,类似 Ruby 中的 rubygems。主要用于安装非标准库的包文件,将源代 码编译成对象文件。 go fix 用于将你的 Go 代码从旧的发行版迁移到最新的发行版,它主要负责简单的、重复的、枯燥无味的修 改工作,如果像 API 等复杂的函数修改,工具则会给出文件名和代码行数的提示以便让开发人员快速定位并升 级代码。Go 开发团队一般也使用这个工具升级0 码力 | 466 页 | 4.44 MB | 1 年前3
Hello 算法 1.1.0 Go版通过扩容哈希表来减少哈希冲突。 如图 6‑4 所示,扩容前键值对 (136, A) 和 (236, D) 发生冲突,扩容后冲突消失。 图 6‑4 哈希表扩容 类似于数组扩容,哈希表扩容需将所有键值对从原哈希表迁移至新哈希表,非常耗时;并且由于哈希表容量 capacity 改变,我们需要通过哈希函数来重新计算所有键值对的存储位置,这进一步增加了扩容过程的计算 开销。为此,编程语言通常会预留足够大的哈希表容量,防止频繁扩容。 ,其中的每个元素代表一个垂直隔板的高度。数组中的任意两个隔板,以及它们之 间的空间可以组成一个容器。 容器的容量等于高度和宽度的乘积(面积),其中高度由较短的隔板决定,宽度是两个隔板的数组索引 之差。 请在数组中选择两个隔板,使得组成的容器的容量最大,返回最大容量。示例如图 15‑7 所示。 图 15‑7 最大容量问题的示例数据 容器由任意两个隔板围成,因此本题的状态为两个隔板的索引,记为 [?, ?] 。 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心 hello‑algo.com 358 图 15‑10 向内移动短板后的状态 由此便可推出本题的贪心策略:初始化两指针,使其分列容器两端,每轮向内收缩短板对应的指针,直至两 指针相遇。 图 15‑11 展示了贪心策略的执行过程。 1. 初始状态下,指针 ? 和 ? 分列数组两端。 2. 计算当前状态的容量 ???[?,0 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.0.0 Golang版通过扩容哈希表来减少哈希冲突。 如图 6‑4 所示,扩容前键值对 (136, A) 和 (236, D) 发生冲突,扩容后冲突消失。 图 6‑4 哈希表扩容 类似于数组扩容,哈希表扩容需将所有键值对从原哈希表迁移至新哈希表,非常耗时;并且由于哈希表容量 capacity 改变,我们需要通过哈希函数来重新计算所有键值对的存储位置,这进一步增加了扩容过程的计算 开销。为此,编程语言通常会预留足够大的哈希表容量,防止频繁扩容。 ,其中的每个元素代表一个垂直隔板的高度。数组中的任意两个隔板,以及 它们之间的空间可以组成一个容器。 容器的容量等于高度和宽度的乘积(面积),其中高度由较短的隔板决定,宽度是两个隔板的 数组索引之差。 请在数组中选择两个隔板,使得组成的容器的容量最大,返回最大容量。示例如图 15‑7 所示。 图 15‑7 最大容量问题的示例数据 容器由任意两个隔板围成,因此本题的状态为两个隔板的索引,记为 [?, ?] 。 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心 hello‑algo.com 360 图 15‑10 向内移动短板后的状态 由此便可推出本题的贪心策略:初始化两指针,使其分列容器两端,每轮向内收缩短板对应的指针,直至两 指针相遇。 图 15‑11 展示了贪心策略的执行过程。 1. 初始状态下,指针 ? 和 ? 分列数组两端。 2. 计算当前状态的容量 ???[?,0 码力 | 382 页 | 17.60 MB | 1 年前3
共 32 条
- 1
- 2
- 3
- 4













