日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

NetApp FlexCloneテクノロジでソフトウェア開発を高速化

概要

Kubernetesクラスタに導入されたアプリケーションをクローニングすると、開発者は、パートナーと環境を共有したり、現在作業しているバージョンを妨げずに開発環境で新しいバージョンのコードをテストしたりすることで、ワークフローを迅速化したいと考えています。これは非常に便利なツールです。Kubernetesアプリケーションのステートフルでアプリケーションと整合性のあるクローニングは、NetApp Astra Controlに含まれる主要な機能であり、アプリケーションのバックアップとリストアに加えて提供されます。さらに、同じストレージバックエンドを使用して同じKubernetesクラスタ内でアプリケーションをクローニングした場合、Astra Controlでは、永続的データボリュームの重複に対してNetApp FlexCloneテクノロジがデフォルトで使用されるため、処理時間が大幅に短縮されます。このプロセスを短縮することで、クローニングした環境のプロビジョニングが完了し、数秒で使用できるようになります。そのため、開発者はテスト環境や開発環境を再導入する場合と比べて、作業を一時的に中断することなく再開できます。さらに、NetApp Astra Controlで使用できるすべての機能をAPIで呼び出すことができるため、Ansibleなどの自動フレームワークに簡単に統合できます。このため、クローニング手順 を開始するためにプレイブックまたはロールに必要な変更はわずかなため、環境のステージング時間をさらに短縮できます。

NetApp FlexCloneテクノロジとは

NetApp FlexCloneテクノロジは、NetApp FlexVol の書き込み可能なポイントインタイムSnapshotベースのコピーです。ほぼ瞬時にプロビジョニングされ、ソースボリュームのデータがすべて含まれます。新しいボリュームのデータがソースボリュームと異なる状態になるまで、追加のストレージスペースは消費されません。ステージング目的でデータの複数のコピーが有用で、ストレージシステムでボリュームのプロビジョニングに使用できるリソースが限られている場合、開発環境やテンプレートベースの環境でよく使用されます。従来のストレージシステムではデータを何度もコピーする必要があるため、ストレージスペースや時間が大幅に消費されるため、NetApp FlexCloneテクノロジを使用するとストレージに依存するタスクを高速化できます。

FlexCloneイメージ

NetApp FlexCloneテクノロジの詳細については、のページを参照してください "ネットアップのドキュメント"

前提条件

  1. Red Hat OpenShift 4.6.8+、Rancher 2.5+、Kubernetes 1.19+などのサポートされるKubernetesディストリビューション。

  2. ネットアップアストラコントロールセンター21.12以降

  3. NetApp ONTAP システム。ネットアップの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. ユーザーが開発作業に満足したら、ホストされているリポジトリにコードを戻すことができます。

ここで紹介する使用事例は、クローンを作成する特定の環境またはアプリケーション用のゴールデンテンプレートの存在によって異なります。この環境では、ワードプレス展開用に、Magento展開用に、Giteaを持つJenkins CI/CD環境用に、DevToolsというタイトルの3つのテンプレートを作成しました。

テンプレートイメージ(Templates Image)

各環境はNetApp Astra制御によって管理され、ネットアップONTAP ストレージシステムに現在格納されている永続的ボリュームは、ネットアップAstra Tridentが提供するNFSバックエンドを使用している。

ユースケースの検証

  1. ネットアップのソリューションエンジニアリングチームが提供する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.yml’を編集し、Astra Control環境に適したグローバル値を入力します。

    astra_control_fqdn: astra-control-center.example.com
    astra_control_account_id: "xxxx-xxxx-xxxx-xxxx-xxxx"
    astra_control_api_token: "xxxxx"
    注記 入力する必要があるグローバル環境値は、NetApp Astra ControlのAPIアクセスメニューにあるユーザプロファイルアイコンで確認できます。
    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テクノロジを活用するには’src-cluster’とdest-cluster’を同じにする必要があります
  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アドレスで公開されていることを確認して、開発作業を開始できます。

この使用例とアプリケーションのアップグレード例のデモについては、を参照してください "こちらをご覧ください"