Slide 1

Slide 1 text

IBM Extra Dojo #3 OpenShift入門~Watsonを使ったWebアプリを試そう~ Developer Advocate Yasushi Osonoi

Slide 2

Slide 2 text

出席の確認にこちらからログインしてください。 IBM Cloud へのアクセスは上記URLから行ってください https://ibm.biz/BdqvrE • IBM Cloud ログイン アカウントをすでにお持ちの方は、 こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】

Slide 3

Slide 3 text

質問&ライブ投票参加 はこちら slido.com #dojo615 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! 絵⽂字は表⽰されません スマホでアクセスして ぜひ参加お願いします︕ https://app.sli.do/event/ue7xq8gk

Slide 4

Slide 4 text

1. IBM Cloud ライトアカウントの登録 https://ibm.biz/BdqvrE まだの場合はこちらから登録をお願いします。 2. IBM DEMOサイトへのログイン https://www.ibm.com/demos/ (IBM Cloudのアカウントでログインできます) 事前準備の確認(ハンズオンを試す場合)

Slide 5

Slide 5 text

https://www.ibm.com/demos/ 無料でいつでも使えるOpenShift環境(ただし4時間限定) https://cloud.ibm.com/ 無料のライトアカウント API Node.jsアプリ on OpenShift

Slide 6

Slide 6 text

新しい取り組み“バッジ取得プログラム”のご案内 IBM Cloud & AI develop Basic Online Developer Dojo ” IBM Cloud & AI develop Basic Online Developer badge“について - 2020年6⽉1⽇より開始のIBM Developer Dojo 12回シリーズと同様の内容のIBM Developer Dojoのクラスが対象 https://www.ibm.com/jp-ja/partnerworld/events/developer-dojo - スキルアップのため全クラスの受講をお奨めします。 - 12回のクラスのうちPAYGアカウントまたはサブスクリプションが必要としない8つのクラスの課題を実施 - 8クラスのうち5クラスの課題について指定された結果を⾃分のアカウントが⾒えるようにスクリーンショットを撮影 - 5クラス分の課題のスクリーンショットをPDFにして以下の宛先に送付 - 提出した課題が承認されるとAcclaimからバッジが発⾏されます。 ※バッジ発⾏のためにこれ以外の処理が発⽣する場合、別途ご連絡させていただきます 2020年6⽉1⽇ お問い合わせは、Online Developer Dojo バッジ事務局 (ビジネス・パートナープログラム ヘルプデスク [email protected]

Slide 7

Slide 7 text

本⽇のタイムテーブル 14:00-14:05 (5min) オープニング 資料ダウンロード,出席登録など 14:05-15:00 (55min) コンテナ、OpenShift概要説明 ハンズオン説明 15:00-15:15 (15min) Q&A Q

Slide 8

Slide 8 text

1. コンテナとは? https://developer.ibm.com/jp/new-builders/containerization/

Slide 9

Slide 9 text

コンテナ以前の様⼦ コンテナ⾰命以前の港湾荷役 http://military.wikia.com/wiki/Battle_of_Pusan_Perimeter_logistics ⼤勢の作業員 倉庫に⼀時保管 物流の最⼤の ボトルネック

Slide 10

Slide 10 text

https://www.jsanet.or.jp/seminar/text/seminar_177.html 物流コンテナによる⾰命 コンテナの発明者は、全⽶有数のトラック 運送会社のオーナーとなったマルコム・ マクリーン(Malcom P. McLean) 国際貨物輸送の分野に 海陸⼀貫輸送という⼤変⾰ 1970年代には世界の主要航路のコンテナ 化がほぼ完了した。わずか10年程度でこれ ほど急激な形態の変化が起こったのは海運 史上でも他に例がない。 https://en.wikipedia.org/wiki/Malcom_McLean

Slide 11

Slide 11 text

