為了在雲中高效執行應用程式,快速交付軟體至關重要。 Oracle DevOps 為開發人員提供了乙個持續整合和部署 (CI CD) 平台,您可以使用該平台在 Oracle 雲上輕鬆構建、測試和部署軟體和應用。 DevOps 構建和部署管道可減少更改引起的錯誤,並減少客戶構建和部署版本所花費的時間。 該服務還提供私有 git 儲存庫來儲存您的儲存庫,並支援與外部儲存庫的連線。 無論您是將工作負載遷移到 OCI(從本地雲或其他雲),還是在 OCI 上開發新應用,您都可以通過 DevOps 服務簡化軟體交付生命週期。 此參考體系結構描述了兩種不同的部署策略,即藍綠部署策略和 Canary 部署策略。 部署策略是使應用程式的修改或公升級成為可能的模型和實踐。 它們允許 DevOps 團隊定義如何將應用程式部署到生產環境。 通過在不同的部署策略之間進行選擇,管理員可以在部署新版本的風險、新版本對使用者的影響以及實施策略所需的基礎結構開銷之間做出正確的權衡。 此處介紹的策略為客戶提供了更多選擇,以根據其應用需求做出正確的權衡。 藍綠部署藍綠部署策略允許 DevOps 團隊使用兩個相同的環境發布應用程式的新版本,其中乙個環境在特定時間處於活動狀態。 應用程式的當前版本部署在活動環境中,而新版本部署在備用環境中。 部署到按需環境不會影響活動環境或使用者流量。 DevOps發布管道可以針對新版本執行驗證測試,一旦獲得批准,只需將使用者流量切換到按需環境,即可將其提公升到生產環境。 對於應用程式的每個新版本,都會重複此過程。 該策略的主要優點是它提供了近乎零的停機時間和即時回滾功能。 如果新版本有任何問題,流量可以立即恢復到以前的穩定版本。 此外,待命環境可用於除錯應用程式版本中的問題。 藍綠部署具有以下優點:可以快速且無風險地部署。
它提供了一種有效且簡單的回滾機制。
這是進行B軟體測試的有效方法。
由於生產環,它幾乎不需要停機時間。
環境始終由負載均衡器控制的活動環境提供服務。 但是,您應該注意以下缺點:執行兩個相同的環境維護成本高昂且資源密集型。
在兩個相同的環境之間管理版本時,需要密切監視這兩個環境。
管理部署之間的資料庫依賴關係可能很複雜。
下圖演示了藍綠部署體系結構:
按照您的說明,保留原始文字的結構,然後繼續進行更改:金絲雀部署在 Canary 部署策略中,應用程式的發布是逐步向一部分使用者進行的。 最初,新版本被部署到沒有使用者流量的金絲雀環境中。 DevOps 發布管道可以對新版本執行驗證測試,一旦準備就緒,則僅將使用者流量的子集路由到 Canary 環境。 此技術允許 DevOps 團隊根據真實使用者流量評估應用程式的新版本。 他們可以在將新版本推出到更大的使用者群之前比較應用程式的兩個版本。 如果出現任何問題,這些使用者可以輕鬆切換回以前的版本,這也提供了風險緩解。 Canary 部署具有以下優勢: 您可以使用真實使用者測試這兩個應用版本。
新版本零停機。
回滾到以前的版本非常容易,而且風險最小。
但是,您應該注意這些缺點:大規模測試和驗證新版本的複雜性。
從使用者測試中獲取有關新版本的反饋需要時間。
下圖說明了 Canary 部署策略:
這些架構包含以下元件:地理OCI 區域是包含乙個或多個資料中心(稱為可用性域)的本地地理區域。 區域彼此獨立,它們可能彼此相距甚遠(跨越國家甚至大陸)。 該體系結構使用單個地理位置。
DevOps專案實現 CI CD 工作流所需的 DevOps 資源的邏輯分組。 DevOps 資源可以是專案、生成管道、部署管道、外部連線、觸發器和環境。 借助 DevOps 專案,可以輕鬆為所有 DevOps 資源啟用日誌記錄、監視和通知。
構建管道生成管道從源儲存庫獲取提交 ID,並使用該源執行生成指令。 構建管道定義了構建過程中的一系列階段:構建、測試和編譯軟體構件,將構件交付到 OCI 儲存庫,以及選擇性地觸發部署。 您可以在生成規範檔案中定義生成執行的過程和說明。
構建階段階段是在管道執行期間發生的單個操作。 此處提到的各種構建階段包括:
管理生成階段:管理生成和測試源的生成階段。
Shipper 階段:將構建階段的輸出推送到各個儲存庫的階段; 例如,將容器映像推送到容器儲存庫,或將部署清單推送到專案登錄檔。
呼叫部署:生成階段完成後,呼叫部署管道的階段,同時解析從“管理生成”階段匯出到部署管道階段的變數。
倉庫由 DevOps 服務託管的私有 Git 儲存庫。 您可以使用這些 DevOps 儲存庫來儲存、管理和開發源。
部署管道將一組專案交付和部署到目標環境的一系列步驟。 通過定義可以序列或並行執行的階段,您可以控制軟體發布的流程和邏輯。
部署階段階段是在管道執行期間發生的單個操作。 用於藍綠部署的生成階段包括:
藍綠 OKE 部署或藍綠例項組部署:在目標環境中部署更新的階段。
部署驗證:乙個可選階段,您可以在其中使用函式來驗證部署。
控制:批准:批准將部署到目標生產環境的控制階段。
藍綠 OKE 流量傳輸或藍綠例項組流量傳輸:在最後階段,生產流量將傳輸到最新部署的環境。
金絲雀部署的構建階段包括:Canary OKE 部署或 Canary 例項組部署:在目標環境中部署更新的階段。
部署驗證:乙個可選階段,您可以在其中使用函式來驗證部署。
Canary OKE 流量傳輸或 Canary 例項組流量傳輸:根據流量分流限制 ** 流量百分比轉移,將流量切換到 Canary 環境的階段。
控制:批准:批准將部署到目標生產環境的控制階段。
Canary 部署例項組生產或 OKE 部署生產:在最後階段,生產流量將傳輸到最新部署的環境。
DevOps專案DevOps 專案是對構成應用程式的任何檔案、二進位檔案、包、清單或映像的引用或指標。 建立工件時,需要告知 Oracle DevOps 實際工件的來源。 DevOps 支援 OCI 容器映象倉庫和 OCI 工件倉庫倉庫。
產品倉庫專案儲存庫建立乙個儲存庫來對類似的專案進行分組。 建立後,您可以將專案上傳到此儲存庫。 這些專案是傳遞到目標部署環境的文字檔案、二進位檔案和部署清單的集合。 每個工件都有乙個名稱,由其路徑組成:version。 路徑是用於組織工件的字串。
OCI 日誌和通知服務OCI 日誌服務儲存與部署相關的日誌。 部署執行時輸出和部署的最終結果顯示為日誌條目。 OCI 通知服務提供對部署專案及其資源的最新狀態的可見性,並採取任何必要的措施。 例如,當發生重要事件(例如部署管道中正在等待批准的階段)時,你將收到通知。 收到通知訊息後,可以轉到 DevOps 部署管道並批准該階段。
部署環境此環境是部署專案的計算資源的集合。 環境可以是函式、計算虛擬機器 (VM) 或裸機例項,也可以是 OKE 群集。 藍綠部署僅適用於 OKE 群集和計算 VM。
在使用 Oracle DevOps 服務部署持續整合和部署 (CI CD) 平台時,可以使用以下建議作為起點。 您的需求可能與此處描述的體系結構不同。 此體系結構使用具有 E3 或 E4 彈性配置的 Oracle Linux OS 映像,並且最低資源配置用於在 OKE 群集節點中託管計算主機。 如果應用程式需要更多記憶體或核心,則可以從不同的配置中進行選擇。
建立 VCN 時,請根據計畫連線到 VCN 子網的資源數量確定 CIDR 塊的數量和每個塊的大小。 使用標準專用 IP 位址空間中的 CIDR 塊。 建立 VCN 後,您可以更改、新增和刪除其 CIDR 塊。 此體系結構使用公共 VCN 來託管 Oracle 容器引擎 (Kubernetes)。 您也可以使用專用 VCN。 在這種情況下,將使用 NAT 閘道器,以便可以通過公共 Internet 訪問集群。
在此體系結構中,OKE 群集部署為目標環境之一。 工作節點部署在 E3 或 E4 Oracle Linux OS 上。 此體系結構在乙個集群中使用三個工作節點,但您最多可以在每個集群上建立 1,000 個節點。
如果選擇此架構部署到例項組,則會在租戶中建立乙個新的計算例項,並可選擇配置。
此架構將登錄檔部署為供內部使用的專用 docker 登錄檔。 docker 映像被推送到登錄檔並從中拉取。 您還可以將登錄檔用作公共 docker 登錄檔,使任何具有 Internet 訪問許可權並了解相應 URL 的人都可以從 Oracle Cloud 中的公共儲存庫中提取映像。
此架構為例項組、OKE 和 Functions 部署使用的軟體和配置建立構件。 架構將建立乙個專案登錄檔儲存庫供內部使用。 軟體二進位檔案、文字和部署配置將上傳到專案登錄檔儲存庫或從專案登錄檔儲存庫上傳。
使用 Oracle DevOps 服務部署持續整合和部署 (CI CD) 平台時,請考慮以下因素。 DevOps 支援部署到 OKE、計算主機和函式。 此體系結構部署到 OKE 群集。 根據您的特定需求,請考慮部署到其他終結點。
只有Linux主機可以部署例項組到計算例項。
使用 DevOps 部署的工件需要儲存在 OCI 工件登錄檔或容器映像登錄檔中。
最佳做法是將每個應用程式及其所有微服務分組到乙個專案中。
Oracle Cloud Infrastructure Explorer 中提供了此 Terraform 參考體系結構**的示例堆疊。 您也可以從 github*** 下載它並根據您的特定需求對其進行自定義。 使用 Oracle Cloud Infrastructure Explorer 中的示例堆疊進行部署:
單擊與所需部署策略相對應的按鈕,然後按照步驟 2-6 中的說明進行操作:
如果尚未登入,請輸入租戶和使用者憑據。
選擇要在其中部署堆疊的區域。
按照螢幕上的提示和說明建立堆疊。
建立堆疊後,單擊 Terraform 操作並選擇計畫。
等待作業完成,然後檢視計畫。
如果您需要進行任何更改,請返回到堆疊詳細資訊頁面,單擊編輯堆疊,然後進行必要的更改。 然後,再次執行計畫操作。
如果不需要進行任何進一步的更改,請返回堆疊詳細資訊頁面,單擊 Terraform Actions,然後選擇 Apply。
訪問 GitHub。
轉殖或儲存庫到本地計算機。
按照 README 文件中的說明進行操作。
作為甲骨文標準合作夥伴,Agilewing正在重新定義企業體驗甲骨文雲服務的方式。 憑藉其簡化的開戶流程和一流的技術支援,雅居翼將複雜的開戶和操作流程轉變為簡單、直觀的體驗。 借助我們的一站式服務,您可以快速啟動並執行全套 Oracle 雲服務,從而無縫整合到雲中。 Agilewing 的 AgileCDN 服務與 OCI 基於雲的服務相結合,可提供一流的全球內容加速解決方案。 由2,800多個全球POP節點和7,000個直接連線點組成的強大網路可確保您的業務擴充套件到全球的任何地方,都能確保高效穩定的運營。 利用 Oracle 雲的先進技術,Agilewing 致力於簡化雲服務構建、雲遷移和業務走出去的流程。 “我們的合作模式為客戶提供了經濟高效的解決方案,使他們能夠更專注於核心業務,同時享受 Oracle 雲的高效能和安全性。” Oracle 雲服務是乙個前景廣闊的領域,憑藉其高效能、安全性和全球一致的服務標準,為企業開啟了通往新機遇的大門。 通過雅樂之翼的專業服務,無論是個人使用者還是企業,都能輕鬆進入這個充滿技術創新和高效能的新時代。 讓 Agilewing 開始探索 Oracle 雲服務,開啟通往全新世界的大門。