[8.5.5.5 以降]

ビデオ: DevOps with WebSphere Liberty Server (WebSphere Liberty サーバーでの DevOps)

以下は、「DevOps with WebSphere® Liberty Server (WebSphere Liberty サーバーでの DevOps)」ビデオのトランスクリプトです。このビデオは、Liberty サーバーの DevOps およびいくつかのオープン・ソース・ツールを使用したアプリケーションの開発、ビルド、およびデプロイの方法を示しています。このトランスクリプトは、ビデオのストーリーボードです。音声は、ナレーションとキャプションを記述しています。画面上のアクションは、ビデオに表示される内容を記述したものです。

ビデオ Demo - DevOps with WebSphere Liberty Server (デモ - WebSphere Liberty サーバーでの DevOps)

表 1. タイトル・ページ. タイトルを表示し、次にアプリケーションのビルド、更新、テスト、およびデプロイの基本的概要を表示します。
場面 音声 画面上のアクション
1 このデモは、WebSphere Liberty Server および共通のオープン・ソース・ツールのセットを使用してアプリケーションをビルドおよびデプロイする機能の提供方法を示します。 タイトル「Demo - DevOps with WebSphere Liberty Server」が表示されます。
2 ソース制御には Git を使用し、アプリケーションの開発には WebSphere Application Server Developer Tools を使用し、ビルドには Maven を使用します。 次のオプションを使用する「1. Develop and Build Application」のイメージが表示されます。
  • Git
  • WebSphere Developer Tools (WDT)
  • Maven
3 また、Liberty で稼働している Web アプリケーションを変更し、Eclipse IDE から実稼働環境に変更をプッシュします。 WDT を使用する「2. Update Application」のイメージが表示されます。
4 WebSphere Liberty Maven プラグインと一緒に Apache Maven を使用して、変更を検証するための統合テストを実行します。 Liberty Maven プラグインと共に「3. Test Application」のイメージが表示されます。
5 また、継続的統合のために Jenkins を使用します。 Jenkins を使用する「4. Continuous Integration」のイメージが表示されます。
6 Chef を使用して、新規ビルドを実稼働環境にプッシュします。

上記のすべての DevOps シナリオでは、Liberty は Java™ Platform, Enterprise Edition ランタイムになります。このデモでは、エアライン・アプリケーションの AcmeAir をサンプルとして使用します。これは、制御可能で、かつ反復可能性が高い DevOps プラクティスを示します。

Chef を使用する「5. Continuous Deploy」のイメージが表示されます。
表 2. アプリケーションの開発およびビルドのデモ
場面 音声 画面上のアクション
7 では、1 番目のシナリオ「アプリケーションの開発とビルド」から開始します。

WDT が既に事前インストールされている Eclipse を開きます。

  1. Maven で使用するためのワークスペース設定を指定します。
  2. 次に、AcmeAir アプリケーションを含む Git リポジトリーを複製します。Git リポジトリー URI を指定します。
  3. その後、Maven ベースの AcmeAir プロジェクトのセットをインポートします。このリポジトリーには 5 つの Maven ベースのプロジェクトがあります。
  4. これで、Maven ビルドを実行してプロジェクトをビルドし、アプリケーション成果物を作成できます。ビルド終了時に、ビルドが正常に実行されたことを確認します。
  5. ここで、Liberty プロファイル・サーバーを作成して、Eclipse からアプリケーションを実行できます。そのため、Liberty インストール・ディレクトリーを指定します。
  6. また、Liberty サーバーを指定します。
  7. 次に、server.xml を開いて、AcmeAir アプリケーションを実行するようにサーバーを構成できます。
    • まず、<httpEndpoint> エンドポイントを指定します。
    • また、データベース構成を追加します。この構成は、アプリケーション・データ用に Derby データベースを参照します。
  8. WebSphere Liberty プロファイル・サーバーと AcmeAir アプリケーションを開始します。
  9. ここで、アプリケーションにログインし、アプリケーションを利用します。
  10. 目的地と出発地の都市を選択できます。入手可能な航空チケットを確認し、予約します。
タイトル「Step 1 Develop and Build Application」が表示されます。

WDT を使用するアプリケーションを開発およびビルドするための、以下の手順を示すデモ。

