66
Confidential & Proprietary Kubernetes / Container による開発』䛾 導入難易度 メリット 株式会社サイバーエージェント adtech studio Infrastructure Engineer 青山 真也(@amsy810

Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Confidential & Proprietary

『Kubernetes / Container による開発』

導入難易度 と メリット

株式会社サイバーエージェント

adtech studioInfrastructure Engineer

青山 真也(@amsy810)

Page 2: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

出版・登壇(一部抜粋)

 Kubernetes 完全ガイド、みんな Docker / Kubernetes 著者

 Japan Container Days v18.04 基調講演

 情報処理学会 コンピュータシステムシンポジウム 招待講演

 Developers Summit 招待講演

 CKAD #2、CKA #138

Masaya Aoyama (@amsy810)

Infrastructure Engineer

コミュニティ

 Cloud Native Days Tokyo Co-chair (旧 Japan Container Days)

 Cloud Native Meetup Tokyo Organizer

 Kubernetes Meetup Tokyo Organizer

 KubeCon 日本交流会 Organizer

 Contribute to OpenStack and Kubernetes

主業務 KaaS 実装 / 運用K8s 関連 アーキテクト

Page 3: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

and

● 早いところで 2016 年頃から Kubernetes を採用

● 採用が早かった もあり、GKE とオンプレミス 採用が多い

● オンプレミスで 独自 Kubernetes as a Service 基盤を構築

● 新規事業 多くが Kubernetes / Container を利用した開発

● レガシーシステム マイグレーションなども一部で 実施

Page 4: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

https://speakerdeck.com/chokkoyamada/midoruuea-webapurimadequan-tewohelmhua-sitasabisufalseyun-yong-shi-li

https://speakerdeck.com/wappy100/legacy-to-container

https://speakerdeck.com/masayaaoyama/saibaezientoniokerupuraibetokontenaji-pan-akewozhi-eruji-shu

CyberAgent 事例 @Japan Container Days v18.12 / v18.04

Page 5: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

What is ?

Page 6: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Container Orchestration System 1 つ

Google クラスタマネージャ Borg を元にした OSS

長年 Google 経験が Kubernetes に引き継がれている

現在 Cloud Native Computing Foundation が中立的にホスト

コミュニティによって改良

Page 7: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

This is era.

Page 8: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

時代 Kubernetes。

一般 ご家庭に 、インスタ映え する手 ひらクラスタ。

みなさん当然持ってますよ ?

Page 9: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

is

Container Orchestration System

Page 10: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

What is Orchestration?

And that’s history?

Page 11: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Bootstrapping

Configration

Orchestration

Classification of “Provisioning”サーバ 準備

OS インストール

サーバ セットアップ

ミドルウェア インストール・セットアップ

アプリケーション 配置

Provisioning Toolchain, Lee Thompson, 2010-03-17(https://conferences.oreilly.com/velocity/velocity-mar2010/public/schedule/detail/14180)

Page 12: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Bootstrapping

Configration

Orchestration

Baremetal Era - Part 1

温かみ ある 手順書 と 手動構築

温かみ ある 手順書 と 手動設定

温かみ ある 手順書 と 手動配置

Page 13: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Bootstrapping

Configration

Orchestration

Baremetal Era - Part 2

Kickstart

Shell Script

社内ツール、Jenkins

自動化 始まり

But各社秘伝 コードにな

りがち

Page 14: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Bootstrapping

Configration

Orchestration

Cloud Era - Part 1

Terraform

Chef、Ansible、

Puppet、Salt

Fabric、Capistrano

構 化 / 共通化された

自動化 始まり

But再現性が高く ない

構築に時間がかかる

Page 15: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Bootstrapping

Configration

Orchestration

Cloud Era - Part 2

( Terraform )

Packer、Cloud Image

OpenStack HeatAWS Cloud Formation

イメージ化による

高い再現性

Orchestration がBootstrapping を一部兼 る状態に

Butあまり簡単で ない

Page 16: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Bootstrapping

Configration

Orchestration

Cloud Native Era - (Now)

( Terraform )

Docker

Kubernetes

容易なイメージ化

軽量なイメージ

高 な起動と停止

高い抽象度とクラウド非依存

宣言的な API と Code洗練された自動化

But新しい考え方や体制が必要

Page 17: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

What is Cloud Native?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.

The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.

CNCF Cloud Native Defenition v1.0, CNCF, 2018-11-28(https://github.com/cncf/toc/blob/master/DEFINITION.md)

Page 18: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

What is Cloud Native?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.

The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.

CNCF Cloud Native Defenition v1.0, CNCF, 2018-11-28(https://github.com/cncf/toc/blob/master/DEFINITION.md)

• 疎結合なシステム

• 復元力がある

• 管理しやすい

• 可観測である

• 堅牢な自動化により、頻繁かつ期待通りに最

小限 労力で大きな変更が可能

Open かつ Scalable なシステムを実現

Page 19: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Towards

Cloud -> Cloud Native

Page 20: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Cloud Native Trail Map

Trail Map, CNCF, 2019-03-18, (https://github.com/cncf/trailmap)

本日 CI / CD パート 飛 しますが、非常に重要な要素 1 つです。

Page 21: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Merit at first step

Containerization with Docker

Page 22: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

1. 容易なイメージ化と再現性 by Docker

アプリケーション と 実行環境 イメージ化

 =再現性 高い環境

アプリケーション ビルドもコンテナイメージ ビルド時に実施

OCI v1.0 によるポータビリティ

ローカル環境でも同等 動作が保証される

Page 23: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

2. 軽量なイメージ by Docker

VM イメージと比べて軽量

単一プロセス みを稼働させるため、軽量 OS 選定もしやすい

Page 24: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

3. 高 な起動と停止 by Docker

仮想マシン 起動と停止より高

 コンテナ 起動と停止 プロセス 起動と停止相当

高 な スケールアウト や 障害時 復旧 が可能

Page 25: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Containerization まとめ

1. 容易なイメージ化と再現性

2. 軽量なイメージ

3. 高 な起動と停止

レガシーシステム マイグレーションもスタート地点 ここから

実行環境込み アプリケーションをSystemd に置き換えるイメージ

Page 26: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Merit at next step

Orchestration with Kubernetes

Page 27: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

1. 高い抽象度とクラウド非依存 by Kubernetes

Load Balancer や Storage なども抽象化

利用者から見るとクラウド固有 知識がほぼ不要

 vs Terraform、OpenStach Heat、AWS Cloud Formation

ベンダーニュートラルな実行基盤

基本的に ポータビリティがある

Page 28: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

2. 宣言的な API と Code by Kubernetes

開発者

Register

YAML Manifest

Kubernetes Cluster

構成情報 Manifests で宣言的に記述して API に登録

(Infrastructure as Code)

$ kubectl apply –f

manifest.yaml

Page 29: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)複数コンテナ 管理

コンテナ レプリカを作成し

指定した数 コンテナを維持

 (厳密に Pod)

Page 30: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)複数コンテナ 管理

コンテナ レプリカを作成し

指定した数 コンテナを維持

Page 31: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)Load Balancer と 連携転送先 ポート番号と

対象とするコンテナを指定

Load Balancer

Page 32: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)Load Balancer と 連携転送先 ポート番号と

対象とするコンテナを指定

Load Balancer

Page 33: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Control Loop と Reconciliation開発者

マニフェスト 登録Pod 個数を確認し、

必要に応じて Pod 作成や削除

1. 現在 状態を観測

2. 現在 状態と理想状態を比較

3. 差分に対処する処理を実施(Reconcilation)

→ Control Loop

Page 34: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

3. 洗練された自動化 by Kubernetes

例)障害時 セルフヒーリング

