智能自動化如何改變持續集成(CI) /持續交付(CD)
譯文?譯者 | 李睿
審校 | 孫淑娟
一些思想領袖經常說,“所有的公司都是軟件公司。”這是因為在過去的十年中,許多大中型企業已經實施了數字化轉型計劃,而這些計劃對這些企業開發和部署軟件以交付業務價值的方式產生了深遠的影響。
在過去,應用程序通常是單片的,部署在內部部署的裸機或虛擬機上,更新很少、數量很大并且不頻繁。如今,新的應用程序模型利用了微服務、容器化和持續交付,從而在Kubernetes、虛擬機和多云環境中產生了大量的更新版本。這種演變催生了新類型的業務流程和業務模型,從“即服務”到全方位的全渠道客戶參與,再到由實時物聯網數據驅動的業務流程。
在云原生環境中成功實現這些新的軟件交付策略需要另一種轉變——軟件開發。企業必須在不犧牲軟件安全性或忽略法規和業務合規性需求的情況下,以高速、頻繁和準確的方式交付更多的軟件版本。這種演進增加了復雜性。
而在地理上可能廣泛分布的開發、運維、Devops、安全和合規性團隊必須更快、更準確地工作,并具有更高的協調程度。類似地,復雜的分布式工作流必須高度協調,以避免錯誤和延遲,同時提高軟件交付團隊成員的生產力。多樣化的持續集成(CI) /持續交付(CD)工具鏈、日益增加的安全問題、不斷發展的隱私法規以及合格技術人員的短缺使這種演變進一步復雜化。
面對所有這些挑戰,企業如何提高軟件交付團隊的生產力,并最大化發布的業務價值?首先,企業必須采用內部系統,允許隨著時間的推移開發他們的工具和過程。第二,他們必須對Devops、安全性和合規性管理進行集中控制,同時在流程和工具方面給予開發團隊最大的靈活性。第三,他們必須智能地實現軟件交付管道的自動化。
1、持續交付的新模式
持續交付是指以可重復和可持續的方式將軟件變更快速而安全地部署到生產中。這個規程并不新鮮,但是持續交付的一個新模式正在出現,它可以作為改進Devops管理、提高開發效率以及確保治理和安全性的基礎。這種新模式基于三個原則:開放平臺、智能自動化和集中控制的自治團隊。
(1)開放平臺
開放平臺支持與現有持續集成(CI) /持續交付(CD)工具和工作流的無縫集成。這使得企業可以在不破壞現有工具鏈和過程的情況下進行開發,也不會冒著開發效率大幅下降的風險,更不用說讓開發人員和管理人員感到沮喪了。例如,使用用于公共持續集成(CI) /持續交付(CD)工具的本地API的開放集成層可以允許開發團隊繼續使用同類最佳工具。
為了獲得最大的生產力和控制,與現有持續集成(CI) /持續交付(CD)工具的深度集成可以在軟件交付過程的每個階段提供對外發布的可見性和控制,使系統能夠識別風險并控制整個交付過程中的工作流。此外,開放集成層與用于Argo和Spinnaker等常用編排工具的本地API,可以允許修定在不拆卸和替換持續交付平臺的情況下更改編排工具。
(2)智能自動化
智能自動化滿足了成功軟件交付的許多核心需求。基本的流程自動化可以通過代碼自動化常規人工任務來提高Devops人員的生產力。例如,開發人員可以在Jenkins中運行一個構建,然后觸發一個自動任務,將構建推到Artifactory并啟動交付管道。然而,將自動化與人工智能相結合可以促進流程的發展并改善業務成果。
智能自動化可以實現常規任務的自動化,然后隨著版本在交付生命周期中的移動不斷改進自動化決策。應用于發布過程的智能——當與深度工具集成相結合時,不僅可以訪問事件,還可以訪問所有流程數據,自動檢測軟件風險,并在發布候選版本投入生產之前自動標記它們以進行補救。
除了提高開發效率和更快、更準確的軟件發布之外,智能自動化還提供了對合規性和安全性實施集中、自動化控制的方法。通過在軟件交付過程中實施安全策略和自動化,企業可以實施DevSecOps,使安全成為開發過程的一個集成部分,而不是開發過程結束時的審查階段。
(3)集中控制的自治團隊
建立集中控制對于支持組織范圍的開發、安全和合規性團隊以確保所有軟件版本的合規性、一致性和可審核性至關重要。為了取得成功,集中式控制需要一個中央策略引擎,該引擎可以在企業和單個團隊級別強制執行安全性、合規性和業務規則。基于角色的訪問控制(RBAC)可以為團隊和個人提供細粒度權限,而不會影響控制。為了使團隊能夠獨立運作,團隊必須在安全性、部署目標和類似因素方面與其他團隊隔離。
智能自動化與策略引擎相結合,可以自動化并持續改進安全和合規性策略的實施,減少對開發人員、安全和合規性團隊的需求。為了進一步提高軟件開發管道的性能,可以實施企業范圍內的最佳實踐和可重用部署模式,以提高開發團隊的生產力和準確性。
2、持續交付的發展
現在,這些持續交付新的基本元素開始通過以下方式進入產品中。
(1)開源項目
開源持續集成(CI) /持續交付(CD)項目繼續發展。例如,為了滿足不斷發展的安全問題,開源的云原生持續交付解決方案Spinnaker現在包含多個身份驗證(身份管理)和授權(訪問管理)選項。為了支持集中控制,Spinnaker還對這些關鍵安全功能采取了智能方法。Spinnaker沒有編寫新的專有登錄解決方案,而是利用了現代的安全協議,包括OAuth 2.0、SAML和LDAP,使Spinnaker能夠與大多數企業已經使用的身份和訪問管理解決方案集成。Spinnaker還集成了常見的授權解決方案,如谷歌Groups、GitHub Teams、SAML Roles和LDAP組。
(2)基本流程自動化
常規流程的自動化在商業解決方案中越來越普遍,包括專有解決方案和基于開源持續交付解決方案的產品。例如,像CodeFresh、Armory和OpsMx這樣的商業解決方案都構建在開源持續交付項目上,例如Argo和Spinnaker。Digital.ai、Harness和Broadcom等公司也提供專有商業解決方案。
(3)基礎人工智能和機器學習
人工智能和機器學習正在商業解決方案中興起,例如Harness和OpsMx。這方面的一個例子是機器學習驅動的持續驗證過程,它從以前的部署中學習,并創建一個良好部署的基線,從而實現異常檢測。同樣,來自New Relic、Datadog、Honeycomb和Splunk的持續集成(CI) /持續交付(CD)工具使用人工智能/機器學習對軟件性能和質量提供更多見解。
(4)智能自動化
智能自動化結合了人工智能和機器人流程自動化(RPA)技術,以精簡和擴展跨組織的過程和決策。智能自動化正在OpsMx等少數的商業持續交付解決方案中興起,使企業能夠超越常規流程和工作流的自動化。
智能自動化可以對軟件版本進行風險分析,自動確定版本是否符合標準,以傳遞到下一個管道階段,而不會產生不可接受的生產失敗風險。這一級別的智能還可以自動化策略合規性,確保遵守所有治理規則和最佳實踐。在業界領先的企業走得更遠,將智能自動化與高級部署策略(如藍綠測試、金絲雀測試和漸進交付)相結合,以前所未有的速度和更低的風險部署軟件。
至關重要的是,軟件交付過程應與企業層面的數字化變革要求保持同步。如果不這樣做,將導致軟件交付面臨挑戰,導致發布速度慢、發布錯誤率高、安全性和合規性失敗,以及用戶和客戶感到沮喪。
好消息是,Devops開發人員現在可以為其持續交付過程實現一個新的基礎,以確保更快、更高質量的軟件發布。隨著智能自動化功能變得越來越廣泛,Devops開發人員可以將自己定位為數字轉型加速的主要驅動因素,在更緊湊的時間框架內更快、更頻繁、更安全地交付新的軟件功能。
原文鏈接:?https://www.infoworld.com/article/3658209/how-intelligent-automation-changes-cicd.html