Slide 1

Slide 1 text

IBM Dojo OpenShift(Minishift) 101 Kyoko Nishito Developer Advocate Tokyo City Team

Slide 2

Slide 2 text

Kyoko Nishito IBM Developer Advocate 2 KyokoNishito

Slide 3

Slide 3 text

Developer Advocate

Slide 4

Slide 4 text

TECHNOLOGISTS RULE THE WORLD 技術者が世の中を変えていくお⼿伝いをします︕ ・技術情報を提供します ・開発者と話をします ・開発者にとって何が⼀番良いかを考えます ・開発者の困ったを⼀緒に解決します ・開発者をヒーローにします

Slide 5

Slide 5 text

OUR ACTIVITIES こんな活動をしながら技術者のみなさまをサポートします︕ ・オンラインでの情報発信(Blog、SNS、Podcastなど) ・オフラインでの情報発信(書籍、雑誌など) ・セミナー、勉強会などでの登壇 ・コミュニティ、Meetupなどのリード ・ハンズオンワークショップなどでの講師 ・ハッカソン、ラボ、Dojoなどでのテックサポート

Slide 6

Slide 6 text

DEVELOPER ADVOCATE in TOKYO Tokyo Team is a part of Worldwide Developer Advocate Teams! Developer Advocate City Leader AKIRA ONISHI WW Developer Advocate KYOKO NISHITO WW Developer Advocate TAIJI HAGINO WW Developer Advocate AYA TOKURA Program Manager TOSHIO YAMASHITA WW Developer Advocate NORIKO KATO Client Developer Advocate YASUSHI OSONOI Digital Developer Advocate JUNKI SAGAWA

Slide 7

Slide 7 text

Yes, we are DeveloperAdvocate

Slide 8

Slide 8 text

本⽇のタイムテーブル 14:00-14:10 (5min) オープニング 資料ダウンロード、出席登録 ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⻄⼾ 京⼦ 14:10-14:40 (30min) MiniShift準備 ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼩薗井 康志 14:40-15:30 (50min) What is Docker/Kubernetes/OpenShift ? ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⻄⼾ 京⼦ 15:30-17:00 (90min) MiniShit101<ワークショップ> ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⻄⼾ 京⼦ /⼩薗井 康志

Slide 9

Slide 9 text

本⽇の資料 本⽇の資料はこちらからPCにダウンロードお願いし ます。URLをクリックしたり、コマンドをコピペしたりでき ますので、サイトでみるのではなく、ダウンロードをお勧めし ます。 http://ibm.biz/dojo20191206doc

Slide 10

Slide 10 text

出席登録 こちらのURLにアクセスして、IBM Cloudにログイン お願いします。 アカウント未登録の⽅もこちらから登録お願いしま す。 https://ibm.biz/Bdz97Q

Slide 11

Slide 11 text

学習の⽬的とゴール ⽬的 Docker/Kubernetes/Openshift概要について理解する ゴール Minishiftを利⽤したアプリケーションを動かせるように なる

Slide 12

Slide 12 text

本⽇の説明順序 0. Minishift準備 1. What is Containers (コンテナ)? 2. What is Kubernetes? 3. What is OpenShift? 4. KubernetesとOpenShiftの違い 5. ワークショップ: Minishift101

Slide 13

Slide 13 text

0. Minishift準備 https://www.okd.io/minishift/ より MiniShiftは導⼊に⻑い待ち時間があるため、何はともあれ先に準備します︕︕︕

Slide 14

Slide 14 text

0-1. Minishift とは • OpenShiftは、Kubernetesに、Red Hat社独⾃の拡張を加え、さらに、 Red Hatのソフトウェア保守とウェブや電話での問い合わせ対応サービ スを提供する企業向けKubernetesのプラットフォーム • OpenShiftは、Red Hat社が提供する有償サービス(サブスクリプショ ン )のもとで利⽤できるソフトウェア • OpenShiftの学習やローカルの開発環境⽤に無償で提供されるのが、 Minishift (OpenShift 3.11に相当) 「MiniShiftに関する疑問の整理、「 Dockerから⼊るKubernetes」執筆打明け話とか、OKDやCRCとの整理など」 https://qiita.com/MahoTakara/items/3c1c208640518e832660 より抜粋