ReplicaSet で コンテナ Replica 数を維持し続ける

 = 障害などでコンテナが不足した場合 、別 Node 上で高 に起動

Page 35: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

3. 洗練された自動化 by Kubernetes

例)アプリケーション アップグレード (厳密に Deployment リソースが必要)

Load Balancer

開発者 マニフェストを変更するだけ

Page 36: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

3. 洗練された自動化 by Kubernetes

例)アプリケーション アップグレード (厳密に Deployment リソースが必要)

Load Balancer• ロードバランサから 除外

• コンテナイメージ アップデート

• Immutable Infrastructure

• ロードバランサへ 追加

Page 37: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

3. 洗練された自動化 by Kubernetes

例)アプリケーション アップグレード (厳密に Deployment リソースが必要)

Load Balancer• ロードバランサから 除外

• コンテナイメージ アップデート

• Immutable Infrastructure

• ロードバランサへ 追加

Page 38: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

3. 洗練された自動化 by Kubernetes

例)アプリケーション アップグレード (厳密に Deployment リソースが必要)

Load Balancer• ロードバランサから 除外

• コンテナイメージ アップデート

• Immutable Infrastructure

• ロードバランサへ 追加

Page 39: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

3. 洗練された自動化 by Kubernetes

例)コンテナ(プロセス)単位 ヘルスチェック

