28
2. 開発環境のセットアップ 2017/12/19 (⽕) ⽇本アイ・ビー・エム ⽇本アイ・ビー・エム システムズ・エンジニアリング IBM Cloud 中級者向けハンズオン・セミナー

02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

2. 開発環境のセットアップ

2017/12/19 (⽕)⽇本アイ・ビー・エム⽇本アイ・ビー・エムシステムズ・エンジニアリング

IBM Cloud中級者向けハンズオン・セミナー

Page 2: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation2

ご注意

この資料は⽇本アイ・ビー・エム株式会社および⽇本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受けておりません。資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても⼀切の補償をするものではありません。また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについてはhttp://www.ibm.com/legal/copytrade.shtmlをご覧ください。

Page 3: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation3

このセッションでの対象IBM Cloudの標準ランタイムであるCloud Foundryをメインにお話しします

q ビジネス要件にあわせたコンピューティング環境を提供しますq ⽤途に合わせて様々なコンピューティング環境を⾃由に選択し、アプリ開発を⾏えます

Ø パフォーマンスの最⼤化Ø コントロール⾃由度の保持

Ø 既存の資産やツールの活⽤ Ø Linuxコンテナーの活⽤Ø Kubernetesのサポート

Ø Cloud Foundryを活⽤したPaaS基盤を提供

Ø Apache OpenWhiskをベースとしたオープンな実装のサーバーレス環境を提供

ベアメタル 仮想サーバー コンテナー CFランタイム サーバーレス

IBM Cloud Infrastructureの範囲 IBM Cloud Platformの範囲

パフォーマンス & コントロール 開発スピード&スケーラビリティーポータビリティー

Page 4: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation4

⽬次1.IBM Cloudでのアプリケーション開発2.Continuous Deliveryサービス

Page 5: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation5

1. IBM Cloudでのアプリケーション開発

Page 6: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2015 IBM Corporation6

© 2016 IBM Corporation6

継続的デリバリー:コア価値を迅速に提供し随時改善

設計 テスト 移⾏構築要件定義

リリース

リリース

運⽤(保守)設計 テスト構築要件

定義

継続的でない (従来型の)ソフトウェア・デリバリー

フィードバック フィードバック

フィードバック

リリース

リリース リリース リリース リリース リリース リリース リリース リリース リリース

サイクル2

サイクル1

サイクル3

サイクル4

サイクル5

サイクル6

サイクル7

サイクル8

サイクル9

サイクル10

フィードバック

取り込み 取り込み 取り込み

取り込み

継続的なソフトウェア・デリバリー

取り込み

新しいアイデア

初期のアイデア

フィードバック

陳腐化していて価値が低い市場での価値が⾼い

市場での価値が⾼い陳腐化していて価値が低い

Page 7: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2015 IBM Corporation7

© 2016 IBM Corporation7

IBM Cloudでの開発では何を使う?

チーム開発のための環境を⽤意・整備したい

統合開発環境(IDE)など使い慣れたものを使いたい

Aさん

Atom, Eclipse, Xcode, Visual Studio, …

Bさんたち

デプロイメント

ソース管理

トラッキング&プランニング

コラボレーション

モニタリング

アラート通知

など …

テスト

Page 8: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation8

IBM Cloudでのアプリ開発のためのツールq 開発者のスキル、体制、好みに合わせて柔軟に開発環境を構成することができます

Cloud Foundry / IBM Cloud CLIp IBM Cloudの各種操作を⾏うためのコマンドを提供p 他ツールとの連携やタスクの⾃動化が容易

任意のIDEとの共存

操作の⾃動化

IBM Eclipse Tools for IBM Cloudp IBM Cloudアプリケーション開発⽤のEclipseプラグインp EclipseからIBM Cloudへのデプロイ等の操作が可能p Liberty for Javaアプリのリモートデバッグも可能

デプロイ

デバッグ

IDEと統合

コマンドライン

Eclipseとの連携

