Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
窪野 安彦
2017年2月16日
ヤフーのサービス開発を
10倍早くした社内PaaS構築の今と
これから
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
自己紹介
1
窪野 安彦
・システム統括本部プラットフォーム開発本部所属
(サービスの基盤となるようなシステムを担当)
・2004年入社
(当時はC言語でゴリゴリに書いてました)
・※Cloud Foundry®の環境構築と社内導入を行っています。
※Cloud Foundryは、Cloud Foundry, Incの登録商標です。
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
2
何故PaaSを導入したのか?
どんな風に使っているのか?
• 具体的な使い方
• デモ
PaaSの先にあるもの
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
何故PaaSを導入したのか?
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
10年前の開発で使われていたもの
アーキテクチャ
• Apache + apache_module + 独自template
開発ツール
• emacs + gcc + gmake & Jail
• CVS
パイプライン・デプロイ
• CI等は特になし
• デプロイは、scp *.so & apache restart
4
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
10年前の思想
5
コンピュータは貴重なリソース
頑張るのは人
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
現在の開発で使われているもの
アーキテクチャ
• OpenStack + LAMP + KVS + ・・・
開発ツール
• OpenStack + phpstorm とかのIDE・・・
• GHE
パイプライン・デプロイ
• CI/CD
• 独自パッケージシステム
• 等
6
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
我々の課題
7
使う道具は変わったけど
思想(≒アーキテクチャ)が
進化してない
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
問題点
8
あるサービスの例
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
あるサービスの例
9
FTP CP
社外RDBMS
WEB
API
BatchCache
SCP
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
問題点
10
よくある課題
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
よくある課題
11
FTP CP
社外
WEB
API
Batch
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Cronがこけてbatchが止まる
12
FTP CP
社外
WEB
API
Batch
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
キャッシュファイルのscpに失敗する
13
FTP CP
社外
WEB
API
Batch
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アクセスが増えてサーバの増設が必要になる
14
FTP CP
社外
WEB
API
Batch
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
15
FTP CP
社外
WEB
API
Batch
SCP
RDBMSCache
もっと手間がかからないようにでき
ないか?
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
問題点
16
例えば
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
例えば
17
FTP CP
社外
WEB
API
Batch
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
夜中にこけるバッチ
18
FTP CP
社外
WEB
API
Batch
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
夜中にこけるバッチ
19
FTP CP
社外
WEB
API
Batch
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
FaaSMQ
cronをやめてMQとかFaaSにする
20
FTP CP
社外
WEB
API
SCP
※FaaS = Function as a Service
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
FaaSMQ
もっと手間がかからなくなるかも
21
FTP CP
社外
WEB
API
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
FaaSMQ
キャッシュのscpに失敗する
22
FTP CP
社外
WEB
API
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
FaaSMQ
キャッシュのscpに失敗する
23
FTP CP
社外
WEB
API
SCP
RDBMSCache
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
FaaSMQ
キャッシュファイルはやめてKVSを立てる
24
FTP CP
社外
WEB
API
RDBMSKVS
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
FaaSMQ
もうscpで失敗しません
25
FTP CP
社外
WEB
API
RDBMSKVS
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
FaaSMQ
サーバの増設が必要になったら?
26
FTP CP
社外
WEB
API
KVS RDBMS
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
FaaSMQ
サーバの増設が必要になったら?
27
FTP CP
社外
WEB
API
RDBMSKVS
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
FaaSMQ
ここには新しい技術が必要だった
28
FTP CP
社外
WEB
API
RDBMSKVS
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
問題点
29
まだ他にも課題がある
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
問題
30
バージョンアップとか
セキュリティ対応が
多すぎる問題
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
膨大なサーバ群
31
物理、仮想サーバの合計
10万台以上
※弊社独自の調査 2015年6月時点
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
お客様のデータを守るために
32
~膨大なサーバのソフトウエア更新~
・リリース作業
・脆弱性対応
・ソフトウェアバージョンアップ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
問題
33
あるプロジェクトの例
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
あるプロジェクトの例
34
プログラム開発
担当エンジニア
バージョンアップ・
セキュリティ対応
あるプロジェクトの
サーバ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
エンジニアが少ないと毎月の対応が大変
35
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
そのうち機能追加や改修もできなくなる
36
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
担当エンジニアがテンパる
37
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
問題
38
そこで
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
担当を分けてみる
39
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
専任がいれば分業できるので
40
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
本来やりたかった開発に集中できる
41
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
42
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
43
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
問題点
44
ただし社内の全チームで
それができるわけではない
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
よくある課題
45
そこで
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ヤフーには沢山のサービスがある
46
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
多くのサービスで問題が起こっている
47
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
それぞれのサポートをしてあげたいけど
48
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
現実的には厳しい
49
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
そこでまとめて面倒を見ることができれば?
50
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Nice
51
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
52
ここでPaaSの出番!!!
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
53
次から具体的な使い方の
説明をします。
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
どんな風に使っているのか?
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
55
まずは
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
56
PaaSとは?
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
57
PaaS
=Platform as a Service
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
58
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
59
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
IPアドレスを用意する
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
60
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
サーバをラッキングする
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
61
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
OSをインストール
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
62
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
WEBサーバを
インストール
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
63
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
PHPを
インストール
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
64
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
プログラムをデプロイ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
65
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
以前は全部
やっていましたが
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
66
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
最近はここだけ
やるのが主流
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSとは?
67
物理サーバ IaaS PaaS(CF)
アプリケーション
◯ ◯ ◯
ランタイム
◯ ◯ ☓
ミドルウェア
◯ ◯ ☓
OS
◯ ☓ ☓
ハードウェア
◯ ☓ ☓
ネットワーク
◯ ☓ ☓
サービス開発エンジニアが
アプリケーション開発に
集中できるようになる!!!
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
68
Cloud Foundry®とは?
※Cloud Foundryは、Cloud Foundry, Incの登録商標です。
Cloud Foundryとは?
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
69
オープンソースのPaaSプラットフォーム
• 多くのベンダーで採用
Cloud Foundryベースのプロダクトなので、
他プラットフォームのノウハウも参考にできる
• 動作環境を選ばない
複数のIaaS(OpenStackなど)や
仮想化基盤を利用できる
• 拡張性が高い
好みの開発言語やデータベースなどを追加・拡張して
独自のPaaSとしてカスタマイズしやすい
Cloud Foundryとは?
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
70
なにが嬉しいのか?
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
プログラムをデプロイするだけで
サーバを構築してくれる
71
cf push {アプリケーション名} {オプション}
{アプリケーション名}:開発者がデプロイするアプリを一意に認識
-n:ホスト名(例. hoge)
-d:ドメイン(例. example.co.jp)
実行URLはオプションで指定した “ホスト名” + “ドメイン” となる
hoge.example.co.jp
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
CF
Droplet
何が起こっているのか?
72
Droplet
Container
OS
push
Runtime
Application
Extension
App
xxx.yahoo.co.jp
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
デモ1
73
Cloud Foundryを使った
アプリケーションの
デプロイ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
デモ1 - 1:アプリケーションのデプロイ
74
必要な物は
ソースコードと
設定ファイルのみ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
デモ1 - 2:PHPのバージョンを上げてみる
75
変更箇所は
設定ファイルのみ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
自己紹介
76
田口 雅浩
・CTO室SWATチームに所属
(社内の技術的な課題解決のため、様々なサービスや
基盤システムをサポート)
・2007年新卒入社、ヤフオク!開発を経て、SWATへ
・現在ではPaaSの導入に向けて、CI/CDのサポート
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
77
デモ1
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
78
CI/CDはどうしよう?
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
CI/CDはどうしよう?
79
CFと相性が良さそうなもの
モダンな開発手法に合ったもの
パイプラインが見える化されてる
YAMLでパイプラインが書ける
前提条件
Concourseのメリット
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
80
Concourseに決定
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
パイプラインの構成要素
81
パイプラインは「Tasks」「Resources」「Jobs」の3要素で構
成されています。
Resource
Job
Resource
入力 出力
• Task
• Task
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
デモ 2
82
Concourseを使った
パイプラインのデモ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Concourse CF
Concourseを使ったパイプラインデモ
83
check test deploy
notification xxx.yahoo.co.jp
commit
GHE
MYM
push
MYM
message
CF
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
84
デモ2
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaSの先にあるもの
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
PaaS導入の旅
86
2016年
先行サービス
2017年
本格導入
2018年
拡大
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
とにかくサービスが沢山ある
87
増え続けてきたサービス
100以上 (2016年9月末時点)
開発言語の違い
C、Perl、C++、PHP、Node.js、Java...
素材提供:アフロ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
それぞれアーキテクチャも違う
88
例)新規サービス等 例)コマース系サービス等
小規模サービス 大規模サービス
API
Gate
way
sear
ch
list
cart
logic
logic
logic
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
共通のアーキテクチャを全社展開するのは難しい
89
素材提供:アフロ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
組織毎に対応策を見つける
90
組織内エバンジェリスト(非公式)
今のところ20人ぐらい
それぞれの組織・サービスに合った
導入方法を進めている
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
推進体制イメージ
91
現場エンジニア
組織内
エバンジェリスト
社内推進 プロジェクト
ショッピング
担当
ショッピング
エンジニア
ショッピング
エンジニア
オークション
担当
オークション
エンジニア
メディア担当
メディアエン
ジニア
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
今までは独自技術で開発スピードアップをしていた
92
・検索エンジン
・フラットファイルDB
・プロセス間通信技術
・パッケージ管理
素材提供:アフロ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
独自技術の多くは簡単にはCFで動かない
93
写真:アフロ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
既存システムとの連携が必要
94
app2app1
FE API
etc
KVS
DB
API Gateway
独自技術 独自技術 独自技術独自技術
システムログ
アプリケーションログ
router
Prox
y
MQ FaaS
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
95
PaaSを構築してからも
やることが沢山ある
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
96
さらに
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
97
PaaSはあくまでも道具
使い方はもっと重要
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
開発手法との融合が必要
98
写真:アフロ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
最終的に
99
お客様に
付加価値を届けるスピードを
「10倍」にしていきたい
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
まとめ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
まとめ
101
何故PaaSを導入したのか?
• 付加価値の高い開発に集中するため
どんな風に使っているのか?
• CF
• Concourse
PaaSの先にあるもの
• 社内普及・既存機能との融合
• 開発手法のバージョンアップ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
102
ご清聴ありがとう
ございました
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.

Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから

  • 1.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 窪野 安彦 2017年2月16日 ヤフーのサービス開発を 10倍早くした社内PaaS構築の今と これから
  • 2.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 自己紹介 1 窪野 安彦 ・システム統括本部プラットフォーム開発本部所属 (サービスの基盤となるようなシステムを担当) ・2004年入社 (当時はC言語でゴリゴリに書いてました) ・※Cloud Foundry®の環境構築と社内導入を行っています。 ※Cloud Foundryは、Cloud Foundry, Incの登録商標です。
  • 3.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ 2 何故PaaSを導入したのか? どんな風に使っているのか? • 具体的な使い方 • デモ PaaSの先にあるもの
  • 4.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 何故PaaSを導入したのか?
  • 5.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 10年前の開発で使われていたもの アーキテクチャ • Apache + apache_module + 独自template 開発ツール • emacs + gcc + gmake & Jail • CVS パイプライン・デプロイ • CI等は特になし • デプロイは、scp *.so & apache restart 4
  • 6.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 10年前の思想 5 コンピュータは貴重なリソース 頑張るのは人
  • 7.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 現在の開発で使われているもの アーキテクチャ • OpenStack + LAMP + KVS + ・・・ 開発ツール • OpenStack + phpstorm とかのIDE・・・ • GHE パイプライン・デプロイ • CI/CD • 独自パッケージシステム • 等 6
  • 8.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 我々の課題 7 使う道具は変わったけど 思想(≒アーキテクチャ)が 進化してない
  • 9.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 問題点 8 あるサービスの例
  • 10.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. あるサービスの例 9 FTP CP 社外RDBMS WEB API BatchCache SCP
  • 11.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 問題点 10 よくある課題
  • 12.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. よくある課題 11 FTP CP 社外 WEB API Batch SCP RDBMSCache
  • 13.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Cronがこけてbatchが止まる 12 FTP CP 社外 WEB API Batch SCP RDBMSCache
  • 14.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. キャッシュファイルのscpに失敗する 13 FTP CP 社外 WEB API Batch SCP RDBMSCache
  • 15.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. アクセスが増えてサーバの増設が必要になる 14 FTP CP 社外 WEB API Batch SCP RDBMSCache
  • 16.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 15 FTP CP 社外 WEB API Batch SCP RDBMSCache もっと手間がかからないようにでき ないか?
  • 17.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 問題点 16 例えば
  • 18.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 例えば 17 FTP CP 社外 WEB API Batch SCP RDBMSCache
  • 19.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 夜中にこけるバッチ 18 FTP CP 社外 WEB API Batch SCP RDBMSCache
  • 20.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 夜中にこけるバッチ 19 FTP CP 社外 WEB API Batch SCP RDBMSCache
  • 21.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. FaaSMQ cronをやめてMQとかFaaSにする 20 FTP CP 社外 WEB API SCP ※FaaS = Function as a Service RDBMSCache
  • 22.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. FaaSMQ もっと手間がかからなくなるかも 21 FTP CP 社外 WEB API SCP RDBMSCache
  • 23.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. FaaSMQ キャッシュのscpに失敗する 22 FTP CP 社外 WEB API SCP RDBMSCache
  • 24.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. FaaSMQ キャッシュのscpに失敗する 23 FTP CP 社外 WEB API SCP RDBMSCache
  • 25.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. FaaSMQ キャッシュファイルはやめてKVSを立てる 24 FTP CP 社外 WEB API RDBMSKVS
  • 26.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. FaaSMQ もうscpで失敗しません 25 FTP CP 社外 WEB API RDBMSKVS
  • 27.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. FaaSMQ サーバの増設が必要になったら? 26 FTP CP 社外 WEB API KVS RDBMS
  • 28.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. FaaSMQ サーバの増設が必要になったら? 27 FTP CP 社外 WEB API RDBMSKVS
  • 29.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. FaaSMQ ここには新しい技術が必要だった 28 FTP CP 社外 WEB API RDBMSKVS
  • 30.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 問題点 29 まだ他にも課題がある
  • 31.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 問題 30 バージョンアップとか セキュリティ対応が 多すぎる問題
  • 32.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 膨大なサーバ群 31 物理、仮想サーバの合計 10万台以上 ※弊社独自の調査 2015年6月時点
  • 33.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. お客様のデータを守るために 32 ~膨大なサーバのソフトウエア更新~ ・リリース作業 ・脆弱性対応 ・ソフトウェアバージョンアップ
  • 34.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 問題 33 あるプロジェクトの例
  • 35.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. あるプロジェクトの例 34 プログラム開発 担当エンジニア バージョンアップ・ セキュリティ対応 あるプロジェクトの サーバ
  • 36.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. エンジニアが少ないと毎月の対応が大変 35
  • 37.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. そのうち機能追加や改修もできなくなる 36
  • 38.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 担当エンジニアがテンパる 37
  • 39.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 問題 38 そこで
  • 40.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 担当を分けてみる 39
  • 41.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 専任がいれば分業できるので 40
  • 42.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 本来やりたかった開発に集中できる 41
  • 43.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 42
  • 44.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 43
  • 45.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 問題点 44 ただし社内の全チームで それができるわけではない
  • 46.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. よくある課題 45 そこで
  • 47.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ヤフーには沢山のサービスがある 46
  • 48.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 多くのサービスで問題が起こっている 47
  • 49.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. それぞれのサポートをしてあげたいけど 48
  • 50.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 現実的には厳しい 49
  • 51.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. そこでまとめて面倒を見ることができれば? 50
  • 52.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Nice 51
  • 53.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 52 ここでPaaSの出番!!!
  • 54.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 53 次から具体的な使い方の 説明をします。
  • 55.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. どんな風に使っているのか?
  • 56.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 55 まずは
  • 57.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 56 PaaSとは?
  • 58.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 57 PaaS =Platform as a Service
  • 59.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 58 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓
  • 60.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 59 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓ IPアドレスを用意する
  • 61.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 60 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓ サーバをラッキングする
  • 62.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 61 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓ OSをインストール
  • 63.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 62 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓ WEBサーバを インストール
  • 64.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 63 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓ PHPを インストール
  • 65.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 64 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓ プログラムをデプロイ
  • 66.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 65 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓ 以前は全部 やっていましたが
  • 67.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 66 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓ 最近はここだけ やるのが主流
  • 68.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSとは? 67 物理サーバ IaaS PaaS(CF) アプリケーション ◯ ◯ ◯ ランタイム ◯ ◯ ☓ ミドルウェア ◯ ◯ ☓ OS ◯ ☓ ☓ ハードウェア ◯ ☓ ☓ ネットワーク ◯ ☓ ☓ サービス開発エンジニアが アプリケーション開発に 集中できるようになる!!!
  • 69.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 68 Cloud Foundry®とは? ※Cloud Foundryは、Cloud Foundry, Incの登録商標です。 Cloud Foundryとは?
  • 70.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 69 オープンソースのPaaSプラットフォーム • 多くのベンダーで採用 Cloud Foundryベースのプロダクトなので、 他プラットフォームのノウハウも参考にできる • 動作環境を選ばない 複数のIaaS(OpenStackなど)や 仮想化基盤を利用できる • 拡張性が高い 好みの開発言語やデータベースなどを追加・拡張して 独自のPaaSとしてカスタマイズしやすい Cloud Foundryとは?
  • 71.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 70 なにが嬉しいのか?
  • 72.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. プログラムをデプロイするだけで サーバを構築してくれる 71 cf push {アプリケーション名} {オプション} {アプリケーション名}:開発者がデプロイするアプリを一意に認識 -n:ホスト名(例. hoge) -d:ドメイン(例. example.co.jp) 実行URLはオプションで指定した “ホスト名” + “ドメイン” となる hoge.example.co.jp
  • 73.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. CF Droplet 何が起こっているのか? 72 Droplet Container OS push Runtime Application Extension App xxx.yahoo.co.jp
  • 74.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ1 73 Cloud Foundryを使った アプリケーションの デプロイ
  • 75.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ1 - 1:アプリケーションのデプロイ 74 必要な物は ソースコードと 設定ファイルのみ
  • 76.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ1 - 2:PHPのバージョンを上げてみる 75 変更箇所は 設定ファイルのみ
  • 77.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 自己紹介 76 田口 雅浩 ・CTO室SWATチームに所属 (社内の技術的な課題解決のため、様々なサービスや 基盤システムをサポート) ・2007年新卒入社、ヤフオク!開発を経て、SWATへ ・現在ではPaaSの導入に向けて、CI/CDのサポート
  • 78.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 77 デモ1
  • 79.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 78 CI/CDはどうしよう?
  • 80.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. CI/CDはどうしよう? 79 CFと相性が良さそうなもの モダンな開発手法に合ったもの パイプラインが見える化されてる YAMLでパイプラインが書ける 前提条件 Concourseのメリット
  • 81.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 80 Concourseに決定
  • 82.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. パイプラインの構成要素 81 パイプラインは「Tasks」「Resources」「Jobs」の3要素で構 成されています。 Resource Job Resource 入力 出力 • Task • Task
  • 83.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ 2 82 Concourseを使った パイプラインのデモ
  • 84.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Concourse CF Concourseを使ったパイプラインデモ 83 check test deploy notification xxx.yahoo.co.jp commit GHE MYM push MYM message CF
  • 85.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 84 デモ2
  • 86.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaSの先にあるもの
  • 87.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. PaaS導入の旅 86 2016年 先行サービス 2017年 本格導入 2018年 拡大
  • 88.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. とにかくサービスが沢山ある 87 増え続けてきたサービス 100以上 (2016年9月末時点) 開発言語の違い C、Perl、C++、PHP、Node.js、Java... 素材提供:アフロ
  • 89.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. それぞれアーキテクチャも違う 88 例)新規サービス等 例)コマース系サービス等 小規模サービス 大規模サービス API Gate way sear ch list cart logic logic logic
  • 90.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 共通のアーキテクチャを全社展開するのは難しい 89 素材提供:アフロ
  • 91.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 組織毎に対応策を見つける 90 組織内エバンジェリスト(非公式) 今のところ20人ぐらい それぞれの組織・サービスに合った 導入方法を進めている
  • 92.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 推進体制イメージ 91 現場エンジニア 組織内 エバンジェリスト 社内推進 プロジェクト ショッピング 担当 ショッピング エンジニア ショッピング エンジニア オークション 担当 オークション エンジニア メディア担当 メディアエン ジニア
  • 93.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 今までは独自技術で開発スピードアップをしていた 92 ・検索エンジン ・フラットファイルDB ・プロセス間通信技術 ・パッケージ管理 素材提供:アフロ
  • 94.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 独自技術の多くは簡単にはCFで動かない 93 写真:アフロ
  • 95.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 既存システムとの連携が必要 94 app2app1 FE API etc KVS DB API Gateway 独自技術 独自技術 独自技術独自技術 システムログ アプリケーションログ router Prox y MQ FaaS
  • 96.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 95 PaaSを構築してからも やることが沢山ある
  • 97.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 96 さらに
  • 98.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 97 PaaSはあくまでも道具 使い方はもっと重要
  • 99.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 開発手法との融合が必要 98 写真:アフロ
  • 100.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 最終的に 99 お客様に 付加価値を届けるスピードを 「10倍」にしていきたい
  • 101.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. まとめ
  • 102.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. まとめ 101 何故PaaSを導入したのか? • 付加価値の高い開発に集中するため どんな風に使っているのか? • CF • Concourse PaaSの先にあるもの • 社内普及・既存機能との融合 • 開発手法のバージョンアップ
  • 103.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 102 ご清聴ありがとう ございました
  • 104.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.