More Related Content Similar to 20121019 engineer startup_meeting Similar to 20121019 engineer startup_meeting (20) 20121019 engineer startup_meeting1. CTOのサービスへの関わり⽅方
-‐‑‒ Engineer Startup Meeting -‐‑‒
株式会社nanapi 取締役 CTO
和田修一 <shuichi.wada@nanapi.co.jp>
12年10月23日火曜日
2. 本日の内容
CTOとしてnanapiで奮闘してきた3年間について
簡単にお話できればとおもいます!
12年10月23日火曜日
3. 本日のアジェンダ
nanapiができるまで 開発体制の変化と現状
• 創業時にとにかく大変なこと • 開発体制の変化
• CTOは技術者の夢を叶えられるか? • 「技術」から「プロダクト」へのシフト
システム構成といままでの経緯 nanapiで成し遂げたいこと
• 創業当時のシステム構成 • ハウツーDBで世界 No1を目指す
• 創業当時の負荷分散とアプリケーション構成 • ハウツーの先にある便利な世の中へ
• 現在のシステム構成
• 画像ファイルをスケールアウトさせる仕組み
12年10月23日火曜日
4. 自己紹介
名前
和田修一
(わだっぷ)
所属
株式会社nanapi
取締役
CTO
BLOG
Unix的なアレ
-‐
h-p://d.hatena.ne.jp/wadap/
略歴
• 2005年 楽天株式会社へ新卒入社
• インフラ系の運用部署へ配属
• その後、国際事業の立ち上げに携わる
• 2009年 株式会社ロケットスタート(現:株式会社nanapi)本格始動
12年10月23日火曜日
5. 本日のアジェンダ
nanapiができるまで 開発体制の変化と現状
• 創業時にとにかく大変なこと • 開発体制の変化
• CTOは技術者の夢を叶えられるか? • 「技術」から「プロダクト」へのシフト
システム構成といままでの経緯 nanapiで成し遂げたいこと
• 創業当時のシステム構成 • ハウツーDBで世界 No1を目指す
• 創業当時の負荷分散とアプリケーション構成 • ハウツーの先にある便利な世の中へ
• 現在のシステム構成
• 画像ファイルをスケールアウトさせる仕組み
12年10月23日火曜日
6. 本日のアジェンダ
nanapiができるまで 開発体制の変化と現状
• 創業時にとにかく大変なこと • 開発体制の変化
• CTOは技術者の夢を叶えられるか? • 「技術」から「プロダクト」へのシフト
システム構成といままでの経緯 nanapiで成し遂げたいこと
• 創業当時のシステム構成 • ハウツーDBで世界 No1を目指す
• 創業当時の負荷分散とアプリケーション構成 • ハウツーの先にある便利な世の中へ
• 現在のシステム構成
• 画像ファイルをスケールアウトさせる仕組み
12年10月23日火曜日
9. 開発に関わるタスクだけあげていっても...
• 言語選定どうする?
• フレームワークどうする?
• ミドルウェアどうする?
• 開発環境・テスト環境準備しないと...
• サーバ業者選定
• スケジュール検討
• テスト!テスト!テスト!
• 負荷試験、クオリティ管理
• 監視の仕組みどうにかしないと
• データバックアップ
• セキュリティなんとかしないと
• デプロイ方法
• 自分が倒れたらどうする?
etc...
12年10月23日火曜日
10. 開発に関わるタスクだけあげていっても...
• 言語選定どうする?
• フレームワークどうする?
• ミドルウェアどうする?
• 開発環境・テスト環境準備しないと...
• サーバ業者選定
• スケジュール検討
• テスト!テスト!テスト!
• 負荷試験、クオリティ管理
• 監視の仕組みどうにかしないと
• データバックアップ
• セキュリティなんとかしないと
• デプロイ方法
• 自分が倒れたらどうする?
etc...
12年10月23日火曜日
11. 開発に関わるタスクだけあげていっても...
• 言語選定どうする?
• フレームワークどうする?
• ミドルウェアどうする?
• 開発環境・テスト環境準備しないと...
• サーバ業者選定
• スケジュール検討
• テスト!テスト!テスト!
• 負荷試験、クオリティ管理
• 監視の仕組みどうにかしないと
• データバックアップ
• セキュリティなんとかしないと
• デプロイ方法
• 自分が倒れたらどうする?
etc...
12年10月23日火曜日
12. 開発に関わるタスクだけあげていっても...
• 言語選定どうする?
• フレームワークどうする?
• ミドルウェアどうする?
• 開発環境・テスト環境準備しないと...
• サーバ業者選定
• スケジュール検討
• テスト!テスト!テスト!
• 負荷試験、クオリティ管理
• 監視の仕組みどうにかしないと
• データバックアップ
• セキュリティなんとかしないと
• デプロイ方法
• 自分が倒れたらどうする?
etc...
12年10月23日火曜日
14. よく勘違いされがちなこと
面倒な社内調整とか、上司がいなくて
自由に開発できるんだよね?
12年10月23日火曜日
15. よく勘違いされがちなこと
面倒な社内調整とか、上司がいなくて
自由に開発できるんだよね?
調整はないけど、仕事量は膨大です!
12年10月23日火曜日
18. 簡単にまとめると
CTOとして起業にジョインするには、
技術スキルだけでなく、ビジネススキルも重要
12年10月23日火曜日
19. 本日のアジェンダ
nanapiができるまで 開発体制の変化と現状
• 創業時にとにかく大変なこと • 開発体制の変化
• CTOは技術者の夢を叶えられるか? • 「技術」から「プロダクト」へのシフト
システム構成といままでの経緯 nanapiで成し遂げたいこと
• 創業当時のシステム構成 • ハウツーDBで世界 No1を目指す
• 創業当時の負荷分散とアプリケーション構成 • ハウツーの先にある便利な世の中へ
• 現在のシステム構成
• 画像ファイルをスケールアウトさせる仕組み
12年10月23日火曜日
20. 本日のアジェンダ
nanapiができるまで 開発体制の変化と現状
• 創業時にとにかく大変なこと • 開発体制の変化
• CTOは技術者の夢を叶えられるか? • 「技術」から「プロダクト」へのシフト
システム構成といままでの経緯 nanapiで成し遂げたいこと
• 創業当時のシステム構成 • ハウツーDBで世界 No1を目指す
• 創業当時の負荷分散とアプリケーション構成 • ハウツーの先にある便利な世の中へ
• 現在のシステム構成
• 画像ファイルをスケールアウトさせる仕組み
12年10月23日火曜日
21. かねがない!
創業時は金がない!
金は超重要。ないと死にます。
12年10月23日火曜日
22. かねがない!
創業時は金がない!
金は超重要。ないと死にます。
エンジニアが貢献できることは、
コストを削減するしかない
12年10月23日火曜日
23. 一般的な負荷分散をするための構成
Load
Balacner
Web
Servers
Master Slave
DB
Servers
12年10月23日火曜日
24. 一般的な負荷分散をするための構成
• こういったシステム構成は裏セグメン
トが用意されてることが前提
Load
Balacner
• 裏セグメントを繋ぐと高コスト
• グローバル接続のサーバのみで何とか
したい
Web
Servers
Master Slave
DB
Servers
12年10月23日火曜日
25. 一般的な負荷分散をするための構成
• こういったシステム構成は裏セグメン
トが用意されてることが前提
Load
Balacner
• 裏セグメントを繋ぐと高コスト
• グローバル接続のサーバのみで何とか
したい
Web
Servers
画像ファイルは初期から分散しておかないと、
早い段階でシステムが破綻する
Master Slave
DB
Servers
12年10月23日火曜日
30. 初期にとっていた負荷分散構成
処理速度
TOPページ 記事ページ
検索ページ
処理の複雑さ
投稿ページ マイページ
12年10月23日火曜日
31. 初期にとっていた負荷分散構成
処理速度
TOPページ 記事ページ
検索ページ
処理の複雑さ
投稿ページ マイページ
12年10月23日火曜日
32. 初期にとっていた負荷分散構成
処理速度
TOPページ 記事ページ
単純な処理を高速に
検索ページ
処理の複雑さ
投稿ページ マイページ
12年10月23日火曜日
33. 初期にとっていた負荷分散構成
処理速度
TOPページ 記事ページ
単純な処理を高速に
検索ページ
処理の複雑さ
投稿ページ マイページ
12年10月23日火曜日
34. 初期にとっていた負荷分散構成
処理速度
TOPページ 記事ページ
単純な処理を高速に
検索ページ
処理の複雑さ
投稿ページ マイページ
複雑な処理をそこそこの速度で
12年10月23日火曜日
35. 初期にとっていた負荷分散構成
処理速度
TOPページ 記事ページ
フレームワーク利用せず
検索ページ
処理の複雑さ
投稿ページ マイページ
CakePHPを利用
12年10月23日火曜日
36. フレームワークは適材適所
全体の8割の負荷を占めるシステムが、
実際はすごく単純なシステムだとしたら?
12年10月23日火曜日
37. フレームワークは適材適所
全体の8割の負荷を占めるシステムが、
実際はすごく単純なシステムだとしたら?
フレームワークは通すだけで重いので、
使い分けるだけで負荷軽減につながる
12年10月23日火曜日
38. 踏まえた上でのnanapiの初期構成
フレームワーク利用 フレームワーク非利用
Server
A Server
B
The
Internet
フレームワーク動くけど、 単純な処理だけど、
アクセス少ない <データ転送> アクセス多い
12年10月23日火曜日
39. 踏まえた上でのnanapiの初期構成
フレームワーク利用 フレームワーク非利用
Server
A Server
B
The
Internet
フレームワーク動くけど、 単純な処理だけど、
アクセス少ない <データ転送> アクセス多い
¥
9,800円
/
month ¥
7,800円
/
month
12年10月23日火曜日
40. 踏まえた上でのnanapiの初期構成
フレームワーク利用 フレームワーク非利用
Server
A Server
B
The
Internet
フレームワーク動くけど、 単純な処理だけど、
アクセス少ない <データ転送> アクセス多い
¥
9,800円
/
month ¥
7,800円
/
month
インターネット経由でデータを同期
12年10月23日火曜日
43. 時は流れ
3年で月間訪問者数は2200万超えに
12年10月23日火曜日
48. 画像の重要さ
記事ページを表示する上で、
重要なデータ
12年10月23日火曜日
49. 画像の重要さ
記事ページを表示する上で、
重要なデータ
12年10月23日火曜日
50. 画像の重要さ
記事ページを表示する上で、
重要なデータ
12年10月23日火曜日
51. nanapiにおける画像の重要さ
• 画像が多い記事だと、10枚前後の画像がはいる
• APIでの記事提供も外部にしているため、
• 大量のリクエストをさばく必要がある
• データ量、システム負荷ともにスケールアウトでき
るようにしておく
• サムネイルなどでも使うため、動的にサイズを変更
する仕組みが必要
12年10月23日火曜日
53. 画像アップロード&参照の仕組み
Load
Balacner Load
Balacner
アプリケーションサーバ 画像配信サーバ
画像専用Fileサーバ
12年10月23日火曜日
54. 画像アップロード&参照の仕組み
Load
Balacner Load
Balacner
アプリケーションサーバ 画像配信サーバ
PUT/GET/DELETE
画像専用Fileサーバ
12年10月23日火曜日
55. 画像アップロード&参照の仕組み
Load
Balacner Load
Balacner
アプリケーションサーバ 画像配信サーバ
PUT/GET/DELETE
HTTP経由でリモートのサーバへファイルを登録
NFSなどを利用すると、いろいろアレなので
画像専用Fileサーバ
12年10月23日火曜日
56. 画像アップロード&参照の仕組み
Load
Balacner Load
Balacner
アプリケーションサーバ 画像配信サーバ
PUT/GET/DELETE
HTTP経由でリモートのサーバへファイルを登録
NFSなどを利用すると、いろいろアレなので
lsyncdで指定したディレクトリの操作イベントをキャッチして、
lsyncd
その結果を画像サーバへ転送
画像専用Fileサーバ
12年10月23日火曜日
57. 画像アップロード&参照の仕組み
Load
Balacner Load
Balacner
アプリケーションサーバ 画像配信サーバ
PUT/GET/DELETE Rsync
Rsyncプロトコルで随時転送
HTTP経由でリモートのサーバへファイルを登録
NFSなどを利用すると、いろいろアレなので
lsyncdで指定したディレクトリの操作イベントをキャッチして、
lsyncd
その結果を画像サーバへ転送
画像専用Fileサーバ
12年10月23日火曜日
60. 投稿の容量が問題になれば
Load
Balacner Load
Balacner
アプリケーションサーバ 画像配信サーバ
ファイル名によってどのサーバ 対応するサーバに対して
に属するか対応表を管理 ファイルを転送する
画像専用Fileサーバ
12年10月23日火曜日
63. サービスの特性
アクセス数の伸びが
ほぼ計算通りにふえていくサービス
12年10月23日火曜日
66. 本日のアジェンダ
nanapiができるまで 開発体制の変化と現状
• 創業時にとにかく大変なこと • 開発体制の変化
• CTOは技術者の夢を叶えられるか? • 「技術」から「プロダクト」へのシフト
システム構成といままでの経緯 nanapiで成し遂げたいこと
• 創業当時のシステム構成 • ハウツーDBで世界 No1を目指す
• 創業当時の負荷分散とアプリケーション構成 • ハウツーの先にある便利な世の中へ
• 現在のシステム構成
• 画像ファイルをスケールアウトさせる仕組み
12年10月23日火曜日
67. 本日のアジェンダ
nanapiができるまで 開発体制の変化と現状
• 創業時にとにかく大変なこと • 開発体制の変化
• CTOは技術者の夢を叶えられるか? • 「技術」から「プロダクト」へのシフト
システム構成といままでの経緯 nanapiで成し遂げたいこと
• 創業当時のシステム構成 • ハウツーDBで世界 No1を目指す
• 創業当時の負荷分散とアプリケーション構成 • ハウツーの先にある便利な世の中へ
• 現在のシステム構成
• 画像ファイルをスケールアウトさせる仕組み
12年10月23日火曜日
68. 開発体制の変化 - 2009年時点の開発体制
Director :1名
Engineer :1名
社長
/
Director Designer :0名
外部Designer
取締役
/
Engineer
12年10月23日火曜日
69. 開発体制の変化 - 2009年時点の開発体制
Director :1名
Engineer :1名
社長
/
Director Designer :0名
外部Designer
取締役
/
Engineer
約2ヶ月でnanapiを構築
(別の受託をやりながら)
12年10月23日火曜日
70. 開発体制の変化 - 2010年時点の開発体制
Director :1名
Engineer :1名
社長
/
Director Designer :1名
取締役
/
Engineer 社員
/
Designer
12年10月23日火曜日
71. 開発体制の変化 - 2010年時点の開発体制
Director :1名
Engineer :1名
社長
/
Director Designer :1名
取締役
/
Engineer 社員
/
Designer
社員デザイナーを採用
12年10月23日火曜日
72. 開発体制の変化 - 2011年時点の開発体制
Director :1名
取締役
/
Engineer・Director
Engineer :2名
Designer :2名
社員
/
Engineer
社員
/
Designer 社員
/
Designer
12年10月23日火曜日
73. 開発体制の変化 - 2011年時点の開発体制
Director :1名
取締役
/
Engineer・Director
Engineer :2名
Designer :2名
社員
/
Engineer
社員
/
Designer 社員
/
Designer
エンジニアが2名に!
12年10月23日火曜日
74. 開発体制の変化 - 2012年(現在)時点の開発体制
Director :1名
取締役
/
Engineer・Director
Engineer :4名
Chief
Product
Manager
Designer :4名
社員
/
Director 社員
/
Designer
社員
/
Engineer 社員
/
Designer
社員
/
Engineer 社員
/
Designer
社員
/
Engineer 社員
/
Designer
12年10月23日火曜日
76. 技術からプロダクトへのシフト
「技術」から「プロダクト全般」を
担当するようにシフト
CTOとして技術に特化するか、
サービスまで見るかは分かれ道
12年10月23日火曜日
77. 本日のアジェンダ
nanapiができるまで 開発体制の変化と現状
• 創業時にとにかく大変なこと • 開発体制の変化
• CTOは技術者の夢を叶えられるか? • 「技術」から「プロダクト」へのシフト
システム構成といままでの経緯 nanapiで成し遂げたいこと
• 創業当時のシステム構成 • ハウツーDBで世界 No1を目指す
• 創業当時の負荷分散とアプリケーション構成 • ハウツーの先にある便利な世の中へ
• 現在のシステム構成
• 画像ファイルをスケールアウトさせる仕組み
12年10月23日火曜日
78. 本日のアジェンダ
nanapiができるまで 開発体制の変化と現状
• 創業時にとにかく大変なこと • 開発体制の変化
• CTOは技術者の夢を叶えられるか? • 「技術」から「プロダクト」へのシフト
システム構成といままでの経緯 nanapiで成し遂げたいこと
• 創業当時のシステム構成 • ハウツーDBで世界 No1を目指す
• 創業当時の負荷分散とアプリケーション構成 • ハウツーの先にある便利な世の中へ
• 現在のシステム構成
• 画像ファイルをスケールアウトさせる仕組み
12年10月23日火曜日
86. nanapiが成し遂げるべきこと
nanapiで探せばどんなハウツーも見つか
るという世界を目指したい
「ハウツーDB」として世界最大の
情報量をもつサービスへ
12年10月23日火曜日