例)コンテナ(プロセス)起動前 初期化処理

例)コンテナ(プロセス)停止時 SIGNAL

例)コンテナ(プロセス)開始直後、停止直前 フック

そ 他にも 様々な自動化 や 豊富な機能 が実装されており、

様々なワークロードに対応可能

Page 40: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

4. 豊富なエコシステムと拡張性 by Kubernetes

CNCF Cloud Native Interactive Landscape, CNCF, 2019-03-18, (https://landscape.cncf.io/)

他 Container Orchestration System に ない

豊富なエコシステムが様々な要件に対応

Page 41: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)MySQL Cluster on Kubernetes

開発者 マニフェスト 登録複数個 コンテナを起動し

MySQL Cluster を構成

1. 現在 状態を観測

2. 現在 状態と理想状態を比較

3. 差分に対処する処理を実施(Reconcilation)

→ Control Loop

Page 42: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)CI/CD on Kubernetes

開発者 マニフェスト 登録Kubernetes 上で

CI/CD Workflow を展開

1. 現在 状態を観測

2. 現在 状態と理想状態を比較

3. 差分に対処する処理を実施(Reconcilation)

→ Control Loop

Page 43: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)Serverless on Kubernetes

開発者 マニフェスト 登録Kubernetes 上に

Serverless 環境を構築

1. 現在 状態を観測

2. 現在 状態と理想状態を比較

3. 差分に対処する処理を実施(Reconcilation)

→ Control Loop

Page 44: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)Service Mesh on Kubernetes

開発者 マニフェスト 登録Kubernetes 上で

Service Mesh を構築

1. 現在 状態を観測

2. 現在 状態と理想状態を比較

3. 差分に対処する処理を実施(Reconcilation)

→ Control Loop

Page 45: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)Managed Service via Kubernetes

開発者 マニフェスト 登録Kubernetes から

マネージドサービスを管理

1. 現在 状態を観測

2. 現在 状態と理想状態を比較

3. 差分に対処する処理を実施(Reconcilation)

→ Control Loop

Cloud SQL

Page 46: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

例)YOUR FEATURES with Kubernetes

開発者 マニフェスト 登録独自 処理を記述可能

kubebuilder / Operator SDK

1. 現在 状態を観測

2. 現在 状態と理想状態を比較

3. 差分に対処する処理を実施(Reconcilation)

→ Control Loop

Page 47: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Orchestration まとめ

1. 高い抽象度とクラウド非依存

2. 宣言的な API と Code3. 洗練された自動化

4. 豊富なエコシステムと拡張性

コンテナ 導入 比較的容易

Kubernetes 導入 多少 覚悟 必要

Page 48: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

difficulty

Cloud -> Cloud Native

Page 49: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

導入難易度

● アプリケーション アーキテクチャ

● セキュリティと分離性

● Kubernetes 学習コスト

● Kubernetes クラスタ 運用

Page 50: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

1. アプリケーション アーキテクチャ

基本的に マイクロ/ミニ サービスに適した技術

いつでも停止できるように SIGTERM ハンドリング 必須

 ノード アップグレード、コンテナイメージ アップデート

Service Discovery 経由で通信

ネットワークに一部制約がある(Source IP が消失する等)

Page 51: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

2. セキュリティと分離性

仮想化 分離性

 runC(標準 Docker)で Kernel 共有

 gVisor など分離性 高い Conteiner Runtime が登場

ネットワーク 分離性

 Network Policy を利用できない環境で 、

 コンテナ間 通信 筒抜け

Page 52: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

3. Kubernetes 学習コスト

学習コスト 小さく ないも 、懸念するほどで ない(CyberAgent 全社横断アンケートより)

コンテナで 開発をスタートした時 学習コスト 辛かったか?

今後もコンテナを用いて開発したいか?

