1、携程在云原生下的DevOps实践GOP S 全 球 运 维 大 会 2019 上 海 站 目录目录DevOps&Cloud Native1携程携程DevOps理念理念的的演进演进2携程携程DevOps案例案例3总结总结4GOP S 全 球 运 维 大 会 2019 上 海 站 物理机-虚拟机-容器 Openstack-Mesos-K8s 私有数据中心-混合云.Net-Java/NodeJS/Golang/Python 周均发布9000+次,日均编译30000+,每周上下线机器2000+GOP S 全 球 运 维 大 会 2019 上 海 站 基本情况介绍1.DevOps不只是工具2.DevOp
2、s不只是运维的事3.DevOps的核心是DevOps文化DevOpsDEVGOP S 全 球 运 维 大 会 2019 上 海 站 OPSQADevOpsCloud Native应用:基础设施:单体应用小型机单体应用X86服务器微服务云计算+容器化更好的跑道,需要更好的车GOP S 全 球 运 维 大 会 2019 上 海 站 马车Ford Model TFerrari两者关系两者关系DevOpsCloud Native1.DevOps是Cloud Native的基础2.Cloud Native让DevOps更简单GOP S 全 球 运 维 大 会 2019 上 海 站 一切皆可描述,一切皆可
3、观察标准化,弹性扩展目录目录DevOps&Cloud Native1携程携程DevOps理念理念的的演进演进2携程携程DevOps案例案例3总结总结4GOP S 全 球 运 维 大 会 2019 上 海 站 Cloud Native 演进演进 小型机,物理机小型机,物理机应用D 设备D应用E 设备E应用A 设备A部署,运维应用B 设备B数据中心研发测试运维应用C 设备C监控,告警GOP S 全 球 运 维 大 会 2019 上 海 站 特殊设备,手动部署Cloud Native 演进演进 虚拟化,云计算虚拟化,云计算数据中心研发测试运维应用E应用E应用E应用D应用D应用D应用B应用C应用C应用
4、B应用B应用B应用A应用A应用A运维监控,告警工具虚拟化,云计算DevOps自动化部署 自动化运维GOP S 全 球 运 维 大 会 2019 上 海 站 优点优点 标准化计算资源交付过程缺点缺点 虚机交付慢,无法支撑大规模扩缩容 环境标准化靠脚本维护,成本高GOP S 全 球 运 维 大 会 2019 上 海 站 Cloud Native 演进演进 虚拟化,云计算虚拟化,云计算Cloud Native 演进演进 容器化容器化,混合云混合云数据中心研发测试运维应用E应用E应用E应用D应用D应用D应用B应用C应用C应用B应用B应用B应用A应用A应用A运维监控,告警PaaS容器化,Mesos,K8
5、sDevOps持续交付 平台化GOP S 全 球 运 维 大 会 2019 上 海 站 优点优点 标准化应用运行环境缺点缺点 容器当成虚拟机管理 过度依赖用户操作 中心化管理GOP S 全 球 运 维 大 会 2019 上 海 站 Cloud Native 演进演进 容器化容器化,混合云混合云Cloud Native 演进演进 容器化容器化,混合云混合云数据中心研发测试运维应用A应用B应用C应用D应用D应用D应用E应用E应用E运维监控,告警申明UIK8s观察GitOpsController/OperatorK8sWatchDiffActionDevOpsGOP S 全 球 运 维 大 会 20
6、19 上 海 站 优势优势 标准化数据中心结构,可快速复制 去中心化,k8s内部自治 机器管理机器,将人的运维经验代码化GOP S 全 球 运 维 大 会 2019 上 海 站 Cloud Native 演进演进 容器化容器化,混合云混合云目录目录DevOps&Cloud Native1携程携程DevOps理念理念的的演进演进2携程携程DevOps案例案例3总结总结4GOP S 全 球 运 维 大 会 2019 上 海 站 持续交付GOP S 全 球 运 维 大 会 2019 上 海 站 DevOps之路之路-持续交付持续交付 一天十次发布一天十次发布价值交付代码构建发布测试迁移Git代码包物
7、理机环境管理依赖管理编译包单机多应用手动测试代码Review发布包火车模式研发发布发布测试GOP S 全 球 运 维 大 会 2019 上 海 站 DevOps之路之路-持续交付持续交付 想发就发想发就发代码构建测试发布价值交付构建规范容器镜像VM/Docker单机单应用金丝雀+灰度版本代码覆盖率自动测试服务集市BadSQL研发研发研发测试版本CI PipelineCD PipelineGOP S 全 球 运 维 大 会 2019 上 海 站 DevOps之路之路-持续交付持续交付 灵活定制灵活定制代码CI PipelineCD Pipeline价值交付代码驱动GOP S 全 球 运 维 大
8、会 2019 上 海 站 容器化GitOpsCommit容器镜像研发DevOps之路之路-持续交付持续交付 CI Pipeline 实现实现1.测试资源混布,提升利用率2.灵活配置,利用k8s调度能力GOP S 全 球 运 维 大 会 2019 上 海 站 DevOps之路之路-持续交付持续交付 CD Pipeline私有云公有云K8s Operator/ControllersK8s ClusterGitlab CI标准应用Java/NodeJS/非标应用K8s系统应用Redis/ES/Spark/AITars/CaptainSpinnakerHelmPaaSCDK8sCIGOP S 全 球
9、运 维 大 会 2019 上 海 站 监控日志GOP S 全 球 运 维 大 会 2019 上 海 站 DevOps之路之路 日志处理日志处理Django App通过UI增加 log配置DB翻译Filebeat 配置并保存D(Filebeat)Node AConfigMapNode BNode CD(Filebeat)D(Filebeat)K8s Cluster生成全量 Filebeat配置,推 送 给 k8s ConfigMap1234GOP S 全 球 运 维 大 会 2019 上 海 站 ConfigMap 触发Filebeat reload缺点缺点 中心化管理 过度依赖用户操作GOP
10、S 全 球 运 维 大 会 2019 上 海 站 DevOps之路之路 日志处理日志处理DevOps之路之路 日志处理日志处理Django App通过UI增加 log配置Node AAPI ServerNode BNode CK8s Cluster渲染 Log CRD 提交K8s12校验CRD提交EtcdEtcdFilebeatSupervisorFilebeatSupervisorFilebeatSupervisor3Supervisor 关注pod和log crd的变化,及时更新filebeat配置Part IGOP S 全 球 运 维 大 会 2019 上 海 站 Part IIPart
11、 III优点优点 去中心化管理 支持多云迁移GOP S 全 球 运 维 大 会 2019 上 海 站 DevOps之路之路 日志处理日志处理DevOps之路之路 监控监控业务层(Prometheus SDK)语言层(JMX,Go Prof)系统层(Cgroup)Agent采 集展示(Grafana)TSDB(Influxdb/ClickHouse/VictoriaMetrics)GOP S 全 球 运 维 大 会 2019 上 海 站 Influxdb目录目录DevOps&Cloud Native1携程携程DevOps理念理念的的演进演进2携程携程DevOps案例案例3总结总结4GOP S 全 球 运 维 大 会 2019 上 海 站 总结总结 容器不是虚机,不能像虚机一样管理 Watch-Diff-Action,让机器管理机器GOP S 全 球 运 维 大 会 2019 上 海 站 GOP S 全 球 运 维 大 会 2019 上 海 站 高效运维社区高效运维社区 开放运维联盟开放运维联盟荣誉出品荣誉出品想第一时间看到高效运维社想第一时间看到高效运维社区区 的新动态吗?的新动态吗?GOP S 全 球 运 维 大 会 2019 上 海 站