Mais conteúdo relacionado
Semelhante a JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話 (20)
Mais de Yahoo!デベロッパーネットワーク (20)
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
- 1. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ヤフー株式会社 森下 大介
SpringOne Platform 2017
参加報告
- プラットフォーム周りのお話 -
2018年2月6日
- 2. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.2
自己紹介
• ヤフーに中途入社の7年目
• 広告サービスの開発に従事
• 開発部門の部長
• Java言語サポートチーム
• Java黒帯
- 3. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
今回のゴール
3
• アプリケーションプラットフォーム関連の
話題や傾向を共有
• プラットフォームの使い分けについて考察
- 4. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
4
• セッション紹介
• Pivotal Cloud Foundry 2.0
• Docker & Kubernetes
• プラットフォームの比較
• 使い分けの考察
• まとめ
- 5. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
確認
5
使っていますか?
• IaaS
• PaaS
• コンテナ(オーケストレーション)
- 6. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
セッション紹介
- 7. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
セッション一覧
7
動画は資料がとても見やすくてイイです。
■公式サイト
https://springoneplatform.io/sessions
■YouTube
http://info.pivotal.io/in4I0AUzclN00C0207O2J0U
- 8. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Kuberunetes関連
8
■Pivotal Cloud Foundry 2.0
https://www.youtube.com/watch?v=_uB5bBsMZIk&list=PLAdzTan_eSPQ2uPeB0bByiIUML
VAhrPHL&index=1&t=3s
■PKS: The What and How of Enterprise-Grade
https://www.youtube.com/watch?v=bQKra0CB5zE&list=PLAdzTan_eSPQ2uPeB0bByiIUML
VAhrPHL&index=24&t=3799s
■Deploying Spring Boot Apps on Kubernetes
https://www.youtube.com/watch?v=RelPurLZnII&list=PLAdzTan_eSPQ2uPeB0bByiIUMLV
AhrPHL&index=54
■Kubernetes for the Spring Developer
https://www.youtube.com/watch?v=OsWXtVbTnv0&list=PLAdzTan_eSPQ2uPeB0bByiIUM
LVAhrPHL&index=56
- 9. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Cloud-Native, Microservices関連
9
■Cloud-Native Java with Spring Cloud Services
https://www.youtube.com/watch?v=6lCEzgkdfds&index=25&list=PLAdzTan_eSPQ2uPeB0b
ByiIUMLVAhrPHL
■How to Build Spring Services for Cloud-Native Platforms
https://www.youtube.com/watch?v=MbzIqgbT1-
U&list=PLAdzTan_eSPQ2uPeB0bByiIUMLVAhrPHL&index=127
■Spring Cloud Gateway
https://www.youtube.com/watch?v=9wocKqF15B8&t=2615s&index=78&list=PLAdzTan_eS
PQ2uPeB0bByiIUMLVAhrPHL
■Introducing Micrometer Application
Metricshttps://www.youtube.com/watch?v=HIUoeLYWo7o&list=PLAdzTan_eSPQ2uPeB0b
ByiIUMLVAhrPHL&index=49
- 10. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pivotal Cloud Foundry 2.0
- 11. 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)
- 12. 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
- 13. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
After (PCF 2.0)
13
AWS GCP Azure OpenStack
BOSH
任意のIaaS層
抽象化層
PCF 2.0
Pivotal Application
Service (PAS)
Pivotal Container
Service (PKS)
Pivotal Function
Service (PFS)
Kubernetes
- 14. 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環境依存なものなど)
- 15. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Docker
&
Kubernetes
- 16. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
概要
16
■Docker
コンテナ型の仮想環境を提供するプロダクト。
OSを丸ごと仮想化するタイプ(VMWare等)と違い、仮想化したいアプリケーション
が必要とする最低限の環境(ディレクトリ構造、コマンド、ライブラリなど)を含めて
Dockerイメージというアーカイブファイルにして、それをプロセスとして起動する。
■Kubernetes
コンテナオーケストレーションと呼ばれる仕組みを提供するプロダクト。
Dockerコンテナのデプロイ、ネットワーク制御、インスタンス管理などを行ってくれ
る。長いので、略してk8sと言ったりする。
- 17. 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
- 18. 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ロードバランサ相当)
- 19. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
所感
19
JavaOneにも参加して同じように感じたが、
Docker & Kubernetesがとても盛り上がっている。
よく語られている特徴は以下2点。
• 大抵のワークロードに対応できる
• 異なる事業者のプラットフォーム間や、
オンプレ/パブリック間で共通言語として扱える
• CLIとしてのdocker, kubectl
• Dockerfile, kubernetesの定義ファイル
- 20. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
プラットフォーム
の比較
- 21. 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を意識する形の仮想化。なんでも出来る自由度
の代わりに、ハードウェア以外の全てを利用者が面倒を見る
必要あり。
- 22. 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などが違う。
- 23. 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、基本要素が一緒。ゆえに互換性、移植性が高い。
特定のアプリケーション・アーキテクチャを強制しない。
- 24. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
比較
24
IaaS
PaaS
開発者寄り。開発言語とランタイムだけ意識して
pushすればOK。ただしアプリケーション形態を
適合する形にする必要あり。
インフラ寄り。OSを意識して使うので、
運用やメンテナンスは実機とおなじ。
その代わり自由度が高い。
Docker & Kubernetes
コンテナオーケストレーションは、両者の中間となって、
自由度の高さとデプロイ・運用の楽さをあわせもつ。
学習コストなども中間(PaaSよりは覚えることが多い)
楽だが制約あり面倒だが自由
- 25. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
使い分けの考察
- 26. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSを選ぶケース
26
Cloudに馴染む形になっている(クラウドフレンドリー的
な)アプリケーションならPaaS。
アプリケーション以外の要素を極力省いてくれるので一
番ラクだし、MarketPlaceのような、ミドルウェア的な機能
もある。
※ただ個人的にはPCF(PaaS)でもKubernetesのような
ローリングアップデートがぜひ欲しい
- 27. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
コンテナを選ぶケース
27
以下のようなケースならDocker&Kubernetes。
※ただし学習コストはPaaSよりは多少かかる。
• PaaSがサポートしない言語、ランタイム
• PaaSがサポートしないアプリケーション形態
(非常駐型バッチ、複数プロセスで1デプロイ単位など)
• OSレイヤを意識するもの
(ローカルリソース、nativeライブラリなどを利用)
- 28. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
理想
28
Cloud-Nativeな形のアプリケーションにしておくことで
どこでも動く。
最高の移植性をもったものとなるので変化に適合しやすい。
• PaaSならpushすればよい
• コンテナオーケストレーション環境でも、
シンプルなDockerコンテナにすればよい
※でもこれに苦戦しているところが多いから今のコンテナオーケス
トレーションの盛り上がりがあるのかも・・・
- 29. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
まとめ
- 30. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
まとめ
30
• Docker & Kubernetesはとても盛り上がっている
• PaaSに適合できないケースでも使える(場合がある)
• 理想はCloud-Nativeなアプリケーション開発
• とはいえ、必要なら選択・活用できるように、
基礎教養としておぼえましょう。