Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スケーラブルなWebアプリケーションをKubernetesで構築する / Extradojo_...

スケーラブルなWebアプリケーションをKubernetesで構築する / Extradojo_Kubernetes

Extra Dojo #2 スケーラブルなWebアプリケーションをKubernetesで構築する
・イベント情報 (connpass)
https://ibm-developer.connpass.com/event/176765/
・IBM Cloud アカウント登録
https://ibm.biz/dojo0608

Aya Tokura

June 08, 2020
Tweet

More Decks by Aya Tokura

Other Decks in Technology

Transcript

  1. 新しい取り組み“バッジ取得プログラム”のご案内 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]
  2. 本イベントでは、 IBM Cloud へのアクセスは上記URLから行ってください ibm.biz/dojo0608 • IBM Cloud ログイン アカウントをすでにお持ちの方は、

    こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】
  3. IBM Cloud CLI インストール後の確認 IBM Cloud CLIバージョンの確認 ibmcloud -v IBM

    Cloud CLI Plugin の確認 ibmcloud plugin list 表示例 今回のワークショップでは下記の2つのIBM Cloud CLI Pluginを利用します container-registry container-service/kubernetes-service
  4. 1. 左上の[IBM Cloud]をクリックし、 「ダッシュボード」を表示 2. ダッシュボードの[リソースの要約]の 配下に表示された[Clusters]をクリック 3. リソース・リストの[Clusters]の ご自身で作成したクラスタ名の

    [状況]を確認する 【Kubernetesクラスタの状況確認⽅法】 • Kubernetesクラスタ作成にお時間(約20分前後)を要するため、 ワークショップが始まる前に作成をお願いします。 • Kubernetesクラスタの有無および状態の確認方法は下記の通りです。
  5. 2. 画面右上の[Actions]→[Web端末] の順にクリックする。 3. [インストール]をクリックする。 完了後は先ほどの[Web端末]ボタン より利用可能です。 【Kubernetes Webターミナルの導⼊⽅法】(オプション) •

    Kubernetes Webターミナルのインストールにお時間(約10分前後) を要する場合があります。 • Kubernetesクラスタの有無および状態の確認方法は下記の通りです。 1. リソース・リストの[Clusters]の ご自身で作成したクラスタ情報の ページを表示する。
  6. Lab 3 でエディタを利用します。まだお持ちでない方はVisual Studio Codeがお勧めです。 1. Visual Studio Codeサイトへアクセスする (https://code.visualstudio.com/)

    2. ダウンロードする 3. Visual Studio Codeを起動する 4. (オプション)YAMLファイル編集に便利な拡張機能もインストールする ① 拡張機能アイコン (ブロックの形) をクリック → ② 検索ボックスで yamlを検索 → ③ YAMLの[インストール]をクリック
  7. ⽬次 1. コンテナテクノロジーとは 2. IBM Cloud Kubernetes Service の始め⽅ 3.

    Kubernetesを活⽤したアプリ開発体験 4. おすすめ情報
  8. コンテナ以前のシステム オンプレ or クラウド 本番 HA1 QA-HA1 DEV#1 本番 HA2

    QA-HA2 DEV#2 Storage Disk Array Tape Library Equipment システム管理者 スーパーバイザ 開発者 シスオペ 環境利⽤ スケジュール 環境維持 パッチ適⽤ 不具合修正 セキュリティ チューニング 負荷増対応、資源配分 監視 アプリ・ジョブ運⽤ 基盤運⽤ 監視ソフトの設定 作りこみ 環境取り合い ⼤量ドキュメントと俗⼈的な努⼒ によるシステム開発&運⽤ コンテナ以前の 港湾荷役の様な⼈⼿作業 ITIL準拠の⼿順書を作成
  9. ITのコンテナも業務効率を劇的に改善 アプリ コンテナ V1.2 アプリ コンテナ V1.1 品質保証 テスト アプリ

    コンテナ V1.3a アプリ コンテナ V1.3b デリバリ・パイプライン 本番 サービス 開発中 開発中 デベロッパー デベロッパー テストエンジニア SRE ⾼度に最適化された 現代のコンテナ 配送システム に例えることができる https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A#/media/File:Dol e_container_is_placed_onto_a_truck.jpg
  10. コンテナテクノロジーの特⻑ 1 起動が早い • ホストOSからみると、プロセスが⽴ち上がるだけ • スケールしたときにもすぐにアプリが⽴ち上がる 2 冪等性が保たれる •

    Infrastructure as Code により、環境構築の⼀連の作業をコード化できる • Immutable Infrastructure により、何度実⾏しても同じ環境が再現される 3 ポータビリティー性がある • アプリの実⾏に必要な依存関係をすべてパッケージングできる • Dockerエンジンが動く環境ならどこでも実⾏できることが保証されている べきとうせい
  11. Container Engine 「仮想マシン」と「コンテナ」 出展︓https://docs.docker.com/engine/docker-overview • HWレベルの仮想化 • OSカーネルを専有 • 仮想マシンごとに隔離

    • OSレベルの仮想化 • OSカーネルを共有し、プロセスとして起動 • プロセスをグループ化して隔離
  12. コンテナーのポータビリティ と Docker HUB n コンテナーのポータビリティ –Docker イメージ • アプリケーション稼働に必要な依存ファイルを

    パッケージングできる • 物理サーバーに固定されない → 同じアーキテクチャの環境であれば ポータビリティが存在ある n Docker HUB システム基盤 (クラウド) ホストOS システム基盤 (オンプレミス) ホストOS コ ン テ ナ エ ン ジ ン App1 Bin/Lib s App2 Bin/Lib s App3 Bin/Lib s 「僕の環境では動いた」 問題が発⽣しない docker pull httpd docker push iwashina/myapp docker pull websphere-liberty 多様なベンダーが提供する コンテナーイメージ (ソリューション)のカタログ コ ン テ ナ エ ン ジ ン App3 Bin/Lib s
  13. コンテナのはじめ⽅ n CNCFの Cloud Native Trail Map を参照 1. コンテナ化

    • ⼀般的には Docker コンテナで実施 • いかなるサイズのアプリケーションも依存性もコンテナ化可能 • 時間が経つにつれ、アプリケーションを分割し マイクロサービス化したくなるだろう 2. CI/CD(継続デリバリの仕組み) • 継続インテグレーション・継続デリバリの仕組みをセットアップ • コード変更が 新しいコンテナ・イメージとして、 ⾃動的にビルドされ、テストされ、デプロイされるように 3. オーケストレーション&アプリ定義 • 互換性試験に合格している Certified Kubernetes 環境を選択 • もっとも複雑なアプリケーションであっても HELMで 定義して、導⼊して更新していくことが可能
  14. コンテナを学ぶには nDocker 社のサイトから無償ダウンロード可能 – https://www.docker.com/products/docker-desktop – docker for Mac /

    docker for Windows nDocker について学ぶ –http://docs.docker.jp/index.html • 有志により Dockerのドキュメントが ⽇本語化されています • まずは Dockerfile をいくつか書いてみましょう︕
  15. IBM Cloud Kubernetes Service (IKS) フルマネージドなKubernetesをご提供 サクッと作れる ・ダッシュボード経由 ・複数のバージョン提供 シンプルに設計

    ・ノード台数 ・利⽤するマシンスペック ・仮想サーバー、ベアメタル 100%互換 ・k8sのAPI、ツール ・kubectlを使った操作 監視ツール込み ・ログ収集 ・モニタリング 簡単にサービス連携 ・Watson ・IoT ・Databaseなどなど よりセキュアに ・脆弱性アドバイザー 不適切な設定と脆弱性を検出 ・イメージ署名 ・ 実⾏時の信頼チェック
  16. Worker Node (OS: Ubuntu) Pod Kubernetes 管理下のコンテナ環境 Worker Node (OS:

    Ubuntu) Worker Node (OS: Ubuntu) Kubernetes クラスター 複数Nodeで Kubernetesクラスターを構成
  17. Worker Node (OS: Ubuntu) Pod Worker Node (OS: Ubuntu) Worker

    Node (OS: Ubuntu) Kubernetes クラスター あるコンテナに問題があれば,別Nodeで新コンテナとして動作 Kubernetes 管理下のコンテナ環境
  18. Worker Node (OS: Ubuntu) Pod Worker Node (OS: Ubuntu) Worker

    Node (OS: Ubuntu) Kubernetes クラスター あるNodeに問題があれば,別Nodeで新コンテナとして動作 Kubernetes 管理下のコンテナ環境
  19. Worker Node (OS: Ubuntu) Pod Worker Node (OS: Ubuntu) Worker

    Node (OS: Ubuntu) Kubernetes クラスター Pod ネットワークで,空きIPを⾒つけて⾃動割当 例) Pod ネットワーク 10.1.0.x .10 .11 .12 .13 .14 .15 .16 .17 .18 .19 Kubernetes 管理下のコンテナ環境
  20. Lab 0 – 1. 操作の補⾜ (1) IBM Cloudにコマンドからログイン時に リソースグループの指定が必要な場合 ibmcloud

    target –g <リソースグループ名> 例 ibmcloud target –g Default IBM Cloudのリソースグループ名は [管理]→[アカウント]→[アカウント・リソース] から確認できます。
  21. ibmcloud ks cluster workers --cluster mycluster Lab 1 – 1.の4

    操作の補⾜ (4) IBM Cloud CLI Plugin container-service/kubernetes-service (v1.0.8) 利⽤時のKubernetesのワーカーノードの パブリックIP アドレスを取得するコマンド
  22. Extra Dojo シリーズ 47 開催日 タイトル アカウント 事前準備 #1 6月1日(月)

    はじめてのクラウド ~20分でWebサイトを作成しよう~ ライト★ #2 6月8日(月) スケーラブルなWebアプリケーションをKubernetesで構築する PAYG IBM Cloud CLIのインストール Developer Toolsのインストール Firefoxのインストール IBM Cloud Kubernetes Service(IKS)の クラスタの作成 #3 6月15日(月) OpenShift 入門 ~Watson を使ったWebアプリを試そう~ ライト - #4 6月22日(月) IBM Cloudでビジュアルプログラミング IoT/Node-RED入門 ライト★ - #5 6月29日(月) AI (Watson API) アプリ開発 on OpenShift ライト★ - #6 7月6日(月) Auto AI を使ったらくらく機械学習 ライト★ ChromeまたはFirefoxのインストール #7 7月13日(月) QuarkusでJava モダナイゼーション PAYG - #8 7月 20日(月) Hyperledger Fabricでかんたんにブロックチェーンをはじめよう PAYG - #9 7月 27日(月) Kabaneroを使ったクラウド・ネイティブなアプリ開発を体験 ライト★ - #10 8月3日(月) Watson Discovery を使ったAI検索体験 ライト★ - #11 8月17日(月) IBM Cloud Functionsでサーバレスを始めよう ライト★ - #12 8月24日(月) AI Advance: 公平で説明可能なAI ライト★ コース内容は予定であり、開催までに変更になる可能性があります。アカウント欄︓ライト★がバッジプログラム対象です。 https://ibm-developer.connpass.com/
  23. 初夏のIBM Developer Dojo 2020 48 開催日 タイトル アカウント 事前準備 #1

    5月13日(水) はじめてのクラウド ~20分でWebサイトを作成しよう~ ライト★ #2 5月20日(水) スケーラブルなWebアプリケーションをKubernetesで構築する PAYG IBM Cloud CLIのインストール Developer Toolsのインストール Firefoxのインストール IBM Cloud Kubernetes Service(IKS)の クラスタの作成 #3 5月27日(水) OpenShift 入門 ~Watson を使ったWebアプリを試そう~ ライト - #4 6月 3日(水) IBM Cloudでビジュアルプログラミング IoT/Node-RED入門 ライト★ - #5 6月10日(水) AI (Watson API) アプリ開発 on OpenShift ライト★ - #6 6月17日(水) Auto AI を使ったらくらく機械学習 ライト★ ChromeまたはFirefoxのインストール #7 6月24日(水) QuarkusでJava モダナイゼーション PAYG - #8 7月 1日(水) Hyperledger Fabricでかんたんにブロックチェーンをはじめよう PAYG - #9 7月 8日(水) Kabaneroを使ったクラウド・ネイティブなアプリ開発を体験 ライト★ - #10 7月15日(水) Watson Discovery を使ったAI検索体験 ライト★ - #11 7月22日(水) IBM Cloud Functionsでサーバレスを始めよう ライト★ - #12 7月29日(水) AI Advance: 公平で説明可能なAI ライト★ コース内容は予定であり、開催までに変更になる可能性があります。アカウント欄︓ライト★がバッジプログラム対象です。 https://ibm-developer.connpass.com/
  24. Dr. Tedros Adhanom Ghebreyesus WHO Director-General COVID-19 は、⼈々の健康、⽣活、そして存在 そのものを危うくする存在です。 2020年の

    Call for Code グローバル・チャレンジ では、「気候変動」に加えて「COVID-19」との 闘いにも取り組んでいます。
  25. 2020 Call for Code グローバル・チャレンジ 今回のテーマは「気候変動」と「COVID-19」 • グローバル規模のアプリ開発コンペティション • 「⼀般向け*」と「IBMer向け」に開催

    5/5 (⽕) IBM Think COVID-19 Top3発表 4/27 (⽉) 審査期間 8〜9⽉ 10⽉ 最優秀賞 チーム発表 6/30 (⽕) IBMer 応募受付 締切 7/31 (⾦) ⼀般 応募受付 締切 * IBM Corporationとその法⼈、それらが所有する⼦会社の51%以上および、 Red Hat Inc.とそのすべての⼦会社は「⼀般向け」Call for Code 2020には 参加できませんのでご注意ください。 ⼀般 COVID-19 早期締切 #CallforCode
  26. 免責事項 IBM Developer Dojoは開発者の⽅を対象に、IBM Cloudを主とした技術情報をお伝えする⽬的で開催しています。 講師や運営スタッフにより、開催毎に最適と判断した内容でお届けしています。 現在、ハンズオンを伴う講義はお客様の費⽤負担がない環境と⼿順でご案内しています。講義終了後、不要に なりました制作物はお客様ご⾃⾝で削除をお願いいたします。クレジットカードの登録が伴わない場合、費⽤は ⼀切発⽣致しませんが、ご登録いただいたお客様はご注意ください。 講師陣はみなさまの利⽤状況を個別に確認することはできません。

    ご理解とご協⼒をお願いいたします。 利⽤したサービスの削除⽅法については講義の中でご案内します。 ご不明な点がございましたら、当⽇確認をお願いいたします。 講義終了後、 IBM Developer Dojoに関するお問い合わせは「Slack」にお願いします。それ以外のIBM Cloud のお問い合わせにつきましては、弊社サポートセンターまで、次のいづれかの⽅法でお問い合わせください。 IBM Cloudダッシュボードの「サポート」メニューから「Case」を作成し、英語でご記⼊ください IBM Cloudサポートセンター「相談する」ボタンからチャットまたは電話でご連絡ください https://www.ibm.com/jp-ja/cloud/support ご参加ありがとうございました。