SlideShare a Scribd company logo
1 of 65
Download to read offline
The master plan of
scaling a web application
Yusuke Wada a.k.a yusukebe
2013/10/26
Fukuoka Perl Workshop #24

1
本日の使用フォント
やさしさゴシック
http://www.fontna.com/blog/379/

2
Japan Perl Association

の

講師派遣制度を利用させて来ました

3
自己紹介

•
• (株)ワディット代表取締役
(株)オモロキ取締役兼最高技術責任者
•
• Webアプリケーションデベロッパー
物書きも少々…
•
• 独身…
和田裕介 1981年12月23日生

4
どこから来たの?

5
6
すみかは?

7
8
本題の前に

YAPC::Asia 2013レポート的な何か

9
YAPC::Aasia 2013 in Tokyo
9月19,20,21日
慶應義塾日吉キャンパス内 協生館

10
概要

•

エンジニアのエンジニアによるエンジニア
のためのお祭り

•
• 同時4トラックが走る

トータル1,131人の参加者

11
30days Albumより

http://30d.jp/yapcasia/6

12
前夜祭 LTソン::Tiny

13
お祭り雰囲気

14
トーク

15
Perl入学式

16
Lightning Talks

17
オーディエンス

18
Hub

19
引退

20
以上

YAPC::Asia 2013

ありがとう!

21
さて…

22
本日の題材
「最近なに開発してるか」

23
24
ボケて

• 国内最大級のお笑いWebサービス...らしい!
3秒で笑えるがコンセプト
•
オモロキがコアとなって開発・運営
•

25
こういうの

26
参考データ

•
• 月間お題投稿数3万件
月間ボケ投稿数120万件
•
• モバイルアプリは200万インストール
合計ボケ投稿数1,100万ボケ
•
ほげほげページビュー

27
各種デバイス展開

•
• スマホ向けWeb
iOSアプリ
•
• Androidアプリ
PC向けWeb

28
外部サービスとの連携

• Yahoo! JAPAN
百度 hao123
•
• PlayNow
goo
•
• Gunosy
etc.
•

ボケてセレクト
29
コラボ・スペシャルアカウント

•
• 企業さんがお題を提供
ユーザーがボケる
•
• バナー/告知ページ
二次利用なども
•
島耕作でボケれる!

30
ボケて自体の説明終わり

31
開発の話

32
Bokete versions

• Alpha - リリース前の試験版
Beta
- 2008年8月リリース
•
• Gamma - 2009年5月リリース
Delta - 2012年7月リリース
•
• Epsilon - 次期バージョン
33
全ての開発・運用を一人で担当
*モバイルアプリを除く

34
人的リソースは増やさない

35
便利な外部サービスでスケール

• Amazon Web Services

RDS, ElastiCache, SES ...
•
• Managedなミドルウェアを選択
GitHubプライベートレポジトリ
•
• Travis CI

Uptimer

•
などなど...
•
36
ただ、正直しんどい...

37
オモロキ

38
パートナー開発体制
ケースによって座組を変える

• コア = オモロキ
アプリ= オモロキ+ハロ+ブレイブソフト
•
• コラボ= オモロキ+ハロ+キャッチボール
...
•
39
割り切った分業化を提案

• API Version 2を作成
ほぼ全機能をWeb APIで提供
•
• モバイルアプリだけではなくWebでも利用
Webのフロント部分を誰かに移譲
•
• 言語はなんでもよい!
40
Web API v2

•
• 既存の仕様を利用する
JSON-RPC 2.0
•
• OAuth 2.0
API = Web でネットワークレイテンシ
•
• 割りきって無視をする
コアのロジックを全て実装し提供

41
JSON-RPC
# POST to SERVER	

!
{‘jsonrpc’: ‘2.0’, ‘method’: ‘/boke/recent’, ‘params’: {‘limit’: 10}, ‘id’: 1}	

!
!
# Response BODY	
{‘jsonrpc’: ‘2.0’, ‘result’: { entries = […] }, ‘id’: 1}	

シンプルなフォーマット
POSTでリクエスト
もちろんJSONフォーマット
42
43
APIの実装

• 旧APIと同居させる
認証認可のためのパス
•
• 情報操作のためのパス
v1
アプリ

OAuth
v2
JSON-RPC
44
方針

• 既存WAFは使わない = 素Plackアプリ
OAuth::Lite2 + JSON::RPCを利用
•
./lib/Bokete/WebAPIv2	
## Dispatcher.pm	
## OAuth/	
$   ## Controller/	
$   $   ## OAuth.pm	
$   $   ## Root.pm	
$   ## Controller.pm	
$   ## DataHandler.pm	
$   ## Dispatcher.pm	
## RPC/	
## Dispatcher.pm	
## Filter.pm	
## Handler/	
$   ## Boke.pm	
$   ## Root.pm	
## Handler.pm	
## Router.pm

