千年繁栄する法
2013/6/15 PBL講義 @mryoshio
目次
• 自己紹介
• 対象者
• 想像してください
• 簡単に考える
• まとめ
2
自己紹介
3
開発 / インフラ / 雑用
日々是徒労也
対象者
4
何から手をつければ良い
か分からない開発者
もっと具体的に
5
経験の無いものを使う必
要に迫られて困っている
人(喜んでいる人は対象
外)
想像してください
6
Aさんの場合
7
これまでJavaで開発して
たけど、上司が急にGAE
使った開発すると言い出
した。どうしよ。
Aさんの場合
8
明日からGAE
使って開発して
よ。よろしく。
お疲れ。
Pythonでもいい
のかな・・・
GAE = Google
App Engineだよ
な?
誰か周りに聞け
る人いたっけか
な
Bさんの場合
9
Rails使って開発中。
システムをすべてAWS上
に置くことに。
Bさんの場合
10
社内システムを
どんどんクラウ
ドに置くことに
なったんでやっ
といて。
EC2くらいなら
触ったことある
けど・・・
アカウントどう
しようかな
料金も私が調べ
るのかな
もし貴方なら
11
どうする?
どう思う?
どう行動する?
簡単に考える
12
WEB
• リクエスト受付
• 静的コンテンツの処理
• キャッシュ
• リダイレクト
• プロキシ、ロードバランシング
• PHP, Perl, Rubyアプリ等との組み合わせ方
• クラスタリング
• セッション管理
• ルーティング
13
AP
• 動的コンテンツの生成
• キャッシュ
• DB接続、コネクションプール
• i18n
• クラスタリング
• セッション管理
• O/RM
• テンプレートエンジン
• ルーティング
14
DB
• SQL
• SQLアンチパターン
• RDBMS / NoSQL
• クエリ解析
• スロークエリの特定
• バッファサイズ等主なパラメータ
• バックアップ、レストア
15
取捨選択
16
Apache Tomcat Ruby Ruby on Rails PostgreSQL Heroku
nginx WebLogic Python Django MySQL GAE
lighttpd WebSphere Java Play
Framework
RDS※ EC2
JBoss C# Scala Struts2 Oracle NIFTY Cloud
Go DynamoDB Lift Revel SQLServer PHP
これまで: Java / Apache + Tomcat (Struts2) + MySQL / DCで頑張って構築したサーバ
これから: Python / GAE
取捨選択
17
Apache Tomcat Ruby Ruby on Rails PostgreSQL Heroku
nginx WebLogic Python Django MySQL GAE
lighttpd WebSphere Java Play
Framework
RDS※ EC2
JBoss C# Scala Struts2 Oracle NIFTY Cloud
Go DynamoDB Lift Revel SQLServer PHP
これまで: Apache / Ruby on Rails / PostgreSQL / 社内サーバ
これから: Apache / Ruby on Rails / RDS / EC2
どこを見ている
18
Application Layer
(Real Application you write)
Application Platform Layer
(WEB/AP/DB Server)
Hardware Layer
(Infrastructure)
どこを見ている
19
Ruby on Rails
Server (you built)
JavaRuby
Play
Framework
Django
Tomcat WebLogic JBossApache
EC2
MySQLOracleRDS
GAE Heroku
PythonScala
PostgreSQL
Struts2 Revel Lift
Apache + Tomcat + Struts2 + MySQL
20
Ruby on Rails
Server (you built)
JavaRuby
Play
Framework
Django
Tomcat WebLogic JBossApache
EC2
MySQLOracleRDS
GAE Heroku
PythonScala
PostgreSQL
Struts2 Revel Lift
Heroku + Ruby on Rails
21
Server (you built)
JavaRuby
Play
Framework
Django
Tomcat WebLogic JBossApache
EC2
MySQLOracleRDS
GAE Heroku
PythonScala
PostgreSQL
Struts2 Revel Lift
Ruby on Rails
Heroku + Ruby on Rails + RDS
22
Ruby on Rails
Server (you built)
JavaRuby
Play
Framework
Django
Tomcat WebLogic JBossApache
EC2
MySQLOracleRDS
GAE Heroku
PythonScala
PostgreSQL
Struts2 Revel Lift
GAE + Python
23
Ruby on Rails
Server (you built)
JavaRuby
Play
Framework
Django
Tomcat WebLogic JBossApache
EC2
MySQLOracleRDS
GAE Heroku
PythonScala
PostgreSQL
Struts2 Revel Lift
Java + Play Framework + PostgreSQL + EC2
24
Ruby on Rails
Server (you built)
JavaRuby
Play
Framework
Django
Tomcat WebLogic JBossApache
EC2
MySQLOracleRDS
GAE Heroku
PythonScala
PostgreSQL
Struts2 Revel Lift
まとめ
25
意識の意識
今どのレイヤを触ってい
るかを意識すれば良い
26
多分こういうこと
使うもの変わっても
やることなんて
大して変わらない
27
+α
変わってたら
儲けもの位の気持ちで
臨めば良い
28
For Now
不安なのはやる前だけ
29
おわり
30

千年繁栄する法