港湾荷役のボトルネックを解消 物流コストの削減とスピードアップ コンテナ⾰命は業務改⾰ 陸海⼀貫輸送 海上輸送 陸送(トラック) 陸送(鉄道) 港湾荷役 港湾荷役 コンテナ船

Slide 12

Slide 12 text

いま、IT業界の コンテナ⾰命が 始まる

Slide 13

Slide 13 text

「仮想マシン(VM)」と「コンテナ」 コンテナは仮想マシン(VM)に⽐べてリソース効率がよい スケールアウトが簡単

Slide 14

Slide 14 text

コンテナを使った開発の流れ Dockerfileなど Docker イメージなど コンテナー レジストリ マニフェストで コンテナ⾃体の 詳細を記述 開発者 コンテナー イメージ作成 イメージの 登録 開発者 アプリ実⾏ アプリ開発 3段階のプロセス

Slide 15

Slide 15 text

コンテナのまとめ • 仮想マシン(VM)に⽐べてリソース効率がよい • ボータビリティーが⾼い • スケールアウトが容易 • 3段階のプロセスをコンテナのpushに使⽤することで、より アジャイルなDevOpsと継続的インテグレーションおよびデ リバリーが可能になる 動画を⾒たい⽅はこちら: • https://developer.ibm.com/jp/new-builders/containerization/ ⽂章での説明もあります

Slide 16

Slide 16 text

2. OpenShift(Kubernetes)とは https://developer.ibm.com/jp/new-builders/kubernetes/

Slide 17

Slide 17 text

Kubernetesとは 17 コンテナーの運⽤実⾏と管理を⾏うオーケストレーションツール • コンテナーが⼤量になってくると管理しきれない部分をカバー • 複数のDockerホストの管理 • 死活監視 • スケジューリング • スケーリング • 障害時のリカバリー • アプリ実⾏に必要なインフラリソースを管理 • 永続的なストレージ • ネットワーク • クレデンシャル情報 etc… • 宣⾔的設定モデル • 「あるべき状態」を記述すると、それを実現し続けようとしてくれる • 障害時も⾃動で復旧作業を実施

Slide 18

Slide 18 text

Kubernetesの代表的な機能 スケールアウト 負荷分散 バージョン管理 (ロールアウト) ネットワーク管理 永続ストレージ管理 死活監視 ⾃⼰復旧 CPU / Memory リソース管理

Slide 19

Slide 19 text

Kubernetesで覚えておきたい概念 Pod Kubernetes における最⼩の管理単位 - Podの中には 1つ以上 の コンテナが含まれる - Pod単位でスケールイン・スケールアウトする - PodごとにIPアドレスがアサインされる Pod IP 10.1.206.34 10.1.206.128

Slide 20

Slide 20 text

Kubernetesで覚えておきたい概念 Deployment Podを管理するための定義 - Podのアップデート、履歴 - Podの必要稼働数を定義(ReplicaSet) - K8Sの Scheduler がどのノードにアサイン するかは考慮してくれる Pod IP 10.1.206.34 10.1.206.110 ノード ノード ReplicaSet - 必要数2 - 現⾏ 2

Slide 21

Slide 21 text

Kubernetesで覚えておきたい概念 Service Kubernetes外から TCP/IPでアク セスするための定義 - K8Sクラスタ内で⼀意となるポートがアサイン される - K8Sクラスタのどのノードからアクセスしても - 当該サービスにルーティングされる Pod IP 10.1.206.34 10.1.206.110 ノード ノード 30010 30010

Slide 22

Slide 22 text

コンテナーのオーケストレーション・ツール 理想状態を宣⾔すると、その状態を維持しようとする 3つの主要コンポーネント Pod Deployment Service Kubernetesのまとめ PodはDeploymentによって作成され、管理されます。 Deploymentによって作成されたPodへのアクセスは、 Serviceを使⽤することで容易になります。

Slide 23

Slide 23 text

