devops最前線:webrtc x kubernetes...devops最前線:webrtc x kubernetes...

27
Copyright © NTT Communications Corporation. All rights reserved. DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社 技術開発部 小松健作 2019年10月3日

Upload: others

Post on 14-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

DevOps最前線:WebRTC x Kubernetes〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発を!〜

NTTコミュニケーションズ株式会社

技術開発部 小松健作

2019年10月3日

Page 2: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

自己紹介

2

小松健作

エバンジェリスト@NTTコミュニケーションズ

WebRTC など各種Web技術、API技術に精通

Page 3: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

k8s(Kubernetes) 関連のアクティビティ

3

KubeCon Europe 2019 in Barcelona

https://www.youtube.com/watch?v=-f88Kp_wjxo&feature=youtu.be

Google Cloud Next '19 in Tokyo

https://www.youtube.com/watch?v=Y1m3YNQDxAo&feature=youtu.be

Page 4: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

◼ 1997 – 2000 : NTT未来ねっと研究所

◼ 2000 – 2006 : NTT東日本

• フレッツサービス(コンテンツ配信系)のシステム開発

• ひかり電話サービスのシステム開発

◼ 2006 - : NTTコミュニケーションズ

• 自然言語処理系サービスのシステム開発

• WebRTC Platform (SkyWay) の開発マネージャ

略歴

4

Page 5: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

本日お伝えしたいこと

5

コンテナ/ k8s は、電話 -> インターネットぐらいのパラダイム変化 (私見)

◼ なぜ、そう思うのか?◼ なぜ、「迅速で柔軟なシステム開発」が可能になるのか?を、解説します。

Page 6: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

実例:SkyWay Media Pipeline Factory

6

https://dashboard.m-pipe.net/

Page 7: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

実例:超低遅延 Live 配信 w/ WebRTC

7

https://mpipe-l3-live.netlify.com/l3-live/9e920b0e

Page 8: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

コンテナ / k8s (Kubernetes)

概要

8

Page 9: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

プロセスと VM 双方を足して二で割ったもの

◼ OSも含めてパッケージ化されたアプリ

◼ 小さいオーバーヘッド

◼ 高い集約度

◼ 高い可搬性

◼ Docker がデファクト

コンテナの概要説明

9

“Copyright 2013-2015 Docker, Inc. All rights reserved.”

Page 10: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

◼ デモ

• docker build

• docker run

コンテナの概要説明

10

Page 11: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

◼ OSSのコンテナオーケストレーションプラットフォーム

• Google の Borg に強い影響

• クラスタリング上にコンテナを最適配置

• 容易なデプロイ・スケーリング・管理

k8s(Kubernetes) の概要説明

11

Creative Commons Attribution 4.0 International

Page 12: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

◼ デモ

• Deploy (deployment & service)

• Rolling update

k8s(Kubernetes) の概要説明

12

Page 13: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

◼ 便利なだけ?

• No!

◼ 従来システム開発の様々な課題を解決

何が従来との違いか?

13

Page 14: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

システム開発 3つのあるある

14

Page 15: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

1. 需要予測を積み上げ設計したら無駄が・・・

2. 他のソフトのせいでアップグレードできない!

3. バージョンアップしたら特定顧客に障害発生!

システム開発 3つのあるある

15

Page 16: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

1. 需要予測を積み上げ設計したら無駄が・・・

2. 他のソフトのせいでアップグレードできない!

3. バージョンアップしたら特定顧客に障害発生!

システム開発 3 つのあるある

16

Page 17: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

電話とインターネットの根本的な違い:時分割 vs パケット多重

従来システムと k8sは、電話とインターネットとの違いに似ている

閑話休題

17

時分割多重 パケット多重

Page 18: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

需要予測値をベースに、 ハードウェアを準備(VMであれば、CPUやメモリを割り当てる)

従来のシステム開発運用

18

Webサーバー

Webサーバー

Webサーバー

Appサーバー

Appサーバー

Appサーバー

Appサーバー

DBサーバー

DBサーバー

リソース、有効に使えてますか?

Page 19: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

k8sクラスタ上に各コンテナをデプロイ

統計多重効果によりリソース効率の高い設計・運用が可能に

k8sでの DevOps

19

k8sノード

k8sノード

k8sノード

Page 20: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

1. 需要予測を積み上げ設計したら無駄が・・・

2. 他のソフトのせいでアップグレードできない!

3. バージョンアップしたら特定顧客に障害発生!

システム開発 3 つのあるある

20

Page 21: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

◼ ハードウェアリソースを下げたいので、一つのサーバーに色んな機能を詰め込む

• 過去にあった話:セキュリティアップデートしようとしたら「監視エージェントの検証が出来てないので、アップデートしないでください!(汗」

従来のシステム開発運用

21

機能A

機能B

監視エージェント

Page 22: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

内部プロセス(各機能)をコンテナごとに分離(マイクロサービス)

⇨各機能(コンテナ)ごとにバージョンアップ対応可能

k8sでの DevOps

22

k8sノード

機能A

機能B

監視エージェント

Page 23: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

1. 需要予測を積み上げ設計したら無駄が・・・

2. 他のソフトのせいでアップグレードできない!

3. バージョンアップしたら特定顧客に障害発生!

システム開発 3 つのあるある

23

Page 24: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

◼ 複数の顧客に対して、共通のサーバーシステムでサービス提供

• 機能改善でサーバーシステムをバージョンアップ。特定の顧客からクレームが・・・

従来のシステム開発運用

24

サーバーNew version

Page 25: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

◼ 顧客ごとにコンテナを分離

• 問題なければバージョンアップ。トラブル時には、個別にグレードダウン

k8sでの DevOps

25

k8sノード

サーバーNew version

サーバーNew version

サーバーOld version

Page 26: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

k8sの活用により、低コスト・迅速・柔軟なシステムの運用・開発が可能に

◼ 便利

• 宣言ベース、容易なスケーリング・アップグレード

◼ 低コスト

• 統計多重効果により、効率的なシステム設計・構築

◼ 迅速・安定

• 独立性により、バージョンアップ時の他コンテナへの影響やテストコストを削減

• テナントごとにコンテナを分離し、バージョンロック機構を容易に

まとめ

26

Page 27: DevOps最前線:WebRTC x Kubernetes...DevOps最前線:WebRTC x Kubernetes 〜コンテナプラットフォームの活用で、迅速で柔軟なシステム開発 を!〜 NTTコミュニケーションズ株式会社

Copyright © NTT Communications Corporation. All rights reserved.

ご清聴ありがとうございました。