Slide 1

Slide 1 text

Verrazzanoで実現するKubernetesマルチクラスタ 運⽤とコンテナアプリケーションのライフサイクル管理 Takuya Niita ⽇本オラクル株式会社 Sep 09, 2020

Slide 2

Slide 2 text

Safe harbor statement 以下の事項は、弊社の⼀般的な製品の⽅向性に関する概要を説明するものです。 また、情報提供を唯⼀の⽬的とするものであり、いかなる契約にも組み込むことはできませ ん。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するも のではないため、購買決定を⾏う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の 裁量により決定されます。 Oracleは、⽶国オラクル・コーポレーション及びその⼦会社、関連会社の⽶国及びその他の国における登録商標または商標です。 他社名⼜は製品名は、それぞれ各社の商標である場合があります。 Copyright © 2020, Oracle and/or its affiliates. 2

Slide 3

Slide 3 text

3 Copyright © 2020, Oracle and/or its affiliates. 1. Kubernetesのマルチクラスタ管理の必要性と課題 2. Verrazzanoの概要とメリット 3. デモ アジェンダ

Slide 4

Slide 4 text

• 仁井⽥ 拓也 • ⽇本オラクル株式会社 テクノロジー・クラウド・エンジニアリング本部 • 前職は某SIer • Oracle歴︓1年5ヶ⽉ • Cloud Native歴︓1年ちょっと • Kubernetesもここ1年で触り始めました • CKA取得 • ジブリ⼤好き ⾃⼰紹介 Copyright © 2020, Oracle and/or its affiliates. 4 @takuya_0301

Slide 5

Slide 5 text

Kubernetesのマルチクラスタ管理の必要性と課題 Copyright © 2020, Oracle and/or its affiliates. 5

Slide 6

Slide 6 text

シングルクラスター運⽤での課題 • 障害が発⽣した場合に影響範囲が⼤きくなってしまう可能性 • セキュリティの境界線が曖昧になってしまう可能性 • ベンダーロックインが発⽣する可能性 マルチクラスタの採⽤によるメリット • クラスタを分離することで、耐障害性の向上やディザスタリカバリへの対応が可能 • クラスタで隔離することで、セキュリティに関する境界線が明確化 • 複数のKubernetesサービスを利⽤することでベンダーロックインを回避 マルチKubernetesクラスタ運⽤でのメリット Copyright © 2020, Oracle and/or its affiliates. 6

Slide 7

Slide 7 text

コントロールプレーン/ノードのメンテナンス • クラスタの作成/削除 • Master NodeとWorker Nodeの更新 セキュリティ • クラスタのアクセスに対する制御 • クラスタを跨いだアクセスに対する制御 オペレーション • クラスタ内/クラスタ間のネットワーク制御 • クラスタ毎のメトリクス監視やアラーム通知 マルチKubernetesクラスタ運⽤で実施すべきこと Copyright © 2020, Oracle and/or its affiliates. 7

Slide 8

Slide 8 text

コントロールプレーン/ノードのメンテナンス • クラスタの作成/削除 • Master NodeとWorker Nodeの更新 =>それぞれのプラットフォームに応じた個別操作が必要 セキュリティ • クラスタのアクセスに対する制御 • クラスタを跨いだアクセスに対する制御 =>設定ミスが発⽣する可能性 オペレーション • クラスタ内/クラスタ間のネットワーク制御 • クラスタ毎のモニタリングやアラーム通知 =>クラスタ毎に設定/構築が必要 マルチKubernetesクラスタ運⽤の課題 Copyright © 2020, Oracle and/or its affiliates. 8 A社クラウド オンプレミス環境 O社クラウド A社クラウド オンプレミス環境 O社クラウド 開発者 管理者

Slide 9

Slide 9 text