45
OAuth::Lite2

•
• mixiでの利用実績あり?
継承して中身を実装する
•
• OAuth::Lite2::Server::DataHandler
code認証、password認証などに対応
•
Provider実装も含まれている

46
# In your controller	

!
use Plack::Middleware::Auth::OAuth2::ProtectedResurce;	

!
my $middleware =
Plack::Middleware::Auth::OAuth2::ProtectedResource-new(	
data_handler = 'Bokete::WebAPIv2::OAuth::DataHandler',	
app = sub {},	
);	
$middleware-call($self-request-env);	

!
if(my $user_id = $self-req-env-{REMOTE_USER}) {	
my $user = $self-model('User')-find({ id = $user_id });	
$self-stash-{user} = $user;	
}else{	
$self-stash-{user} = undef;	
}	

47
JSON::RPC

•
• ルータにRouter::Simpleを利用している
まかまかさん=牧さん

my $router = Router::Simple;	
$router-connect( 'get_info' = {	
handler = 'Hoge::Handler::Root',	
action = 'get_info'	
});	
my $dispatch = JSON::RPC::Dispatch-new( router = $router );	
...;	
sub psgi_app {	
$dispatch-handle_psgi($env);	
}

48
API Playground

49
ほぼAPI側のフレームワークは完成!

50
誰かにWebのフロントを

担当してもらおう!

51
やまぴー

52
俺「フロントの言語は何でもいいよ」

53
やまぴー「Perlでやります!」

54
俺「!!!」

55
ってことでやまぴーと一緒に

• Boketeのシステム部分をはじめて分業
• マネージメントツールをGitHubに寄せる
• レポジトリ
• イシュー管理
• ドキュメント管理
• 積極的に対面して一緒に作業する
• フロントはMojoliciousで実装する
56
Bokete::Front::*

• やまぴーが使いやすいフレームワーク作成
# presudo code	
!

get '/boke/recent' = sub {	
my $self = shift;	
my $result = $self-call_api({	
method = '/boke/recent',	
params = { limit = 10 }	
});	
$self-stash-{entries} = $result-{entries};	
$self-render();	
};
57
提供するライブラリなど

• Mojoliciousに特化したセッション管理
認証とAPIのコールをラップするUA
•
• CSRF対策
アプリのフレームワーク
•
作法をつくる
58
例えばセッション管理
my $session;	

!
...;	

!
$self-hook(	
around_dispatch = sub {	
my ( $next, $c ) =@_; 	
$session = Bokete::Session-new( request = $c-req );	
$next-();	
$session-finalize( response = $c-res );	
}	
);	

!
...;	

!
$self-helper(	
bokete_session = sub { return $session }	
);
59
特化したUserAgent
my $ua = Bokete::Front::UserAgent-new(	
client_id = ‘xxxxxx’,	
client_secret = ‘xxxxxx’,	
access_token_uri = ‘xxxxxx’,	
rpc_endpoint_uri = ‘xxxxxx’	
);	

!
my $token = $ua-get_token({	
username = ‘xxxxxx’,	
password = ‘xxxxxx’	
});	

!
# OAuthヘッダを設定しつつJSON-RPCをコールする	
my $result = $ua-call({	
access_token = $token-access_token,	
method = ‘hello’,	
params = { message = ‘foo’ }	
});
60
今回の構造化のメリット

•
• 分業しやすい、開発者の冗長化
役割としてのフォーカスが明確になる
•
• フロントエンドはやまぴー
ロジックとフレームワークづくりに集中
•
• 他のことに手を付けられる!
テスタビリティが上がる

61
今後やりたいこと

•
• 死活監視・リソース監視・チューニング
開発・CI環境の整備
•
• コンテンツデータの解析
新機能の実験
•
• Growth Hacks的なこと
インフラ周りの強化

62
まとめ

63
今やってるWebアプリの構造化

• HTTPレベルで一つのアプリを切り離す
APIサーバ
•
• OAuth認証
JSON-RPCによる情報操作API
•
• 分業出来てフォーカスが絞れる
絶賛開発中
•
• ウマくいけばやれることが広がる!
64
おわり

質問等どーぞー

65

More Related Content

What's hot

仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016Takayuki Shimizukawa
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -Hayato Mizuno
 
Start React with Browserify
Start React with BrowserifyStart React with Browserify
Start React with BrowserifyMuyuu Fujita
 
