Linux アプリケーションからコンテナへの再プラットフォーム化

Cloud CodeMigrate to Containers の統合により、仮想マシン(VM)上で実行される Linux アプリケーション コンポーネントをモダナイズし、Linux マシンを使用して、IDE で直接 Google Kubernetes EngineCloud Run にデプロイ可能なアーティファクトを生成できようになります。

このガイドでは、Linux マシンの IDE で Cloud Code 拡張機能を使用して、既存のアプリケーションを GKE コンテナに再プラットフォーム化する方法について説明します。

このガイドは、VS Code の実践的な知識があり、Google Cloud に精通しており、アプリケーション コンポーネントを実行する VM を使用している Linux マシンのデベロッパーを対象としています。

準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Kubernetes Engine API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Google Kubernetes Engine API を有効にします。

    API を有効にする

  8. Cloud Code 拡張機能をインストールします(まだインストールしていない場合)。
  9. GKE クラスタを作成して構成します。
  10. 実施する移行の種類を確認します。サポートされているワークロードの詳細については、互換性のある OS、ワークロード、Kubernetes のバージョンを確認するをご覧ください。
  11. モダナイゼーションのためにソースマシンとローカルマシンを準備します。Cloud Code では、Linux のモダナイゼーションのみがサポートされています。

再プラットフォーム化のソースを追加する

このセクションでは、Migration Center のディスカバリー クライアント CLI(mcdc)とその他の Migrate to Containers ツールをローカルマシンにインストールしていない場合はインストールし、次の手順で再プラットフォームのソースを追加します。

  1. IDE のアクティビティ バーで [Cloud Code] をクリックし、[Replatform Apps] エクスプローラを展開します。

  2. Cloud Code で Migrate to Containers を初めて使用する場合は、[ツールのインストール] をクリックして、mcdc CLI およびその他の Migrate to Containers ツールをローカルマシンにインストールする必要があります。それ以外の場合は、次のステップに進みます。

  3. [ソースを編集] をクリックします。空の mcdc-sources.json ファイルが開きます。次の形式でソースを追加します。

    [
      {
        "title": "SOURCE_NAME",
        "host": "HOSTNAME",
        "user": "USER",
        "identityFile":"IDENTITY-FILE-PATH"
      }
    ]
    
  4. ソースが [Replatform Apps] エクスプローラに表示されるようにするには、[Replatform Apps] エクスプローラの上にポインタを置き、表示されるキャッシュに保存された [ソースの再読み込み] ボタンをクリックします。

省略可: 適合性評価を生成する

アプリケーションをコンテナに再プラットフォーム化する前に、ソースの適合性評価を生成することをおすすめします。これにより、ソースがコンテナに再プラットフォーム化が可能かどうか通知されます。

ソースの適合性評価を生成するには、ソースを右クリックして [ソースの評価] を選択します。これにより、IDE でターミナルが開き、ソースの評価のログが表示されます。

評価が完了すると、mcdc によって IDE で適合性評価レポートが生成されます。

ソースが「良好」であると報告された場合は、アプリケーションを再プラットフォーム化する準備が整っています。

アプリケーションの再プラットフォーム化

Cloud Code では、再プラットフォーム化ごとに専用のワークスペースが作成され、再プラットフォーム化を自動化するため、そのワークスペースでコピー分析、および生成のタスクが実行されます。最初にコピータスクと分析タスクを実行せずに生成タスクを実行すると、アーティファクトを生成する前に、それらが自動的に実行されます。

以降のセクションでは、これらの各タスクを実行し、Cloud Code を使用してアプリケーションをコンテナに再プラットフォーム化する方法について説明します。

移行のライフサイクルの詳細については、Migrate to Containers CLI アーキテクチャをご覧ください。

新しい再プラットフォーム化のワークスペースを作成する

新しい再プラットフォーム化のワークスペースを作成する前に、移行タイプにより、どの移行パラメータを選択するかを知っておく必要があります。各移行タイプのパラメータの詳細については、移行計画を作成するをご覧ください。

IDE でアーティファクトを使用して、新しい再プラットフォーム化のワークスペースを作成するには、次の手順に従います。

  1. [Replatform Apps] エクスプローラで、再プラットフォーム化するソースを右クリックして [再プラットフォーム化] をクリックします。

  2. メニューに表示されるオプションのリストから、再プラットフォーム化の工程を選択します。

  3. アプリケーションの再プラットフォーム化を行う新しいワークスペース ディレクトリを選択し、[OK] をクリックして、[再プラットフォーム化のワークスペースの作成] をクリックします。

  4. 移行タイプの移行パラメータを選択します。

  5. 省略可: WebSphere の移行タイプを選択し、バイナリ スキャナを使用する場合は、binaryAppScanner.jar ファイルを選択します。

    ワークスペースの生成には数秒かかります。これによって、新しいワークスペース ディレクトリが IDE の新しいウィンドウで開きます。

VM からワークスペースにファイルをコピーする

VM から IDE のワークスペースにファイルをコピーするには、次の手順を行います。

  1. 省略可: mcdc CLI はフィルタを適用してコピーのサイズを縮小しますが、filters.txt ファイルを変更してコピーのサイズをさらに小さくできます。コピーのサイズを小さくする方法については、コピーされたファイル システムのサイズを小さくするをご覧ください。

  2. Ctrl+Shift+P キーを押してコマンド パレットを開きます。

  3. [タスク: タスクを実行] を検索して選択し、[m2c: コピー] を選択します。ファイルのコピーには数分かかる場合があります。

