【51CTO.com快譯】DevOps團隊在急于利用云原生應用開發和Kubernetes等工具之后,現在需要考慮更多。在許多情況下,DevOps采用Jenkins等早期的持續集成/持續部署(CI/CD)管道工具,現在試圖將它們運用于之前不適合的云原生場景。
云原生將開發者拉到基礎設施相關操作上,目前的CD工具無法幫助恢復開發者在改用微服務架構之前曾擁有的應用級上下文,為部署后應用軟件的開發工作流程和可觀察性增添了復雜性。DevOps 團隊在應用軟件策略管理方面也面臨新挑戰,尤其在嚴格監管的行業,因為它們在調整流程,以便在云原生環境建立信任和安全。與此同時,DevOps需要重新評估自動化方法和消除人為錯誤的策略,因為云和Kubernetes部署重新面臨非常乏味的手動工作。
以下是DevOps需仔細考慮戰略(宜早不宜遲)的三個方面,為云原生2.0未來做好準備,從而使云原生環境能夠更有效地得到運用。
1. 具有更高互操作性和可組合性的 CI/CD
考慮到現有的選擇范圍不斷擴大,在云原生2.0環境下,選擇和實施CI/CD工具變得更令人關注,但這也是一個戰略性挑戰。一些工具在開發管道早期提供了優勢,另一些在末期提供了優勢。從CI到CD到發布自動化(RA),DevOps團隊需要檢查潛在的工具以及如何將它們拼湊在一起,以組建一條優雅和諧的管道。遺憾的是,正如許多DevOps 團隊所熟知,這說起來容易做起來難。一些端到端解決方案還會帶來鎖定現象及其他不良方面,一些同類中優秀的零散解決方案可能無法很好地兼容。
我希望和預測,在不久的將來,會出現更高的互操作性。作為云原生2.0的一部分,以至于 CI、CD、RA 甚至面向治理和合規的解決方案都完全即插即用。到時,DevOps就能為特定需求選擇最合適的解決方案,然后它會發揮作用。
眼下,在我們等待這個即插即用愿景到來之際,可組合性是DevOps應在將來物色的解決方案應具有的一個至關重要的方面。管道組件輕松交互的能力簡化了無數使用場景以及關鍵的安全和合規問題。跨云原生管道實施策略驅動的限制需要帶來廣泛可組合性的DevOps工具鏈。幸好,許多CI/CD系統在這方面做得很好:讓擴展和插件可以使跨管道的可組合性成為現實。
2. 利用應用策略管理
必須針對整個應用開發和部署生命周期制定策略,以確保遵循重要的安全和治理規則。不能跳過任何可能引入漏洞的步驟。對于在云原生環境工作的DevOps團隊來說,實施這些策略因Kubernetes 及其替代方案的高度復雜性而變得愈加困難。
作為一種策略,DevOps應利用這種工具和框架:1)使開發者免受Kubernetes復雜性的影響,2)保護他們免受風險。比如說,如果您將構建映像部署到Docker存儲庫(比如 Docker Hub),它包含用于檢測和報告漏洞及其他安全故障的工具。內部源代碼掃描可以識別合并請求中的漏洞。工具還應該支持跨團隊的協作和關鍵知識的共享。從結構上來講,將 DevSecOps 嵌入到開發團隊中、處理安全問題(作為常規流程的一部分)是明智的。
鑒于相鄰的DevSecOps和工具能夠對付生成Kubernetes對象和維護環境之類的挑戰,開發者可以專注于代碼和解決業務問題。這就是他們想要做的,這也是他們的目的。還應該使用擁有強大應用框架的工具來定義和實施DevSecOps控制的策略,這些策略會自動禁止危險活動和錯誤。有了合適的應用策略管理框架,如果開發者誤嘗試部署受污染的映像,他們就無法這么做。此類框架可以實施安全策略和資源限制,啟用或禁用安全掃描,管理CVE 被標記還是被忽略,以及控制團隊對整個云原生環境中的Kubernetes和服務的訪問。
3. 兼顧自動化和審計
應用開發中的人為錯誤會降低生產力。通常更大的擔憂是加大安全和合規風險。自動化和審計存在有趣的關系:自動化減少人為錯誤,而審計讓人可以解決自動化造成的錯誤。
有點出人意料的是,云原生環境促使人們回到非常手動的流程,從而使新的自動化對于開發者生產力變得更重要。比如說,原始Kubernetes及其Helm圖表和YAML文件需要大量的腳本和手動部署工作。(從本人使用Kubernetes的情況來看,我認為如果每次我在編寫 YAML文件出錯時都往罐子里投入一美元,我會塞滿好幾只罐子。)抽取掉開發者不關心的Kubernetes的具體細節的自動化很受歡迎。
自動化最適合帶來預期結果的可重復任務,比如掃描安全問題、檢查代碼使用安全且經過驗證的庫等。有效的自動化不是一勞永逸的自動化——它需要監督和維護。比如說,自動化系統可能會標記實際上無害的CVE,需要人來判斷以完善系統。完全有可能使不可信的不良流程實行自動化,因此最終只會帶來更多問題。正確的策略是,先開發值得信賴的手動系統,然后根據需要實現自動化。
通過利用可組合的CI/CD解決方案和謹慎的策略,使安全簡化的應用開發實現自動化,DevOps可以最大限度地減少云原生環境的挑戰,同時讓開發者可以提高創造力和生產力。
原文標題:Cloud Native 2.0: 3 DevOps Strategies to Consider Now,作者:Henrik Rosendahl
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】