デプロイスタックの共通化 • 各デプロイ先でのObservability(Metrics/Logging/ Tracing)環境の構築と運⽤ • 各コンテナアプリケーション間のネットワーク通信の制御 セキュリティ • 各コンテナに付与する権限の制御 オペレーション • どのクラスタにどのコンテナアプリケーションをデプロイすべき かの制御 • CI/CDパイプラインの構築と運⽤ マルチKubernetesクラスタのコンテナアプリケーション運⽤で実施すべきこと Copyright © 2020, Oracle and/or its affiliates. 9 シェルスクリプト コマンド レポジトリ デプロイ デプロイ デプロイ

Slide 10

Slide 10 text

デプロイスタックの共通化 • 各デプロイ先でのObservability (Metrics/Logging/ Tracing)環境の構築と運⽤ • 各コンテナアプリケーション間のネットワーク通信の制御 =>スタックの選定と各コンテナ毎に定義することが必要 セキュリティ • 各コンテナに付与する権限の制御 =>各コンテナ毎に個別に定義が必要 オペレーション • どのクラスタにどのコンテナアプリケーションをデプロイすべきかの 制御 • CI/CDパイプラインの構築と運⽤ =>トポロジーの適切な設計/把握とパイプラインの構築が必要 マルチKubernetesクラスタでのコンテナアプリケーション運⽤の課題 Copyright © 2020, Oracle and/or its affiliates. 10 シェルスクリプト コマンド シェルスクリプト コマンド レポジトリ コンテナA コンテナB コンテナC コンテナD コンテナE コンテナF

Slide 11

Slide 11 text

クラスタ管理の側⾯から • 全てのクラウド/オンプレミス環境上のKubernetesクラス タを管理するための統⼀されたプラットフォーム • マルチクラスターに対して認証、RBACでのアクセス制御 を⼀元的に管理 • 複雑なクラスタ内/外のネットワーク制御の管理 • 統合された監視プラットフォームによる運⽤ コンテナアプリケーション管理の側⾯から • サービスメッシュ、Observabilityで共通したスタックを⼀ 元的にカスタマイズ可能な形で適⽤ • 複雑なマイクロサービスアプリケーション間の連携 • コンテナに対する⼀元的なセキュリティポリシーの適⽤ • コンテナアプリケーションのトポロジーの把握と効率的な CI/CDパイプラインの構築 複数のKubernetesクラスタを管理していくために Copyright © 2020, Oracle and/or its affiliates. 11 マルチクラスタ管理とコンテナアプリケーションライフサイクル の両⽅が実現可能なプラットフォームが必要

Slide 12

Slide 12 text

Verrazzanoの概要とメリット Copyright © 2020, Oracle and/or its affiliates. 12

Slide 13

Slide 13 text

Curated • プラットフォームを構築するために 統合するすべてのコンポーネントを Oracleが厳選して提供 • 選択したプロダクトとそのバー ジョンを全て機能することをテ ストした上で提供 Multi Cloud • マネージド(クラウド)およびセル フマネージド(プライベート/オンプ レミス)のKubernetesクラスタをサ ポート • ベンダーロックインの回避 Application Lifecycle Management • ⼤規模アプリケーションを管理可 能 • アプリケーションに対するオペ レーション、デプロイメント戦略、 監視スタックを構成 Verrazzano Container Platformが持つ6つのコンセプト(1) Copyright © 2020, Oracle and/or its affiliates. 13 Public Cloud Private Cloud On-premise オペレー ション Observ ability セキュリティ デプロイメ ント戦略 CI/CD

Slide 14

Slide 14 text

Metrics Logging Tracing Observability • Prometheus/Grafana/Elasticsea rch/Kibana/Jaeger/Zipkinなどの 最も広く使⽤されているオープン ソースツールを利⽤した Observabilityの実現 • 各種ダッシュボードを即時に 利⽤可能 Strong Security • CalicoやPod Securityを利⽤した ポリシーの適⽤ • サービスメッシュ間の通信暗号化 • アプリケーション認証、シングルサイ ンオンの実現 Isolation • 管理者は複数のユーザーグループ 間でリソースを安全に共有可能 • ユーザは必要に応じてプロジェ クトに割り当てられ、ユーザが 操作可能なスコープを制限 Verrazzano Container Platformが持つ6つのコンセプト(2) Copyright © 2020, Oracle and/or its affiliates. 14