Continuous Deliveryサービスp DevOpsカテゴリーのサービスp ソース・リポジトリーやWeb IDE, Delivery Pipelineを提供p Slackなどのコミュニケーション・ツールなど、よく使うDevOpsツールと連携 デプロイの⾃動化

ソース管理

Web IDE

各種ツールの連携

WebベースのIDE

Page 9: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation9

CloudFoundryコマンドライン・インターフェース

IBM Cloudをはじめ、Cloud Foundryベースのクラウド環境であれば共通して使⽤できるコミュニティーで公開されている追加のプラグインを導⼊することで、操作を拡張することも可能

https://github.com/cloudfoundry/cli#downloadsからダウンロードして導⼊

アプリ開発者

> cf ccc xxx×

(1) ランタイムに対する操作• ランタイムの⽣成, 削除• メモリー, インスタンス数の変更• DNS経路の追加, 変更, 削除• ログの出⼒ など(2) サービスに対する操作• サービスの⽣成, 削除• ランタイムに対するバインド, アンバインド など

IBM Cloud

cfコマンドラインで実施可能な主な操作

Cloud Foundryで利⽤する標準的なコマンドライン・インターフェース

Page 10: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation10

IBM Cloud CLI

例) ボイラープレートを利⽤したアプリ実⾏環境のデプロイ

cfコマンドラインでは操作できない、IBM Cloud固有の操作をコマンドラインで実現できる点がポイント

# bluemix catalog template-run node-red-template ibm-nodered-0x

http://clis.ng.bluemix.net/ui/home.htmlからダウンロードして導⼊

※ 他にも以下のようなオプションを提供bluemix iam : 組織やスペースに対する操作bluemix security : 証明書の登録bluemix ic : IBM Containersに対する操作

IBM Cloud専⽤のコマンドライン・インターフェース

Page 11: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation11

IBM Eclipse Tools for IBM CloudEclipseをローカル開発環境に利⽤する場合にオススメの追加プラグイン

ローカルで開発しているソースをIBM Cloud UIやCloudFoundryコマンドライン・インターフェースを使わずに簡単にIBM Cloud上にプッシュできる点がポイント

※導⼊⼿順は以下を参照developerWorks - IBM Eclipse tools for bluemixの構成⼿順 IBM Cloud

WLP

.war

ランタイム

ü デプロイü インクリメンタル公開ü Javaアプリのデバッグü ログ履歴の表⽰

IBM Cloud for Neon

Page 12: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation12

Continuous Deliveryサービスアプリ開発に必要なツールチェーンを迅速に構築するための

DevOpsカテゴリーのサービス

ü 継続的デリバリーのためのツール群をセットアップ

IBM提供のツールやGitHub, Slackといった3rd Partyのツールを選択して、セットアップ

ü 選択可能なツール (12⽉時点)p Availablity Monitoringp Delivery Pipelinep DevOps Insightsp Eclipse Orion WebIDEp GitHubp PagerDutyp SauceLabsp Slackp Other Tools

Page 13: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation13

ツールの使い分け

> cf ccc xxx×

開発者にとって最も効率的な環境を選択することで、効率良くアプリ開発を実施

例1) 任意のIDE + cfコマンドラインu IDEはEclipseなど、使い慣れたものを利⽤u リポジトリーは⾃社内にあるものを利⽤u IBM CloudへのPushはcfコマンドラインで実施

EclipseなどのIDE Gitなどのリポジトリ

例2) IDSのみ利⽤u IDE, リポジトリーはIDSを利⽤u RTCの機能などを利⽤して、チームで開発u IBM CloudへのPushは直接IDSから実施

cfコマンドライン

IDE, リポジトリーはIDSを利⽤

IBM Cloud

IBM Cloud

Page 14: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation14

2. Continuous Deliveryサービス

Page 15: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation15

Continuous Deliveryサービス (再掲)アプリ開発に必要なツールチェーンを迅速に構築するための

DevOpsカテゴリーのサービス

