Slide 1

Slide 1 text

IBM Developer Dojo OpenShift入門~S2Iを使ったアプリのデプロイ~ Developer Advocate Yasushi Osonoi

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

本日のハンズオン内容 GitHub:下のソースファイル 参加者の皆様のGitHub Fork S2I Deploy 自動Deploy Webhook ソースコードに 変更を加える ① ② ③ 最初のアプリ画面 修正後のアプリ画面 ④ ⑤ ⑤

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 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 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 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 24

Slide 24 text

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

Slide 25

Slide 25 text

操作の流れ 1. OpenShift環境の準備 2. ソースコードのFork 3. アプリのDeploy 4. Webhookの設定 5. ソースコードの修正及びDeploy(⾃動)

Slide 26

Slide 26 text

1. OpenShift環境の準備 (ワークショップ⽤のIBM Cloud環境にご⾃⾝のIBM Cloud IDを関連付ける) 注意事項 ・ブラウザはFirefox, Chromeをご利⽤ください ・本ワークショップ⽤のIBM Cloud環境はセミナー開催時から 24時間限定でお使いいただけます ・ローカルでOpenShiftを検証する環境を構築されたい場合は、 Appendix. Minishiftをご利⽤ください

Slide 27

Slide 27 text

1.1: 下記URLにFirefoxブラウザでアクセスする https://openshiftdojo.mybluemix.net/ 1.2: [Lab Key] 、[Your IBMid]にご⾃⾝のIDを ⼊⼒し、チェックボックスにチェックを⼊れて [Submit]をクリックする Lab Keyは oslab です。 oslab

Slide 28

Slide 28 text

1.3: Congratulations! が表⽰されたら [1. Log in IBM Cloud] リンクをクリックする

Slide 29

Slide 29 text

1.5: IBM Cloudダッシュボードの右上のアカウント情報の 右横の v をクリックする 1.6:[1840867 – Advowork] をクリックする

Slide 30

Slide 30 text

1.7: IBM Cloudダッシュボードの右上のアカウント情報が 変更されたことを確認し、[リソースの要約]の [Clusters]をクリックする

Slide 31

Slide 31 text

1.8: Clustersの下のクラスター名をクリックする ※本ワークショップではこちらのクラスタを使⽤します ※クラスター名は⾃動的に割り当てられます クリック

Slide 32

Slide 32 text

1.9: [OpenShift Webコンソール]ボタンをクリックします。

Slide 33

Slide 33 text

OpenShift Webコンソールの画面です。ここで操作を行います。

Slide 34

Slide 34 text

2. ソースコードのFork GitHubにサインイン(Sign in)してください まだ登録されていない方は サインアップ(Sign up)

Slide 35

Slide 35 text

ブラウザーで https://github.com/osonoi/node-build-config-openshift を開いてください Forkをクリックしてください

Slide 36

Slide 36 text

ご自分のGit リポジトリー にソースコードが入りました。 ご自分のアカウント名に なっているはずです。 URLをクリップボードにコピーしてください

Slide 37

Slide 37 text

3.アプリのDeploy OpenShiftの画面に戻ってください

Slide 38

Slide 38 text

3.アプリのDeploy Projectを作成してください。Projectの名前は任意でつけてください。ここでは dojo ① ② ③

Slide 39

Slide 39 text

左上のメニューを AdministratorからDeveloperに変更。”From Git”をクリックしてくださ い。 ① ②

Slide 40

Slide 40 text

先ほどコピーしたGitHubのご自分のソースコードのURLをGit Repo URL に入力。下 の”Show Advanced Git Option”をクリック、”Content Dir”に/site と入力してください。 ① ② ③

Slide 41

Slide 41 text

先ほどコピーしたGitHubのご自分のソースコードのURLをGit Repo URL に入力。下 の”Show Advanced Git Option”をクリック、”Content Dir”に/site と入力してください。

Slide 42

Slide 42 text

アプリのDeployが始まります。 1分弱お待ちください。中の丸が青くなったら完成です。丸の中をクリックすると右側にメ ニューが出てくるのでRoutesの下のURLをクリックしてください。 ① ②

Slide 43

Slide 43 text

アプリは個人の医療関連のデータを管理するものです。 ID, Passwordともにtest と入れてください。

Slide 44

Slide 44 text

4. Webhookの設定 OpenShiftの画面に戻ってください

Slide 45

Slide 45 text

OpenShiftの画面に戻ってください 下にスクロールして一番右の”Copy URL with Secret”をクリックしてWebhookのURLとSecretをクリップボード にコピーしてください。

Slide 46

Slide 46 text

GitHubの画面に戻ってください。”Settings” à “Webhooks”--> “Add webhook” と洗濯してください。 ① ② ③

Slide 47

Slide 47 text

先ほどクリップボードにコピーしたURL+secretを “Payload URL”に貼り付けてください。そしてControl type を”application/json”にしてください。

Slide 48

Slide 48 text

入力すると下の様に緑のチェックマークがつきます。 これでwebhookの設定は完了です。後はソースコードの修正で自動的にアプリがDeployされます。

Slide 49

Slide 49 text

5.ソースコードの修正及びDeploy(⾃動) GitHubの画面に戻ってください。”Site”を選択

Slide 50

Slide 50 text

”public”を選択 ”index.html”を選択 ペンのアイコンで編集画面になります。

Slide 51

Slide 51 text

23行目のExample Healthを日本語に変えてみましょう OpenShiftの画面でTopologyを見るともう一度 Deployしているのがわかります。 コミットを忘れずに!

Slide 52

Slide 52 text

変更できました︕ OpenShiftの画面に戻ってください

Slide 53

Slide 53 text

6.その他のアプリ PHP https://github.com/osonoi/php-s2i-openshift

Slide 54

Slide 54 text

アプリケーションの全体像 https://github.com/IBM/example-health-jee-openshift

Slide 55

Slide 55 text

こちらも試してみてください https://github.com/osonoi/watson-vr-node-e

Slide 56

Slide 56 text

1. OpenShift環境の準備 (ワークショップ⽤のIBM Cloud環境にご⾃⾝のIBM Cloud IDを関連付ける) 注意事項 ・ブラウザはFirefox, Chromeをご利⽤ください ・本ワークショップ⽤のIBM Cloud環境はセミナー開催時から 24時間限定でお使いいただけます ・ローカルでOpenShiftを検証する環境を構築されたい場合は、 Appendix. Minishiftをご利⽤ください

Slide 57

Slide 57 text

IBM Demosサイトでの実⾏⽅法 いつでも使える無料のトレーニングサイト https://www.ibm.com/demos/

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

Hands on Labs for RedHat OpenShift on IBM Cloudを選択 (下にスクロールしていくと⾒れます)

Slide 60

Slide 60 text

Launch Labを選択

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

Exercise 2, Deplying an applicationを選択 リンクをクリックしてください

Slide 64

Slide 64 text

OpenShift のコンソール画⾯が開いて操作ができるようになります。

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

http://ibm.biz/dojo1007

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

No content