Slide 15

Slide 15 text

Cloud Nativeを実現する多くのOSSソリューションから厳選して組み合わせたオープンソースの統合プラットフォーム • ⾮常に多くのOSSソリューションを組み合わせて⼀つのシステム体系として実現・維持していくことは、エンドユーザーにとっ て⼤きな負担になることが多い • Oracleが統合プラットフォームとして提供 Verrazzanoで実現する“Curated” Copyright © 2020, Oracle and/or its affiliates. 15 ログ監視︓ELK Stack/Fluentd サービスメッシュ︓ Istio control plane マルチクラスタ管理︓Rancher Console モニタリング︓Prometheus/Grafana CI/CD︓GitOps ログ情報 Rancher Agent Verrazzano Operator アプリケーション Istio データプレーン Pod deploy

Slide 16

Slide 16 text

Verrazzanoを利⽤して全てのKubernetesクラスタ環境への包括的な管理を実現 • 各ベンダーが提供するマネージドKubernetesサービスやオンプレミス環境に展開するKubernetesクラスタもVerrazzano 上で管理可能 • 各Kubernetesクラスタについて同⼀のポリシーを適⽤して構築/運⽤が可能 Verrazzanoで実現する“Multi Cloud” Copyright © 2020, Oracle and/or its affiliates. 16 マルチクラスタ管理 Verrazzano インフラ運⽤管理 Rancher/Istio モニタリング・ログ収集 Prometheus Grafana Fluentd EFK Stack Jaeger CI/CDインフラ Gitlab Jenkins SSO/アクセス管理 Keycloak Oracle Cloud Private Cloud 3rd Party Cloud Kubernetes Kubernetes Kubernetes

Slide 17

Slide 17 text

Service Mesh VerrazzanoModelを利⽤したアプリケーション定義 • モデルを更新することでアプリケーションへのパッチ適⽤ や更新を実施 VerrazzanoBindingでのデプロイ環境との紐付け • Bindingを更新することで各環境のアプリケーション構 成を⾃在に構成 CI/CDパイプライン構築/運⽤の提供 • GitLabやJenkinsを利⽤したコンテナアプリケーションネ イティブなGitOpsの構築と管理を実現 Observabilityの提供 • 効率的な監視やロギングの実現 Securityの提供 • 強固なセキュリティの実現 Verrazzanoで実現する“Application Lifecycle Management” Copyright © 2020, Oracle and/or its affiliates. 17 Application1 Application2 Placement Cluster-1 Name: app1 Cluster-2 Name: app2 app1 cluster-1 VerrazzanoModel VerrazzanoBinding アプリケーション定義とデプロイ環境のバインドを実施 GitOpsパイプライン app2 cluster-2 mTLS

Slide 18

Slide 18 text

Yaml形式(manifest)で複数のアプリケーション定義 • ”VerrazzanoModel”と呼ばれるカスタムリソースを利⽤ • 後述する”VerrazzanoBinding”というカスタムリソースを 利⽤し、定義したアプリケーションを各デプロイ先に対し て紐付け • Oracleが提供する各プロダクトはコンポーネントとして 事前定義済みであり、細やかな設定が利⽤可能 • WebLogic • Coherence • Helidon VerrazzanoModelを利⽤した複数のアプリケーション定義 Copyright © 2020, Oracle and/or its affiliates. 18 Application 1 Web Application1: - name: webapp1 image: webapp1 ! ! ! VerrazzanoModel Helidon Application Helidon Application: - name: helidonapp image: helidonapp ! ! !

Slide 19

Slide 19 text

