将研发流程搬到Kubernetes之上

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 将研发流程搬到 Kubernetes 之上 刘磊 七牛云CDN业务质量保障负责人,测试开发专家 ECUG Meetup 第 3 期
2. C ECUG Meetup 第 3 期 目 录 01 背景 02 方案 03 收获
3. 背景 ECUG Meetup 第 3 期
4. 研发流程 工程效率: 质量 效率 ECUG Meetup 第 3 期
5. 环境先行 ECUG Meetup 第 3 期 研发 联调环境 – 稳定 QA 测试环境 – 稳定、避免不预期 依赖 Beta环境 – 稳定
6. 环境现状 200+过保 机器 无专职 SRE 环境不稳定,测试5分钟,排查2小时 多人共用环境,互相冲突 随手改动不入库,消极对待,缺乏敬畏之心 功能不健全,导致验证不充分,遗留缺陷 服务分布 混乱 ECUG Meetup 第 3 期 资源利用 不均衡
7. 测试环境本质诉求 使用者: 企业: 想用 不用 就有 等待 低维护 ECUG Meetup 第 3 期 高效率 高稳定 低成本
8. 解决方向 云原生是天然选择: 自动化 可借鉴 可扩展 随起随用 一人一套 隔离,稳定 ECUG Meetup 第 3 期 自动化 免运维
9. 方案 ECUG Meetup 第 3 期
10. 云原生社区现状 云原生开源社区很早就意识到了云原生背景下,环境 容器化以及代码->环境的姿势问题 ECUG Meetup 第 3 期
11. 整体方案 ECUG Meetup 第 3 期
12. 第一步 – 环境容器化,模板化,可编排 服 务 容 器 化 服 务 模 板 化 , 可 编 排 ECUG Meetup 第 3 期
13. 落地姿势 – 一键启环境 本地一键部署环境 devspace run $CLUSTER –namespace $ENV_NAME 3min ~ 10min ECUG Meetup 第 3 期
14. 落地姿势 – 一键增量更新环境 研发阶段 本地一键增量更新 10s+内部署+运行 ECUG Meetup 第 3 期 devspace run $SERVICE_NAME --namespace $ENV_NAME
15. 调试更方便 本地直连容器内部 kubectl exec –it $POD_NAME --namespace $ENV_NAME CLI/Web devspace / devspace ui 本地直连PodIP/ClusterIP ECUG Meetup 第 3 期
16. 环境自我更新 QA Cloud Env By PR pull auto trigger submit Pull Request auto trigger merge Dev deploy master ECUG Meetup 第 3 期 Env Version Upgrade upload pull Cloud Env Env Deploy Check Helm Charts Repo
17. 隔离问题 没有隔离就很难谈稳定 • 硬件隔离 • 网络隔离 • 权限限制 • 资源限制 • 测试场景下,隔离其实不用很彻底 • 基于Rancher的权限限制 • 按实际需要采用LimitRange机制 ECUG Meetup 第 3 期
18. 资源使用率优化 • 测试环境容器化的一大副作用就是 环境泛滥,资源被不合理占用 • Kubernetes Qos机制是把双刃 剑,容易存在资源已申请,但利用 率不高的情况 • 超卖有用,但只是权宜之计 • 测试稳定性三板斧-用完即抛 • kubefree - Auto sleep/delete namespace ECUG Meetup 第 3 期
19. 收获 ECUG Meetup 第 3 期
20. 支撑专项测试 例子: 云存储的可靠性测试,验证在任何场景下数据 不丢失,不被破坏,最终可下载 • 以往痛点 • 环境数量少,可复制性差,没法兼顾更多的需求 • 当环境脏了,数据乱了时,没法快速推倒重来 • 基础设施不灵活,可观测性不够 • 云原生化后 • 灵活复制环境 • 轻松重建环境 • 完善的可观测体系 ECUG Meetup 第 3 期
21. 更高阶的玩法 不发布服务,也能在本地随时联调,把效率的优化做到了极致 ECUG Meetup 第 3 期
22. 谢谢 ECUG Meetup 第 3 期

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 02:59
浙ICP备14020137号-1 $Map of visitor$