在云計算、大數(shù)據(jù)、人工智能等新興技術(shù)的推動下,眾多行業(yè)都在經(jīng)歷一場轟轟烈烈的數(shù)字化轉(zhuǎn)型大潮。隨著容器技術(shù)和編排系統(tǒng)的發(fā)展、基礎(chǔ)設(shè)施不斷云化、分布式微服務(wù)架構(gòu)不斷演進(jìn)和敏捷、DevOps等開發(fā)理念的帶動,應(yīng)用云化已經(jīng)是不可逆轉(zhuǎn)的趨勢,云原生也成為企業(yè)應(yīng)用現(xiàn)代化數(shù)字轉(zhuǎn)型不可不追隨的潮流。
隨著企業(yè)應(yīng)用逐步向云原生應(yīng)用進(jìn)行演進(jìn)和遷移,具備了更快的迭代速度、更低的開發(fā)復(fù)雜性和更好的可擴(kuò)展性,但同時,部署和運維的復(fù)雜性和工作量卻大大增加。相較于面向操作規(guī)則的傳統(tǒng)運維,云原生架構(gòu)下的運維轉(zhuǎn)變?yōu)槊嫦蚩捎^測數(shù)據(jù)的自動化、數(shù)據(jù)化和智能化運維,強調(diào)以應(yīng)用為中心、業(yè)務(wù)指標(biāo)可視化和應(yīng)用全鏈路分析,面臨著新的挑戰(zhàn),如圖1所示。
圖1 云原生架構(gòu)下的運維面臨的挑戰(zhàn)
針對以上的挑戰(zhàn),建議的整體方案如圖2所示:參考ITSM、ITIL、DevOps、敏捷、精益等先進(jìn)方法論作為規(guī)劃指引,實施云原生相關(guān)技術(shù)和工具作為支撐,建設(shè)突出快的敏態(tài)運維轉(zhuǎn)型、突出精的技術(shù)運營、突出穩(wěn)的系統(tǒng)穩(wěn)定性保障和突出智的DataOps、AIops四大運維能力域作為目標(biāo),進(jìn)而形成包括引入DevOps、基礎(chǔ)設(shè)施即代碼、Docker和K8S、Service mesh、可觀測性、DevSecOps和FinOps等關(guān)鍵技術(shù)實踐。本文主要結(jié)合這些關(guān)鍵技術(shù)實踐如何在云原生運維下更好的落地進(jìn)行探討。
圖2 云原生運維整體方案
引入DevOps實現(xiàn)持續(xù)交付流水線、助力開發(fā)運維一體化
DevOps依靠工作流程、人員組織的整合,以協(xié)作、自動化、精益、度量、共享、文化為指引,建立一種可以快速交付價值,并且具有持續(xù)反饋和改進(jìn)能力的現(xiàn)代化IT組織。
為了實現(xiàn)穩(wěn)定、可靠和高效的運維體系,需要有相應(yīng)的持續(xù)集成與交付方式進(jìn)行配套支撐,在云原生體系下,作為運維團(tuán)隊,通過結(jié)合DevOps的方法論、流程、技術(shù)和工具,構(gòu)建一個跨部門協(xié)作、質(zhì)量內(nèi)建的、持續(xù)反饋改進(jìn)的一體化自動化持續(xù)交付流水線很有必要,同時形成標(biāo)準(zhǔn)化的流程和規(guī)范,推進(jìn)應(yīng)用部署的容器化、K8S化,實現(xiàn)多態(tài)研發(fā)模式、多分支持續(xù)集成、多版本、多環(huán)境、多制品庫形態(tài)、多場景多策略漸進(jìn)式的自動化發(fā)布部署和交付,實現(xiàn)效能提升。
在工具落地上,構(gòu)建基于Kubernetes/Docker技術(shù)和開源工具鏈的CI/CD流水線,并通過不斷的優(yōu)化和改進(jìn),來改善開發(fā)人員的體驗,使開發(fā)人員可以通過自服務(wù)的方式更容易的做正確的事情,從而實現(xiàn)服務(wù)的快速構(gòu)建、高效集成和部署交付,同時提升運維團(tuán)隊的敏捷性和效率,加快產(chǎn)品團(tuán)隊的交付速度。
通過基礎(chǔ)設(shè)施即代碼實現(xiàn)多云管理
傳統(tǒng)的云平臺相關(guān)資源和基礎(chǔ)設(shè)施管理,更多的是偏向運維人員以手動的方式結(jié)合云平臺的portal和命令行等來進(jìn)行,會出現(xiàn)重復(fù)度高、差異化大、成本高、人為錯誤等問題。
基礎(chǔ)設(shè)施即代碼,是通過代碼而非手動定義的基礎(chǔ)設(shè)施的供應(yīng)和管理過程。用代碼來描述基礎(chǔ)設(shè)施的創(chuàng)建、變更、銷毀;代碼編寫好,驗證也是正確的,之后每次執(zhí)行任務(wù)都不會出錯;非??焖伲咝В淮a代替文檔,有歷史記錄,可回滾,不用擔(dān)心文檔更新不及時或人員流動帶來的“黑盒”問題;不用通過訪問生產(chǎn)環(huán)境,就能知道生產(chǎn)環(huán)境上的配置情況。
作為云原生運維,面臨各種不同的公有云/私有云環(huán)境和各種跨云/跨平臺的操作,迫切需要具備相關(guān)工具和開發(fā)技能,工具包括Terraform和Packer,其中Terraform是一種開源工具,用可以安全高效地預(yù)覽、配置和管理云基礎(chǔ)架構(gòu)和資源,Packer是通過模板來定義一些內(nèi)容然后創(chuàng)建鏡像的方式來實現(xiàn)。
在具體實踐上,如果是云架構(gòu)或云資源可以直接通過Terraform結(jié)合對應(yīng)的provider進(jìn)行操作,并可以根據(jù)資源分類創(chuàng)建不同的代碼倉庫和module;如果是需要定制化的基礎(chǔ)組件,可以結(jié)合Terraform和Packer實現(xiàn)不可變基礎(chǔ)設(shè)施,利用Packer去生成定制化的鏡像,利用Terraform引用對應(yīng)的鏡像去創(chuàng)建資源,這種方案的好處是一次制作、重復(fù)利用,免去每次創(chuàng)建機(jī)器、安裝服務(wù)的重復(fù)過程。
Docker和kubernetes解決容器標(biāo)準(zhǔn)化和編排
Docker容器技術(shù)的特性使其天然地適用于微服務(wù)的落地實現(xiàn),一個容器實現(xiàn)一個微服務(wù);無論是前端還是后端服務(wù),均建議采用容器化的方式進(jìn)行編譯構(gòu)建。作為云原生運維,需要結(jié)合部署和運行的要求制定dockerfile的規(guī)范,并預(yù)置統(tǒng)一受管控的支持多種開發(fā)語言多版本的基本鏡像以備開發(fā)使用。
云原生運維更多的是圍繞kubernetes的生態(tài),目前很多云平臺都具備托管的kubernetes服務(wù),它們具有強化的安全性和快速交付功能,可以通過它們輕松的部署和管理容器化應(yīng)用程序;對于這種托管的kubernetes服務(wù)的運維和保障工作也較為簡單,可以結(jié)合以上的基礎(chǔ)設(shè)施即代碼進(jìn)行代碼化的管理,同時更多的是持續(xù)保障運行在kubernetes里服務(wù)的正常、擴(kuò)容縮容和高可用,并結(jié)合業(yè)務(wù)場景持續(xù)提升集群的穩(wěn)定性和SLA。
對于運維團(tuán)隊而言,Kubernetes這個容器編排的實施標(biāo)準(zhǔn)是成為實現(xiàn)云原生理念的最佳平臺,同時可以結(jié)合GitOps模型,通過Git服務(wù)器和一種特定的工作流模型,為Kubernetes應(yīng)用提供靈活的自動化部署管理,以實現(xiàn)容器應(yīng)用的持續(xù)交付,以幫助實現(xiàn)容器應(yīng)用的高可用性、可擴(kuò)展性和快速響應(yīng)變更的能力。
基于Service mesh輕量級的微服務(wù)治理
微服務(wù)模式下,企業(yè)內(nèi)部服務(wù)少則幾個到幾十個,多則上百個,每個服務(wù)一般都以集群方式部署,針對服務(wù)發(fā)現(xiàn)和負(fù)載均衡的三種模式:集中式代理、客戶端嵌入式代理和折中的主機(jī)獨立進(jìn)程代理都分別存在著配置麻煩、治理松散、運維部署復(fù)雜等情況。更需要一種輕量化的模式,即Service mesh。
Service mesh是一個基礎(chǔ)設(shè)施層,是一個服務(wù)治理平臺,用于處理服務(wù)間通訊。云原生應(yīng)用有著復(fù)雜的服務(wù)拓?fù)?,服?wù)網(wǎng)格負(fù)責(zé)在這些拓?fù)渲袑崿F(xiàn)請求的可靠傳遞。在實踐中,服務(wù)網(wǎng)格通常實現(xiàn)為一組輕量級網(wǎng)絡(luò)代理,它們與應(yīng)用程序部署在一起,而對應(yīng)用程序透明。在微服務(wù)體系里面,除了服務(wù)本身之外,其它的服務(wù)相關(guān)的可管理可治理的部分都可以理解為是Service mesh的范疇。
而云原生化,則可以將Service mesh本身的運維與業(yè)務(wù)容器解耦開來,實現(xiàn)中間件運維能力的下沉,在具體實現(xiàn)上,可根據(jù)實際的需求采取不同的技術(shù),比如:基于Consul+Openresty的基礎(chǔ)方案方式;或者Istio的方式,Istio是當(dāng)前最主流的Service mesh開源項目。
對于云原生運維人員,依托于Service mesh打通的服務(wù)和基礎(chǔ)設(shè)施邊界,以及對服務(wù)的統(tǒng)一抽象,能夠更好的從全局視角進(jìn)行服務(wù)質(zhì)量、依賴管理、容量規(guī)劃、端到端監(jiān)控等來保障產(chǎn)品穩(wěn)定性。
基于云原生的全方位可觀測性實現(xiàn)
不同于傳統(tǒng)的監(jiān)控告警機(jī)制,在云原生下,可觀測性是必備的能力,運維團(tuán)隊需要更全面的考慮基于云原生的可觀測性。
云原生可觀測性是從傳統(tǒng)軟件監(jiān)控及數(shù)據(jù)分析可視化工具中,總結(jié)出在云原生領(lǐng)域中,從底層容器基礎(chǔ)設(shè)施、通用技術(shù)組件到業(yè)務(wù)應(yīng)用系統(tǒng)全鏈路監(jiān)控運維、運營治理等產(chǎn)品化體系化的能力訴求,確切的體現(xiàn)了云原生的核心理念,它更多的是面向業(yè)務(wù),強調(diào)將業(yè)務(wù)全過程透明化的理念。
在具體實現(xiàn)方面,可觀測性技術(shù)實施具有技術(shù)棧多樣,場景復(fù)雜,數(shù)據(jù)規(guī)模大等特點,作為運維團(tuán)隊,需要通過建立多層次、多維度的可觀測特征數(shù)據(jù)來構(gòu)建全方位云原生可觀測性,并以高度集成的方式反饋這些可觀測特征,以創(chuàng)建決策周期,從而提高組織決策的有效性。具體落地方案包括:
① 提供研發(fā)使用的基于open tracing 協(xié)議的通用統(tǒng)一的日志格式
② 在應(yīng)用程序級別、基礎(chǔ)架構(gòu)級別和組件級別建立完善的基本監(jiān)控指標(biāo),以及復(fù)雜的可靠性和可用性顯示
③ 根據(jù)實際應(yīng)用場景,適當(dāng)?shù)慕Y(jié)合云平臺提供的相關(guān)解決方案
④ 使用商業(yè)或開源APM工具實現(xiàn)應(yīng)用程序的全鏈路跟蹤、故障預(yù)警、性能定位、根因分析和優(yōu)化
⑤ 使用Elasticsearch、Kibana、Grafana、Prometheus、Loki、Thanos和其他工具,將不同來源的數(shù)據(jù)以單一和連貫的方式進(jìn)行呈現(xiàn)
持續(xù)優(yōu)化DevSecOps和FinOps
云原生安全作為一種新興的安全理念,不僅解決云計算普及帶來的安全問題,更強調(diào)以原生的思維構(gòu)建云上安全建設(shè)、部署與應(yīng)用,推動安全與云計算深度融合。
作為運維團(tuán)隊,對安全需要特別重視,需要規(guī)劃安全架構(gòu)、評估風(fēng)險態(tài)勢、建設(shè)安全開發(fā)體系、防護(hù)加固體系和運維應(yīng)急體系。在具體實踐方面,可以基于風(fēng)險評估模型建立環(huán)境和數(shù)據(jù)安全以及合規(guī)管理,比如每年合作并支持信息安全級別保護(hù)和各種安全行動,以實現(xiàn)系統(tǒng)級安全;支持和配合相關(guān)部門要求的其他防護(hù)活動,并參與攻防演練;加強安全管理機(jī)制,豐富安全審計戰(zhàn)略;防火墻加固、策略調(diào)整和優(yōu)化、實時防御安全攻擊;定期修補、漏洞掃描和組件更新。
在云成本優(yōu)化方面,參考FinOps能力模型,通過多種措施持續(xù)優(yōu)化云成本,以降低使用云平臺的費用。比如:持續(xù)分析賬單以實現(xiàn)成本控制;通過對公有云產(chǎn)品特性的認(rèn)知和理解,不斷調(diào)整和優(yōu)化;為不同環(huán)境設(shè)定產(chǎn)品標(biāo)準(zhǔn),以實現(xiàn)精細(xì)化管理;跟蹤資源的生命周期,盡可能減少浪費。
結(jié)束語
除上述外,還有運行時管理、混沌工程等技術(shù)實踐,同時還需要有運維團(tuán)隊日常管理、和外部協(xié)作溝通模式、變更審批、可視化、匯報機(jī)制、知識庫、培訓(xùn)體系、7*24 on call等文化、組織、流程和管理等方面的全方位支持。
云原生下,運維團(tuán)隊的挑戰(zhàn)較大,任重而道遠(yuǎn),需要盡快實現(xiàn)標(biāo)準(zhǔn)化、自動化和數(shù)智化,其中標(biāo)準(zhǔn)化可以促進(jìn)開發(fā)和運維的溝通和協(xié)同、有助于生態(tài)分工、推動更多工具鏈的高度集成;自動化可以支撐更大規(guī)模業(yè)務(wù)的挑戰(zhàn)、能夠持續(xù)支撐業(yè)務(wù)的快速迭代與穩(wěn)定性;數(shù)智化可以通過對監(jiān)控、配置、性能、日志等運行數(shù)據(jù)進(jìn)行加工計算、構(gòu)建可量化可對比的技術(shù)運營指標(biāo)數(shù)字化評價體系并逐步形成結(jié)合業(yè)務(wù)場景的可落地的AIOps能力。
————————————————
版權(quán)聲明:本文為CSDN博主「H3C-Navigator」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_45882672/article/details/133762492