• Like
Cake Matsuri Nanapi
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Cake Matsuri Nanapi

  • 4,313 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,313
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
41
Comments
0
Likes
10

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. nanapi の レシピ 株式会社ロケットスタート CTO 和田修一 (id:wadap)
  • 2. 「 nanapi 」 というサービス
  • 3. ご存知ですか?
  • 4.  
  • 5.  
  • 6. 生活の知恵を 共有できる
  • 7. CGM サイト
  • 8. リリース日 : 2009 年 9 月 1 日 月間 PV :約 150 万 月間 UU :約 50 万
  • 9. nanapi の 構築事例
  • 10. Cake の話 少なめかもしれません ><
  • 11. 本日のアジェンダ 自己紹介 1 CakePHP を選んだワケ 2 nanapi の設計ポリシー 3 nanapi のシステム構成 4 さいごに 5
  • 12. 自己紹介 1 CakePHP を選んだワケ 2 nanapi の設計ポリシー 3 nanapi のシステム構成 4 さいごに 5
  • 13. 自己紹介 名前 : 和田修一 / id:wadap 所属 : 株式会社 ロケットスタート Blog : Unix 的なアレ( http://d.hatena.ne.jp/wadap/ ) 連載 : Unix 的なアレ gihyo.jp 出張所 経歴 : 2005 年、楽天株式会社に新卒入社 主にサーバ・ストレージの設計構築に携わる 2009 年 6 月に退職。ロケットスタート CTO に就任
  • 14. 開発環境 ThinkPad x200 Windows の作業フォルダを Vmware がマウント CentOS5.3 (i386) Windows7
  • 15. 自己紹介 1 CakePHP を選んだワケ 2 nanapi の設計ポリシー 3 nanapi のシステム構成 4 さいごに 5
  • 16. フレームワーク選定 実は、わたくし
  • 17. フレームワーク選定 インフラ専門
  • 18. フレームワーク選定 得意な言語が ないんです><
  • 19. フレームワーク選定 得意な フレームワークも ないんです><
  • 20. フレームワーク選定 そのため ゼロベースで 選択しました
  • 21. 選ぶときの3つの基準 習得が高速 ドキュメントが豊富 一人で開発しやすい
  • 22. 一応さわったことがあるもの
  • 23. Google Trend での傾向
  • 24. 自己紹介 1 CakePHP を選んだワケ 2 nanapi の設計ポリシー 3 nanapi のシステム構成 4 さいごに 5
  • 25. nanapi の設計ポリシー フレームワーク やっぱり便利!
  • 26. nanapi の設計ポリシー でもやっぱり
  • 27. nanapi の設計ポリシー 重いよねぇ
  • 28. nanapi の設計ポリシー まぁ仕方ないっす
  • 29. nanapi の設計ポリシー じゃぁ使いどころ 考えよう!
  • 30. nanapi の機能
  • 31. 機能ごとの切り分け 高速さ 処理の 複雑さ 会員機能 投稿機能 検索機能 評価機能 CakePHP 文章表示 トップページ 静的コンテンツ Ajax 用 API PHP + Clearsilver PHP
  • 32. (ちょっと脱線) Clearsilver って? C 言語で書かれた超高速なテンプレートエンジン データ ファイル テンプレート ファイル HTML
  • 33. ドメインで分ける http://nanapi.jp/member/ http://r.nanapi.jp/560/
  • 34. Apache の Alias でわける http://nanapi.jp/ <VirtualHost *:80> ## top page AliasMatch “^/$” /var/www/webroot/top.php </VirtualHost> そのほか、 Ajax 用の API も Alias で指定しています
  • 35. 自己紹介 1 CakePHP を選んだワケ 2 nanapi の設計ポリシー 3 nanapi のシステム構成 4 さいごに 5
  • 36. nanapi システム構成 ベンチャー ですもの
  • 37. nanapi システム構成 豪華なシステムは くめません
  • 38. nanapi システム構成 それでも
  • 39. nanapi システム構成 安く 高速で スケーラブル
  • 40. nanapi システム構成 そこで考えた構成
  • 41. nanapi システム構成 スタンドアロン型 インフラ
  • 42. nanapi システム構成 データさえ 分散できれば
  • 43. nanapi システム構成 スケールアウトは 容易
  • 44. nanapi システム構成 評価の数値、 PV の数値 Tokyo Tyrant HTML 化済み、文章データ ファイル ドキュメントデータ、会員情報など MySQL キャッシュ、 Token など一時データ Memcached
  • 45. 投稿システムのお話
  • 46. 投稿ごとにファイルを生成 文章を投稿するとき 投稿 MySQL 転送 Server - A Server - B ユーザーから投稿を受け付ける。 独自記法を採用しているため、パース前の データを DB へ保存。パースしたものをファイルで保存。 データ ファイル
  • 47. 投稿ごとにファイルを生成 文章を投稿するとき 投稿 MySQL 転送 Server - A Server - B Lsyncd (注)で指定したディレクトリを監視し、 リモートサーバへファイルを転送 データ ファイル
  • 48. 投稿ごとにファイルを生成 文章を投稿するとき 投稿 MySQL 転送 Server - A Server - B rsyncd daemon でファイルを受け取り、 ローカル Disk へ保存 データ ファイル
  • 49. nanapi システム構成 表示も高速に!
  • 50. 文書ページでの表示優先順位 最優先 あとまわし あとまわし
  • 51. 文章ページの表示 パース済み HTML
  • 52. 文章ページの表示 Ajax で数値を取得
  • 53. そのほかにも CSS SPRITE 静的コンテンツの外部ドメイン化 Expire ヘッダの付与 静的コンテンツの GZIP 化
  • 54. 徹底的に高速化!
  • 55. 自己紹介 1 CakePHP を選んだワケ 2 nanapi の設計ポリシー 3 nanapi のシステム構成 4 さいごに 5
  • 56. よいなぁと思う文化
  • 57. さいごに 自分も積極的に参加を していきたいと思っています!
  • 58. さいごに nanapi もよろしくね!
  • 59. みんなしゃべっていたので・・・ Version :1.2 Controller :13 Component :10 View :80
  • 60.