1、GOP S 全 球 運 維 大 會 2019上 海 站GOP S 全 球 運 維 大 會 2019上 海 站攜程在云原生下的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 全 球 運 維
2、 大 會 2019上 海 站1.DevOps不只是工具2.DevOps不只是運維的事3.DevOps的核心是DevOps文化DevOpsDEVOPSQADevOpsGOP S 全 球 運 維 大 會 2019上 海 站Cloud Native應用:基礎設施:單體應用小型機X86服務器單體應用云計算+容器化微服務更好的跑道,需要更好的車馬車Ford Model TFerrariGOP S 全 球 運 維 大 會 2019上 海 站兩者關系DevOpsCloudNative1.DevOps是Cloud Native的基礎2.Cloud Native讓DevOps更簡單一切皆可描述,一切皆可觀察標準
3、化,彈性擴展GOP S 全 球 運 維 大 會 2019上 海 站目錄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 演進 虛擬化,云計算數據中心研發測試運維應用A應用A應用A應用B應用B應用B應用B應用C應用C應用D應用D應用D應用E應用E應用E運維監
4、控,告警自動化部署自動化運維工具虛擬化,云計算DevOpsGOP S 全 球 運 維 大 會 2019上 海 站優點 標準化計算資源交付過程缺點 虛機交付慢,無法支撐大規模擴縮容 環境標準化靠腳本維護,成本高Cloud Native 演進 虛擬化,云計算GOP S 全 球 運 維 大 會 2019上 海 站Cloud Native 演進 容器化,混合云數據中心研發測試運維應用A應用A應用A應用B應用B應用B應用B應用C應用C應用D應用D應用D應用E應用E應用E運維監控,告警持續交付PaaS容器化,Mesos,K8s平臺化DevOpsGOP S 全 球 運 維 大 會 2019上 海 站優點 標
5、準化應用運行環境缺點 容器當成虛擬機管理 過度依賴用戶操作 中心化管理Cloud Native 演進 容器化,混合云GOP S 全 球 運 維 大 會 2019上 海 站Cloud Native 演進 容器化,混合云數據中心研發測試運維應用A應用B應用C應用D應用D應用D應用E應用E應用E運維監控,告警申明UIK8s觀察GitOpsK8sController/OperatorWatchDiffActionDevOpsGOP S 全 球 運 維 大 會 2019上 海 站優勢 標準化數據中心結構,可快速復制 去中心化,k8s內部自治 機器管理機器,將人的運維經驗代碼化Cloud Native 演
6、進 容器化,混合云GOP S 全 球 運 維 大 會 2019上 海 站目錄DevOps&Cloud Native1攜程DevOps理念的演進2攜程DevOps案例3總結4GOP S 全 球 運 維 大 會 2019上 海 站持續交付GOP S 全 球 運 維 大 會 2019上 海 站DevOps之路-持續交付 一天十次發布代碼構建測試發布價值交付遷移Git依賴管理代碼Review代碼包編譯包物理機單機多應用火車模式環境管理發布包手動測試發布發布測試研發GOP S 全 球 運 維 大 會 2019上 海 站DevOps之路-持續交付 想發就發代碼構建測試發布價值交付構建規范容器鏡像VM/Do
7、cker單機單應用金絲雀+灰度版本代碼覆蓋率自動測試服務集市BadSQL研發研發研發測試版本CI PipelineCD PipelineGOP S 全 球 運 維 大 會 2019上 海 站DevOps之路-持續交付 靈活定制代碼CI PipelineCD Pipeline價值交付代碼驅動容器化GitOpsCommit容器鏡像研發GOP S 全 球 運 維 大 會 2019上 海 站DevOps之路-持續交付 CI Pipeline 實現1.測試資源混布,提升利用率2.靈活配置,利用k8s調度能力GOP S 全 球 運 維 大 會 2019上 海 站DevOps之路-持續交付 CD Pipel
8、ine私有云公有云K8s ClusterK8s Operator/ControllersGitlab CI標準應用Java/NodeJS/K8sCDCITars/CaptainSpinnakerHelmPaaS非標應用K8s系統應用Redis/ES/Spark/AIGOP S 全 球 運 維 大 會 2019上 海 站監控日志GOP S 全 球 運 維 大 會 2019上 海 站DevOps之路 日志處理Django App通過UI增加 log配置DB翻譯Filebeat配置并保存D(Filebeat)Node AConfigMapNode BNode CD(Filebeat)D(Filebe
9、at)K8s Cluster生成全量Filebeat配置,推送給k8sConfigMap1234ConfigMap 觸發Filebeat reloadGOP S 全 球 運 維 大 會 2019上 海 站缺點 中心化管理 過度依賴用戶操作DevOps之路 日志處理GOP S 全 球 運 維 大 會 2019上 海 站DevOps之路 日志處理Django App通過UI增加 log配置Node AAPI ServerNode BNode CK8s Cluster渲染 Log CRD提交K8s12校驗CRD提交EtcdEtcdFilebeatSupervisorFilebeatSuperviso
10、rFilebeatSupervisor3Supervisor 關注pod和log crd的變化,及時更新filebeat配置Part IPart IIPart IIIGOP S 全 球 運 維 大 會 2019上 海 站優點 去中心化管理 支持多云遷移DevOps之路 日志處理GOP S 全 球 運 維 大 會 2019上 海 站DevOps之路 監控業務層(Prometheus SDK)語言層(JMX,Go Prof)系統層(Cgroup)Agent采集TSDB(Influxdb/ClickHouse/VictoriaMetrics)展示(Grafana)InfluxdbGOP S 全 球 運 維 大 會 2019上 海 站目錄DevOps&Cloud Native1攜程DevOps理念的演進2攜程DevOps案例3總結4GOP S 全 球 運 維 大 會 2019上 海 站 容器不是虛機,不能像虛機一樣管理 Watch-Diff-Action,讓機器管理機器總結