《腾讯云Orbit创新实践:平台工程让研发返璞归真.pdf》由会员分享,可在线阅读,更多相关《腾讯云Orbit创新实践:平台工程让研发返璞归真.pdf(45页珍藏版)》请在三个皮匠报告上搜索。
1、潘俊明腾讯云 CODING 应用管理产品总监平台工程让研发返璞归真腾讯云Orbit 实践分享潘俊明腾讯云 CODING 应用管理产品总监多年技术架构经验,完整经历多家企业应用上云,对企业应用上云最佳实践有独特见解。2019年开始在 CODING 负责持续部署产品研发,帮助多个行业客户完成研发效能的方案设计和最终落地。CONTENT 目录0101云原生应用交付问题与挑战0202平台工程 x 应用交付探索与实践0303云原生应用交付未来发展趋势云原生应用交付问题与挑战01问题与挑战(一):研发认知负荷的冲突云原生技术生态繁荣,新理念新工具层出不穷,导致IT团队认知负荷急剧上升,身心疲惫,不堪重负。
2、持续集成流水线配置IaCKubernetesArgoCDSonaruqbe内建质量制品仓库HarborPrometteusDockerfileSCAGit平台工程Spinaker质量门禁持续交付Pod持续部署灰度发布GitOpsSonarqube自动化测试监控Istio渐进式发布功能开关ServiceIngressResourcesDeployment测试左移Envoy金丝雀发布DevOps代码扫描JenkinsDecSecOps服务网格Rollout供应链安全分批部署DockerHelm可观测性Yaml人工审核容器安全Dapr版本控制问题与挑战(二):研发效率和交付效率的冲突开发们为了开发效
3、率而选择了微服务,但微服务 x 多环境,最终让各个环境的部署效率急剧下降。运维研发研发研发那么多服务我干不过来那么多服务我干不过来Ops Ops 我忘了发布我忘了发布!用户网站挂了网站挂了数据库配置微服务灰度发布太麻烦灰度发布太麻烦直接上线算了直接上线算了运维大哥帮我发数据库运维大哥帮我发数据库问题与挑战(三):聚焦局部指标的传统监控体系失效微服务让每一次业务的调用链变得很长。加上传统运维体系下,信息视角割裂,工具孤岛,问题排查难上加难。问题与挑战(四):环境需求和环境供应的冲突研发的敏捷使得研发对环境的需求增多。而环境的供应无法满足需求的增加。谁把未提测的东西发到集成环境了?帮我搭个测试环境
4、帮我搭个测试环境A 迭代环境集成测试环境B 迭代环境运维平台工程 x 应用交付探索与实践02平台工程DevOps 已死,平台工程才是未来开发者不喜欢和基础设施打交道企业在发展过程中又需要控制自己的基础设施平台工程运维/云平台研发平台研发运维视角分离探索(一):OAM视角分离应用建模实践(一):OAM 落地实践价值(一):OAM价值优势 研发自助建模,自助发布 视角分离,研发低门槛,同时专家统一控制规范 关注“应用”和“业务”,而非“资源”配置透明化版本化,高效集成GitOps 低门槛的同时具有高扩展性,新增功能不需平台修改 多云管理,厂商中立探索(二):GitOps进行应用配置管理 声明式 版
5、本化且不可变 基于 Git 协作核心原则实践(二):GitOps 落地实践基于 Application as Code 理论,实现统一演进,可审计、可回溯代码化存储实践(二):GitOps 落地实践实践(二):GitOps 落地实践价值(二):GitOps 价值优势 提高生产力:缩短反馈回路径,加快“平均部署时间”增强可靠性:Git 实现稳定且可重现的回滚 方便安全审计:Git记录所有变更相关的详细信息 一致性和标准化:所有操作需满足Git的标准规范,不容易冲突 改善开发者体验:开发者熟悉Git,上手成本低探索(三):IaC实现基础设施资源自服务基础设施即代码(IaC)工具允许使用配置文件,以
6、声明式的方式而不是通过图形界面的动作来管理基础设施。实践(三):IaC实践-视角分离实践(三):IaC实践-运维人员-资源模板实践(三):IaC实践-研发人员-资源申请实践(三):IaC实践-研发人员-资源申请实践(三):IaC实践-运维人员-资源审批实践(三):IaC实践-研发人员-资源使用实践(三):IaC实践-研发人员-资源使用价值(三):IaC 价值优势 提高一致性,减少“配置漂移”等人为错误 利用自动化,提高环境的供应量 缩短交付周期,加快产品服务的上市时间 更好的知识能力沉淀和组织资产传承 让资源更按需使用,更有弹性探索(四):以应用为中心可观测平台metricsmetricsme
7、tricsmetrics实践(四):可观测实践 以应用为中心屏蔽多余的信息杂音 以业务研发视角组织可观测信息,让信息更内聚 让不同的工具可以聚合在同一个平台,减少访问路径的阻碍 更快更可靠的发现问题、定位问题与解决问题价值(四):可观测平台价值优势探索(五):DAG 编排渐进式交付渐进式交付,也可以称为渐进式推出或分阶段推出,是一种软件开发实践,允许您逐步向用户推出新功能以限制对最终用户的影响并获得反馈以进行改进。渐进式交付建立在持续交付的概念之上,并包含部署策略,例如 a/b 测试、蓝绿部署、环形部署和金丝雀部署。蓝绿部署环形部署金丝雀部署实践(五):渐进式发布实践实践(五):渐进式发布实践
8、实践(五):渐进式发布实践整个灰度部署过程 C anary第批流量灰度 W orkflow准备部署/扩容设置流量例 10%等待确认等待批次间隔部署灰度A部署灰度B 部署灰度C第批流量灰度 W orkflow准备部署/扩容设置流量例 30%等待确认等待批次间隔部署灰度A部署灰度B 部署灰度C第三批流量灰度 W orkflow准备部署/扩容设置流量例 50%等待确认等待批次间隔部署灰度A部署灰度B 部署灰度C第四批流量灰度 W orkflow准备部署/扩容设置流量例 100%等待确认等待批次间隔部署灰度A部署灰度B 部署灰度C灰:未执红:出错第三批流量灰度 W orkflow准备部署/扩容设置流量
9、例 50%等待确认等待批次间隔部署灰度A部署灰度B 部署灰度C回滚流程(回滚)第三批流量灰度 W orkflow准备缩容设置流量例 50%等待确认等待批次间隔缩容灰度A缩容灰度B 缩容灰度C(回滚)第批流量灰度 W orkflow准备缩容设置流量例 20%等待确认等待批次间隔缩容灰度A缩容灰度B 缩容灰度C(回滚)第批流量灰度 W orkflow准备缩容设置流量例 10%等待确认等待批次间隔缩容灰度A缩容灰度B 缩容灰度C(回滚)第0批流量灰度 W orkflow准备销毁设置流量例 0%销毁灰度A销毁灰度B 销毁灰度C正式环境部署准备部署/扩容设置流量例 100%等待确认等待批次间隔部署A部署
10、B部署C正式环境回滚准备回滚设置流量例 100%等待确认等待批次间隔服务 A 回滚服务 B 回滚服务 C 回滚准备准备备份正式环境实践(五):渐进式发布实践实践(五):渐进式发布实践价值(五):渐进式发布价值优势 更安全的交付应用 更低的发布风险 更强的业务连续性 更高的客户满意度云原生应用交付未来发展趋势03发展趋势(一):ChatOpsChatOps 是一种关联模型,可将人员、工具、流程和自动化连接到一个透明的工作流中。发展趋势(二):FinOpsFinOps 是一种不断发展的云财务管理学科和文化实践,通过帮助工程、财务、技术和业务团队协作制定数据驱动的支出决策,使组织能够获得最大的业务价
11、值。发展趋势(三):云原生安全云原生安全是一种将安全性构建到云原生应用程序中的方法。它确保安全是从开发到生产的整个应用程序生命周期的一部分。云原生安全旨在确保与传统安全模型相同的标准,同时适应云原生环境的特殊性,即快速的代码更改和高度短暂的基础设施。TLSSASTSCA端口限制动态探测攻击容器漏洞扫描镜像签名和执行禁止特权用户沙箱技术内核安全Kubernetes API 访问限制Kubelet 访问限制Etcd 保护日志审计RBAC证书轮换特性限制数据加密发展趋势(四):Kubernetes跨云融合架构Clusternet(Cluster Internet)是一款可以帮助您像访问 Internet 一样简单地管理数以百万计的 Kubernetes 集群的开源插件。无论集群是在公共云、私有云、混合云还是在边缘运行,Clusternet 都可以让您像是在本地运行一样管理/访问它们,无需为每个集群安装不同管理工具。THANKS谢谢观看