Skip to main content
NetApp Solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

利用NetApp FlexClone技術加速軟體開發

貢獻者

總覽

在Kubernetes叢集中複製已部署的應用程式、對於想要與合作夥伴共享環境、或在開發環境中測試新版本程式碼、而不干擾目前所使用版本的開發人員來說、是非常實用的工具。Kubernetes應用程式的狀態化及應用程式一致的複製、是NetApp Astra Control隨附的主要功能、以及應用程式的備份與還原。此外、如果應用程式是使用相同的儲存後端、在同一個Kubernetes叢集內複製、則Astra Control預設使用NetApp FlexClone技術來複製持續資料磁碟區、因此可大幅加速程序。藉由加速此程序、複製的環境會在幾分鐘內完成配置並可供使用、相較於重新部署測試或開發環境、開發人員只需稍作暫停即可恢復工作。此外、NetApp Astra Control提供的所有功能都可透過API來呼叫、以便輕鬆整合至Ansible等自動化架構。因此、環境可以更快速地分段、因為只需要在方針或角色中做些細微的變更、就能開始複製程序。

什麼是NetApp FlexClone技術?

NetApp FlexClone技術是可寫入的時間點Snapshot型NetApp FlexVol 產品複本。這些資源幾乎會立即配置、包含來源磁碟區的所有資料、而且在新磁碟區中的資料開始從來源轉移之前、不會佔用額外的儲存空間。當多個資料複本可用於接移目的、而儲存系統的資源有限、無法配置這些磁碟區時、通常會在開發或範本型環境中使用這些資料複本。相較於必須多次複製資料以節省大量儲存空間與時間的傳統儲存系統、NetApp FlexClone技術可加速儲存相關工作。

FlexClone映像

若要深入瞭解NetApp FlexClone技術、請造訪網頁: "NetApp文件"

先決條件

  1. 支援的Kubernetes Distribution、例如Red Hat OpenShift 4.6.8+、Rancher 2.5+或Kubernetes 1.19+。

  2. NetApp Astra Control Center 21:12+。

  3. NetApp ONTAP 的NetApp功能系統、其儲存後端是透過NetApp Astra Trident設定的。

  4. Ansible 2.9+。

  5. 您想要在NetApp Astra Control中複製為託管應用程式的環境範本。

使用案例簡介

在此使用案例中、我們會將類似下列工作流程的內容視覺化:

工作流程映像
  1. 使用者執行Ansible教戰手冊、以建立新的接移環境。

  2. Ansible使用URI-API模組呼叫Astra Control來執行複製作業。

  3. Astra Control會在預先配置的範本環境中執行複製作業、進而建立新的託管應用程式。

    註 此環境可以是開發中的單一獨立應用程式、也可以是Jenkins CI/CD管道等整個開發環境。
  4. 然後、使用者會從Gitea等線上儲存庫、將其程式碼版本擷取到複製的開發環境中。

  5. 新版應用程式由NetApp Astra Control部署及管理。

    註 這兩種程序都可以自動化。
  6. 使用者可在此複製環境中開發新程式碼。

  7. 當使用者對開發工作感到滿意時、他們可以將程式碼推回託管儲存庫。

此處提供的使用案例取決於您想要複製的特定環境或應用程式是否有黃金範本。在我們的環境中、我們建立了三個範本、一個用於WordPress部署、一個用於Magento部署、另一個用於Jenkins CI/CD環境、以及我們標題為DevTools的Gitea。

範本映像

每個環境都由NetApp Astra控制管理、其中持續的Volume目前儲存在NetApp ONTAP 的NetApp解決方案儲存系統上、並採用NetApp Astra Trident提供的NFS後端。

使用案例驗證

  1. 複製NetApp解決方案工程團隊提供的Ansible工具組、其中包括複製角色和應用程式更新方針。

    [netapp-user@rhel7 ~]$ git clone https://github.com/NetApp-Automation/na_astra_control_suite.git
    [netapp-user@rhel7 ~]$ cd na_astra_control_suite
  2. 編輯「vars/clone _vars.ml」、並填入符合Astra Control環境的全域值。

    astra_control_fqdn: astra-control-center.example.com
    astra_control_account_id: "xxxx-xxxx-xxxx-xxxx-xxxx"
    astra_control_api_token: "xxxxx"
    註 您需要填寫的全域環境值可在「API存取」功能表下的NetApp Astra Control中的使用者設定檔圖示下找到。
    API存取映像
  3. 完成全域變數之後、您可以選擇要複製的特定應用程式值。若要將devtoolS環境複製到名為「Alan devtools/」的個人環境、您可以執行下列動作:

    clone_details:
      - clone_name: alan-devtools
        destination_namespace: alan-dev-namespace
        source_cluster_name: ocp-vmware2
        destination_cluster_name: ocp-vmware2
        source_application_name: devtools-template
    註 若要在複製程序中善用NetApp FlexClone技術、「shrc叢集」和「最大叢集」必須相同。
  4. 您現在可以執行方針來複製應用程式。

    [netapp-user@rhel7 na_astra_control_suite]$ ansible-playbook -K clone_app_playbook.yml]
    註 撰寫的方針書必須由root使用者執行、或是由能夠透過Sudo程序傳遞「-K」引數而向上呈報的人執行。
  5. 當實戰手冊完成執行時、複製的應用程式會顯示為Astra Control Center主控台可用的應用程式。

    複製的應用程式映像
  6. 然後使用者可以登入部署應用程式的Kubernetes環境、驗證應用程式是否有新的IP位址公開、然後開始開發工作。

如需此使用案例的示範、以及升級應用程式的範例、請參閱 "請按這裡"