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

Azure Kubernetes Service を活用したマイクロサービス開発/Ignite-tokyo

TonyTonyKun
December 06, 2019

Azure Kubernetes Service を活用したマイクロサービス開発/Ignite-tokyo

Microsoft Ignite the Tour Tokyo のブレイクアウトセッションスライドです。

TonyTonyKun

December 06, 2019
Tweet

More Decks by TonyTonyKun

Other Decks in Technology

Transcript

  1. 会社紹介 Innovation DevOps 新技術を中心とした革新的 なソリューションを提供 構築した資産を活用し、ITのよる価値 創造を最大最速にするクラウド環境を 活用した 開発・運用プロセスの構築・ 定着化を支援

    ・マイクロサービス アーキテクチャ ・コンテナライズド アーキテクチャ ・API マネジメント導入 ・開発プロセス標準化推進 ・DevOps 導入支援 お客様の利用用途に応じた最適なソフトウェア アーキテクチャ を提案 ・クラウド移行 ・アーキテクチャ構築 ・標準化推進 ・技術トレーニング Strategy
  2. マイクロサービス アーキテクチャ Item Master API Stock Command API Stock Query

    API Stock Processor API POS API BOX API Smart Box Mobile App IoT Hub App Center Push Notification Change Feed Observability( Metrics / Logging / Distributed Tracing ) Azure Monitor Application Insights Functions Cosmos DB Functions Functions Functions Functions Functions Cosmos DB Cosmos DB Cosmos DB SQL DB
  3. マイクロサービス アーキテクチャ Item Master API Stock Command API Stock Query

    API Stock Processor API POS API BOX API Smart Box Mobile App IoT Hub App Center Push Notification Azure Kubernetes Service Observability( Metrics / Logging / Distributed Tracing ) Azure Monitor Application Insights Cosmos DB Change Feed BOX POS Stok Item Master Stock SQL DB
  4. Kubernetes のアーキテクチャ 構成要素 説明 Master Node Node の稼働状況やリソース消費を管理する Node コンテナーが配置される実行環境

    Pod 単一もしくは複数のコンテナーをまとめて管理する単位 Kubernetes Master Node Node ( VM ) Node Container Container Pod Node ( VM ) Container Container Pod Node ( VM )
  5. Kubernetes のアーキテクチャ 構成要素 説明 Service 外部IPアドレスを構成し、コンテナのアプリケーションを公開する。 複数の Node に配置された Pod

    へロードバランスする。 Container Pod Node ( VM ) Container Container Pod Node ( VM ) Container Service Kubernetes Client
  6. Kubernetes のアーキテクチャ 構成要素 説明 Deployment 複数の Replica Set を管理し、ローリングアップデートを行う。 Replica

    Set Pod のレプリカ数を管理し、スケールアウト/インでレプリカ数を増減させ る。Pod の稼働状況を監視し、必要に応じて新しい Pod を立ち上げる。 Deployment Kubernetes Pod Pod Replica Set (v.1.0.0) Pod Pod Replica Set (v.2.0.0)
  7. マイクロサービスの開発ライフサイクル Local Dev Team B Team A Azure DevOps Azure

    Container Registry 開発環境 開発 / テスト / 本番環境 Repository Pipeline Azure Kubernetes Service Azure Kubernetes Service Azure Kubernetes Service
  8. 2. Nginx Ingress Controller で外部向けエンドポイントを公開する ※ Azure ポータルから設定できる HTTP Application

    Routing アドオンの本番運用は非推奨です。 POS Service Client Item Service Nginx Ingress Controller /pos /item Ingress.yaml Ingress.yaml Kubernetes Cluster
  9. 3. アップグレード戦略には Blue / Green デプロイを採用する ※ サービスメッシュの Istio を使わなくても、Blue

    / Green デプロイが可能 POS Service Client Nginx Ingress Controller Kubernetes Cluster Pod Pod pos-api v1 pos-api v1 pos-api v2 Service
  10. 3. アップグレード戦略には Blue / Green デプロイを採用する Nginx Ingress Controller Microservices

    ( Pod ) Kubernetes Cluster v 1.13.12 Nginx Ingress Controller Kubernetes Cluster v 1.14.11 Microservices ( Pod ) Application Gateway V2 Data Store
  11. 6. Azure Monitor でマイクロサービスを監視する Kubernetes Docker Application Container(Pod) アプリ監視 インフラ・ミドル

    ウェア監視 Application Insights Azure Monitor for Containers OS VM マイクロサービス プラットフォーム