WDT が事前インストールされた Eclipse を開きます。

  1. Maven で使用するためのワークスペース設定を指定します。「Set all Maven values」ボタンをクリックします。
  2. Git リポジトリー URI を指定することにより、AcmeAir アプリケーションを含む Git リポジトリーを複製します。
  3. Maven ベース AcmeAir プロジェクト・セット (acmeair リポジトリーには 5 つの Maven ベース・プロジェクトが含まれています) をインポートします。
  4. 次に、Maven を実行してプロジェクトをビルドし、アプリケーション成果物を作成します。ビルド終了時に、ビルドが正常に実行されたことを確認します。
  5. これで、WebSphere Liberty プロファイル・サーバーを作成して、Eclipse からアプリケーションを実行することができます。Liberty のインストール・ディレクトリーを指定します。
  6. サーバー AcmeAirDemo を指定し、acmeair-webapp アプリケーションをそのサーバー内に追加します。
  7. サーバー構成 server.xml ファイルを開き、Liberty サーバーをサービス用に構成します。
    • <httpEndpoint> エレメントを置換し、さらに構成を追加します。
    • データベース構成を追加します。この構成は、アプリケーション・データ用に Derby データベースを参照します。
  8. WebSphere Liberty プロファイル・サーバーと AcmeAir アプリケーションを開始します。
  9. 「application URL」をクリックして、アプリケーションがアクティブであることを確認します。フライト・データ・セットをロードしてアプリケーションを初期化します。
  10. これで、AcmeAir の使用準備ができました。
    • アプリケーションにログインし、「Flights」アクションをクリックし、「Leave From」「New York」「Arrive At」「Paris」と入力します。
    • 「Find Flights」ボタンまたは「Browse Flights」ボタンをクリックします。
    • 往路のフライトを選出し、それをクリックして選択します。
    • 復路のフライトを選出し、それをクリックして選択します。
    • 「Book Select Flights」ボタンをクリックします。
表 3. アプリケーションの更新のデモ
場面 音声 画面上のアクション
8

シナリオ 2 で、アプリケーションを素早く変更し、変更が反映された状態で継続して配信する様子を示します。シナリオを単純化するため、索引ページに非常に小規模な変更を加えます。強調表示されているコンテンツを「Welcome to Acme Air」に置き換えます。これで、変更を保存した後に、変更を有効にするために最新表示できます。

タイトル「Step 2 Update Application」が表示されます。

アプリケーションで更新されている「Index」ページを表示しているデモが示されます。

表 4. アプリケーションのテストのデモ
場面 音声 画面上のアクション
9 次に、Maven と Liberty Maven プラグインを統合テストに使用します。
  1. AcmeAir アプリケーションには、統合テストを含む acmeair-itests プロジェクトがあります。
  2. 統合テストを使用可能にするために、pom.xml ファイルを編集する必要があります。 ここでいくつかの変更を行う必要がありますが、最も重要な変更は、Liberty Maven プラグインを有効にして、統合テスト前に Liberty サーバーを始動し、テストの完了後にサーバーを停止するように構成することです。
  3. AcmeAir 統合テストの構成を作成し、実行します。
    • 「Run」ボタンをクリックして統合テストを実行します。テストが完了するまで数分かかります。 そして、ビルドが正常に完了します。
    • コンソール出力を調べて、テストが実行される前に Liberty Maven プラグインがサーバーを始動し、テストの後にサーバーを停止していることを確認します。
  4. テスト・レポートを表示し、結果にエラーが含まれていないことを確認できます。
  5. 次に、pom.xml の変更を Git にプッシュします。それにより、itests を Jenkins ビルドで実行することができます。
アプリケーションをテストするデモ。以下の手順が使用されます。
  1. AcmeAir アプリケーションには、統合テストを含む acmeair-itests プロジェクトがあります。
  2. acmeair-itests/pom.xml ファイルを編集して、統合テストの活動化を有効にします。
  3. Build Helper Maven プラグインを有効にして、使用可能なネットワーク・ポートを検出します。
  4. Liberty Maven プラグインを有効にし、構成して、統合テストを実行する前に Liberty サーバーを始動し、テストが終了したらサーバーを停止します。
  5. Maven Failsafe プラグインを有効にし、構成して、統合テストを実行します。これらのテストでは、アプリケーションの REST API が使用されます。
  6. AcmeAir 統合テストの構成を作成し、実行します。
    • 「Run」ボタンをクリックして統合テストを実行します。テストは正常に完了するはずです。
    • コンソール出力を調べて、テストが実行される前に Liberty Maven プラグインがサーバーを始動していることを確認します。
    • コンソール出力を調べて、Liberty Maven プラグインがテスト後にサーバーを停止していることを確認します。
  7. target/failsafe-reports/ ディレクトリー内のテスト・レポートを表示します。
  8. pom.xml の変更を Git にプッシュします。それにより、itests を Jenkins ビルドで実行することができます。
表 5. Jenkins との継続的統合を示すデモ
場面 音声 画面上のアクション
10
  1. 次のシナリオで、Jenkins を使用して、AcmeAir アプリケーション用のビルド・ジョブを作成し、実行します。このジョブは、Git からアプリケーション・コードをチェックアウトし、アプリケーションをコンパイルし、テストを実行し、ビルド成果物を公開します。Schedule の構成により、ジョブは 2 分おきに Git リポジトリーをポーリングし、変更を検出すると自動的にビルドを開始します。
    • Liberty インストール・ディレクトリーを指定します。
    • 「post-build action」 を追加し、「Archive the artifacts」を選択します。
    • 1 分から 2 分後に、ビルドが自動的に開始されます。
  2. ビルドが正常に完了したら、ビルド・ジョブの結果を調べてください。「Test Result」に失敗がないことが示されます。
  3. Eclipse にスイッチバックし、「Index」ページに行った変更をコミットします。
  4. Jenkins に再び切り替えると、2 分以内に、新規ビルドが「Build History」表に表示されます。
タイトル「Step 4 Continuous Integration」が表示されます。

