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

EdgeTech+2022 What is Cloud Native ? 2022

EdgeTech+2022 What is Cloud Native ? 2022

EdgeTech+2022
11.18(金) 12:00-13:30 | アネックスホール F201
スライド資料
#エッジテックプラス

oracle4engineer

November 18, 2022
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. EdgeTech+ 2022
    What is Cloud Native ? 2022
    Yutaka Ichikawa
    Principal Cloud Solution Engineer
    Solutions Architect
    Oracle Corporation Japan
    Nov 18.2022
    CNCF, DevOps, CI/CD, Microservices, Observability, Cloud Native Database

    View full-size slide

  2. 2 Copyright © 2022, Oracle and/or its affiliates
    Profile
    Name
    • Yutaka Ichikawa/市川 豊
    Belong
    • Solutions Architect
    Role
    • Principal Cloud Solution Engineer
    SNS
    • Twitter/GitHub/Qiita:cyberblack28
    Blog
    • https://cyberblack28.hatenablog.com/
    Materials
    • https://speakerdeck.com/cyberblack28/
    • https://speakerdeck.com/oracle4engineer
    Community
    • Oracle Cloud Hangout Cafe #ochacafe
    • CloudNative Days Tokyo #cndt #o11y2022
    Certified
    • Certified Kubernetes Administrator
    • Certified Kubernetes Application Developer
    • Certified Kubernetes Security Specialist
    • Kubernetes and Cloud Native Associate
    Publications
    New

    View full-size slide

  3. 3 Copyright © 2022, Oracle and/or its affiliates
    Agenda
    • Cloud Native Definition
    ✓ Cloud Native Computing Foundation(CNCF)について
    ✓ クラウドネイティブとは?
    ✓ そもそもクラウドコンピューティングとは?
    ✓ クラウドコンピューティングの特性
    ✓ クラウドネイティブを実現する道しるべ
    ✓ 自動化の目的
    ✓ 結局のところ、クラウドネイティブとは?
    • DevOps
    ✓ DevOpsとは?
    ✓ DevOpsを実現する方法
    • CI/CD
    ✓ これまでのアプリケーション開発
    ✓ OS/ライブラリとアプリケーションの分離
    ✓ 仮想マシンとコンテナの違い
    ✓ OS/ライブラリとアプリケーションの統合
    ✓ コンテナを支えるオーケストレーション
    ✓ コンテナアプリケーション開発におけるCI/CD
    • Microservices
    ✓ マイクロサービスの二つの側面
    ✓ マイクロサービスの進化と挑戦
    ✓ コンテナにおけるマイクロサービスを実現する技術
    ✓ ビジネス面におけるマイクロサービス
    ✓ マイクロサービスの特徴
    ✓ マイクロサービスも結局
    • Observability
    ✓ そもそも監視って?
    ✓ オブザバビリティの背景
    ✓ オブザバビリティとは?
    ✓ テレメトリー
    ✓ オブザバビリティは、クラウドネイティブシステムを支える
    • Cloud Native Database
    ✓ クラウドネイティブ時代のデータベース
    • OCI Cloud Native Services
    ✓ アプリケーションの開発・運用を支援するマネージド・サービス
    • OCI DevOps Demo
    What is Cloud Native ? 2022

    View full-size slide

  4. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    4
    Cloud Native Definition

    View full-size slide

  5. Cloud Native Computing Foundation(CNCF)について
    Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    5
    • The Linux Foundation傘下のプロジェクトの1つで、コンテナ技術の推進と、その進化を取り巻くテクノロジー業界の足
    並みを揃えるために2015年に創設された財団
    • 大手クラウド事業者、ミドルウェア企業、ハードウェア製造企業、オープンソース・ソフトウェア企業、大学、その他非営
    利団体などが加入、Oracleは2017年からプラチナ会員
    • 年2回、Europe、North AmericaでCNCF主催の「KubeCon + CloudNativeCon」を開催

    View full-size slide

  6. Cloud Native Computing Foundation(CNCF)について
    Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    6
    KubeCon + CloudNativeCon
    North America 2019
    San Diego

    View full-size slide

  7. クラウドネイティブとは?
    Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    7
    クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーショ
    ンを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミューダブルインフラス
    トラクチャ、および宣言型APIがあります。
    これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはイ
    ンパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。
    Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシステムを育成・維持して、このパラダイムの採用を促進し
    たいと考えてます。 私たちは最先端のパターンを民主化し、これらのイノベーションを誰もが利用できるようにします。
    Cloud Native Computing Foundation(CNCF) Cloud Native Definition v1.0 | https://github.com/cncf/toc/blob/master/DEFINITION.md
    Cloud Native Computing Foundation(CNCF)におけるクラウドネイティブの定義
    “拡張性・柔軟性に優れたアプリケーションをクラウドの特性を活かし
    最小限の労力で構築および実行できるようにすること”

    View full-size slide

  8. そもそもクラウドコンピューティングとは?
    Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    8
    クラウドコンピューティングとはモデルであり、構成変更が可能なコンピューティング資源(例としてネットワーク、サービス、ストレージ、アプリケーション、サービ
    ス)の共有プールを、オンデマンドなネットワークアクセスで可能にする。
    それはわずかな管理の手間、もしくはサービスプロバイダとのやりとりによって迅速に準備され、提供される。
    このクラウドモデルは可用性を促進するものであり、5つの本質的な性質と、3つのサービスモデル、そして4つのデプロイメントモデルから構成される。
    The NIST Definition of Cloud Computing | https://csrc.nist.gov/publications/detail/sp/800-145/final
    The NIST Definition of Cloud Computingにおけるクラウドコンピューティングの定義
    5つの本質的な性質
    • オンデマンド・セルフサービス
    • 幅広いネットワークアクセス
    • リソースの共有
    • 迅速な拡張性
    • 計測可能なサービス
    3つのサービスモデル
    • Cloud Software as a Service (SaaS)
    • Cloud Platform as a Service (PaaS)
    • Cloud Infrastructure as a Service (IaaS)
    4つのデプロイメントモデル
    • プライベートクラウド
    • コミュニティクラウド
    • パブリッククラウド
    • ハイブリッドクラウド

    View full-size slide

  9. クラウドコンピューティングの特性
    Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    9
    • オンデマンド・セルフサービス
    • 幅広いネットワークアクセス
    • リソースの共有
    • 迅速な拡張性
    • 計測可能なサービス
    • 資産保有が不要
    • 利便性が高い
    • リソース調達が早い
    • 柔軟な拡張性
    • 利した分だけ課金
    オンプレミスでは困難なことが、クラウドコンピューティングは実現できる

    View full-size slide

  10. Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    10
    1. CONTAINERIZATION | コンテナ化
    • 仮想マシンとは異なり、環境差異が無く、軽量なイメージで可搬性が
    高く、リリースサイクルを速め、機敏さと信頼性を兼ね備えたアプリ
    ケーションリリースを実現
    2. CI/CD | 継続的インテグレーション/デリバリー
    • ソースコードの変更を契機に、自動的なビルド、テスト、そしてステー
    ジング環境および本番環境へのデプロイにつながるCI/CD環境を構
    築する
    3. ORCHETRATION & APPLICATION DEFINITION |
    オーケストレーションツール、アプリケーション定義
    • コンテナ化されたアプリケーションをKubernetes基盤で自律的に運用
    • Helmを利用して、マニフェストを効率的に管理
    CNCF Trail Map | https://github.com/cncf/trailmap
    コンテナ化
    開発自動化
    運用自動化
    拡張性・柔軟性に優れたアプリケーションを最小限の労力で
    クラウドネイティブを実現する道しるべ

    View full-size slide

  11. Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    11
    自動化の目的
    人的関与を極力減らして向上化
    技術に任せられるものは任せて効率化、
    そして、人にしかできないことに時間やコストを傾ける
    向上したビジネス価値をエンドユーザに提供する
    エンドユーザの満足度、企業収益/競争力を向上

    View full-size slide

  12. Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    12
    結局のところ、クラウドネイティブとは?
    「CNCFに関連するプロダクト利用 = クラウドネイティブ」
    ではない
    CNCF Cloud Native Interactive Landscape | https://landscape.cncf.io/

    View full-size slide

  13. Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    13
    結局のところ、クラウドネイティブとは?
    人的関与を極力減らしてビジネス価値の向上を目指して、
    それをエンドユーザに届けるマインドセットを持つこと

    View full-size slide

  14. Cloud Native Definition
    Copyright © 2022, Oracle and/or its affiliates
    14
    CloudNative Days Fukuoka 2019
    『飛び込もう Cloud Native の世界』草間一人 (@jacopen)
    https://speakerdeck.com/jacopen/fei-biip-mou-cloud-nativefalseshi-jie

    View full-size slide

  15. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    15
    DevOps

    View full-size slide

  16. DevOps
    Copyright © 2022, Oracle and/or its affiliates
    16
    DevOpsとは?
    開発(Development)と運用(Operations)が互いに協力し合うことで、開発・運用するソフトウェア/システムに
    よってビジネスの価値をより高めるだけでなく、そのビジネスの価値をより確実かつ迅速にエンドユーザに届け続ける概念
    Dev Ops

    View full-size slide

  17. DevOps
    Copyright © 2022, Oracle and/or its affiliates
    17
    DevOpsを実現する方法
    1.アジャイル開発
    • 「計画、設計、実装、テスト」という開発工程を機能単位の小さいサイクルで繰り返して開発を行う開発手法
    • ウォーターフォールと異なり、仕様変更に強く、プロダクトの価値を最大化することを目的とする
    • サービスインまでの時間を短縮できる

    View full-size slide

  18. DevOps
    Copyright © 2022, Oracle and/or its affiliates
    18
    DevOpsを実現する方法
    2.CI/CD
    • ソースコードからアプリケーションとしてビルドするタイミングでテストを行って、完成した成果物(アーティファクト)を保存
    するまでの工程を自動化
    • 早期にバグを発見、対処できることでアプリケーションの品質を高めることができる仕組み
    継続的インテグレーション(CI: Continuous Integration)
    • 継続的インテグレーションによって生成された成果物(アーティファクト)をステージング環境や本番環境などの各環境
    に配置する仕組み
    • リリース作業を簡素化して、安全、スピード、品質の向上を実現するプロセス
    継続的デリバリー(CD: Continuous Delivery)

    View full-size slide

  19. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    19
    CI/CD

    View full-size slide

  20. これまでのアプリケーション開発
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    20
    物理マシン
    仮想マシン
    仮想マシン(クラウド)
    コンテナ
    物理サーバでアプリケーションを稼働
    VM 物理サーバ上に複数の仮想マシンでアプリケーションを稼働
    クラウドをベースとしたスケーラブルな仮想マシンでアプリケーションを稼働
    物理マシン・仮想マシンもノードとして束ねて、コンテナという小さい単位
    でアプリケーションを稼働

    View full-size slide

  21. これまでのアプリケーション開発
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    21
    アプリケーション
    コードをソースコードリポジトリに
    コミット/プッシュ
    CI/CDパイプラインによる
    テスト、ビルド、デプロイ
    Developer Code Repository CI/CD Pipeline
    すべて自動化されている場合もあれば、手動で行う場合もあります。
    本番環境
    ステージング環境
    検証環境
    Operator
    Infrastructure
    Engineer
    開発環境
    OS/ライブラリ
    VM
    物理マシン 仮想マシン
    仮想マシン
    (クラウド)

    View full-size slide

  22. OS/ライブラリとアプリケーションの分離
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    22
    アプリケーション
    本番環境
    ステージング環境
    検証環境
    開発環境
    OS/ライブラリ
    VM
    物理マシン 仮想マシン
    仮想マシン
    (クラウド)
    アプリケーションは物理マシンや仮想マシンのOS/ライブラリ上で稼働
    稼働するアプリケーションは実行環境に依存する
    環境差異が原因で他の環境で稼働するけど、
    本番環境で稼働しない等の障害が発生する
    OSのパッチバージョンが異なる、このライブラリが無
    かった、関係ないものがインストールされている…

    View full-size slide

  23. CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    23
    アプリケーション
    OS/ライブラリ
    • 仮想マシンイメージがベンダー製品特有(ベンダー
    ロックイン)
    • 容量も重い(数ギガ~数十ギガ)
    • 可搬性(Portability)が低い
    Xen
    Server
    仮想マシン
    イメージ
    KVM
    VMWare
    ハイパーバイザー
    ハードウェア
    VMWare Xen/Server KVM
    物理/仮想マシンにおける、OS/ライブラリのアップデートには人手
    や時間を要するため、アプリケーションのリリースに影響する…
    仮想マシン
    OS/ライブラリとアプリケーションの分離

    View full-size slide

  24. CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    24
    これまでのアプリケーション開発
    OS/ライブラリが既に整っている実行環境にアプリケーションをデプロイするという形式
    1.アプリケーション
    • 環境差異による問題が発生
    • OS/ライブラリ側に何かあるとアプリケーションに影響
    2.インフラ
    • 仮想マシンイメージがベンダー製品特有(ベンダーロックイン)
    • 仮想マシンイメージの容量が重く可搬性(Portability)が低い
    • 物理/仮想マシンの特性上、OS/ライブラリのアップデートに時間を要して、アプリケーションのリリースに影響する
    OS/ライブラリとアプリケーションの分離

    View full-size slide

  25. 仮想マシンとコンテナの違い
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    25
    ハードウェア
    ハイパーバイザー
    OS/Hyper Visor OS/Hyper Visor
    カーネル カーネル
    アプリケーション アプリケーション
    ライブラリ ライブラリ
    仮想マシン 仮想マシン
    ハードウェア
    カーネル
    OS/Hyper Visor OS/Hyper Visor
    コンテナ コンテナ
    コンテナエンジン
    各仮想マシンのカーネル上で実行、隔離性が高いが、起動
    が遅く(数分)オーバヘッドが大きい。
    カーネルを共有しているため、隔離性は低いが、起動が高速
    (数秒)でオーバヘッドが小さい。
    仮想マシン コンテナ
    アプリケーション アプリケーション
    ライブラリ ライブラリ

    View full-size slide

  26. OS/ライブラリとアプリケーションの統合
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    26
    • OS/ライブラリとアプリケーションをパッケージイメージ化
    • 技術としてはOSSのため、ベンダーロックインは発生しない
    • イメージはこれまでの仮想マシンイメージに比べるとはるかに軽いのでポータビリティ性が高い
    OS/ライブラリ
    アプリケーション
    コンテナイメージ
    1.ビルド(Build)
    ビルド(Build)
    OS/ライブラリ

    View full-size slide

  27. OS/ライブラリとアプリケーションの統合
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    27
    2.シップ(Ship)
    • イメージをレジストリに保存して、共有
    OS/ライブラリ
    OS/ライブラリ
    OS/ライブラリ
    イメージレジストリ
    Push Pull
    シップ(Ship)
    イメージの共有
    OS/ライブラリ
    コンテナプラットフォーム

    View full-size slide

  28. OS/ライブラリとアプリケーションの統合
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    28
    • コンテナイメージを基にコンテナを起動します。
    3.ラン(Run)
    コンテナプラットフォーム上でイメージからコンテナを起動して、アプリケーションを稼働。
    イメージもプラットフォームも特定ベンダー技術に依存しないため、ベンダーロックインも無い。
    OS/ライブラリ
    ラン(Run)
    OS/ライブラリ
    コンテナプラットフォーム
    コンテナ
    コンテナイメージ

    View full-size slide

  29. OS/ライブラリとアプリケーションの統合
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    29
    コンテナアプリケーション開発
    OS/ライブラリとアプリケーションを統合して、軽量イメージ化して、コンテナプラットフォームにコンテナとしてデプロイする形式
    1.アプリケーション
    • OS/ライブラリとアプリケーションが一つに統合されているため、環境差異による問題が起きにくい
    2.インフラ
    • 仮想マシンイメージと仕組みが異なり、OSSベースでベンダーロックインもなく、軽量で可搬性(Portability)が高い
    • OS/ライブラリのアップデートも容易なため、リリースサイクルを速め、スピード(Agility)が向上

    View full-size slide

  30. コンテナを支えるオーケストレーション
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    30
    Kubernetesは、Google社内のコンテナーオーケストレーションシステムであるBorgからインスパイアされて開発された
    OSSのコンテナーオーケストレーション。
    読み方:クーバーネーティス、クーバネティス、クバネティス等
    略称:K8s(Kubernetes)
    8文字
    現在は、CNCF(Cloud Native Computing Foundation)で管理され、多数の企業が参加するコミュニティで開発。

    View full-size slide

  31. コンテナを支えるオーケストレーション
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    31
    Kubernetesの主な役割と実現
    • コンテナのスケジューリング
    • ローリングアップデート
    • オートスケーリング
    • 死活監視
    • 頻繁なアプリケーションのデプロイを可能にするシステム基盤
    • 無停止によるリリース、高可用なシステム基盤
    • 負荷に応じた伸縮自在なシステム基盤
    主な役割 実現
    • コンテナの自動修復
    • サービスディスカバリ
    • ロードバランシング

    View full-size slide

  32. 32 Copyright © 2022, Oracle and/or its affiliates
    CI/CD
    マニフェストファイル
    YAML
    Controllerがあるべき理想の状態へ収束
    Controller内のReconciliation loop(調整ループ)と呼ばれる、あるべき理想の状
    態へ収束させるループ処理を実行。
    Kubernetesクラスタ
    登録
    Controller
    監視
    コンテナ管理
    (作成・削除)
    Reconciliation
    loop
    コンテナを支えるオーケストレーション
    宣言的オペレーション

    View full-size slide

  33. 33 Copyright © 2022, Oracle and/or its affiliates
    CI/CD
    Reconciliation loop
    Observe
    Act
    Analyze
    現在の状態を確認
    あるべき理想の状態と現在の状態
    との差分を分析
    分析した差分に対する処理を実行
    コンテナを支えるオーケストレーション

    View full-size slide

  34. 34 Copyright © 2022, Oracle and/or its affiliates
    CI/CD
    Observe
    Act
    Analyze
    Controller
    あるべき理想の状態 Kubernetesクラスタの状態
    指定された 「replicas: 3」 のPod数を維持すること
    コンテナを支えるオーケストレーション
    宣言的オペレーション

    View full-size slide

  35. 35 Copyright © 2022, Oracle and/or its affiliates
    CI/CD
    Observe
    Act
    Analyze
    Controller
    あるべき理想の状態 Kubernetesクラスタの状態
    (例)起動しているPodが2個の場合
    Observe 理想:3 現状:2
    コンテナを支えるオーケストレーション
    宣言的オペレーション

    View full-size slide

  36. 36 Copyright © 2022, Oracle and/or its affiliates
    CI/CD
    Observe
    Act
    Analyze
    Controller
    あるべき理想の状態 Kubernetesクラスタの状態
    (例)起動しているPodが2個の場合
    Analyze 理想状態と比較して、Podが1個足りない
    コンテナを支えるオーケストレーション
    宣言的オペレーション

    View full-size slide

  37. 37 Copyright © 2022, Oracle and/or its affiliates
    Observe
    Act
    Analyze
    Controller
    あるべき理想の状態 Kubernetesクラスタの状態
    Act 「image: nginx:1.21.0」のPodを作成
    (例)起動しているPodが2個の場合
    CI/CD
    コンテナを支えるオーケストレーション
    宣言的オペレーション

    View full-size slide

  38. コンテナを支えるオーケストレーション
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    38
    Kubernetesは分散処理基盤
    Virtual Machine
    BareMetal
    Kubernetes
    Container

    View full-size slide

  39. コンテナを支えるオーケストレーション
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    39
    Kubernetes is becoming the Linux of the cloud
    by Jim Zemlin (The Linux Foundation)

    View full-size slide

  40. コンテナを支えるオーケストレーション
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    40
    Multi-Cloud to Multi-Kubernetes Cloud Native to Kubernetes Native

    View full-size slide

  41. コンテナを支えるオーケストレーション
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    41
    Oracle Container Engine for Kubernetes (OKE)
    マネージドKubernetesサービス
    Oracle Cloud Infrastructure Registry (OCIR)
    マネージドなコンテナレジストリ
    Oracle Cloud Infrastructureの機能として提供されるマネージドKubernetesサービスとコンテナレジス
    トリ

    View full-size slide

  42. コンテナアプリケーション開発におけるCI/CD
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    42
    コードをソースコードリポジトリにコミッ
    ト/プッシュ
    CIパイプラインによる
    テスト、ビルド、
    イメージプッシュ
    Developer Code Repository CI/CD Pipeline
    Operator
    Infrastructure
    Engineer
    コンテナプラットフォーム
    へのデプロイ
    Code
    Dockerfile
    manifest
    Build
    Run
    イメージ
    レジストリ
    Ship
    イメージ
    共有
    CIOps Push型
    ソースコードが更新されるたびにCIパイプラインが稼働して、アプリケーションテスト、コンテナイメージビルド、コンテナイメー
    ジプッシュ、CDパイプラインによるデプロイ。
    CI
    CD

    View full-size slide

  43. 43 Copyright © 2021, Oracle and/or its affiliates
    CI/CD
    ソフトウェアをビルド、テスト、およびデプロイし、開発ライフサイクルの各フェーズを自動化
    Bare Metal
    Compute
    Container
    Engine
    For Kubernetes
    Virtual
    Machine
    Functions
    環境管理
    デプロイメント・パイプライン
    アーティファクト管理
    Fully-managed
    OCI DevOps Service
    デプロイ
    ロールバック
    ビルド・パイプライン
    OCI DevOps
    OCIR & Artifact Registry

    View full-size slide

  44. コンテナアプリケーション開発におけるCI/CD
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    44
    Dev/Staging/Prod
    CI/CD
    Container Image
    Registry
    Code & Config
    Repository
    Developer
    Read/Write Read
    Read/Write Read
    Read/Write apply
    Image
    Pull
    Kubernetesクラスタが増えるたびにセキュリ
    ティ含めた設定や権限管理も増えるため、
    管理が煩雑となる。。
    Kubernetesクラスタ外部での権限管理となるため、セキュリティリスクがある。。
    K8s
    API
    CIOpsにおけるセキュリティリスクと管理の煩雑化

    View full-size slide

  45. CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    46
    ① Code Change
    &
    Git Push
    ② Image Build & Test & Image Push
    Developer
    Code
    Repository CI Pipeline
    Operator
    Infrastructure
    Engineer
    コンテナープラット
    フォームへのデプロイ
    イメージ共有
    Code
    Dockerfile
    manifest
    Build
    Run
    Ship
    Config
    Repository
    ③ Pull Request
    ④ Pull
    Request
    Merge
    イメージ
    レジストリ
    ⑤ Polling & Sync
    GitOps Pull型
    Kubernetesクラスタ内に配置されたGitOpsオペレーターがConfigリポジトリを定期的にポーリングして、更新を検知し
    て更新内容をKubernetesクラスタに反映する仕組み。
    コンテナアプリケーション開発におけるCI/CD
    GitOps
    オペレター
    CI
    CD

    View full-size slide

  46. 47 Copyright © 2022, Oracle and/or its affiliates
    CI/CD
    CIOpsの課題を解消
    CodeとConfigのリポジトリを分けることで、相互の影響を回避および境界線の明確化。特権ユーザの認証情報を外
    部に持つ必要が無く、APIを外部に公開する必要もない。
    CI Pipeline
    Container Image
    Registry
    Dev/Staging/Prod
    Code
    Repository
    Developer
    Read
    Config
    Repository
    GitOps
    Operator
    apply
    Read/Write
    Read
    CodeとConfig
    のリポジトリを
    分けることで相
    互の影響を回避
    できて、境界線
    が明確。
    認証情報を外部に持つ必要がないため、
    クラスタが増えても管理しやすい。
    K8S
    API
    Read/Write
    Read
    Read
    Read/Write
    Image
    Pull
    Read/Write
    コンテナアプリケーション開発におけるCI/CD

    View full-size slide

  47. 48 Copyright © 2022, Oracle and/or its affiliates
    マニフェスト専用のGitリポジトリ上のマニフェストファイルの内容と実環境の状態が同一。マニフェストをGit管理することで、
    履歴管理、ロールバック対応などが柔軟に行える。再現性を保証。
    CI Pipeline
    Container Image
    Registry
    Code
    Repository
    Developer
    Config
    Repository
    Dev
    Staging
    Prod
    manifest
    Equal
    マニフェストファイルの内容と稼働しているKubernetes
    クラスタ状態が同一。
    Git管理により履歴管理、ロールバックも容易。
    CIOpsの課題を解消
    コンテナアプリケーション開発におけるCI/CD
    CI/CD

    View full-size slide

  48. 49 Copyright © 2022, Oracle and/or its affiliates
    • マニフェストファイルをGit管理
    - デプロイ先に対して「誰が、何時、何」を変更したのか(変更差分)を履歴で追える
    - デプロイ先をいつでも前の状態に戻すこと(ロールバック)ができる
    - プルリクエストによるレビュー・マージプロセスを通すことで組織ガバナンスを適用できる
    • 自動化
    - 手動コマンドによるヒューマンエラーの排除
    - 運用コストの軽減
    GitOpsのメリット
    コンテナアプリケーション開発におけるCI/CD
    CI/CD

    View full-size slide

  49. 50 Copyright © 2022, Oracle and/or its affiliates
    CICD
    • CIツール
    ツールの傾向
    CircleCI、TravisCI、GitHub Actions、GitLab Runnerなど、これまでも利用され続けているCIツールとGitOps
    ツールを組み合わせるケース。
    KubernetesのCustomResourceとしてパイプラインを定義(Kubernetesマニフェスト)できる、Kubernetes-
    nativeなCIを実現できるTEKTONやArgo WorkflowsとGitOpsツールを組み合わせるケース。
    コンテナアプリケーション開発におけるCI/CD

    View full-size slide

  50. 51 Copyright © 2022, Oracle and/or its affiliates
    • GitOpsツール
    ツールの傾向
    Cloud Native関連のカンファレンスやコミュニティイベントでよく取り上げられているGitOpsツール。
    CICD
    コンテナアプリケーション開発におけるCI/CD

    View full-size slide

  51. コンテナアプリケーション開発におけるCI/CD
    CI/CD
    Copyright © 2022, Oracle and/or its affiliates
    52
    コンテナの可搬性(Portability)とスピード(Agility)を持ち合わせ、
    品質および生産性の高いアプリケーション開発を実現
    リリースサイクルを速め、
    エンドユーザに最高品質のサービスを提供
    これまで時間やコストを要していた箇所の改善、
    より良いビジネスロジックに時間やコストを傾ける
    エンドユーザ様の満足度、企業収益の向上につなげる

    View full-size slide

  52. Copyright © 2022, Oracle and/or its affiliates
    53
    クラウドネイティブにおけるコンテナアプリケーション開発は、銀の弾丸ではない
    実際に開発するアプリケーションの特性、組織体制、チーム体制、コスト、教育など
    基盤・開発・運用の観点からしっかりと見据えて適材適所に検討する必要がある
    コンテナアプリケーション開発におけるCI/CD
    CI/CD

    View full-size slide

  53. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    54
    Microservices

    View full-size slide

  54. マイクロサービスの二つの側面
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    55
    1.開発組織や文化と関わる側面
    マイクロサービスには、「開発組織や文化と関わる側面」と「技術的な側面」の二側面ある
    開発組織の成長に伴うチーム、人員の増加が発生しても、小規模なチーム開発と同様に素早くプロダクト開発を維持す

    2.技術的側面
    マイクロサービスは、個々に開発された複数の小さなサービスを連携させて、設計・運用を実施するソフトウェアのアーキテク
    チャ

    View full-size slide

  55. マイクロサービスの進化と挑戦
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    56
    チームサイズが小さい場合
    • 一つのアプリケーションに機能を集約して開発
    • 速度と開発品質の面で合理的
    チームサイズが大きい場合
    • コミュニケーションコストの増加
    • 20人以上になるとチーム破綻へ
    会議に限らず、開発チーム人数においても理想は “ Two Pizza Rule ”
    “会議の参加者が多いほど、生産性は低下する。これを解決するために、参加メン
    バーを2枚のピザを分け合える人数に抑える。”

    View full-size slide

  56. マイクロサービスの進化と挑戦
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    57
    マイクロサービスの前段として組織の細分化
    100人いる会社で、100人を一つにして開発するよりも、主要な機能を10個に分けて機能ごとに10人のチームを10
    個作って開発した方が効率的です。
    100人で開発 10人のチームを10チーム作って開発

    View full-size slide

  57. マイクロサービスの進化と挑戦
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    58
    組織の分散化による課題
    • アプリケーションデプロイのサイクルを他チームと完全に共有していることで、各チームの裁量でリリースできない
    • アプリケーションを機能ごとにスケーリングできないため、パフォーマンス要件の厳しいチームに引きずられる
    • 他チームと同じプロセス内で動作していて、他チームの障害を完全に分離できない
    • 他チームとコードベースを共有しているため、境界線や責任範囲が曖昧

    View full-size slide

  58. マイクロサービスの進化と挑戦
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    59
    組織的には分散化によって裁量ある小さいチームによる開発のスピード向上を目指せていても、
    ソフトウェアの面では、依然として大きいチームとして機能する必要がある
    • コミュニケーションコストの増加
    • チーム裁量の低下
    • 曖昧な責任範囲
    大きいチームとしての課題を解消しきれない

    View full-size slide

  59. マイクロサービスの進化と挑戦
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    60
    ソフトウェアの面でも組織の分散化に沿って分散化を進める
    • 小さいチームが自律的に機能することで、全体としてのプロダクト開発ス
    ピードを向上
    • 各チームでデプロイサイクルが独立しているので、事業要件に沿って自
    由にリリース
    • チームごとにパフォーマンス要件の異なるアプリケーションをスケーリング
    • 機能増加と共にチームと人員もスケールすることで、アプリケーションと組
    織が同時に成長
    このソフトウェア開発手法がマイクロサービス
    serviceA
    serviceB
    serviceC
    Service
    TeamB
    TeamA TeamC
    Team
    serviceN
    TeamN

    View full-size slide

  60. マイクロサービスの進化と挑戦
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    61
    • サービスによるコンポーネント化
    • ビジネス機能に基づいたチーム編成
    • プロジェクトではなく製品として捉えて開発運用
    • インテリジェントなエンドポイントシンプルなパイプ
    • 非中央集権的な言語やツールの選択
    • 非中央集権的なデータ管理
    マイクロサービスの9つの特徴
    マイクロサービスにおけるガイドライン
    • ITインフラの自動化(Infrastructure as Code)
    • 障害、エラーを前提とした設計
    • 先進的な設計
    James Lewis/Martin Fowlerの"Microservices" | https://martinfowler.com/articles/microservices.html

    View full-size slide

  61. マイクロサービスの進化と挑戦
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    62
    https://www.itmedia.co.jp/enterprise/articles/1810/11/news049.html
    2018年にメルカリがマイクロサービスアーキテクチャを採用して、組織、サービス、そして企業としても拡大を目指し、
    継続中。

    View full-size slide

  62. マイクロサービスの進化と挑戦
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    63
    モノリスからマイクロサービス
    アプリケーション
    モノリス
    アプリケーション
    アプリケーション
    アプリケーション
    アプリケーション
    マイクロサービス
    ServiceA
    ServiceB
    ServiceC
    ServiceD
    Service

    View full-size slide

  63. マイクロサービスの進化と挑戦
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    64
    そして、モダナイズ
    クラウドネイティブ技術を利用したマイクロサービス
    Virtual Machine
    OKE
    ServiceA ServiceB
    ServiceD
    ServiceC
    Service

    View full-size slide

  64. コンテナにおけるマイクロサービスを実現する技術
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    65
    Service Mesh
    アプリケーションとプロキシ機能の分離
    アプリケーションプロセスごとに専用のプロキシを配
    置して、そのプロキシにネットワーク周りの仕事をま
    かせる
    App Proxy
    container container
    Pod
    プロキシ機能の中央管理
    プロキシ機能は大量になるのでコンフィグレーションの管理コスト
    が増加。中央にプロキシ機能の管理するコントロールプレーンを
    配置して効率的に管理

    View full-size slide

  65. ビジネス面におけるマイクロサービス
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    66
    ビジネスには進化のスピードと品質が求められる
    • サービスの早期リリース
    • 市場の動向/反応を早期フィードバックして対応
    • サービス停止による機会損失をなくす
    システムは変化するビジネス要件に合わせ短い時間で高頻
    度にリリースすることが求められる
    • アプリの変更をすぐに本番環境に適用
    • 変化を許容できるシステムを構築
    • 停止時間の短縮と運用作業の効率化
    業務
    効率化
    ビジネス
    創造
    社外
    社内業務の
    効率化
    社外顧客向け
    新ビジネス
    創造
    社内
    高頻度かつ即時に本番反映
    可能なアプリケーションが必要

    View full-size slide

  66. マイクロサービスの特徴
    Microservices
    Copyright © 2022, Oracle and/or its affiliates
    67
    マイクロサービス・アーキテクチャ
    大規模なシステムを疎結合な複数のサービスの組み合わせで実現する設計方式
    • アップデートの容易性
    • スケールの容易性
    • 高可用性

    View full-size slide

  67. 68 Copyright © 2022, Oracle and/or its affiliates
    Microservices
    マイクロサービスの特徴
    アップデートの容易性
    • 他のサービスへの影響を極小化し
    た形で、アップデート対象のサービ
    スのみをアップデート可能
    • 高頻度にサービスのアップデートが
    可能
    スケールの容易性
    • 他のサービスに影響を与えること
    なく、必要なサービスのみをスケー
    ルアウト可能
    • 使用するリソースを最適化
    高可用性
    • サービスが独立しているため、障
    害の影響を極小化
    • 残ったサービス群でサービス提供
    を継続していくことが可能
    アップデート スケール 障害発生
    影響なし

    View full-size slide

  68. Copyright © 2022, Oracle and/or its affiliates
    69
    マイクロサービスには文化的側面と技術的側面があり、その調和の最終的に目指すところは?
    マイクロサービスも結局
    Microservices
    速く、正確に高品質なサービスを提供して、エンドユーザ様の満足度、企業収益、ビジネス価値の向上
    これまで学んできたクラウドネイティブの意義と同じ!

    View full-size slide

  69. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    70
    Observability

    View full-size slide

  70. 71 Copyright © 2022, Oracle and/or its affiliates
    Observability
    そもそも監視って?
    Monitoring = 監視、観察して記録する
    何のために、監視、観察して記録する?
    • サービスやアプリケーションの健全性を確認
    • 障害やトラブルの原因調査
    • キャパシティ分析
    • サービス利用者の行動分析
    サービスやシステムを利用するユーザに影響を与えないため
    技術、運用、ビジネスなどに多岐にわたる

    View full-size slide

  71. 72 Copyright © 2022, Oracle and/or its affiliates
    Observability
    そもそも監視って?
    サービスやシステムの利用者が、問題なく利用できる、「安定稼働している状態」を維持する!
    監視の意義
    • より良い方法で、システムの稼働状況を把握できている状態
    • システム運用において、判断に必要となる情報を取得できている状態
    • 迅速に障害やトラブルに対応できる状態
    これまでもこれからも、こうした本質は変わらない

    View full-size slide

  72. 73 Copyright © 2022, Oracle and/or its affiliates
    Observability
    オブザバビリティの背景
    これまでのシステム
    従来のWeb3層モデルのようなシンプルな構成のシステムであれば、比較的容易に障害を調査することが可能。
    LB/Web/App/DBなど
    それぞれのコンポーネント
    を追いやすい

    View full-size slide

  73. 74 Copyright © 2022, Oracle and/or its affiliates
    Observability
    オブザバビリティの背景
    分散システム
    分散システムのような小さなサービスが疎結合するようなシステムでは、構成が複雑となり障害発生個所や原因追求が
    困難であり、まして人の手で行うことは非現実的。
    それぞれのコンポーネント
    を追うのは非現実的

    View full-size slide

  74. 75 Copyright © 2022, Oracle and/or its affiliates
    Observability
    オブザバビリティの背景
    分散システム
    右図にあるような分散システムでは、大量のサービスが連携して、
    一つのシステムとして成り立っているため、障害が発生した際の検
    知など、これまでのように容易にはいかない…
    『Adoption of Cloud Native Architecture, Part 2: Stabilization Gaps and Anti-Patterns』
    https://www.infoq.com/articles/cloud-native-architecture-adoption-part2/

    View full-size slide

  75. 76 Copyright © 2022, Oracle and/or its affiliates
    Observability
    オブザバビリティとは?
    オブザバビリティの意味
    Observability might mean different things to different people.
    可観測性は、人によって意味が異なる場合があります。
    『 Distributed Systems Observability』
    https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/
    Observability = 可観測性
    Observability(可観測性)は、人によってまたはシステムによって基準、観点、解釈の仕方が違うものなので
    本セッションの内容も一例と捉えてください。

    View full-size slide

  76. 77 Copyright © 2022, Oracle and/or its affiliates
    Observability
    オブザバビリティとは?
    クラウドネイティブにおけるオブザバビリティ
    Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and
    hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
    These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow
    engineers to make high-impact changes frequently and predictably with minimal toil.
    クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実
    行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型APIがありま
    す。
    これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変
    更を最小限の労力で頻繁かつ予測どおりに行うことができます。
    『 CNCF Cloud Native Definition v1.0』
    https://github.com/cncf/toc/blob/main/DEFINITION.md
    クラウドネイティブの文脈では、Observability(可観測性)は、
    クラウドネイティブなシステムを実現するまたは支える一要素

    View full-size slide

  77. 78 Copyright © 2022, Oracle and/or its affiliates
    Observability
    オブザバビリティとは?
    クラウドネイティブにおけるオブザバビリティ
    Kubernetes上のPod(コンテナ)を例に考えてみると、決められたNodeに決められたPod(コンテナ)が稼働するとは限らな
    いため、これまでの監視方法とは違うアプローチが必要となる。
    OKE
    Virtual
    Machine
    Virtual
    Machine
    Virtual
    Machine
    Operator
    Node状況、Kubernetes
    Cluster状況(Podなど)、
    アプリケーション、データベー
    スなど色々ある

    View full-size slide

  78. 79 Copyright © 2022, Oracle and/or its affiliates
    Observability
    オブザバビリティとは?
    • 人またはシステムによって基準・観点は異なる
    • クラウドネイティブなシステムを実現するまたは支える一要素
    • 従来のシステムとは異なるアプローチが必要(分散システム、コンテナなど)
    • より良い方法で、システムの稼働状況を把握できている状態
    • システム運用において、判断に必要となる情報を取得できている状態
    • 迅速に障害やトラブルに対応できる状態
    この本質も不変!

    View full-size slide

  79. 80 Copyright © 2022, Oracle and/or its affiliates
    Observability
    Observabilityを実現する3要素
    Metrics
    Logs
    Traces
    各要素が連携してObservabilityを実現
    させることが重要
    特定の時間間隔で測定して統
    計したもの
    発生したイベントをタイムスタンプで記録
    したもの
    依存関係がある一連のリクエストフ
    ローを始まりから終わりまでを変換し
    たもの
    何が起きているのか
    何が起きたのか
    どこで起きたのか

    View full-size slide

  80. 81 Copyright © 2022, Oracle and/or its affiliates
    Observability
    Observabilityを実現する3要素
    Observabilityを実現する主なツール
    Metrics Logs Traces
    Prometheus & Grafana Grafana Loki EFK Jaeger Zipkin Open Telemetry

    View full-size slide

  81. 82 Copyright © 2022, Oracle and/or its affiliates
    Observability
    Observabilityを実現する3要素
    Observabilityを実現する主なOCI Service
    Metrics Logs Traces
    Monitoring Logging Application Performance Monitoring
    Logging Analytics
    Notifications

    View full-size slide

  82. Copyright © 2022, Oracle and/or its affiliates
    83
    オブザバビリティは、クラウドネイティブシステムを支える
    速く、正確に高品質なサービスを提供して、エンドユーザ様の満足度、企業収益、ビジネス価値の向上
    提供だけではなく、常にユーザエクスペリエンスを損なうことが無いよう維持、
    そして、障害やトラブルが発生した場合も速く、正確に対応できる体制も維持する!
    Observability

    View full-size slide

  83. Cloud Native Database

    View full-size slide

  84. 85 Copyright © 2022, Oracle and/or its affiliates
    Cloud Native Database
    クラウドネイティブ時代のデータベース
    OKE
    DB DB DB
    サービスA サービスB サービスC
    マイクロサービス1つに1つのDBを備える構成、「Database per Service」という原則において、マイクロサービス側のア
    ジリティ、可用性、拡張性をDB側もどうアプローチしていくべきなのか?
    コンテナの特性を生かした小さなデ
    プロイ単位によるアジリティの向上
    サービス単位ごとの可用性 サービス単位ごとの拡張性
    データの整合性を保ち、永続化が必要となるDB、アジリ
    ティへのアプローチはどうする??
    DBレプリカにおけるプラットフォームの広域災害、そ
    れに伴うパフォーマンスや整合性にどう備える??
    サービスのスケールにおける
    DBの拡張性はどうする??

    View full-size slide

  85. 86 Copyright © 2022, Oracle and/or its affiliates
    Cloud Native Database
    クラウドネイティブ時代のデータベース
    OKE
    サービスA サービスB サービスC
    各クラウド事業者が提供するマネージドのDBサービス(DBaaS)を利用して、スケール、リードレプリカ、マルチクラウド、
    マルチリージョンなどをベースに可用性、拡張性を高める。
    DBaaS Autonomous
    Database
    MySQL Database
    Service
    NoSQL Database
    Cloud Service

    View full-size slide

  86. 87 Copyright © 2022, Oracle and/or its affiliates
    Cloud Native Database
    クラウドネイティブ時代のデータベース
    OKE
    サービスA サービスB サービスC
    Kubernetesにおいては、Operatorを利用して、DBのようなステートフルなソフトウェアをステートレスなアプリケーションと
    同様に効率的に運用・保守(可用性、拡張性含む)を高める。
    Operator
    Oracle
    Database Operator
    Oracle
    MySQL Operator

    View full-size slide

  87. 88 Copyright © 2022, Oracle and/or its affiliates
    Cloud Native Database
    クラウドネイティブ時代のデータベース
    OKE
    サービスA サービスB サービスC
    水平方向の拡張性を備えながら、地理的に離れた所へのレプリカ配置を可能とするなどNoSQLのような特徴を持ちつ
    つ、ACID準拠のトランザクションを保証し、SQLが利用可能なRDBとしての特性も併せ持つデータベース。
    NewSQL
    CockroachDB
    TiDB
    yugabyteDB
    互換
    互換

    View full-size slide

  88. OCI Cloud Native Services

    View full-size slide

  89. アプリケーションの開発・運用を支援するマネージド・サービス
    Oracle Cloud Native Services
    Copyright © 2022, Oracle and/or its affiliates
    90
    Storage
    OCI Core Infrastructure Compute Database Networking
    OCI Cloud Native Landscape
    開発・運用管理ツール
    アプリケーション実行基盤 API 管理
    Oracle Functions
    API Gateway
    サービス間連携 オブザーバビリティ
    OCI DevOps OCI Registry
    Resource
    Manager
    OCI
    Service Mesh
    OCI
    Workflow*
    Container Engine
    for Kubernetes
    (Managed/Virtual Nodes*)
    メッセージング
    Queue* Streaming
    Service
    Connector Hub
    Notifications
    Application
    Performance
    Monitoring
    Logging
    Monitoring
    Events
    Container
    Instance*
    *: Coming Soon!
    WebLogic Server
    for OCI/OKE
    OTMM
    (Free版)
    開発フレームワーク
    Helidon
    MP/SE
    Micronaut

    View full-size slide

  90. OCI DevOps Demo

    View full-size slide

  91. 92 Copyright © 2021, Oracle and/or its affiliates
    OCI DevOps Demo
    コード
    管理
    ビルド
    成果物
    管理
    デプロイ
    End to End の開発・運用プロセス 幅広い環境に対応
    コード管理、ビルド・パイプライン、 成果
    物管理、デプロイメント・パイプラインから
    構成される各機能を用いた、一気通貫
    の開発・運用プロセスを実現
    アーティファクトサービスと連携、実行環
    境を問わず、幅広い環境へのデプロイ
    を実現
    OCI DevOpsのサービスとしての価
    格は無料
    ソフトウェアをビルド、テスト、およびデプロイし、開発ライフサイクルの各フェーズを自動化
    Bare Metal
    Compute
    &
    Virtual
    Machine
    OKE
    Functions
    価格無料
    OCIR
    Artifact
    Registry
    環境管理
    アーティファクト管理
    (*コード・リポジトリのストレージ、およびビルドのためのコン
    ピュートは別途必要)

    View full-size slide

  92. 93 Copyright © 2021, Oracle and/or its affiliates
    OCI DevOps Demo
    ソフトウェアをビルド、テスト、およびデプロイし、開発ライフサイクルの各フェーズを自動化
    Environment
    Build Pipeline: CI
    Deployment Pipeline: CD
    Artifact
    ■ ユースケース
    継続的インテグレーション/継続的デリバリー(CI/CD)
    の実現、アプリケーション開発のライフサイクルを想定した
    システム開発および運用環境の整備
    ■ 特徴
    Code Repository:ソースコード管理(Git)
    Build Pipeline (CI):ソフトウェアビルドの自動化
    Artifact:成果物管理
    Environment:デプロイ先管理
    (Compute,OKE,Functions)
    Deployment Pipeline (CD) :デプロイの自動化
    ■ 価格
    無料
    (*コード管理のストレージ、およびビルドのためのcomputeは別途必要) BM & VM
    Compute
    OKE Functions
    Developer
    開発環境
    デプロイ
    統合テスト
    実行
    承認 本番環境
    デプロイ
    ビルド
    実行
    成果物
    検証
    成果物
    デリバリ
    Code
    Repository OCIR
    Artifact
    Registry
    OCI
    DevOps

    View full-size slide

  93. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    94
    環境構築後、コード変更とGit Pushをトリガーに、一連のパイプラインを自動実行、OKEクラスタにサンプルコンテナアプ
    リケーションがデプロイを確認

    View full-size slide

  94. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    95
    1.OKEセットアップ
    Oracle Container Engine for Kubernetesを利用して、3ノードのKubernetesクラスタを構築

    View full-size slide

  95. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    96
    2. OCI Notifications セットアップ
    OCI Notificationsと連携して、登録したメールアドレスにOCI DevOpsから通知を受け取ることができるようにする

    View full-size slide

  96. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    97
    3.プロジェクト
    OCI DevOpsは、プロジェクト単位で管理するため、最初にプロジェクトを作成

    View full-size slide

  97. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    98
    4.環境
    OCI DevOpsからOKEクラスタにアプリケーションのデプロイを行うために、OKEクラスタを登録

    View full-size slide

  98. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    99
    5.コード・リポジトリ
    独自のプライベート・コードリポジトリをOCI DevOps上に作成

    View full-size slide

  99. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    10
    0
    6.アーティファクト
    ビルドパイプラインでビルドしたコンテナイメージを格納するコンテナイメージレジストリのセットアップとOCI DevOpsから
    OKEクラスタにデプロイする際に利用するマニフェストをアーティファクトレジストリに登録

    View full-size slide

  100. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    101
    7.デプロイメント・パイプライン
    アーティファクト・レジストリと連携して、OKEクラスタにアプリケーションを自動デプロイするためのパイプラインを作成

    View full-size slide

  101. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    102
    8.ビルド・パイプライン
    コードリポジトリからソースをダウンロードして、コンテナイメージビルド、コンテナイメージをOCIRに格納、デプロイメント・パ
    イプライン連携という一連の流れをビルド・パイプラインとして作成

    View full-size slide

  102. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    103
    9.トリガー
    ソースコードを変更して、コードリポジトリへの「git push」コマンド実行をトリガーに、これまで作成してきた「ビルド・パイプ
    ライン」、「デプロイメント・パイプライン」が自動で稼働して、OKEクラスタにアプリケーションがデプロイ可能にする

    View full-size slide

  103. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    104
    10.パイプラインの実行 / 11.デプロイの確認
    実際にソースコードを変更して、「git push」をトリガーにOKEクラスタへの自動デプロイを実行

    View full-size slide

  104. OCI DevOps Demo
    Copyright © 2021, Oracle and/or its affiliates
    105
    サンプルアプリケーションのソースコード、環境構築テキストは、以下を参照
    https://github.com/oracle-japan/oracle-developer-days-2021-ocidevops-hol
    GitHub
    Tutorial
    https://oracle-japan.github.io/ocitutorials/cloud-native/devops-for-commons
    https://oracle-japan.github.io/ocitutorials/cloud-native/devops-for-beginners-oke/
    Oracle Cloud Infrastructure(OCI) DevOps 事前準備
    Oracle Cloud Infrastructure(OCI) DevOps ことはじめ - OKE編 -

    View full-size slide

  105. Copyright © 2021, Oracle and/or its affiliates
    106
    Demo

    View full-size slide

  106. Copyright © 2022, Oracle and/or its affiliates
    108
    2022/11/21-22
    https://event.cloudnativedays.jp/cndt2022
    ハイブリッド開催!
    有明セントラルタワーホール&カンファレンス
    +オンライン
    参加費無料
    #CNDT2022

    View full-size slide

  107. Oracle Code Night Online
    様々なテーマで開催中︕
    Oracle Code online 開催情報は
    Connpass で公開中︕
    oracle-code-tokyo-dev.connpass.com
    過去開催 Oracle Code online は
    YouTubeにて公開中︕
    youtube.com/c/JapanOracleDevelopers

    View full-size slide

  108. Thank you
    110 Copyright © 2020, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted

    View full-size slide