みんな Docker / Kubernetes, 技術評論社, 2019-04-18 (https://www.amazon.co.jp/dp/429710461X)

Page 53: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

(再掲)私 メインミッション 1 つオンプレミス上 Kubernetes as a Service

構築・運用

Page 54: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

一番辛い

Kubernetes クラスタ 管理

Page 55: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

4. Kubernetes クラスタ 運用 つらみ

etcd バックアップ

Kubernetes Master スケールアップ

Kubernetes バージョン アップグレード

Kubernetes クラスタ オートスケール

障害時 ノード復旧

コンテナランタイム(Docker / runC) 管理

OS(Kernel) 管理

etc...

Page 56: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

(オンプレ KaaS 提供者から見た)

Google Kubernetes Engine 強みKubernetes Master 管理

Container-Optimized OS

ノード 自動復旧

クラスタ 自動アップグレード

クラスタ オートスケーリング

ノード自動プロビジョニング

マルチクラスタマネジメント、etcGKE On-prem, Google Cloud Platform, 2019-03-25, https://cloud.google.com/gke-on-prem/

Page 57: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

マネージド Kubernetes サービス 選定基準

● マネージド 範囲

● クラスタマネジメント 自動化機能

● Kubernetes バージョン 追従スピード

● 他 マネージドサービスと インテグレーション

● Network 周り 要件

● そ 他(virtual-kubelet 対応 etc)

Page 58: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

and

Page 59: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

で GKE 活用

利用開始が早かったこともあり、

Kubernetes 環境として GKE が多い

Page 60: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

GKE クラスタ運用 自動化機能などをフル活用

 (一部プロダクトで 技術選定時に 未実装)

で GKE 活用

Page 61: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

レイテンシ要件 にシビアなアドテク領域で利用

新規開発 ほとんどが GKE を利用

ステートフルな部分 GCP 豊富なマネージドサービスを利用

BigQuery Cloud Pub/Sub

Cloud Storage

Cloud Bigtable

Cloud Datastore Cloud SQL Cloud

SpannerCloud

Memorystore

で GKE 活用

Page 62: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

まとめ

ネットワーク要件とセキュリティ要件が必須条件

導入難易度 クラスタ 運用が大半

 Kubernetes 利用時 学習コスト自体 そこまで高くない ず

 = 自社独自 ツールを利用する に比べたら…

Cloud Native な開発(Kubernetes / Container)を導入することで

組織力を強化し、開発効率を向上させることが可能

Page 63: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Release: 2019/04/19

発売前ですが、本日お話ししたアンケート結果 掲載許可を頂きました。[技術評論社]Docker、そしてKubernetes 活用 広まりつつありますが、それに関する書籍 多く 入門にとどまるも も多く、実際 利用に裏打ちされたノウハウについて 未だまとまった情報がない が現状です。そんななか本書で 、現場でDocker/Kubernetesを活用している読者に向けて、実践 ため 知識や事例 紹介を行います。第1部および第2部 Docker/Kubernetes活用で知られるZ Lab エンジニアによる手厚い解説、第3部 freee、Wantedly、CyberAgent、サイボウズといった幅広い企業で活躍するエンジニアによる事例紹介など、盛り沢山な内容をお届けします!

Page 64: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

[インプレス]Kubernetes 各リソースについて体系的かつ網羅的に説明Cloud Nativeな開発を促進させる周辺エコシステムについても紹介■目次案第1章 Docker 復習とHello, Kubernetes第2章 なぜKubernetesが必要な か?第3章 Kubernetes環境 選択肢第4章 APIリソースとkubectl第5章 Workloadsリソース第6章 Discovery & LBリソース第7章 Config & Storageリソース第8章 ClusterリソースとMetadataリソース第9章 リソース管理とオートスケーリング第10章 ヘルスチェックとコンテナ ライフサイクル第11章 メンテナンスとノード 停止第12章 高度で柔軟なスケジューリング第13章 セキュリティ第14章 マニフェスト 汎用化を行うオープンソースソフトウェア第15章 モニタリング第16章 コンテナログ 集約第17章 CI/CD環境第18章 マイクロサービスとServiceMesh第19章 Kubernetes アーキテクチャ第20章 Kubernetesとこれから付録

全て GKE ベースで解説(基本的にど 環境でも可)

Page 65: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

I love . and

I love GKE

Page 66: Kubernetes / Container による開発』 導入難易度 と メリット · Contribute to OpenStack and Kubernetes 主業務 KaaS 実装 / 運用 ... Serverless 環境を構築

Thank youFollow me :)

@amsy810