以下の手順を使用して、Jenkins との継続的統合を示すデモが示されます。

  1. Jenkins を使用して、AcmeAir アプリケーション用のビルド・ジョブを作成し、実行します。このジョブは、Git からアプリケーション・コードをチェックアウトし、アプリケーションをコンパイルし、テストを実行し、ビルド成果物を公開します。Schedule の構成により、ジョブは 2 分おきに Git リポジトリーをポーリングし、変更を検出すると自動的にビルドを開始します。
    • 「Add post-build actions」ボタンをクリックし、「Archive the artifacts」を選択します。
    • 1 分から 2 分後に、ビルドが自動的に開始されます。
  2. ビルドが正常に完了したら、ビルド・ジョブの結果を調べてください。acmeair-webapp-1.0-SNAPSHOT.war ファイルが「Build Artifacts」の下に表示され、「Test Result」には何の障害も示されていないはずです。
  3. Eclipse にスイッチバックし、「Index」ページに対して行った変更をコミットします。
  4. Firefox に切り替え、http://server:9080/jenkins/job/AcmeAir tests/ アドレスにアクセスします。2 分以内に、新規ビルドが「Build History」表に表示されます。
    • 新規ビルドをクリックし、正しいコミット・メッセージが「Changes」に表示されていることを確認します。
表 6. Chef での継続デプロイメントを示すデモ
場面 音声 画面上のアクション
11
  1. 最後のシナリオで、Chef を使用した継続的なデプロイメントを実行します。
    • 端末ウィンドウを開きます。
    • 空の cookbook を作成します。
    • 説明書のメタデータ・ファイルを編集します。
    • レシピ・ファイルを編集します。
    • AcmeAir cookbook を Chef サーバーにアップロードします。
  2. また、template ノードを Chef サーバーに登録します。
  3. Chef サーバーで template ノード構成を指定できます。
  4. 次に、Chef ノードにデータを追加できます。これにより、chef-client コマンドが template ノードで実行されます。AcmeAir アプリケーションが、template ノードに完全にデプロイされて、実行されているはずです。これを確認するには、Firefox に切り替え、template アプリケーション・サーバーを開いて結果を確認します。
  5. 次に、すべての統合テストに合格した後でのみ、template ノードで chef-client を呼び出してそれを更新する、新しい Jenkins ビルド・ジョブを作成します。
    • Jenkins コンソールで、AcmeAir tests ジョブを編集します。
    • 「Post-build Actions」の下で「Add post-build action」をクリックし、「Build other projects」を選択します。
    • 「Projects to build」の下に「AcmeAir-Chef」と入力します。
    • AcmeAir tests ビルドを要求することにより、AcmeAir tests ジョブが AcmeAir-Chef ジョブをトリガーすることを確認します。

Liberty および共通オープン・ソース・ツールを使用した DevOps プラクティスのデモンストレーションを行いました。これで、完全な最初から最後までの DevOps シナリオを全部まとめて繰り返し試すことができます。このデモでは、Chef、WDT、Maven、および Jenkins を選択していますが、これらのテクノロジーは、uDeploy® や Puppet などの他の DevOps ツールと容易に交換可能です。ご視聴ありがとうございました。

タイトル「Step 5 Continuous Deploy」が表示されます。

Chef を使用した継続的デプロイメントを示すデモ。ここでは、以下の手順が使用されます。

  1. AcmeAir をデプロイするための cookbook を作成します。
    • 端末ウィンドウを開きます。
    • 空の cookbook を作成します。
    • 説明書のメタデータ・ファイルを編集します。
    • default.rb レシピ・ファイルを編集します。
    • AcmeAir cookbook を Chef サーバーにアップロードします。
  2. Chef ノードをブートストラップし、template ノードを Chef サーバーに登録します。
  3. Chef サーバーで template ノード構成を実行します。
  4. Chef ノードにデータを追加します。knife ssh name:template sudo chef-client コマンドを実行します。これにより、chef-client コマンドが template ノードで実行されます。Chef-client は、ノード上で cookbook のセットを実行します。AcmeAir アプリケーションが、template ノードに完全にデプロイされて、実行されているはずです。確認するには、Firefox に切り替え、http://template:9081/acmeair/ アドレスを開きます。
  5. Chef ノードに Jenkins を自動的に取り込みます。すべての統合テストに合格した後でのみ、template ノードで chef-client を呼び出してそれを更新する、新しい Jenkins ビルド・ジョブを作成します。
    • Jenkins コンソールで、AcmeAir tests ジョブを編集します。
    • 「Post-build Actions」の下で「Add post-build action」をクリックし、「Build other projects」を選択します。
    • 「Projects to build」の下に「AcmeAir-Chef」と入力します。
    • 新規 AcmeAir tests ビルドを要求することにより、AcmeAir tests ジョブが AcmeAir-Chef ジョブをトリガーすることを確認します。

トピックのタイプを示すアイコン 概念トピック

インフォメーション・センターに関するご使用条件 | フィードバック


タイム・スタンプ・アイコン 最終更新: 2015 年 6 月 17日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=video_transcript_dev_ops_demo
ファイル名: video_transcript_dev_ops_demo.html