© 2019 IBM Corporation OpenShiftは、Kubernetesとの互換性を維持しながら、CICD機能を強化、開発者 に代わって、ビルド、リポジトリ登録、デプロイを自動実行します。 OPENSHIFT 機能拡張 OpenShift CICD利⽤ アプリケーション (コンテナ) Kubernetes アプリケーション (コンテナ) Ubuntu / CentOS… Linux Kubernetes アプリケーション (コンテナ) コンテナ ランタイム Linux OS コンテナ オーケストレーション Kubernetesの標準機能 で構築したアプリケーション どちらでも 動作可能 RHEL / RHCOS コンテナ ランタイム OpenShiftとは

Slide 24

Slide 24 text

Projects vs. Products Production-Grade Open Source Project quarterly minor releases, no Long Term Support community support platform certification: (AKS, EKS, GKE, IKS) core framework / limited security platform or user responsible to integrate beyond core Production-Grade Open Source based Product quarterly releases, support for major release 3+ years enterprise support ecosystem certification: platform and app containers k8s core plus abstractions / dashboard / security opinions and integration of common features

Slide 25

Slide 25 text

© 2019 IBM Corporation お時間あったら後で見てください https://www.youtube.com/watch?v=qdwyPEHaUn8

Slide 26

Slide 26 text

Red Hat OpenShift on IBM Cloud IBM Cloud™上のRedHat®OpenShift®は、高度にスケーラブルで信頼性の高いIBM Cloudプラットフォームで完全に管理されたOpenShiftクラスターを提供する包括的な サービスです。 The WeatherCompany®で毎日2,500億のオンデマンド予測を維持す るKubernetesサービスに直接統合されています。

Slide 27

Slide 27 text

質問&ライブ投票参加 はこちら slido.com #dojo615 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! 絵⽂字は表⽰されません スマホでアクセスして ぜひ参加お願いします︕ https://app.sli.do/event/ue7xq8gk

Slide 28

Slide 28 text

ハンズオンワークショップ 3 OpenShift ワークショップ

Slide 29

Slide 29 text

K8s Deploy Dockerhub等 Build docker レジストリ Dockerfile ソースコード (Java, js, Py..etc) Catalog template (JSON/YAML) s2i Build lOpenShiftへの⼊⼒は様々なパターンがあります OpenShiftへの様々な⼊⼒のパターン Github等 file clipboard (folder) 【Dockerfile,ソース,Templateの置き場所】 公開されているイメージをそのまま取り込む ⾃作イメージを取り込む (OpenShift上でBuild) 既存イメージにソースを注⼊ 直接実⾏ カタログに登録 DevOps Pipeline アプリやミドルウエアといった直接的なソースではなく、 アプリやミドルウエアをOpenShift上どう動かすか、と いう構成/定義類を雛型として記述したものです

Slide 30

Slide 30 text

今回はGithub上にあるコードからアプリをOpenShift上にDeployします。① このアプリはIBM Cloud のWatson Visual Recognition(画像認識)を利⽤しています。② K8s Deploy Dockerhub等 Build docker レジストリ Dockerfile ソースコード (Node.js) Catalog template (JSON/YAML) S2I Build (OpenShift上でBuild) DevOps Pipeline アプリやミドルウエアといった直接的なソー スではなく、アプリやミドルウエアを OpenShift上どう動かすか、という構成/定義 類を雛型として記述したものです 今回のハンズオンで⾏うこと Github等 Visual Recognition (画像認識) API ① ②

Slide 31

Slide 31 text

3. OpenShift ワークショップ IBM Watson Visual Recognitionを使った node.jsの画像認識Webアプリ をOpenShift on IBM Cloudで実⾏する 【ワークショップ完了後のアプリ画⾯イメージ】 https://github.com/kyokonishito/watson- vr-node ソースはこちら︓

Slide 32

Slide 32 text

