Golang大规模云原生应用管理实践Golang⼤规模云原⽣应⽤管理实践 刘洋(炎寻) 关于我 • 毕业于中国科学技术大学,定居杭州 • 就职于阿里云-云原生应用平台团队 • Problem Solver,聚焦中间件,容器,Kubernetes,PaaS平台… • OAM社区成员 开局一张图 规模化应用交付效率对比去年 每万笔峰值交易的IT成本对比4年前 提升1倍 下降80% 云原生 技术 稳定 成本 效率 策略与机制随着层次的变化而变化; 应用管理的策略与机制 应用 版本 工作负载 负载均衡 标签 流量 组件 日志 指标 容量 服务 依赖 路由规则 持久卷 部署策略 健康检查 … 灰度 发布 定时弹性 事件 指标弹性 分批发布 重启 回滚 日志管理 事件中心 指标监控 存储挂载 服务绑定 手动弹性 回退历史 负载均衡 报警 诊断 组件管理 服务治理 … 级以维持安全,高可用,高性能的状态; • … 能力复用 自动化 可观测 稳定 安全 开发者真正想要的是策略:大象无形的基础设施,坚如磐石的中间件,丰富高效的应用PaaS平台 基础设施 云原生PaaS平台提供应用管理策略 基础设施 K8s 云原生生态(CNCF) 云原生应用 4 6 7 2 3 5 1 1 Kubectl plugins 2 Apiserver extension 3 4 50 码力 | 23 页 | 7.70 MB | 1 年前3
Go Module在又拍云的实践0 码力 | 28 页 | 12.85 MB | 1 年前3
大规模高性能区块链架构设计模式与测试框架-李世敬以太坊Ethereum 新基建 • Linux 基 金 会 成 立 了 Hyperledger开源项目,IBM、 Intel、摩根大通等企业加入,开 始企业级区块链应用平台的研发 超级账本Hyperledger 趣链Hyperchain在同一时期开始研发 • 国家发改委正式将区块 链纳入“新基建”范畴, 区块链行业将迎来全新 的发展机遇 • 全球银行巨头组建成立R3 CEV 区块链联盟,致力于探索区块链 技术在金融行业的应用产品,自 合约层 智能合约脚本 合约执⾏引擎 分布式应⽤DApp ⽹络层 P2P⽹络 区块链⽹络模型 区块链⽹络协议 扩 展 层 扩展操作 跨链协议 链上链下计算 预⾔机 扩展组件 消息队列MQ 证书管理 测试框架 治理层 权限体系 治理模型 区块链审计 BaaS运维治理 应⽤层 司法存证 供应链⾦融 智慧政务 物联⽹ 能源电⼒ 跨境贸易 ⼯业物联⽹ 智慧城市 ... 不同于 合约层 智能合约脚本 合约执⾏引擎 分布式应⽤DApp ⽹络层 P2P⽹络 区块链⽹络模型 区块链⽹络协议 扩 展 层 扩展操作 跨链协议 链上链下计算 预⾔机 扩展组件 消息队列MQ 证书管理 测试框架 治理层 权限体系 治理模型 区块链审计 BaaS运维治理 应⽤层 司法存证 供应链⾦融 智慧政务 物联⽹ 能源电⼒ 跨境贸易 ⼯业物联⽹ 智慧城市 ... 不同于0 码力 | 39 页 | 56.58 MB | 1 年前3
1.6 resource scheduling & container technology for financial service_yujun 2015 Resource Scheduling & Container Technology for Financial Service 动态资源管理和容器技术 在金融行业的架构探索和明天 余军 Gopher China 2015 Gopher China 2015 关于我 n 100% 自主研发。100% 开源给用户 Apache License v 2.0 容器级资源运行技术 基于Linux 内核隔离及业界先进的Container容器技术 自主研发的资源分配和动态调度调度算法 自主研发SWF核心算法 (基于场景的加权均衡算法) 两级作业调度框架 自主研发Gardener – 自主研发Lighthouse智能服务伸缩模型 分布式高可用控制系统 基于Raft/Chubby算法和GOSSIP协议的分布式高可用控 制系统与服务发现 智能模板和堆叠式组件管理系统 深度优化和预置的多层堆叠式开源软件发布和管理系统, 可以在保障版本统一的条件下,智能推送和维护应用模板 运维过程数据的大数据分析系统 自主研发Horus0 码力 | 21 页 | 27.20 MB | 1 年前3
2.3 用golang写一个操作系统l 开发过银⾏行设备 l 同花顺移动证券 l 前后参与创⽴立过多家公司 l ⽤用Golang写了⼀一个云操作系统 电⼒力、⽯石化、银⾏行、证券、⼲⼴广电、电商 研发、产品、运营、公司运营 l 多种职业 l 喜欢各种宗教 l 喜欢在虚⽆无中创造⼀一个世界 l 多个⾏行业 ⾃自我介绍 l ⽜牛B的作者 l 曾经的痛点 ⺫⽬目前可执⾏行程序⼤大约只有2到3M Leither是什么? l 它是⼀一个操作系统 l 它有⾃自⼰己资源管理体系 l 它有⾃自⼰己的应⽤用体系 Leither OS 动态管理众多在线⺴⽹网民的⺴⽹网络资源、存储资源、运算资源 现有互联⺴⽹网的⼤大部分服务形态,都可以在Leither上快速构造出来。 消息通讯 ⽤用户数据 公共数据 授 权 担 保 验 证 浏 览 器 第三⽅方应⽤用 结果显⽰示 数据解析 ⽤用户操作 数据打包 应⽤用发布 应⽤用安装 应⽤用管理 数 据 库 系 统 接 ⼝口 邮 件 模 块 前 端 架 构 WEB Server RPC 邮件⼿手机接⼝口 ⽤用户信息 ⾃自 ⼰己 好 友 节 点 信⽤用结算0 码力 | 33 页 | 1014.12 KB | 1 年前3
5.cgo 原理解析及优化实践朱德江 蚂蚁集团 MOSN 核心成员 Golang contributor Envoy Golang extension maintainer 公众号 • 开源爱好者 • 十余年网关研发 • OpenResty 老司机(NGINX + LuaJIT) • MOSN 核心成员 • Envoy Golang extension maintainer • 玩过 DSL 编译器 • cgo 调度机制 03 CPU 优化 04 GC 优化 05 背景介绍 第一部分 网关发展历史 网关的扩展机制 什么是 MoE 举个例子 为什么需要 MoE Envoy 研发效能 良好的生态,上手门槛低 Wasm?Lua? Golang 云原生架构 良好的可扩展性 高性能 MoE 有什么挑战 业界少见 - 重度依赖 cgo 性能敏感 生命周期一致 Go 对象是由 GC 管理的 确保不会被提前释放 ③ Go 指针 不可写 可以读? 同一进程内,可以互访 内存交互 – C to Go C 中常见的类型,都可以直接使用 内存交互 – Go to C Go 中一些基础类型,有对应的 C 类型 复杂的没有,如: Map channel Golang 内存管理方式 ① 栈内存 编译期大小已经的小内存对象0 码力 | 45 页 | 5.74 MB | 1 年前3
1.2 基于 Golang 构建高可扩展的云原生 PaaS 平台敏捷开发 - 微服务化和容器化 - 交付标准化 - 可观察性 特点: 敏捷的⽬标是提升研发效能 需要⼀个 DevOps 平台来⽀撑敏捷开发的落地 这⾥需要有⼀个标准的交付平台 运⾏环境 业务 数据 业务系统 C 业务 数据 业务系统 A 业务 数据 业务系统 B 资源管理在统⼀平台 应⽤运⾏在统⼀平台 构建标准的交付环境 交付产物标准化 - 业务配置 - 资源配置 资源配置 - 依赖配置 - 流⽔线配置 配置即代码 : 实现⼤规模交付的部署过程可被验证 PaaS 平台:资源管理,容器编排,基础监控和告警 APM 监控:应⽤诊断,链路追踪,⽇志分析 微服务治理组件 可靠的业务 贴身护航 基础⽀撑 持续保障系统稳定性 只需很少的运维投⼊即可保证系统稳定性 端点⼀站式 PaaS - Erda 第⼆部分 端点 PaaS 发展历程 有状态服务 诊断 ⾃定义告警 APM 微服务管理 资源管理 标签管理 系统监控 集群管理 服务⽬录 埋点 数据库 ⽇志 画像 标签 报表 推荐 … 代码管理 持续集成 编排部署 应⽤运维 测试管理 协同管理 数据源管理 数据集成 数据开发 数据资产 数据服务 数据应⽤ 资源统计 运维报告 审计⽇志 K8S 管理 数据监控 多云管理平台 MySQL Redis Kafka0 码力 | 40 页 | 8.60 MB | 1 年前3
云原生go-zero微服务框架设计思考云原生go-zero微服务框架设计思考 万俊峰Kevin@好未来 关于我 万俊峰Kevin ● go-zero作者 ● 好未来资深专家 ● 晓黑板研发负责人 ● 十多年研发团队管理经验 ● 近20年开发和架构经验 Agenda ● go-zero之前世今生 ● go-zero是如何设计的 ● go-zero如何高效解决问题 go-zero之前世今生 go-zero的由来0 码力 | 29 页 | 5.70 MB | 9 月前3
2.1.1 Golang主动式内存缓存的优化探索之路RabbitMQ、Redis、文件或其它平台的 应用程序 数据管理 如何像SQL一样灵活? 多维度查询 03. 业务数据的查询条件复杂,数据在内存中该如何组织 Q1:已开始的公益直播,且公开显示 直播1 Q2:2021-06-27 10:00:00之后 Q1 无数据 数据模型管理 04. 基于golang的struct tag实现正排、倒排结构的自动化管理 全数据扫描? 索引 主键 倒排 每次QPS掉底都与GC相关 GC较高的耗时对QPS的影响巨大 服务性能上不去,QPS剧烈抖动 代码实施 语言局限性,如何突破? 解决GC扫描耗时的问题 08. 基于cgo,定制化的内存管理,减少运行时对golang结构的gc扫描 Copy Copy 内存数据与golang结构间的桥梁 09. 自研MemoryTile(定制化的golang序列化反序列化),解决百万数据量级序列化反序列化耗时问题 数据存储、数据传输 带宽减少40% 2GB -> 1.2GB MaxwellConsumer 03. 通过golang接口的方式,实现业务与框架代码分离 DataManager 04. 工程化的通用数据管理器,提供正排、倒排等丰富的查询模式 数据存储 倒排更新过程 冷热数据交换后,DataManager中 部分数据可能交换到远端存储 本地没有数据实体,数据发生更新, 只知道变更后的新数据0 码力 | 48 页 | 6.06 MB | 1 年前3
TarsGo微服务开发实践-利开园Tars应用实践:https://github.com/tarscloud/gopractice RPC:不应该只是RPC • 基本功能:远程函数调用 • 可观测 • 名字服务+SET流量管理 • 熔断与恢复 • 轮询/一致性Hash • 错误码管理 日志:排查问题的利器 • 格式化 =〉 JSON • 单机withFields • 基于context • 跨服务withFields • 基于透传元数据 • Web配置管理 • 配置热更新 • 基于本地文件 • 线程安全 • 代码可维护性 • 文件读取不全问题(读写冲突) • 使用JSON格式 云原生:TARS上云实践 • K8S+TARS方案:https://github.com/tarscloud/k8stars • 使用Tars名字服务 • 继承服务治理能力 • 使用镜像部署 • K8S的资源调度能力 标准化:提升研发效能 • 接口格式标准化0 码力 | 15 页 | 4.23 MB | 1 年前3
共 61 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7













