SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
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
■YouTube
http://info.pivotal.io/in4I0AUzclN00C0207O2J0U
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
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
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.0
Pivotal 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
IaaS
PaaS
開発者寄り。開発言語とランタイムだけ意識して
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なアプリケーション開発
• とはいえ、必要なら選択・活用できるように、
基礎教養としておぼえましょう。

Mais conteúdo relacionado

Mais procurados

Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
Yahoo!デベロッパーネットワーク
 
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
Yahoo!デベロッパーネットワーク
 

Mais procurados (20)

Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
 
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
AMPと広告とOpenRTBと #yjmu
AMPと広告とOpenRTBと #yjmuAMPと広告とOpenRTBと #yjmu
AMPと広告とOpenRTBと #yjmu
 
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
Yahoo! JAPANのOSS Cassandra貢献の今までとこれからYahoo! JAPANのOSS Cassandra貢献の今までとこれから
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
 
Presto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnightPresto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnight
 
市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①
 
ヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnight
ヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnightヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnight
ヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnight
 
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT①
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT①Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT①
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT①
 
Yahoo! JAPANのCloud Foundry導入状況
Yahoo! JAPANのCloud Foundry導入状況Yahoo! JAPANのCloud Foundry導入状況
Yahoo! JAPANのCloud Foundry導入状況
 
Spring Cloud Data Flow の紹介 #streamctjp
Spring Cloud Data Flow の紹介  #streamctjpSpring Cloud Data Flow の紹介  #streamctjp
Spring Cloud Data Flow の紹介 #streamctjp
 
kukai: 省エネ世界2位のディープラーニング・スパコン
kukai: 省エネ世界2位のディープラーニング・スパコンkukai: 省エネ世界2位のディープラーニング・スパコン
kukai: 省エネ世界2位のディープラーニング・スパコン
 
Prestoクエリログの保存/分析機能の構築 #yjdsnight
Prestoクエリログの保存/分析機能の構築 #yjdsnightPrestoクエリログの保存/分析機能の構築 #yjdsnight
Prestoクエリログの保存/分析機能の構築 #yjdsnight
 
タブブラウザSDKを作った話 #yjcamp
タブブラウザSDKを作った話 #yjcampタブブラウザSDKを作った話 #yjcamp
タブブラウザSDKを作った話 #yjcamp
 
YJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組みYJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組み
 

Semelhante a JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話

cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
Takeshi Morikawa
 
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo!デベロッパーネットワーク
 
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
samemoon
 

Semelhante a JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話 (20)

Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
 
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!
 
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
Azure IaaS 解説
Azure IaaS 解説Azure IaaS 解説
Azure IaaS 解説
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
 
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
 
地に足がついたクラウドのお話
地に足がついたクラウドのお話地に足がついたクラウドのお話
地に足がついたクラウドのお話
 
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
 
Getting started with Windows Containers
Getting started with Windows ContainersGetting started with Windows Containers
Getting started with Windows Containers
 

Mais de Yahoo!デベロッパーネットワーク

Mais de Yahoo!デベロッパーネットワーク (20)

ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
 
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
 
LakeTahoe
LakeTahoeLakeTahoe
LakeTahoe
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability FeaturePersistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
 
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtceコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
 
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtcビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
 
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
 
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtcYahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
 
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
 

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なアプリケーション開発 • とはいえ、必要なら選択・活用できるように、 基礎教養としておぼえましょう。