Slide 15

Slide 15 text

0-2. Minishift セットアップ • Windows • http://ibm.biz/minishift101jp-win 「Minishift の実⾏」まで実施お願いします • Mac • http://ibm.biz/minishift101jp-setup • 「仮想化環境を構成する」はリンク先が英語ですが、 以下に⽇本語訳があります • Mac: https:ibm.biz/Bdz39E

Slide 16

Slide 16 text

1. What is Containers (コンテナ)? https://developer.ibm.com/jp/new-builders/containerization/

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

What is Container (コンテナ)? https://youtu.be/1PPPUPcUkSs

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

コンテナーのポータビリティ nコンテナーのポータビリティ •アプリケーション稼働に必要な依存ファイルを パッケージングできる •物理サーバーに固定されない → 同じアーキテクチャの環境であれば ポータビリティが存在する システム基盤 (クラウド) ホストOS システム基盤 (オンプレミス) ホストOS コ ン テ ナ エ ン ジ ン App1 Bin/Lib s App2 Bin/Lib s App3 Bin/Lib s 「僕の環境では動いた」 問題が発⽣しない コ ン テ ナ エ ン ジ ン App3 Bin/Lib s

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

2. What is Kubernetes? https://developer.ibm.com/jp/new-builders/kubernetes/

Slide 27

Slide 27 text

2. What is Kubernetes? https://youtu.be/zGXYRQ-8pU0

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Kubernetesのまとめ 動画をもう⼀度⾒たい⽅はこちら: • https://developer.ibm.com/jp/new-builders/kubernetes/ ⽂章での説明もあります • コンテナーのオーケストレーション・ツール • 理想状態を宣⾔すると、その状態を維持しようとしてくれる • 3つの主要コンポーネント • Pod, Deployment, Service • PodはDeploymentによって作成され、管理されます。 Deploymentによって作成されたPodへのアクセスは、 Serviceを使⽤することで容易になります。

Slide 31

Slide 31 text

3. What is OpenShift?

Slide 32

Slide 32 text

What is OpenShift? https://youtu.be/KTN_QBuDplo

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

4. KubernetesとOpenShiftの違い

Slide 36

Slide 36 text

KubernetesとOpenShiftの違い • Deploy: • ソースコードからコンテナ作成とデプロイまでの⾃動化 • Manage: • Webコンソールとコマンドラインの両⽅から操作可能。 • 実⾏状態のメトリックス監視とログ分析も提供 • 運⽤: • Ansible Playbookを使ってオートスケーリングが可能 • Security: • Project単位で簡単に管理可能 動画はこちら: • https://youtu.be/cTPFwXsM2po • 英語のみ

Slide 37

Slide 37 text

Kubernetes and OpenShift: What's the Difference? https://youtu.be/cTPFwXsM2po

Slide 38

Slide 38 text

5. Minishift101 ワークショップ https://www.okd.io/minishift/ より

Slide 39

Slide 39 text

5. Minishift101 ワークショップ 5-1. IBM CloudでOpenShiftを使う 5-2. Minishiftセットアップ確認 5-3. Minishift ワークショップ

Slide 40

Slide 40 text

5-1. IBM CloudでOpenShiftを使う 1. まずはIBMにクラウドにログイン 本⽇は https://ibm.biz/Bdz97Q にアクセスして 右上の「ログイン」から ログインしてください 通常は https://cloud.ibm.com/ からログイン可能です

Slide 41

Slide 41 text

5-1. IBM CloudでOpenShiftを使う 2. ダッシュボードから「カタログ」をクリック

Slide 42

Slide 42 text

5-1. IBM CloudでOpenShiftを使う 3. フィルターからライトをXをクリックして削除 __ ↑Xをクリックして ライトを削除

