両面市場モデルによる携帯電話コンテンツ配信 プラットフォームの価格構造 … · 本論文では,携帯電話事業者によるコンテンツ配信プラットフォームを,携帯電話利用者
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
-
Upload
yahoo-japan- -
Category
Technology
-
view
394 -
download
4
Transcript of JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
ヤフー株式会社森下 大介
SpringOne Platform 2017
参加報告
- プラットフォーム周りのお話 -
2018年2月6日
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .2
自己紹介
• ヤフーに中途入社の7年目
• 広告サービスの開発に従事
• 開発部門の部長
• Java言語サポートチーム
• Java黒帯
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
今回のゴール
3
• アプリケーションプラットフォーム関連の話題や傾向を共有
• プラットフォームの使い分けについて考察
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
アジェンダ
4
• セッション紹介
• Pivotal Cloud Foundry 2.0
• Docker & Kubernetes
• プラットフォームの比較
• 使い分けの考察
• まとめ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
確認
5
使っていますか?
• IaaS
• PaaS
• コンテナ(オーケストレーション)
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
セッション紹介
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
セッション一覧
7
動画は資料がとても見やすくてイイです。
■公式サイトhttps://springoneplatform.io/sessions
■YouTubehttp://info.pivotal.io/in4I0AUzclN00C0207O2J0U
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
Kuberunetes関連
8
■Pivotal Cloud Foundry 2.0https://www.youtube.com/watch?v=_uB5bBsMZIk&list=PLAdzTan_eSPQ2uPeB0bByiIUMLVAhrPHL&index=1&t=3s
■PKS: The What and How of Enterprise-Gradehttps://www.youtube.com/watch?v=bQKra0CB5zE&list=PLAdzTan_eSPQ2uPeB0bByiIUMLVAhrPHL&index=24&t=3799s
■Deploying Spring Boot Apps on Kuberneteshttps://www.youtube.com/watch?v=RelPurLZnII&list=PLAdzTan_eSPQ2uPeB0bByiIUMLVAhrPHL&index=54
■Kubernetes for the Spring Developerhttps://www.youtube.com/watch?v=OsWXtVbTnv0&list=PLAdzTan_eSPQ2uPeB0bByiIUMLVAhrPHL&index=56
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
Cloud-Native, Microservices関連
9
■Cloud-Native Java with Spring Cloud Serviceshttps://www.youtube.com/watch?v=6lCEzgkdfds&index=25&list=PLAdzTan_eSPQ2uPeB0bByiIUMLVAhrPHL
■How to Build Spring Services for Cloud-Native Platformshttps://www.youtube.com/watch?v=MbzIqgbT1-U&list=PLAdzTan_eSPQ2uPeB0bByiIUMLVAhrPHL&index=127
■Spring Cloud Gatewayhttps://www.youtube.com/watch?v=9wocKqF15B8&t=2615s&index=78&list=PLAdzTan_eSPQ2uPeB0bByiIUMLVAhrPHL
■Introducing Micrometer Application Metricshttps://www.youtube.com/watch?v=HIUoeLYWo7o&list=PLAdzTan_eSPQ2uPeB0bByiIUMLVAhrPHL&index=49
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
Pivotal Cloud Foundry 2.0
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
概要
11
https://pivotal.io/jp/platform
以下3種類のプラットフォームで構成される。
PCFという名前はブランド名のような感じになった。
• Pivotal Application Service (PAS)
• Pivotal Function Service (PFS)
• Pivotal Container Service (PKS)
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
Before (PCF 1.x)
12
AWS GCP Azure OpenStack
BOSH
PaaS
任意のIaaS層
抽象化層
PCF 1.x
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
After (PCF 2.0)
13
AWS GCP Azure OpenStack
BOSH
任意のIaaS層
抽象化層
PCF 2.0Pivotal Application
Service (PAS)
Pivotal Container
Service (PKS)
Pivotal Function
Service (PFS)
Kubernetes
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
Pivotal Container Service
14
https://pivotal.io/platform/pivotal-container-service
略称は「PKS」(なぜ?)
Kubernetesによるコンテナオーケストレーション環境を提供する。
PaaSよりも広いワークロードに対応できる。(Statefulだったり, Linux環境依存なものなど)
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
Docker
&
Kubernetes
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
概要
16
■Docker
コンテナ型の仮想環境を提供するプロダクト。
OSを丸ごと仮想化するタイプ(VMWare等)と違い、仮想化したいアプリケーションが必要とする最低限の環境(ディレクトリ構造、コマンド、ライブラリなど)を含めてDockerイメージというアーカイブファイルにして、それをプロセスとして起動する。
■Kubernetes
コンテナオーケストレーションと呼ばれる仕組みを提供するプロダクト。
Dockerコンテナのデプロイ、ネットワーク制御、インスタンス管理などを行ってくれる。長いので、略してk8sと言ったりする。
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
試すなら
17
■Docker
Docker for Windows/Macで試せる。※以前あったDocker ToolboxはLegacy desktop solutionとのこと
• https://docs.docker.com/docker-for-mac/
• https://docs.docker.com/docker-for-windows/
■Kubernetes
minikubeでローカル環境に構築できる
• https://github.com/kubernetes/minikube
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
「Service」クラスタ内部IPアドレスを持ち、Podへのアクセス分散を行う。(L4ロードバランサ相当)
「Deployment」ReplicaSetを生成・管理し、ここでローリングアップデートやロールバックなどを実現する。
構成要素
18
「ReplicaSet」指定されたレプリカ数のPodを維持する。
「Pod」n個のコンテナを含む。デプロイの最小単位。
Docker
コンテナDocker
コンテナ
「Ingress」外部から到達可能なURLや、TLS終端などを提供する。(L7ロードバランサ相当)
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
所感
19
JavaOneにも参加して同じように感じたが、Docker & Kubernetesがとても盛り上がっている。
よく語られている特徴は以下2点。
• 大抵のワークロードに対応できる
• 異なる事業者のプラットフォーム間や、オンプレ/パブリック間で共通言語として扱える• CLIとしてのdocker, kubectl
• Dockerfile, kubernetesの定義ファイル
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
プラットフォーム
の比較
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
IaaS
21
Infrastructure as a Service
• Amazon EC2
• Google Compute Engine
• Azure Virtual Machines
• OpenStack
利用者がOSを意識する形の仮想化。なんでも出来る自由度の代わりに、ハードウェア以外の全てを利用者が面倒を見る必要あり。
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
PaaS
22
Platform as a Service
• Amazon Elastic Beanstalk
• Google App Engine
• Azure App Service
• Heroku
• Pivotal Cloud Foundry 1.x
• Pivital Application Service(PCF 2.0)
利用者はアプリケーションのランタイムのみ意識する形の仮想化。面倒を見る範囲が極小化される代わりにアプリケーション形態を強要させられる。また、各サービスごとの環境、cli、サポート言語、FWなどが違う。
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
コンテナオーケストレーション
23
IaaSとPaaSの中間。
• Amazon Elastic Container Service for Kubernetes
• Google Kubernetes Engine
• Azure Container Service
• Redhat OpenShift
• Pivital Container Service(PCF 2.0)
• Cisco Container Platform
Docker & Kubernetes。
各サービスでcli、基本要素が一緒。ゆえに互換性、移植性が高い。特定のアプリケーション・アーキテクチャを強制しない。
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
比較
24
IaaSPaaS
開発者寄り。開発言語とランタイムだけ意識してpushすればOK。ただしアプリケーション形態を適合する形にする必要あり。
インフラ寄り。OSを意識して使うので、運用やメンテナンスは実機とおなじ。その代わり自由度が高い。
Docker & Kubernetes
コンテナオーケストレーションは、両者の中間となって、自由度の高さとデプロイ・運用の楽さをあわせもつ。学習コストなども中間(PaaSよりは覚えることが多い)
楽だが制約あり面倒だが自由
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
使い分けの考察
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
PaaSを選ぶケース
26
Cloudに馴染む形になっている(クラウドフレンドリー的な)アプリケーションならPaaS。
アプリケーション以外の要素を極力省いてくれるので一番ラクだし、MarketPlaceのような、ミドルウェア的な機能もある。
※ただ個人的にはPCF(PaaS)でもKubernetesのようなローリングアップデートがぜひ欲しい
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
コンテナを選ぶケース
27
以下のようなケースならDocker&Kubernetes。
※ただし学習コストはPaaSよりは多少かかる。
• PaaSがサポートしない言語、ランタイム
• PaaSがサポートしないアプリケーション形態
(非常駐型バッチ、複数プロセスで1デプロイ単位など)
• OSレイヤを意識するもの
(ローカルリソース、nativeライブラリなどを利用)
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
理想
28
Cloud-Nativeな形のアプリケーションにしておくことでどこでも動く。
最高の移植性をもったものとなるので変化に適合しやすい。
• PaaSならpushすればよい
• コンテナオーケストレーション環境でも、シンプルなDockerコンテナにすればよい
※でもこれに苦戦しているところが多いから今のコンテナオーケストレーションの盛り上がりがあるのかも・・・
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
まとめ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved .
まとめ
30
• Docker & Kubernetesはとても盛り上がっている
• PaaSに適合できないケースでも使える(場合がある)
• 理想はCloud-Nativeなアプリケーション開発
• とはいえ、必要なら選択・活用できるように、基礎教養としておぼえましょう。