WordPressと外部APIとの連携
WordPressと外部APIとの連携WordPressと外部APIとの連携
WordPressと外部APIとの連携Hidekazu Ishikawa
 
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~normalian
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...Naoya Ito
 
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5Nishida Kansuke
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUpKenichi Mukai
 
忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門Toshiaki Maki
 
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + PerlNaoya Ito
 
Angular js or_backbonejs
Angular js or_backbonejsAngular js or_backbonejs
Angular js or_backbonejsOmasa Yusaku
 
Scc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解するScc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解するJun Futakawa
 
backbone.jsの使用例 その1
backbone.jsの使用例 その1backbone.jsの使用例 その1
backbone.jsの使用例 その1Makoto Haruyama
 
Wight: Phantom’s Perl friend - YAPC::Asia 2012
Wight: Phantom’s Perl friend - YAPC::Asia 2012Wight: Phantom’s Perl friend - YAPC::Asia 2012
Wight: Phantom’s Perl friend - YAPC::Asia 2012Hiroshi Shibamura
 
実用裏方 Perl 入門
実用裏方 Perl 入門実用裏方 Perl 入門
実用裏方 Perl 入門keroyonn
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium MobileNaoya Ito
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)Daisuke Yamazaki
 

What's hot (20)

仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
 
Start React with Browserify
Start React with BrowserifyStart React with Browserify
Start React with Browserify
 
WordPressと外部APIとの連携
WordPressと外部APIとの連携WordPressと外部APIとの連携
WordPressと外部APIとの連携
 
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門
 
Backbone.js入門
Backbone.js入門Backbone.js入門
Backbone.js入門
 
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + Perl
 
Angular js or_backbonejs
Angular js or_backbonejsAngular js or_backbonejs
Angular js or_backbonejs
 
Scc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解するScc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解する
 
backbone.jsの使用例 その1
backbone.jsの使用例 その1backbone.jsの使用例 その1
backbone.jsの使用例 その1
 
2時間で学ぶjQuery
2時間で学ぶjQuery2時間で学ぶjQuery
2時間で学ぶjQuery
 
Wight: Phantom’s Perl friend - YAPC::Asia 2012
Wight: Phantom’s Perl friend - YAPC::Asia 2012Wight: Phantom’s Perl friend - YAPC::Asia 2012
Wight: Phantom’s Perl friend - YAPC::Asia 2012
 
実用裏方 Perl 入門
実用裏方 Perl 入門実用裏方 Perl 入門
実用裏方 Perl 入門
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)
 

Viewers also liked

CAREPNG 5-Yr StrtPln 2012-16
CAREPNG 5-Yr StrtPln 2012-16CAREPNG 5-Yr StrtPln 2012-16
CAREPNG 5-Yr StrtPln 2012-16Peter Raynes
 
YAPC::Asia 2010 Twitter解析サービス
YAPC::Asia 2010 Twitter解析サービスYAPC::Asia 2010 Twitter解析サービス
YAPC::Asia 2010 Twitter解析サービスYusuke Wada
 
Bangi kajang 30 tahun akan datang
Bangi kajang 30 tahun akan datangBangi kajang 30 tahun akan datang
Bangi kajang 30 tahun akan datangIntan Fazira Erna
 
Creative Compound Press Materials & Media Outreach Materials
Creative Compound Press Materials & Media Outreach MaterialsCreative Compound Press Materials & Media Outreach Materials
Creative Compound Press Materials & Media Outreach MaterialsClaire Mirsky
 
Pra-Rancangan Pabrik Amonium Klorida dengan Proses Netralisasi Kapasitas 100....
Pra-Rancangan Pabrik Amonium Klorida dengan Proses Netralisasi Kapasitas 100....Pra-Rancangan Pabrik Amonium Klorida dengan Proses Netralisasi Kapasitas 100....
Pra-Rancangan Pabrik Amonium Klorida dengan Proses Netralisasi Kapasitas 100....Pulung Sambadha
 
How can HubSpot help BabelQuest grow your business
How can HubSpot help BabelQuest grow your businessHow can HubSpot help BabelQuest grow your business
How can HubSpot help BabelQuest grow your businessEric Murphy
 
Adblock is a boycott: The failure of Big Data to see it coming. Version 2.0. ...
Adblock is a boycott: The failure of Big Data to see it coming. Version 2.0. ...Adblock is a boycott: The failure of Big Data to see it coming. Version 2.0. ...
Adblock is a boycott: The failure of Big Data to see it coming. Version 2.0. ...David Carroll
 
Calendari 2017
Calendari 2017Calendari 2017
Calendari 2017LauraGR
 