今回使⽤するIBM Watson API – Visual Recognition 2019年3⽉現在 Watson Assistant アプリケーションに⾃然⾔語インターフェースを追加して エンドユーザとのやり取りを⾃動化 Text to Speech テキスト⽂章を⾳声に変換する Speech to Text ⾳声をテキスト⽂章に変換する Visual Recognition 画像コンテンツに含まれる意味を検出する Discovery 先進的な洞察エンジンを利⽤して、デー タの隠れた価値を解明し、回答やトレン ドを発⾒する Discovery News Discovery上に実装され、エンリッチ情報 も付加されたニュースに関する公開デー タセット Personality Insights テキストから筆者の性格を推定する Language Translator テキストを他⾔語へ翻訳を⾏う Natural Language Understanding ⾃然⾔語処理を通じてキーワード抽出、エン ティティー抽出、概念タグ付け、関係抽出な どを⾏う Natural Language Classifier テキスト⽂章の分類を⾏う(質問の意図推定など) Tone Analyzer(⽇本語未対応) テキストから筆者の感情、社交性、⽂体を解析 Knowledge Studio コーディングなしに、業務知識から⽣成した 機械学習モデルで、⾮構造テキストデータか ら洞察を取得(学習⽀援ツール) ⼼理系 ⾔語系 照会応答系 知識探索系 ⾳声系 画像系 https://www.ibm.com/watson/jp-ja/developercloud/services-catalog.html

Slide 33

Slide 33 text

Watson Visual Recognition (画像認識) 画像認識「⼀般種別」(General Tagging): • 事前学習済みの分類器の出⼒を返す 画像認識「カスタム」: • 識別を⾏いたいクラスのイメージを事前学習させ、 その分類器の出⼒を返す 事前学習 不要 事前学習 必要 https://www.ibm.com/watson/jp-ja/developercloud/visual-recognition.html 画像に写った物体・情景など様々なものを分析・認識するAIサービス

Slide 34

Slide 34 text

操作の流れ 1. デモサイトの準備 2. Visual Recognitionサービスの作成 3. OpenShiftアプリの作成

Slide 35

Slide 35 text

1.デモサイトの準備 https://www.ibm.com/demos/

Slide 36

Slide 36 text

ログイン後下にスクロールして“Red Hat OpenShift on IBM Cloud”を選択

Slide 37

Slide 37 text

IBM CloudのIDでsign inログインしてください

Slide 38

Slide 38 text

Hands on Labs for RedHat OpenShift on IBM Cloudを選択

Slide 39

Slide 39 text

Launch Labを選択

Slide 40

Slide 40 text

右側のコマンド画⾯でOpenShiftの操作ができま す。

Slide 41

Slide 41 text

OpenShiftへのログイン:下にスクロールし て”Launch the OpenShift web console”をクリック

Slide 42

Slide 42 text

右上の”Copy Login Command”をクリック

Slide 43

Slide 43 text

ログインコマンドをコピー

Slide 44

Slide 44 text

先ほどの画⾯でコマンドを貼り付け

Slide 45

Slide 45 text

2. Visual Recognitionサービスの作成 Visual Recognitionを新規に作成する⽅は次のページに進んでください。 既に以前に作成済みの⽅は、作成済みのものが使⽤できます。 作成済みの⽅は以下の⼿順を参照しVisual Recognitionの管理の画⾯を表⽰後、 http://ibm.biz/watson-service-screen 当資料「4. Visual Recognitionサービスibm-credentials.env のダウンロード」まで進んでく ださい。 ブラウザー上で、新しいタブを開きます。 https://cloud.ibm.com/ にアクセスして、ダッシュボードを開きます。 XXXXXXX – IBM ではなく⾃分のアカウントになっていることを確認し、異なっ ている場合はクリックして変更します

Slide 46

Slide 46 text

2.1 上部のメニューにある「カタログ」をクリックします 次に左側のメニューから“サービス”を選択してください。

Slide 47

Slide 47 text