Slide 43

Slide 43 text

5-1. IBM CloudでOpenShiftを使う 4. 左側のカテゴリーから「コンテナ」をクリック、 「Red Hat OpenShift Cluster」をクリック

Slide 44

Slide 44 text

5-1. IBM CloudでOpenShiftを使う 5. Red Hat OpenShift Cluster作成画⾯が表⽰されます。 ただしライトアカウントでは作成できないため、ライトアカウントの場合 は「アップグレード」ボタンが表⽰されます。

Slide 45

Slide 45 text

5-1. IBM CloudでOpenShiftを使う 6. 「 Red Hat OpenShift Cluster 」を作成します。動画で⾒てみましょう: https://youtu.be/UJ2frartWFk

Slide 46

Slide 46 text

5-1. IBM CloudでOpenShiftを使う 補⾜情報: 3分でわかるIBM Cloudシリーズ(動画) • OpenShiftクラスターに対してocコマンドでアクセスする • OpenShiftクラスターにHelloWorldアプリをデプロイしてみよう IBM Demos (デモ動画サイト、英語): • Red Hat OpenShift on IBM Cloud

Slide 47

Slide 47 text

5-2. Minishift セットアップ確認 • Windows • http://ibm.biz/minishift101jp-win 「Minishift の実⾏」まで実施お願いします • Mac • http://ibm.biz/minishift101jp-setup • 「仮想化環境を構成する」はリンク先が英語ですが、 以下に⽇本語訳があります • Mac: https:ibm.biz/Bdz39E (0­2と同じです)

Slide 48

Slide 48 text

5-3. Minishift ワークショップ IBM Watson Visual Recognitionを使った node.jsの画像認識Webアプリ https://github.com/kyokonishito/watson-vr-node をMinishiftで実⾏する 【ワークショップ完了後のアプリ画面イメージ】

Slide 49

Slide 49 text

Watson APIサービス⼀覧 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 50

Slide 50 text

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

Slide 51

Slide 51 text

0. Visual Recognitionサービスの作成 以下を参考に、 Visual Recognitionサービスを作成してください。 https://github.com/kyokonishito/watson-vr-node#2-visual-recognition- %E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E4%BD%9C%E6%88%90

Slide 52

Slide 52 text

1. Visual Recognitionサービス ibm-credentials.env のダウンロード 1.1: IBM Cloudにログインし、 Visual Recognitionサービスの管理画⾯を表⽰します。 ⼿順が不明の⽅は、下記を参照してください: https://qiita.com/nishikyon/items/9b8f697db7ad0a693839#2- %E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E8%B3%87%E6%A0%BC% E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97

Slide 53

Slide 53 text

1.2: ibm-credentials.env のダウンロード 資格情報の「ダウンロード」を クリックし、⾃分のPCに ibm-credentials.env という ファイルを保存します。 あとでコマンドラインからこの ファイルを指定しますので、 ocコマンドを実⾏する予定の 任意のフォルダに保存します。 ※コマンド操作に慣れてない⽅は、 デスクトップ以外の場所を推奨します。

Slide 54

Slide 54 text

1.2: ibm-credentials.env の編集 ①ibm-credentials.envをエディタで開きます。 4⾏分全てコピーして、5⾏⽬以降に貼り付けます。 編集前 編集後

Slide 55

Slide 55 text

1.2: ibm-credentials.env の編集 ②コピーした5⾏⽬以降の VISUAL_RECOGNITION を WATSON_VISION_COMBINED に置き換えます (v5 SDKのバグ(?)対応なので将来的に不要になるかもしれません) 編集後 置き換え後保存してエディタを閉じてください。 どこに保存したのかPATHがわかるようにしてください。

Slide 56

Slide 56 text

このあとは、ほぼほぼコマンド操作です︕ ターミナル(Mac) または PowerShell(Windows) を開きます。

Slide 57

Slide 57 text