Yaml形式(manifest)でアプリケーションのデプロイ先を定義 • “VerrazzanoBinding”というカスタムリソースを利⽤ • 事前に定義したVerrazzanoModelの各アプリケーションをデプロイ先に紐付け VerrazzanoBindingを利⽤したアプリケーションとデプロイ環境の紐付け Copyright © 2020, Oracle and/or its affiliates. 19 Web Application: - name: Application1 image: webapp1 - ingress: - name: Ingress1 - database: - target: mysql VerrazzanoModel VerrazzanoBinding Placement managed-cluster-1 Namespace: spaceA Components: Name: Application1 Database Bindings name: mysql url:jdbc:mysql://..... Ingress Bindings Name: Ingress1 Public Cloud/On-Premises Space A Application1 managed-cluster-1 Ingress1 MySQL

Slide 20

Slide 20 text

コンテナアプリケーションネイティブなパイプラインの提供 • GitLab/Jenkinsを⽤いたGitOpsの構築 • BYOでのパイプライン構築も可能 WebLogicアプリケーションとの⾼い親和性 • WebLogic Image Tool、WebLogic Deploy Toolingや WebLogic Kubernetes operatorを利⽤したアプリケー ションのデプロイ ⾼度なデプロイ戦略の実現 • Blue/GreenデプロイメントやA/Bテストのような⾼度な デプロイ戦略を効率的に実現可能 Verrazzanoで実現するCI/CD Copyright © 2020, Oracle and/or its affiliates. 20 CI/CDパイプライン On-premises Public Cloud 40% 60%

Slide 21

Slide 21 text

コンテナ Observabilityスタックの提供 • デプロイするすべてのアプリケーションに適⽤ • メトリクス • WebLogic/Coherence/Helidonアプリケーションにつ いては⾃動でPrometheusフォーマットにエクスポート • ロギング • WebLogic/Coherence/Helidonアプリケーションのロ ギングを⾃動で設定(Fluentdを利⽤) • その他のアプリケーションは標準出⼒へのベストプラク ティス構成を適⽤可能 • 分散トレーシング • OpenTracing/Jaegerによるトレーシング • Istio/Envoyによるネットワーク監視の提供 • 適⽤するスタックについてはユーザが構築可能 Verrazzanoで実現する“Observability” Copyright © 2020, Oracle and/or its affiliates. 21 開発者 コンテナ 適⽤するスタックを設定

Slide 22

Slide 22 text

各種プラットフォームへのSSOを提供 • 各ダッシュボードへのシングルサインオンを提供 • LDAPやActive Directoryも利⽤可能 • RBACとの連携やアプリケーションエンドポイントへの アクセス制御も実現可能 マルチクラスタRBACの提供 • クラスタを跨ぐRBAC制御を実装可能 • Istioを利⽤し、サービス間のセキュア(mTLS)な通信を 即時に提供 • 証明書の⾃動管理を実現 Verrazzanoで実現する“Strong Security”と“Isolation” Copyright © 2020, Oracle and/or its affiliates. 22 Public Cloud On-premises mTLS ユーザA ユーザB 管理者 モニタリング・ダッシュボード SSO SSO/RBAC

Slide 23

Slide 23 text

Verrazzano Enterprise Container Platform • Verrazzano Container Platformに加えてエンタープラ イズ向けに機能拡張と豊富なサポートを提供予定 • クラスタ間の⾃動フェイルオーバー機能 • 機械学習/AIによる⾃動スケーリング • GraalVM EEやnative imageとの統合 • サービスメッシュ設定に関するバックアップ/リストア 機能の提供 • オンプレミスのOracle Databaseとの統合 • OpenShiftとの統合 Verrazzano Enterprise Container Platform Copyright © 2020, Oracle and/or its affiliates. 23

Slide 24

Slide 24 text

Verrazzano Container Platform • コミュニティサポートの提供 • Oracle Cloud Infrastructure上の各サービスとの統合 • OCI IAM • OCI KMS(Key Management Service) • OCI APIGateway • Knativeサポート • VSCodeプラグインの提供 Verrazzano Enterprise Container Platform • 24/7のサポート • WebLogicやCoherence、GraalVMなどのOracleが提 供するプロダクトとのさらなる統合 今後のロードマップ Copyright © 2020, Oracle and/or its affiliates. 24 Key Management API/Service ID & Access Management