Lmcp 1532 pembangunan bandar mapan
Lmcp 1532 pembangunan bandar mapanLmcp 1532 pembangunan bandar mapan
Lmcp 1532 pembangunan bandar mapanraqib17
 
エロサイト管理者の憂鬱3 - Hokkaiodo.pm#4 -
エロサイト管理者の憂鬱3 - Hokkaiodo.pm#4 -エロサイト管理者の憂鬱3 - Hokkaiodo.pm#4 -
エロサイト管理者の憂鬱3 - Hokkaiodo.pm#4 -Yusuke Wada
 

Viewers also liked (13)

Wawasan bangi kajang 30 tahun akan datang
Wawasan bangi kajang 30 tahun akan datangWawasan bangi kajang 30 tahun akan datang
Wawasan bangi kajang 30 tahun akan datang
 
CAREPNG 5-Yr StrtPln 2012-16
CAREPNG 5-Yr StrtPln 2012-16CAREPNG 5-Yr StrtPln 2012-16
CAREPNG 5-Yr StrtPln 2012-16
 
YAPC::Asia 2010 Twitter解析サービス
YAPC::Asia 2010 Twitter解析サービスYAPC::Asia 2010 Twitter解析サービス
YAPC::Asia 2010 Twitter解析サービス
 
Simon Property Group
Simon Property GroupSimon Property Group
Simon Property Group
 
Bangi kajang 30 tahun akan datang
Bangi kajang 30 tahun akan datangBangi kajang 30 tahun akan datang
Bangi kajang 30 tahun akan datang
 
Creative Compound Press Materials & Media Outreach Materials
Creative Compound Press Materials & Media Outreach MaterialsCreative Compound Press Materials & Media Outreach Materials
Creative Compound Press Materials & Media Outreach Materials
 
Pra-Rancangan Pabrik Amonium Klorida dengan Proses Netralisasi Kapasitas 100....
Pra-Rancangan Pabrik Amonium Klorida dengan Proses Netralisasi Kapasitas 100....Pra-Rancangan Pabrik Amonium Klorida dengan Proses Netralisasi Kapasitas 100....
Pra-Rancangan Pabrik Amonium Klorida dengan Proses Netralisasi Kapasitas 100....
 
How can HubSpot help BabelQuest grow your business
How can HubSpot help BabelQuest grow your businessHow can HubSpot help BabelQuest grow your business
How can HubSpot help BabelQuest grow your business
 
Adblock is a boycott: The failure of Big Data to see it coming. Version 2.0. ...
Adblock is a boycott: The failure of Big Data to see it coming. Version 2.0. ...Adblock is a boycott: The failure of Big Data to see it coming. Version 2.0. ...
Adblock is a boycott: The failure of Big Data to see it coming. Version 2.0. ...
 
Calendari 2017
Calendari 2017Calendari 2017
Calendari 2017
 
Lmcp 1532 pembangunan bandar mapan
Lmcp 1532 pembangunan bandar mapanLmcp 1532 pembangunan bandar mapan
Lmcp 1532 pembangunan bandar mapan
 
エロサイト管理者の憂鬱3 - Hokkaiodo.pm#4 -
エロサイト管理者の憂鬱3 - Hokkaiodo.pm#4 -エロサイト管理者の憂鬱3 - Hokkaiodo.pm#4 -
エロサイト管理者の憂鬱3 - Hokkaiodo.pm#4 -
 
Projek akhir
Projek akhirProjek akhir
Projek akhir
 

Similar to The master plan of scaling a web application

20150209 甲府-web新世紀2
20150209 甲府-web新世紀220150209 甲府-web新世紀2
20150209 甲府-web新世紀2Taisuke Fukuno
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回Naoyuki Yamada
 
KanbanとTHETAとDK2とわたし
KanbanとTHETAとDK2とわたしKanbanとTHETAとDK2とわたし
KanbanとTHETAとDK2とわたしMaehana Tsuyoshi
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成Tomoki Oyamatsu
 
Laravel本とコミュニティの話
Laravel本とコミュニティの話Laravel本とコミュニティの話
Laravel本とコミュニティの話Kazuaki KURIU
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Yusuke Wada
 
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaKeycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaYoshimasa Tanabe
 
意図を表現するプログラミング
意図を表現するプログラミング意図を表現するプログラミング
意図を表現するプログラミングAtsuhiro Kubo
 
かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう Shuhei Iitsuka
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~normalian
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようMidori Oge
 
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドKazumi Hirose
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4アシアル株式会社
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具Sho Ito
 

Similar to The master plan of scaling a web application (20)

20150209 甲府-web新世紀2
20150209 甲府-web新世紀220150209 甲府-web新世紀2
20150209 甲府-web新世紀2
 