VM ファイル システムを分析して移行計画を生成する

VM ファイル システムを分析して移行計画を生成するには、次の手順を行います。

  1. Ctrl+Shift+P キーを押してコマンド パレットを開きます。

  2. [タスク: タスクを実行] を検索して選択し、[m2c: 分析] を選択します。

    分析タスクが失敗した場合は、analyze-args.ini ファイルで移行パラメータを変更する必要があります。このファイルには、パラメータごとに 1 行ずつ、パラメータに関するドキュメントが付属しています。

    分析が成功すると、Cloud Code は migration-plan というディレクトリを作成します。このディレクトリには、分析結果が config.yaml ファイルの形式で含まれます。このファイルを編集して、アーティファクトの生成方法を変更できます。

    config.yaml ファイルの構造は、移行タイプによって異なります。サポートされている移行タイプの詳細については、以下のページをご覧ください。

アーティファクトの生成

アーティファクトを生成するには、IDE で生成タスクを実行する必要があります。前のセクションの [コピー] タスクと [分析] タスクをまだ実行していない場合は、アーティファクトを生成する前に、生成タスクによって両方が自動的に実行されます。

アーティファクトを生成するには、次の手順を行います。

  1. Ctrl+Shift+P キーを押してコマンド パレットを開きます。

  2. [タスク: タスクを実行] を検索して選択し、[m2c: 生成] を選択します。これにより、src ディレクトリにアーティファクトが生成されます。これには、コンテナ イメージのビルドとデプロイに使用される skaffold.yaml ファイルが含まれています。移行タイプごとに異なるアーティファクトが生成されますが、通常はすべての移行タイプで 1 つ以上の Dockerfile と skaffold.yaml が参照する GKE デプロイ仕様が作成されます。

    アーティファクトの生成が完了すると、アプリケーションの再プラットフォーム化は完了します。

  3. 省略可: 移行計画を変更する場合は、config.yaml ファイルを編集して、m2c: 生成タスクを再実行します。

    それ以外の場合は、再プラットフォーム化の結果に問題がなければ、GKE コンテナでアプリケーションを実行するに進みます。

GKE コンテナでアプリケーションを実行する

このセクションでは、再プラットフォーム化されたアプリケーションを GKE コンテナで実行し、実行中のアプリケーションのログを表示して、リソースをクリーンアップします。

まだ GKE クラスタを作成して構成していない場合は、Cloud Code for VS Code で GKE クラスタを作成して構成するの手順に従ってください。

GKE アプリケーションのデバッグの詳細については、Cloud Code for VS Code を使用して Kubernetes アプリケーションをデバッグするをご覧ください。

アプリケーションを実行して表示する

設定がすべて完了したら、アプリケーションを実行して、公開できます。Cloud Code がファイル システムの変更を監視するため、アプリをリアルタイムで編集して再実行できます。

アプリケーションを実行するには、次の手順に沿って操作します。

  1. Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。

    ステータスバーのアクティブなプロジェクト名

  2. 表示されたクイック選択メニューで、[Kubernetes 上で実行する] を選択します。

  3. 現在のクラスタ コンテキストを使用するか、別のクラスタ コンテキストに切り替えるかを確認します。

  4. プロンプトが表示されたら、イメージの push 先となるイメージ レジストリを選択します。gcr.io/PROJECT_ID を使用して新しいイメージ レジストリを作成する場合は、イメージ レジストリがクラスタと同じプロジェクト内にあることを確認してください。

    実行中のアプリケーションの進捗状況を追跡できる出力ウィンドウが表示されます。また、ターミナル出力に実行中の Pod から取得したログのライブ ストリームも表示されます。

  5. アプリケーションが Kubernetes で実行されると、出力ウィンドウに IP アドレスが表示されます。このリンクされた IP アドレスを使用してアプリケーションにアクセスするには、Ctrl キーを押しながらアドレスをクリックします。

デバッグのセッションを開始すると、[Development sessions] ペインに構造化ロギングビューが表示されます。タスクが開始されると、タスクが回転する半円の progress_activity とともに表示されます。

タスクが成功すると、手順の横にチェックマーク check_circle が表示されます。

手順の詳細を表示するには、[開発セッション] ペインで手順をクリックします。[出力] ペインに、ロギング出力の手順が表示されます。

クリーンアップ

アプリケーションを中止すると、実行中にデプロイされたすべての Kubernetes リソースは自動で削除されます。

このクイックスタートで使用した他のリソースについてアカウントに課金されないようにするには、プロジェクトを再利用する場合、プロジェクトを削除するか、作成したクラスタを削除してください。

クラスタを削除するには:

  1. [Cloud Code] をクリックし、[Kubernetes] エクスプローラを展開します。
  2. ポインタをクラスタ名に合わせて、open_in_new [Google Cloud コンソールで開く] をクリックします。
  3. [削除] をクリックし、[削除] をクリックします。

プロジェクト(およびクラスタを含む関連リソース)を削除するには、次のようにします。

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

再プラットフォーム化プロセス中に作成されたすべてのローカル ファイルを削除するには:

  1. コマンド パレットを開きます(Ctrl+Shift+P)。
  2. [タスク: タスクを実行] を検索して選択し、[m2c: クリーンアップ] を選択します。