Slide 25

Slide 25 text

Verrazzanoデモ Copyright © 2020, Oracle and/or its affiliates. 25

Slide 26

Slide 26 text

デモシナリオ • Verrazzanoを構築した環境へサンプルアプリケーション (Bob‘s Books)をデプロイ • ⼀般書店であるフロントエンドのウェブストア 「Robert’s Books」(Helidon/Coherence) • 児童書専⾨店のフロントエンドWebストア 「Bobby's Books」 (WebLogic/Helidon/Coherence) • バックエンドの「注⽂処理」アプリケーション (WebLogic/MySQL) • VerrazzanoModelやVerrazzanoBindingの中⾝を軽く 確認 • デプロイ後に⾃動的にObservability環境 (Prometheus/Grafana/EFK Stack)が構築されるので、 UIを確認 Verrazzanoデモ概要 Copyright © 2020, Oracle and/or its affiliates. 26

Slide 27

Slide 27 text

Verrazzanoデモ概要図 Copyright © 2020, Oracle and/or its affiliates. 27 Oracle Container Engine for Kubernetes Istio IngressGateway Ingress Controller verrazzano-system bobs robert bobby namespace /bobbys-front-end / /bobs-bookstore-order-manager

Slide 28

Slide 28 text

Verrazzanoデモ Copyright © 2020, Oracle and/or its affiliates. 28

Slide 29

Slide 29 text

Webサイト https://verrazzano.io/ ※α版での提供のため、原則として、調査⽬的や知識習 得⽬的でのご利⽤をお願い致します チュートリアル https://github.com/verrazzano/verrazzano/blob/mast er/install/README.md ※複数のサンプルアプリケーションをデプロイ可能です Slack Verrazzano.slack.com Invite URL:https://bit.ly/3gOeRJn Verrazzano Information Copyright © 2020, Oracle and/or its affiliates. 29

Slide 30

Slide 30 text

30 Copyright © 2020, Oracle and/or its affiliates Blockchain GIG Big Data JAM Session データ ・サイエンティストな⽅々に 向けてビッグデータや機械学習に関 する技術情報をお届け Oracle Code Night Online Oracle Cloud Hangout Café 毎回クラウド・ネイティブな テーマを取り上げて がっつり掘り下げる会 通称おちゃかふぇ Blockchain GIG エンタープライズ領域でのブ ロックチェーン活⽤にフォーカ スを当て、多彩なゲストも参加 MySQL Technology Café 初⼼者からディープなエンジニ アまで、MySQLフリークな⽅々 と最新情報や活⽤事例を紹介 Oracle Database Technology Night オラクルの精鋭の技術者陣が、 「明⽇から現場ですぐに使える テクニック」をお伝え 様々なテーマでウェビナー開催中! 各種Meetupの詳細・お申込みは で♪

Slide 31

Slide 31 text

31 Copyright © 2020, Oracle and/or its affiliates 各イベント情報はconnpassにて公開中! oracle-code-tokyo-dev.connpass.com oracle.com/goto/jp-code-night 過去開催 Code Night Onlineは Oracle Video Hubにて公開中! Oracle Code Night Online

Slide 32

Slide 32 text

Oracle Cloud Hangout Café 3 Oracle Cloud Hangout Cafeは、 クラウドネイティブ時代の開発者を対象に巷で話題の オープン・スタンダードなテクノロジーをテーマに取り上げ、 短時間でガッツリ学んでお持ち帰りいただく テクニカルな 勉強会シリーズ。 知識習得やスキル向上の場として是⾮ご活⽤ください︕ https://ochacafe.connpass.com/ OCHa Cafe3 #3 は9⽉30⽇ 開催︕

Slide 33

Slide 33 text

Thank you 33 Copyright © 2020, Oracle and/or its affiliates.

Slide 34

Slide 34 text

No content