2. Minishift アプリ作成 2.1. クラスターにログインします $ oc login -u system:admin minishift startを実⾏した後、下記のコマンドでクラスターにログイン します。 2.2. プロジェクトを作成する $ oc new-project watson-vr --display-name="watson-vr" -- description="Sample Watson Visual Recognition Node.js app" 下記コマンドで、新しいアプリケーション⽤に新しいプロジェクトを 作成します。 (コマンドは1⾏です)

Slide 58

Slide 58 text

2.3. アプリケーションの作成 $ oc new-app https://github.com/kyokonishito/watson-vr-node.git -- build-env-file= --build-env CLASSIFIER_ID=food githubのソースコードから、下記のコマンドでアプリケーションを作成 します。 • 1.2でダウンロードしたibm-credentials.envをPATHも含めて、 下記に指定します。 (コマンドは1⾏です) $ oc new-app https://github.com/kyokonishito/watson-vr-node.git -- build-env-file=./ibm-credentials.env --build-env CLASSIFIER_ID=food 例

Slide 59

Slide 59 text

2.4. ビルドログを表⽰します $ oc logs -f bc/watson-vr-node 下記のコマンドでビルドログを表⽰し、「 Push successful 」で終わる まで待ちます。 2.5. ポートを公開します $ oc expose dc watson-vr-node --port=3000 --type=LoadBalancer -- name=watson-vr-node-ingress 下記コマンドを実⾏します。(コマンドは1⾏です)

Slide 60

Slide 60 text

2.6. 作成されたNodePortを確認します $ oc get --export svc watson-vr-node-ingress 2.7. アクセス可能なクラスターIPアドレスを確認します NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE watson-vr-node-ingress LoadBalancer 172.29.77.196 3000:31202/TCP 下記コマンドを実⾏します。(コマンドは1⾏です) 下記コマンドを実⾏します。(コマンドは1⾏です) $ oc get node -o wide 出⼒: 下記の場合、マッピングされた外部ポートは31202 NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME localhost Ready 26m v1.11.0+d4cacc0 192.168.64.19 CentOS Linux 7 (Core) 3.10.0-957.5.1.el7.x86_64 docker://1.13.1 出⼒: 下記の場合、アクセス可能なクラスターIPアドレスは192.168.64.19

Slide 61

Slide 61 text

2.8. ブラウザーでアプリケーションにアクセスします 2.6で取得したポート: 31202 2.7で取得したIPアドレス: 192.168.64.19 の 場合は http://192.168.64.19:31202/ にアクセスします。 (ご⾃分の値をお使いください) アプリケーションは表⽰できましたか? ボタンを押して動作確認してみましょう!

Slide 62

Slide 62 text

5-4 追加ハンズオン • Node-RED on Minishift https://github.com/yamachan/node-red-workshop- starter/blob/japanese-readme/README-ja.md • RedHat Japanのハンズオントレーニング ⽇本語訳 複数コンテナの連携: https://github.com/osonoi/minishift/tree/master/lab1 様々なデプロイメント⼿法: https://github.com/osonoi/minishift/tree/master/lab2

Slide 63

Slide 63 text

5-5. 補⾜ • Minishiftの停⽌コマンド $ minishift stop • Minishiftの起動、初期メモリ・ディスクの制限 $ minishift start --memory 2G --disk-size 10G --vm-driver • Minishift VM削除(VM再作成したい場合などに、、、) $ minishift delete • Minishift101 コマンドラインで作成したProjectをWebコン ソールで表⽰(developerでログイン) $ oc policy add-role-to-user admin developer

Slide 64

Slide 64 text

IBM Code Patterns https://ibm.biz/ibmcodejp 解説 + デモ動画 + ソースコードが揃ったアプリ開発パターン集

Slide 65

Slide 65 text

開発者向けサイト IBM Developer ibm.biz/IBMDevJP 最新情報やスキルアップに役⽴つ6,000を超える技術記事を提供

Slide 66

Slide 66 text

66 twitter.com/KyokoNishito developer.ibm.com/jp/patterns/ IBM Watson Thank you

Slide 67

Slide 67 text

No content