DevOps工程效率及運維解決方案白皮書_第1頁
DevOps工程效率及運維解決方案白皮書_第2頁
DevOps工程效率及運維解決方案白皮書_第3頁
DevOps工程效率及運維解決方案白皮書_第4頁
DevOps工程效率及運維解決方案白皮書_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

及運維解決方案白皮書Copyright2022北京星漢未來網(wǎng)絡科技有限公司版權所有,保留一切權利。非經(jīng)本公司書面許可,任何單位和個人不得擅自摘抄、復制本文檔內容的部分或全部,并不得以任何形前言 11DevOps概述 21.1持續(xù)集成&持續(xù)部署 3 4 8 1.2.1指標系統(tǒng) 21 2企業(yè)評估模型 26 262.2研發(fā)團隊規(guī)模 272.3質量與穩(wěn)定性要求 2.4服務治理標準化程度 273典型企業(yè)型態(tài)效維工具鏈推薦 28 283.2中型腰部公司 303.3大型頭部公司 32結語 35前言今天的中國互聯(lián)網(wǎng),正加速從消費互聯(lián)網(wǎng)向產(chǎn)業(yè)互聯(lián)網(wǎng)轉型,數(shù)字化變革逐漸滲透到工智能,大數(shù)據(jù)等先進技術為代表,新的云原生基礎設施已經(jīng)就緒并將繼續(xù)演進,同實現(xiàn)和交付的時長。相應組織要圍繞這一目標構建配套工程系統(tǒng)體系以及團隊協(xié)作模韌性主要指確保系統(tǒng)穩(wěn)定,安全運行。彈性主要指系統(tǒng)能隨業(yè)務負載實時適配支撐能基于以上問題,本白皮書致力于為企業(yè)提供DevOps工程效率效維)工具說明及全景圖,并結合典型中國互聯(lián)網(wǎng)研發(fā)場景,提出適配不同體量和階讓計算像電一樣隨需使用1星漢未來星漢未來DevOps是Development和Operations的組合詞。它是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進開發(fā)(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協(xié)作與整合。它是一種重視“軟件開發(fā)人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟件交付”和“架構變更”的流程,來使得構建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠,把敏捷開發(fā)部門和運維部門之間的圍墻打通,形成閉環(huán)。在DevOps的流程下,運維人員會在項目開發(fā)期間就介入到開發(fā)過程中,了解開發(fā)人員使用的系統(tǒng)架構和技術路線,從而制定適當?shù)倪\維方案。而開發(fā)人員也會在運維的初期參與到系統(tǒng)部署中,并提供系統(tǒng)部署的優(yōu)化建議。完整的DevOps生命周期一般包括以下六個階段:其中持續(xù)集成,持續(xù)部署,持續(xù)監(jiān)控三個環(huán)節(jié)屬于工程效能和運維領域,是本白皮書主要關注點。星漢未來星漢未來持續(xù)集成&持續(xù)部署是在代碼提交后自動檢測、拉取、構建、測試和部署的過程,包含單元測試:單元測試(UnitTesting),是指對軟件中的最小可測試單元進行檢查和驗打包構建(鏡像構建):借助自動化工具,將已更新到托管平臺的代碼轉換成可用于生集成測試:集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎上,將所有模塊按照設計要求(如根據(jù)結構圖)組裝成為子系統(tǒng)或系統(tǒng),進行集成測試。集成測試一測試及提高測試效率的過程。自動測試的一般定義為:各種測試活動的管理與實施,包括測試計劃、設計、開發(fā)、執(zhí)行和評估這幾個步驟,各個步驟分別又有不同的自動性能測試:性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統(tǒng)的性能,目標是測試當負載逐漸增加時,系統(tǒng)各項性能指標的變化情況。壓力測試是通過確定一個系統(tǒng)的瓶頸或者預覽部署:預覽即從線上環(huán)境負載中摘除單一實例,進行新版本的部署,并順序完成灰度部署:在接收到預覽部署完成并通過的指令后,從線上環(huán)境中選取一定比例(運維與研發(fā)約定值)的服務實例,進行新版本的部署,并觀測相關運維指標。持續(xù)集成可以幫助開發(fā)人員更加頻繁地(有時甚至每天)將代碼更改合并到共享分支或"主干"中。一旦開發(fā)人員對應用所做的更改被合并,系統(tǒng)就會通過自動讓計算像電一樣隨需使用—3—星漢未來運行不同級別的自動化測試(通常是單元測試和集成測試)來驗證這些更改,確保這讓計算像電一樣隨需使用—4—讓計算像電一樣隨需使用—5—/pr面向軟件開發(fā)者的基于Git的在線代碼托管服務,是具備安全管控、成員/權限管理、分支保護/合并、在線編輯、統(tǒng)計服務等功能的云端代碼倉庫,旨在解決軟件開發(fā)者在跨地域協(xié)同、多分支并發(fā)、代碼版本管理、安全性等方面的問題。5用戶+500M存儲空間以內免費體驗,超額后按需或按套餐計費。阿里云云效Codeup云效代碼管理云效代碼管理Codeup覆蓋項目管理、代碼管理、測試管理、持續(xù)集成、制品管理、發(fā)布管理的Devops—站式研發(fā)管理平臺。基于Git的代碼托管服務,主打企業(yè)級托管,因此在管控和安全層面做了不少加強,由于在國內,訪問速度相比GitLab、GitHub快不少。CODING是面向軟件研發(fā)團隊的研發(fā)協(xié)作管理平臺,發(fā)展方向和上面阿里云一樣,也星漢未來代碼托管組件對比華為CodeHub阿里Codeup企業(yè)級支持企業(yè)級,收費企業(yè)級,免費企業(yè)級,免費企業(yè)級,收費需要搭建受企業(yè)控制表1代碼托管工具對照表讓計算像電一樣隨需使用—7—1.1.2集成流水線功能上更側重于Cl。Jenkins支持各種運行方式,可通過系統(tǒng)包、Docker或者通過流行的CI&CD工具。為了適配云原生,又推出了JenkinsX,JenkinsX更適合在GitLabCl/gitGitLab已經(jīng)內置了GitLabCl,只需在Kubernetes中安裝部署Gi讓計算像電一樣隨需使用—8—Zadighttps://githZADIG圖11Zadig圖12SonarQube讓計算像電一樣隨需使用Drone是一個基于Docker容器技術的可擴展的持續(xù)集成開源引擎,用于自動化測試完全控制其構建環(huán)境并保證隔離。開發(fā)者只需在項目中包含drone.yml文件,將代Walle讓用戶代碼發(fā)布終于可以不只能選擇Jenkins,它支持各種web代碼發(fā)布,語言上支持php、java、python、go等代碼的發(fā)布、可通過web來一鍵回滾。Walle是一個可自由配置,人性化,高顏值,支持git、多用戶、多語言、多讓計算像電一樣隨需使用集成流水線組件對比開源/商業(yè)性開源/商用自托管/本地部署自托管/本地部署自托管/本地部署自托管/本地部署內置CI/CD內置功能內置功能內置功能統(tǒng)一持續(xù)集成,易于操作WebUI構建內置在傳統(tǒng)的系統(tǒng)部署中,服務運行在一個固定的已知的IP和端口上,如果一個服務需要調用另外一個服務,可以通過地址直接調用,但是,在虛擬化或容器化的環(huán)境中,服務實例的啟動和銷毀是很頻繁的,服務地址在動態(tài)的變化,如果需要將請求發(fā)送到·服務注冊一存儲服務的主機和端口信息;·服務發(fā)現(xiàn)一允許其他用戶發(fā)現(xiàn)服務注冊階段存儲的信息。服務發(fā)現(xiàn)的主要優(yōu)點是可以無需了解架構的部署拓撲環(huán)境,只通過服務的名字就能夠使用服務,提供了一種服務發(fā)布與查找的協(xié)調機制。服務發(fā)現(xiàn)除了提供服務注冊、目讓計算像電一樣隨需使用Consul包含了分布一致性協(xié)議實現(xiàn)、健康檢查、Key/Value存儲、多數(shù)據(jù)中心方案,不再需要依賴其他工具(比如ZooKeeper等)。Consul用Golang實現(xiàn),因此具有天便部署,與Docker等輕量級容器可無etcd/etcd-io/etcd想要實現(xiàn)真正的服務發(fā)現(xiàn)功能,etcd還需要和其他工具(比如registrator、confd等)協(xié)同完成服務自動注冊和更新。讓計算像電一樣隨需使用—12—星漢未來ZooKeeperGitHub-apache/zookeeper:ApacheZooKeeper圖17ZooKeeper務,主要用于AWS云中,用于中間層服務器的發(fā)現(xiàn)、負載平衡和故障轉移。它在讓計算像電一樣隨需使用—13—Nacoshttps://nacos.io/zh-cnhttps://github.Nacos提供對服務的實時的健康檢查,阻止向不健康的主機或服務實例發(fā)送請求。Nacos支持傳輸層(PING或TCP)和應用層(如HTTP、MySQL、用戶自定義)的健康檢查。對于復雜的云環(huán)境和網(wǎng)絡拓撲環(huán)境中(如VPC、邊緣網(wǎng)絡等)服務的健康檢查,Nacos提供了agent上報模式和服務端主動檢測2種健康檢查模式。Nacos還提供了統(tǒng)一的健康檢查儀表盤,幫助您根據(jù)健康狀態(tài)管理服務的可用性及流量。讓計算像電一樣隨需使用星漢未來傳輸層(PING/TCP)應用層(HTTP)自定義健康檢查多數(shù)據(jù)中心語言支持基于DNS和服務發(fā)現(xiàn);原生SDK;獨立Agent大部分增量;自身監(jiān)控安全已支持已支持已支持已支持已支持eureka的替代使用無無1.支持Dubbo讓計算像電一樣隨需使用星漢未來星漢未來服務的穩(wěn)定性離不開監(jiān)控系統(tǒng)的保駕護航。監(jiān)控系統(tǒng)為服務穩(wěn)定運行提供數(shù)據(jù)可視化,異常報警,異常定位,故障追蹤等能力;同時監(jiān)控系統(tǒng)還為服務持續(xù)優(yōu)化升級提供依監(jiān)控系統(tǒng)有三大基石,指標,日志,分布式追蹤。指標體系聚焦于故障發(fā)現(xiàn)環(huán)節(jié),服務以數(shù)字形式評估出服務QPS,成功率,延遲,容量等關鍵指標,搭配報警系統(tǒng)可以保證當核心指標異常時及時通知開發(fā)/運維人員。除了核心指標外,服務還可以將各模塊/階段的瓶頸點,外部依賴指標量化,建立更加完善服務狀態(tài)概覽,以便服務開發(fā)/運維人員塊度定位異常,根因分析。指標系統(tǒng)優(yōu)勢是日志系統(tǒng)用于記錄服務內發(fā)生的各類事件。日志系統(tǒng)聚焦故障定位環(huán)節(jié),與指標系統(tǒng)相比日志系統(tǒng)具有更強的描述性,但也伴隨著更大的存儲空間和計算存儲資源要求。的錯誤,和錯誤原因以日志形式記錄下來,以便在故障定位和復盤時恢復異?,F(xiàn)場環(huán)分布式追蹤系統(tǒng)用于分析服務調用關系,在微服務盛行的今天,服務之間調用關系原來越復雜,微服務之間相互影響也更加難以定位和排查。分布式追蹤系統(tǒng)聚焦于故障定位環(huán)節(jié),與指標體系和日志體系不同,分布式追蹤系統(tǒng)可以提供服務之間依賴拓撲,讓計算像電一樣隨需使用Open-Falcon/open-falcon/falcon-plus類監(jiān)控場景。Open-Falcon提供了開箱即用的監(jiān)控軟件,Open-Falcon內置了讓計算像電一樣隨需使用—17—圖22Nightingale開箱即用的特性之外,還解決了指標存儲性能問題,高可用問題。增加了用戶管理等相對于Open-Falcon,Nightingale更加成熟,幾乎覆蓋了Open-Falcon的所有優(yōu)點,開箱即用,指標完善,同時增加了緩存能力,支持定制存儲,對于不太想做太多定制CAT/dianpingCAT是基于Java開發(fā)的實時應用監(jiān)控平臺,為美團點評提供了全面的實時監(jiān)控告警服務。CAT作為服務端項目基礎組件,提供了Java,C/C++,Node.js,Python,數(shù)據(jù)庫框架,緩存框架等,消息隊列,配置系統(tǒng)等)深度集成,為美團點評各業(yè)務線提供系統(tǒng)豐富的性能指標、健康狀況、實時告警等。CAT很大的優(yōu)勢是它是一個實時指標實時性很高是CAT的優(yōu)勢,開放性強,是業(yè)務打點很好的選擇。CAT具有多租戶管理能力,同時CAT具有將數(shù)據(jù)歸檔的能力降低了系統(tǒng)存儲資源壓力。CAT也內置了讓計算像電一樣隨需使用讓計算像電一樣隨需使用19星漢未來指標系統(tǒng)組件對比API接口良好良好良好良好良好多家國內公司在使用使用范圍廠背書高可用,高性能;標存儲查詢;容易容易容易容易容易上手難度簡單易用簡單易用簡單易用有一定簡單易用亮點即用即用服務冗余度保持;礎指標;讓計算像電一樣隨需使用201.2.2日志系統(tǒng)ELKhttps:/Logstash和KibanaElasticsearch是一個搜索和分析引擎。Logstash是服務器端數(shù)據(jù)處理管道,能夠同時從多個來源采集數(shù)據(jù),轉換數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到諸如Elasticsearch等“存儲庫”中。Kibana則可以讓用戶在Elasticsearch中使用圖形和圖表對數(shù)據(jù)進行可視化ELK以其簡單易用,已經(jīng)成為日志系統(tǒng)的標準配置。讓計算像電一樣隨需使用Jaeger/圖26JaegerJaeger是Uber開源的分布源于Google的Dapper和Twitter的Zipkin,從2016年開始該系統(tǒng)在Uber內部得到Jaeger一般使用HBase存儲調用信息,當數(shù)據(jù)量較大時,存儲容易成為瓶頸SKyWalking/圖27SkyWalkingSkyWalking的核心是數(shù)據(jù)分析和度量結果的存儲平臺,通過HTTP或gRPC方式向SkyWalkingCollector提交分析和度量數(shù)據(jù),SkyWalkingCollector對數(shù)據(jù)進行分析和聚合,存儲到Elasticsearch、H2、MySQL、TiDB等其一即可,最后我們可以通過SkyWalkingUl的可視化界面對最終的結果進行查看。SkyWalking支持從多個讓計算像電一樣隨需使用—22—星漢未來分布式追蹤組件對比OpenTracing兼容是是客戶端支持語言中中實現(xiàn)方式-代碼侵入性高中trace查詢中低表5分布式追蹤組件對照表讓計算像電一樣隨需使用23Grafana是一款用Go語言開發(fā)的開源數(shù)據(jù)可視化工具,可以做數(shù)據(jù)監(jiān)控和數(shù)據(jù)統(tǒng)計,帶有告警功能。Grafana可以認為是多種數(shù)據(jù)源的代理,Grafana提供豐富的視圖能力??梢詫ySQL,ClickHouse,Prometheus,InfluxDB等數(shù)據(jù)源注冊到Grafana,用戶就可使用Grafana強大的視圖功能。相對于其他時序數(shù)據(jù)視圖軟件,Grafana優(yōu)勢突出,用戶接受能力也更高,大中小型公司都適用。星漢未來整個工程效率&運維工具全景圖如下所示:tt讓計算像電一樣隨需使用25DevOps成熟度是評估效維工具選擇的首要參考維度。不同企業(yè)DevOps發(fā)展階段不可以快捷發(fā)現(xiàn)DevOps流程中的阻塞點和風險點。自動化一方面是取更低門檻甚至是一站式的工具,功能可以比較單一,主要注重價值流的流轉效率。能成熟運用各種DevOps實踐的企業(yè),適合根據(jù)自己實際,按需求選讓計算像電一樣隨需使用-26星漢未來效維團隊的人員規(guī)模,影響了Cl/CD及監(jiān)控工具鏈的選擇。我們把20人以下的效維團隊定義為中小團隊,20至百人以上定義為大型團隊。正常來說,效維團隊的規(guī)模也同比研發(fā)團隊的規(guī)模。對于中小團隊來說,選擇學習曲線低,能快速搭建且有較完備社區(qū)或官方服務提供后續(xù)支持的工具為主,容忍功能相對單一。大型團隊因為有較充足的人力及技術實力,有條件選用有一定上手成本,但功能全面且支持深度定制甚至重業(yè)務對運維服務質量的要求,也深度影響效維工具鏈的選擇和搭建。比如金融業(yè)務,對穩(wěn)定性和精確性有極高的要求,并且面臨外部強合規(guī)性的監(jiān)管,效維質量要求較高。而其它類似推薦的業(yè)務,即使出現(xiàn)問題也只是降低客戶體驗,比如展現(xiàn)相關度不高的針對于效維質量要求較高的項目,工具鏈的選擇傾向于功能覆蓋率較全,有大廠背書或業(yè)界口碑,歷史bug率不高的工具,整個的效維流程的時延以及效企業(yè)的服務治理標準化程度也會影響了效維工具鏈的選擇。服務治理標準化包括硬件準化程度較高的企業(yè),效維工具功能可以相對比較聚焦,不需要覆蓋各層級多種標準導致的技術復雜度。標準化程度較低的企業(yè),效維工具的體系和結構會比較龐雜,甚讓計算像電一樣隨需使用—27—星漢未來公司特點初創(chuàng)型小微公司中小研發(fā)團隊規(guī)模+質量與穩(wěn)定性要求不高+治理集中度高+DevOps成熟度低中型腰部公司中小型研發(fā)團隊規(guī)模+質量與穩(wěn)定性要求高+治理集中度不高+DevOps成熟度低大型頭部公司大型研發(fā)團隊規(guī)模+質量與穩(wěn)定性要求高+治理集中度不則,運維能力有限。QQ(鎖像管理)服務發(fā)現(xiàn)。讓計算像電一樣隨需使用28星漢未來●推薦使用GitLab代碼管理,GitLab具有開源、高效、穩(wěn)定、社區(qū)龐大的優(yōu)點。目前Kubernetes已經(jīng)成為了云原生的標準服務部署平臺,它大大減少了運維人員工作負擔。在團隊人數(shù)較少時采用Kubernetes,不僅節(jié)省人力、服務部署升級效率高,還具有強大的系統(tǒng)可擴展性。基于BridgX搭建的運維系統(tǒng)可擴展性更高;心指標為服務自動擴縮容提供更高的可擴展性,同時CudgX兼容Prometheus生集器上報的監(jiān)控數(shù)據(jù),轉存到時序庫(可以支持Prometheus、M3DB、VictoriaMetrics、Thanos等),并提供告警規(guī)則、屏蔽規(guī)則、訂閱規(guī)則的配置能力,提供監(jiān)控數(shù)據(jù)的查看能力,提供告警自愈機制(告警觸發(fā)之后自動回調某個webhook地址或者執(zhí)行某個腳本),提供歷史告警事件的存儲管理、分組查看的規(guī)模較小時采用,既不會浪費太多運維時間,又能保證服務質量,還可以保證系讓計算像電一樣隨需使用采用此種監(jiān)控方案總結如下:。使用Nightingale+CudgX此模型適合于業(yè)務穩(wěn)定性要求較高的企業(yè),此時企業(yè)一般有穩(wěn)定的服務和客戶群體,APISIX(四/七層負載均衡)監(jiān)控/報警/彈性服務支持LVS(四層負載均衡)NGINX(七層負載均衡)(決策支持)(服務指標)(服務發(fā)現(xiàn)與注冊)(基礎指標)像管理)(日志系統(tǒng))GitLab(代碼管理)代媽管理圖31建議工具鏈讓計算像電一樣隨需使用30星漢未來●推薦使用GitLab代碼管理,原因為GitLab是企業(yè)級的開源代碼托管軟件,生態(tài)非常成熟,成熟穩(wěn)定,社區(qū)龐大,使用簡單。同時搭配Jenkins提供易于用戶操作時支持物理機和容器化部署。對于服務質量要求較高,代碼發(fā)布,服務更新應該有完善的灰度到全量更新流程,并且當核心指標異常時,應該阻斷變更,SchedulX配合CudgX可以實現(xiàn)金絲雀發(fā)布,變更阻斷,動態(tài)擴縮容等功能,最大程度上保證服務質量。在服務質量要求較高的場景下,部分服務可能由于網(wǎng)絡或者資源隔離的原因,希望將服務部署在獨立的物理機中,SchedulX既支持Kubernetes又支持物理機部署。采用SchedulX服務部署流程描述如下:●推薦使用CudgX+Nightingale+ELK+Jaeger+Grafana搭建監(jiān)控系統(tǒng)?;贑udgX建立業(yè)務指標體系,具有高可用,高性能,高擴展性的特點,同時搭配SchedulX可以完成變更阻斷和服務自動擴縮容,大大提供服務穩(wěn)定性?;诨贓LK完成日志收集,服務異常時快速定位故障環(huán)節(jié),降低故障影響?;贘aeger搭建分部署追蹤系統(tǒng),快速定位系統(tǒng)瓶頸點,定位故障服務?;谧層嬎阆耠娨粯与S需使用—31—CPU/Memory/網(wǎng)卡等)監(jiān)控;3.3大型頭部公司此模型企業(yè)內各服務和組件都趨于成熟,此時企業(yè)業(yè)的運維團隊,需要完善的DevOps平臺來保障復雜的微服務體系下的服務質量。企業(yè)更關注于系統(tǒng)平臺化,將各類組件分門別類組合成為系統(tǒng)平臺,并搭建CMDB管理此模型下平臺化成為主題,各組件有獨立部門負責(Consul,Nacos,Etcd,Z監(jiān)控平臺分布式追服務部署平臺圖32建議工具鏈讓計算像電一樣隨需使用星漢未來●推薦服務部署平臺包含:代碼托管,持續(xù)集成,服務部署,變更阻斷,灰

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論