Dev for Citizen Manual
Dev for Citizen ManualDev for Citizen Manual
Dev for Citizen Manual
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
KanbanとTHETAとDK2とわたし
KanbanとTHETAとDK2とわたしKanbanとTHETAとDK2とわたし
KanbanとTHETAとDK2とわたし
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
 
Klabの梅雨対策
Klabの梅雨対策Klabの梅雨対策
Klabの梅雨対策
 
APIMeetup 20170329_ichimura
APIMeetup 20170329_ichimuraAPIMeetup 20170329_ichimura
APIMeetup 20170329_ichimura
 
Laravel本とコミュニティの話
Laravel本とコミュニティの話Laravel本とコミュニティの話
Laravel本とコミュニティの話
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaKeycloak で SSO #渋谷java
Keycloak で SSO #渋谷java
 
意図を表現するプログラミング
意図を表現するプログラミング意図を表現するプログラミング
意図を表現するプログラミング
 
かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
 
Silex入門
Silex入門Silex入門
Silex入門
 
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具
 

More from Yusuke Wada

僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達Yusuke Wada
 
スッとGoを取り入れる
スッとGoを取り入れるスッとGoを取り入れる
スッとGoを取り入れるYusuke Wada
 
東京脱出計画中
東京脱出計画中東京脱出計画中
東京脱出計画中Yusuke Wada
 
Extreme remote working
Extreme remote workingExtreme remote working
Extreme remote workingYusuke Wada
 
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPANPodcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPANYusuke Wada
 
創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01Yusuke Wada
 
It's not only about "REMOTE"
It's not only about "REMOTE"It's not only about "REMOTE"
It's not only about "REMOTE"Yusuke Wada
 
事故からはじまるスケールチャンス
事故からはじまるスケールチャンス事故からはじまるスケールチャンス
事故からはじまるスケールチャンスYusuke Wada
 
Google BigQueryを使ってみた!
Google BigQueryを使ってみた!Google BigQueryを使ってみた!
Google BigQueryを使ってみた!Yusuke Wada
 
Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Yusuke Wada
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方Yusuke Wada
 
5 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 20145 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 2014Yusuke Wada
 
Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術Yusuke Wada
 
そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?Yusuke Wada
 
10 things to learn from Bokete
10 things to learn from Bokete10 things to learn from Bokete
10 things to learn from BoketeYusuke Wada
 
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and othersYusuke Wada
 
僕らの履歴書
僕らの履歴書僕らの履歴書
僕らの履歴書Yusuke Wada
 
僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由Yusuke Wada
 
僕らがつくるための 「5W」について
僕らがつくるための 「5W」について僕らがつくるための 「5W」について
僕らがつくるための 「5W」についてYusuke Wada
 
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方Yusuke Wada
 

More from Yusuke Wada (20)

僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
 
スッとGoを取り入れる
スッとGoを取り入れるスッとGoを取り入れる
スッとGoを取り入れる
 
東京脱出計画中
東京脱出計画中東京脱出計画中
東京脱出計画中
 
Extreme remote working
Extreme remote workingExtreme remote working
Extreme remote working
 
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPANPodcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
 
創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01創造のプロセスを回せ!v0.01
創造のプロセスを回せ!v0.01
 
It's not only about "REMOTE"
It's not only about "REMOTE"It's not only about "REMOTE"
It's not only about "REMOTE"
 
事故からはじまるスケールチャンス
事故からはじまるスケールチャンス事故からはじまるスケールチャンス
事故からはじまるスケールチャンス
 
Google BigQueryを使ってみた!
Google BigQueryを使ってみた!Google BigQueryを使ってみた!
Google BigQueryを使ってみた!
 
Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
5 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 20145 minutes - YAPC::Asia Tokyo 2014
5 minutes - YAPC::Asia Tokyo 2014
 
Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術Podcastをカジュアルに 支える技術
Podcastをカジュアルに 支える技術
 
そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?そのWebサービスは本当に「あたりまえ」だったのか?
そのWebサービスは本当に「あたりまえ」だったのか?
 
10 things to learn from Bokete
10 things to learn from Bokete10 things to learn from Bokete
10 things to learn from Bokete
 
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
 
僕らの履歴書
僕らの履歴書僕らの履歴書
僕らの履歴書
 
僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由僕らがWebサービスをつくる5つの理由
僕らがWebサービスをつくる5つの理由
 
僕らがつくるための 「5W」について
僕らがつくるための 「5W」について僕らがつくるための 「5W」について
僕らがつくるための 「5W」について
 
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (9)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

The master plan of scaling a web application