GAIA研发平台演进之路

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 讲师:樊冲(花名:岽篱)
2. ⼤纲 01 现状和挑战 03 切入和演进 现象和本质问题 FaaS和交付技术 02 基础设施的变化 04 展望 k8s带来变化和契机 复杂应用
3. 科普 如何容器化交付⼀个简单的java应⽤ APP </code> compile/build more: • • artifact image docker build 通过pom 安装jar依赖 Container Run more: more: • • 通过dockefile 安装依赖软件 然⽽在真正的应⽤场景上container的内容并不简单 • • 资源调度 应⽤实例⽣命周期维护
4. 淘系应⽤研发现状 应⽤创建 安全信息提交 基础信息 ⼯作流配置 源码库配置 ⼯程初始化 构建配置 测试环境机器 ⽇志清理 服务透出和接⼊ 线上环境机器准备 调整构建和环境⽂件 dockerfile/env 接⼊中间件 申请/配置 预发环境机器准备 30min~6h 编码期间 创建变更 调试流量链路 写业务代码 发布 涉及中间件等SDK:10+ 迭代运维 扩容 限流 升级 建站/迁移 涉及控制台:5~20+
5. 重构研发体系的挑战 问题A: 富SDK rpc Console Trace Console APP 带来问题 rpc Console metaq Console Ratelimit Console Trace RPC ACL Rate Limit redis client Biz Code metric DB Client metaq client Config Client DB Console ACL Console Api-gateway Console Route Gray Console config Console • 开发者应接不暇的能⼒升级 • 技术能⼒迭代受阻 • 语⾔不中⽴ • 众多术语不⼀致的控制台
6. 重构研发体系的挑战 问题B: 富容器 CI AONE Container Security App ops Normady SSH syslogd Log agent Pre Hook Post Hook APP Star agent Post Hook Quota Console Crond Route 带来问题 Staragent Console • 开发者需要理解并维护dockerfile • 开发者参与局部组件的升级 • 漫⻓的发布速度 • 众多术语不⼀致的控制台 • 容器和应⽤⽣命周期不⼀致
7. 重构研发体系的挑战 问题C: 围绕富容器运维体系 构建发布平台 aone 应⽤运维平台 Normady 调度引擎 Sigma 协作开发和CICD 应⽤运维 Container 标准锁定 APP 资源调度容器交付 使得新场景、新容器定义的研发平台需要极⾼的造轮⼦成本
8. 重构研发体系的挑战 ⼩结: ① 应⽤内众多的SDK侵⼊ ② 富容器及背后的运维体系难以复⽤ 在这个体系下为了提升研发效率,造成的局⾯: JVM FaaS™:使⽤统⼀加载的基座技术绕开① ,使⽤固定资源池⼦并脱离容器化交付绕开② 全新封闭的运维体系:更进⼀步的直接对接sigma打造另⼀套依旧封闭的运维体系来满⾜⾃定义交付体系
9. ⼤纲 01 现状和挑战 03 切入和演进 现象和本质问题 FaaS和交付技术 02 基础设施的变化 04 展望 变化和契机 复杂应用
10. 基础设施的变化 kubernetes带来了”强势"的⼆层规范 k8s based, Not only k8s,新基础设施:ASI • 统⼀应⽤和容器的⽣命周期 (liveness/readiness) • 沉淀通⽤运维能⼒ • 统⼀的资源调度和弹性 (HPA/VPA) • ⾯向过程到⾯向声明式终态 • controller/operator扩展 k8s出⾊的扩展性和强势的标准,可以把从⽽把原本分散的交付运维能⼒,沉淀为k8s原⽣能⼒ 统⼀的k8s API,⼆⽅PaaS可以低成本打造⾃定义端到端的交付体系
11. 基础设施的变化 kubernetes pattern Pod的设计带来了很多的想象⼒,提供了对通⽤组件剥离到进程/容器外的基础能⼒ 从插件/SDK的集成⽅式变成了多runtime组合⽅式
12. 基础设施的变化 ⼩结 ✔ 基于新基础设施 ASI 可以轻松⾃定义容器化交付流程 ✔ 通过对富容器的运维组件也逐步的挪到 sidecar,轻量容器可以轻松定义新容器规范 ?但富SDK的剥离依旧需要⼀个漫⻓对过程
13. ⼤纲 01 现状和挑战 03 切入和演进 现象和本质问题 FaaS和交付技术 02 基础设施的变化 04 展望 变化和契机 复杂应用
14. GAIA的切⼊和演进 基于技术背景和业务痛点分析产品形态 业务场景分析: API gateway 聚合层 领域层 DB/Redis FaaS 1. 依赖简单,富SDK问题不显著,往往是纯计算层 2. 变化频繁,越靠近view层越频繁 3. 规模庞⼤ 4. 显著的跨语⾔要求 & 云端⼀体化编程
15. GAIA的切⼊和演进 GAIA FaaS产品架构 gaiacli Web UI Partners Get: GAIA platform ✔ ⼀体化发布平台 ✔ 多种语⾔畅快开发 ✔ 本地研发集成 ASI
16. GAIA的切⼊和演进 GAIA FaaS产品模型 Get: ✔ ⾃动化服务透出 ✔ ⼀键发布切流灰度 ✔ ⼿⾃⼀体 ✔ 声明式⾯向终态 ✔ 特⾊/复杂能⼒封装
17. GAIA的切⼊和演进 GAIA FaaS交付实现 平台层 OPS Revision Deploy mode Trigger Schedule CR渲染/集群分发(fed)/git化 ingress CRD Revision Ingress route Template deployment deployment HPA HPA CRD ref RevisionService controller controller 负责实际流量的切流 可能是调⽤对应的控制⾯API 负责workload交付 服务透出 弹性扩缩 k8s ConfigMap ConfigMap Service Service ServiceKey k8s native的打造了新的交付链路,同时也成为基础设施的native的能⼒ Service discovery
18. GAIA的切⼊和演进 GAIA FaaS多运⾏时容器架构 Pod Get: main 函数/应⽤运⾏时容器 ✔ 语⾔中⽴的能⼒建设 下沉SDK的运⾏时容器 • • EventBroker ✔ 轻量的业务容器 staragent ✔ ⽆感升级 去中⼼化的api gateway 消息客户端 运维相关的组件运⾏时容器 充分应⽤k8s pattern的容器架构,对组件剥离到独⽴运⾏时中
19. GAIA的切⼊和演进 GAIA FaaS数据⾯ Metaq Service msg http http EventBroker http GRPC Function BaaS Function API gateway EventBroker充当了⼤使,会为多种协议统⼀接驳,然后转发/转化到后端Function上
20. GAIA的切⼊和演进 GAIA FaaS⼩结 业务价值: 技术成果: ✔ 降低了“聚合层”类型应⽤的开发⻔槛 ✔ 基于 k8s(ASI) 的打通⾃定义的交付体系  ✔ 全新的模型降低开发者⼼智 ✔ 容器内的组件解耦到运维容器  ✔ 极速交付体验(从分钟到秒级) ✔ 完成了部分应⽤依赖的 sidecar 解耦,语⾔中⽴ ✔ 移动端云端⼀体化的探索 在这个直播系列的第三篇flutter云端⼀体化探索实践,3.25 20:00 ,,,3.25 闲⻥架构组同学会给带来更详细的分享 进⼀步思考: ? 是否可以把交付技术推⼴到传统JVM FaaS
21. GAIA的切⼊和演进 GAIA交付体系 GAIA FaaS多运⾏时容器架构v2 Pod 函数/应⽤运⾏时容器 main artifact 下沉SDK的运⾏时容器 EventBroker staragent 去中⼼化的api gateway 消息客户端 在之前的容器架构基础上增加artfact容器,来完成数据热加载能⼒ 助⼒传统JVM FaaS技术升级 负责交付产物的运⾏时 运维相关的组件运⾏时容器
22. GAIA的切⼊和演进 GAIA交付体系助⼒传统JVM FaaS技术升级 Pod 4.2.拉取镜像(⾸次) main Container 5.reload Artifact container 共享卷 http通知 4.1.拉取镜像 3. Create pod(if not have) K8s 1.打包镜像 2.K8s yaml 声明式交付 GAIA platform 建设main-artifact容器共享通信规范,可以⽀持热更新,同时也兼容原地更新
23. GAIA的切⼊和演进 GAIA JVM FaaS升级⼩结 价值: 关键技术: • main-artifact容器规范 • 原地升级技术 ✔ 容器化隔离替代类/线程隔离 权衡: • • ✔ 端到端的交付体系,统⼀交付链路 ⼀定程度上破坏了不可变基础设施原则 但是在演进阶段⽐较合适的让步 在此鸣谢:基础设施ASI团队 ✔ 资源⼀体化调度 ✔ ⽀持多种语⾔的热加载技术 (dart/java)
24. ⼤纲 01 现状和挑战 03 切入和演进 现象和本质问题 FaaS和交付技术 02 基础设施的变化 04 展望 变化和契机 复杂应用
25. 展望 回顾 ✔ 利⽤ k8s 打造了轻量研发平台 ✔ 通过交付技术通⽤化和容器架构的规范化,对存量 FaaS 的技术升级 GAIA场景扩展:复杂应⽤接⼊ • 更多的SDK下沉到sidecar(和service mesh⼀起推动) • 统⼀编程平⾯简化编程(Event还不够) • 复杂应⽤的声明式交付(OAM)
26. 【淘系技术】微信公众号 扫码获取本期PPT内容及回放 加⼊我们 【淘系基础平台部-基础服务】 ⼀起探索⽀撑千亿级流量新⼀代架构

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.132.0. UTC+08:00, 2024-09-21 20:41
浙ICP备14020137号-1 $Map of visitor$