ü 継続的デリバリーのためのツール群をセットアップ

IBM提供のツールやGitHub, Slackといった3rd Partyのツールを選択して、セットアップ

ü 選択可能なツール (12⽉時点)p Availablity Monitoringp Delivery Pipelinep DevOps Insightsp Eclipse Orion WebIDEp GitHubp PagerDutyp SauceLabsp Slackp Other Tools

Page 16: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation16

開発に必要なツールをツールチェーンとして容易に構成

開発に必要なツール群を簡単にセットアップできます①利⽤に基づき適切なテンプレートを選択

② 何が構成されるか確認し、ツールチェーンを作成 ③ Buemixコンソール画⾯上でポータル画⾯が表⽰

④ 開発のシーンに合わせて適切なタイルを選択して作業

Page 17: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation17

標準的なツールチェーンの構成

IBM CloudGit Repo and Issue Tracking

Eclipse OrionWeb IDE

DeliveryPipeline

Web IDEで作業中のコードを⼿動デプロイ

⾃動デプロイローカル環境で開発

Web上で開発

② ソース管理を活⽤してチームの開発成果物を効率よく共有する

ビルド、リリース、テストを継続的に⾏いスピードと品質を両⽴する

ローカル環境にクローンすることなく、WEB上で開発が可能

Page 18: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation18

Git Repos and Issue Trackingソースコード管理およびIssue管理が⾏えるGitLab環境を提供します

Issue管理

プロジェクト/Gitリポジトリー

Page 19: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation19

Eclipse Orion Web IDE (1/2)Webブラウザー上の統合開発環境(IDE)を提供します

コードエディターによるコードの編集

ファイル・ツリーでソース・リポジトリー内のディレクトリーやファイルを表⽰

Run Bar(デプロイや起動/停⽌)

ライブ編集(静的ファイルの動的更新の⾃動化)

Page 20: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation20

Eclipse Orion Web IDE (2/2)Gitビューに切り替えることで、Gitリポジトリーの操作(プッシュ等)が⾏えます

コミット・メッセージの⼊⼒

変更差分の確認コミット履歴の表⽰

Page 21: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation21

Delivery Pipelineリポジトリーにあるコードのビルドからデプロイまでを⾃動化するパイプラインを構成できます

① ステージ(Stage)ジョブ・フローの管理単位パイプラインに複数追加可能

② ジョブ(job)各ステージの処理単位以下3種類から選択

・ビルド・テスト・デプロイ

② 最新実⾏の結果デプロイ先ランタイムの状況や対象ビルド番号を確認

Page 22: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation22

ツールの追加は画⾯から容易に実施

ツール固有の設定は必須だが、標準的なツールであれば追加も容易に⾏えます

①「ツールの追加」をクリック

② 追加したいツールを選択

③ ツール固有の設定を追加

④ ツールが追加!!

Page 23: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation23

ここまでのまとめq 以下のことを学びました

¦ IBM Cloudでのアプリケーション開発n以下のツールを利⽤して開発/操作を⾏います

lCloud Foundry / IBM Cloud CLIl IBM Eclipse Tools for IBM CloudlContinuous Deliveryサービス

nこれらのツールを組み合わせて、⾃分の利⽤しやすい開発環境をセットアップします

¦ Continuous Deliveryサービスnアプリ開発に必要なツールチェーン(ツール群)を⽤意/設定するためのサービスですnDelivery Pipelineなどの標準的なツールや、よく開発に使⽤するツールを組み合わせて

開発を進めやすくするためのポータル画⾯を提供します

実際にLab01のハンズオンを進めていきましょう!!

Page 24: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2017 IBM Corporation24

Page 25: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2015 IBM Corporation25

© 2016 IBM Corporation25

補⾜. IBM Cloudでのデバッグ⽀援機能

Page 26: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2015 IBM Corporation26

© 2016 IBM Corporation26

IBM Cloudで問題判別/デバッグを⾏うには?IBM Cloudで提供されるサービスやデバッグのための機能を理解し、有効活⽤

