Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
2. 開発環境のセットアップ
2017/12/19 (⽕)⽇本アイ・ビー・エム⽇本アイ・ビー・エムシステムズ・エンジニアリング
IBM Cloud中級者向けハンズオン・セミナー
© 2017 IBM Corporation2
ご注意
この資料は⽇本アイ・ビー・エム株式会社および⽇本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受けておりません。資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年12⽉現在の情報であり、製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても⼀切の補償をするものではありません。また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについてはhttp://www.ibm.com/legal/copytrade.shtmlをご覧ください。
© 2017 IBM Corporation3
このセッションでの対象IBM Cloudの標準ランタイムであるCloud Foundryをメインにお話しします
q ビジネス要件にあわせたコンピューティング環境を提供しますq ⽤途に合わせて様々なコンピューティング環境を⾃由に選択し、アプリ開発を⾏えます
Ø パフォーマンスの最⼤化Ø コントロール⾃由度の保持
Ø 既存の資産やツールの活⽤ Ø Linuxコンテナーの活⽤Ø Kubernetesのサポート
Ø Cloud Foundryを活⽤したPaaS基盤を提供
Ø Apache OpenWhiskをベースとしたオープンな実装のサーバーレス環境を提供
ベアメタル 仮想サーバー コンテナー CFランタイム サーバーレス
IBM Cloud Infrastructureの範囲 IBM Cloud Platformの範囲
パフォーマンス & コントロール 開発スピード&スケーラビリティーポータビリティー
© 2017 IBM Corporation4
⽬次1.IBM Cloudでのアプリケーション開発2.Continuous Deliveryサービス
© 2017 IBM Corporation5
1. IBM Cloudでのアプリケーション開発
© 2015 IBM Corporation6
© 2016 IBM Corporation6
継続的デリバリー:コア価値を迅速に提供し随時改善
設計 テスト 移⾏構築要件定義
リリース
リリース
運⽤(保守)設計 テスト構築要件
定義
継続的でない (従来型の)ソフトウェア・デリバリー
フィードバック フィードバック
フィードバック
リリース
リリース リリース リリース リリース リリース リリース リリース リリース リリース
サイクル2
サイクル1
サイクル3
サイクル4
サイクル5
サイクル6
サイクル7
サイクル8
サイクル9
サイクル10
フィードバック
取り込み 取り込み 取り込み
取り込み
継続的なソフトウェア・デリバリー
取り込み
新しいアイデア
初期のアイデア
フィードバック
陳腐化していて価値が低い市場での価値が⾼い
市場での価値が⾼い陳腐化していて価値が低い
© 2015 IBM Corporation7
© 2016 IBM Corporation7
IBM Cloudでの開発では何を使う?
チーム開発のための環境を⽤意・整備したい
統合開発環境(IDE)など使い慣れたものを使いたい
Aさん
Atom, Eclipse, Xcode, Visual Studio, …
Bさんたち
デプロイメント
ソース管理
トラッキング&プランニング
コラボレーション
モニタリング
アラート通知
など …
テスト
© 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
© 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で利⽤する標準的なコマンドライン・インターフェース
© 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専⽤のコマンドライン・インターフェース
© 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
© 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
© 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
© 2017 IBM Corporation14
2. Continuous Deliveryサービス
© 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
© 2017 IBM Corporation16
開発に必要なツールをツールチェーンとして容易に構成
開発に必要なツール群を簡単にセットアップできます①利⽤に基づき適切なテンプレートを選択
② 何が構成されるか確認し、ツールチェーンを作成 ③ Buemixコンソール画⾯上でポータル画⾯が表⽰
④ 開発のシーンに合わせて適切なタイルを選択して作業
© 2017 IBM Corporation17
標準的なツールチェーンの構成
IBM CloudGit Repo and Issue Tracking
Eclipse OrionWeb IDE
DeliveryPipeline
Web IDEで作業中のコードを⼿動デプロイ
⾃動デプロイローカル環境で開発
Web上で開発
② ソース管理を活⽤してチームの開発成果物を効率よく共有する
ビルド、リリース、テストを継続的に⾏いスピードと品質を両⽴する
ローカル環境にクローンすることなく、WEB上で開発が可能
© 2017 IBM Corporation18
Git Repos and Issue Trackingソースコード管理およびIssue管理が⾏えるGitLab環境を提供します
Issue管理
プロジェクト/Gitリポジトリー
© 2017 IBM Corporation19
Eclipse Orion Web IDE (1/2)Webブラウザー上の統合開発環境(IDE)を提供します
コードエディターによるコードの編集
ファイル・ツリーでソース・リポジトリー内のディレクトリーやファイルを表⽰
Run Bar(デプロイや起動/停⽌)
ライブ編集(静的ファイルの動的更新の⾃動化)
© 2017 IBM Corporation20
Eclipse Orion Web IDE (2/2)Gitビューに切り替えることで、Gitリポジトリーの操作(プッシュ等)が⾏えます
コミット・メッセージの⼊⼒
変更差分の確認コミット履歴の表⽰
© 2017 IBM Corporation21
Delivery Pipelineリポジトリーにあるコードのビルドからデプロイまでを⾃動化するパイプラインを構成できます
①
③
②
① ステージ(Stage)ジョブ・フローの管理単位パイプラインに複数追加可能
② ジョブ(job)各ステージの処理単位以下3種類から選択
・ビルド・テスト・デプロイ
② 最新実⾏の結果デプロイ先ランタイムの状況や対象ビルド番号を確認
© 2017 IBM Corporation22
ツールの追加は画⾯から容易に実施
ツール固有の設定は必須だが、標準的なツールであれば追加も容易に⾏えます
①「ツールの追加」をクリック
② 追加したいツールを選択
③ ツール固有の設定を追加
④ ツールが追加!!
© 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のハンズオンを進めていきましょう!!
© 2017 IBM Corporation24
© 2015 IBM Corporation25
© 2016 IBM Corporation25
補⾜. IBM Cloudでのデバッグ⽀援機能
© 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)
© 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/
© 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