2.2 Visual Recognitionサービスの選択 1. 左側のメニューから「AI」をクリック 2. 下にスクロールして表⽰された「Visual Recognition」をクリック

Slide 48

Slide 48 text

地域の選択は「ダラス」、価格プランに「ライト」が選択されていることを確認して、 「作成」をクリック 2.3 Visual Recognitionサービスを作成する

Slide 49

Slide 49 text

2.4 Visual Recognitionサービスを作成確認、管理画⾯の表⽰ 下の画⾯が出たら、作成完了です。 左のメニューから「管理」をクリックして次に進んでください。

Slide 50

Slide 50 text

2.5. Visual Recognitionサービス API鍵をコピー(クリップボードに)してください。

Slide 51

Slide 51 text

3.1. プロジェクトを作成する oc new-project watson-vr --display-name="watson-vr" -- description="Sample Watson Visual Recognition Node.js app" ターミナルに下記コマンドを⼊⼒し、新しいアプリケーション⽤に新しい プロジェクトを作成します。 3. Openshift アプリの作成 出⼒例: コマンドは以下からコピペできます。 (https://bit.ly/oc0615IBM)

Slide 52

Slide 52 text

3.2. アプリケーションの作成 ターミナルに下記のコマンドを⼊⼒し、 githubのソースコードから、アプ リケーションを作成します。 oc new-app https://github.com/kyokonishito/watson-vr-node.git -e CLASSIFIER_ID=food -e WATSON_VISION_COMBINED_APIKEY= に先ほどコピーしたAPI鍵を入れてください。<>は削除 してください

Slide 53

Slide 53 text

3.2. アプリケーションの作成 出⼒例:

Slide 54

Slide 54 text

3.3 ビルドログを表⽰します oc logs -f bc/watson-vr-node ターミナルに下記のコマンドを⼊⼒しビルドログを表⽰し、 「 Push successful 」で終わるまで待ちます。 3.4 ロードバランサーのサービスを作成します oc expose dc watson-vr-node --port=3000 --type=LoadBalancer -- name=watson-vr-node-ingress ターミナルに下記のコマンドを⼊⼒し実⾏します。 (コマンドは1⾏です。コマンドは以下からコピペできます。 (https://bit.ly/occommand0615)

Slide 55

Slide 55 text

3.5. ロードバランサーのサービスを公開します oc expose service watson-vr-node-ingress ターミナルに下記のコマンドを⼊⼒し実⾏します。 これで完了です!ターミナルに下記のコマンドを⼊⼒し実⾏し、その結果を 参照して、OpenShift で実⾏されているアプリケーションにアクセスでき ます。 oc get route/watson-vr-node-ingress NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD watson-vr-node-ingress watson-vr-node-ingress-watson-vr.openshifttokyo17-0e3e0ef4c9c6d831e8aa6fe01f33bfc4-0002.jp- tok.containers.appdomain.cloud watson-vr-node-ingress 3000 None 以下のような出⼒があった場合は、 watson-vr-node-ingress-watson-vr.openshifttokyo17-0e3e0ef4c9c6d831e8aa6fe01f33bfc4-0002.jp- tok.containers.appdomain.cloud にブラウザでアクセスします。

Slide 56

Slide 56 text

3.6 ブラウザーでアプリケーションにアクセスします アプリケーションは表⽰できましたか? ボタンを押して動作確認してみましょう! 「ファイルの選択」から写真を選んだ後、各⻘ボタンを クリックして、Visual Recognitionの結果を確認します。 • Watsonで認識(Watson学習済みモデルを利⽤): • Watsonが写真を認識した内容を表⽰します。 • Watsonで認識(カスタムモデルを利⽤): • IBM提供の⾷品に特化したカスタムモデルFoodで認識し たクラスを表⽰します。 ※スマートフォンでの確認 ⼀番下にQRコードが表⽰されているので、それをスマートフォ ンのカメラで読んでアプリケーションのURLにアクセすると、ス マートフォンでも結果を確認できます。 スマートフォンでは「ファイルの選択」ボタンでその場で撮った 写真も認識可能です。

Slide 57

Slide 57 text

[オプション] ブラウザーでOpenShift Web Consoleに アクセスして作成したアプリを確認 1/2(1.10で開いたWeb画⾯ です) ←Projectsをクリック 下にスクロールすると watson-vr プロジェクト があるので、クリックし ます。

Slide 58

Slide 58 text

[オプション] ブラウザーでOpenShift Web Consoleに アクセスして作成したアプリを確認 2/2 ↑このあたりをクリックするといろいろ情報が⾒れます 下にスクロール

Slide 59

Slide 59 text

アプリケーション⼀式の削除 oc delete all -lapp= watson-vr-node ターミナルに下記のコマンドを⼊⼒し実⾏します。 プロジェクトの削除 oc delete project watson-vr ターミナルに下記のコマンドを⼊⼒し実⾏します。 [オプション]作成したアプリ・プロジェクトの削除 作成したものを削除したい場合のみ下記のコマンドを実⾏してください

Slide 60

Slide 60 text

アカウントに関するお問い合わせなどはこちらに https://www.ibm.com/jp-ja/cloud/support 60

Slide 61

Slide 61 text

質問&ライブ投票参加 はこちら slido.com #dojo615 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! 絵⽂字は表⽰されません スマホでアクセスして ぜひ参加お願いします︕ https://app.sli.do/event/ue7xq8gk

Slide 62

Slide 62 text

#CallforCode

Slide 63

Slide 63 text

2020 Call for Code グローバル・チャレンジ 今回のテーマは「気候変動」と「COVID-19」 • IBM Cloudを活⽤したアプリ開発コンテスト • 「⼀般向け*」と「IBMer向け」に開催 4/27 (⽉) ⼀般 COVID19 早期締切 3/22 (⽇) 応募受付 開始 審査期間 8〜9⽉ 10⽉ 最優秀賞 チーム発表 6/30 (⽕) IBMer 応募受付 最終締切 7/31 (⾦) ⼀般 応募受付 最終締切 * IBM Corporationとその法⼈、それらが所有する⼦会社の51%以上および、 Red Hat Inc.とそのすべての⼦会社は「⼀般向け」Call for Code 2020には 参加できませんのでご注意ください。IBM社員は詳しくは社内w3サイトで。 #CallforCode

Slide 64

Slide 64 text

callforcode.org ⽇本語情報 https://ibm.biz/c4cjapan ⽇本語 English #CallforCode オンライン説明会 4⽉17⽇(⾦) 12:15-13:00 19:15-20:00

Slide 65

Slide 65 text

免責事項 65 IBM Dojoは、開発者の⽅を対象に、IBM Cloudを主とした技術情報をお伝えする⽬的で開催して います。講師や運営スタッフにより、開催毎に最適と判断した内容でお届けしています。 現在、ハンズオンを伴う講義はお客様の費⽤負担がない環境と⼿順でご案内しています。 講義終了後、想定外の費⽤が発⽣しないよう、不要になりました制作物はお客様ご⾃⾝で削除を お願いいたします。講師陣はみなさまの利⽤状況を確認することはできません。 ご理解とご協⼒をお願いいたします。 削除⽅法については講義内にご案内いたします。 ご不安な点がございましたら、当⽇確認をお願いいたします。 講義終了後のご請求のお問い合わせにつきましては、弊社サポートセンターまで、次のいづれか の⽅法でお問い合わせください。 IBM Cloudダッシュボードの「サポート」メニューから「Case」を作成してください IBM Cloudサポートセンター「相談する」ボタンからチャットまたは電話でご連絡ください https://www.ibm.com/jp-ja/cloud/support ご参加ありがとうございました。

Slide 66

Slide 66 text

No content