IBM Cloud

BUILD & DEPLOY

デスクトップ(ローカルPC)

IBM Cloud DevOps Services (IDS)

① デスクトップ同期(for Node.js)

② ライブ・デバッグ(for Node.js)

Shell (Webブラウザ)

⑤ ログイン(for Node.js, Liberty)

③ ライブ編集(for Node.js)

Monitoring

Alert

⑥ Health Center(for Node.js, Liberty)

Delivery PipelineGitリポジトリ

(マスター)

Cloudワークスペース

Gitリポジトリ(ローカル)

Web IDE編集

> bl sync×

IBM Cloud Live Syncblコマンド

Node Inspector (Chrome)IBM Eclipse Tools

for IBM Cloud (Eclipse)

④ リモート・デバッグ(for Liberty for Java)

Health Center(Eclipse)

Page 27: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2015 IBM Corporation27

© 2016 IBM Corporation27

IBM Cloudで提供される開発/デバッグ⽀援の機能① デスクトップ同期 (IBM SDK for Node.js)

p Web IDEで編集するCloudワークスペースと、デスクトップ上のプロジェクト領域を同期p IBM Cloud Live Sync bl コマンド・ラインの導⼊が必須

② ライブ・デバッグ (IBM SDK for Node.js)p IBM Cloudで稼働中のNode.jsアプリに対して、コンソール・ログの確認やブレークポイントの挿⼊などのデバック機能を提供p WebブラウザーとしてGoogle Chrome (Node-Inspector)が前提

③ ライブ編集 (IBM SDK for Node.js)p IDSでのCloudワークスペースの変更を、IBM Cloudで稼働中のNode.jsアプリのファイル・システムへ同期するp デプロイではなくリブートで、アプリに変更が反映されるので動作確認までの時間を最⼩限に抑えられる

④ リモート・デバッグ (Liberty for Java)p IBM Cloud上のLiberty for Javaアプリケーションに対し、ブレークポイントを挿⼊しデバッグを⾏う機能を提供p IBM Eclipse Tools for IBM Cloudが前提

⑤ ログイン (Liberty for Java, IBM SDK for Node.js)p WebSocketベースでCFランタイム(コンテナー)にSSHログインし、動作確認/設定確認を⾏う場合に使⽤

⑥ Health Center (Liberty for Java, IBM SDK for Node.js)p Eclipse上でHealth Centerを起動し、Javaの稼働状況をモニタリング

(参考) https://www.ibm.com/developerworks/jp/websphere/library/was/hc_guide/

Page 28: 02 bmx mid seminar lecture dev v1€¦ · 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の

© 2015 IBM Corporation28

© 2016 IBM Corporation28

デバッグ機能の裏側: アプリケーション管理ユーティリティー

Liberty for Java, IBM SDK for Node.jsにのみ組み込まれたモジュールn 環境変数「BLUEMIX_APP_MGMT_ENABLE」にオプションを指定することで、有効化

p 設定可能な値ü proxy : Node.jsのライブ編集を有効化ü devconsole : 開発コンソールを有効化ü hc : Health Centerエージェントを有効化ü shell : Webベースのシェル・ターミナルを起動ü debug (L) : Libertyのリモート・デバッグを有効化ü jmx (L) : JMX REST Connectorを有効化ü inspector (N) : Node Inspectorによるデバッグを有効化ü trace (N) : トレース・レベルの動的変更に必要

n 単⼀インスタンスでの利⽤に限られる点に注意が必要p 2インスタンスでshellを有効化してもログインできない

n 本番においては無駄なリソース消費となるので、導⼊しないのがオススメですp デフォルトでは実⾏はされないため、セキュリティー・ホールにはなりませんp 環境変数「BLUEMIX_APP_MGMT_INSTALL」をfalseにすれば導⼊を回避できます

Liberty アプリおよび Node.js アプリの管理https://console.ng.bluemix.net/docs/manageapps/app_mng.html#app_management