SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
OpenSourceConference 2008 Shimane




 openSUSE × Ruby on Rails + α で作るWebサービス




                                    moonlinx.jp
                                Kazuhisa Hara


                                                  1
About me




              Kazuhisa Hara

          moonlinx の中の人してます
       一応SystemsEngineerらしいですよ?

              今日は横浜から参戦
           飛行機とか修学旅行以来だよ!




                                  2
Introductory remarks

                       お話を始める前に…




      moonlinxって何だよ…




                                   3
What is moonlinx ?


moonlinxとは…
デザイン×音楽=新しいクリエイティション
• オンラインカルチャーマガジン & webコミュニティ
    クリエーター、ミュージシャン向けプロモーションサイト

• 8月27日、装いも新たに完全リニューアル!!
• 今回はそんなmoonlinx・コミュニティサイトのシステムの1部をご紹介します




 Magazine                         Community




                                              4
Technology


moonlinxを支えるテクノロジー

   ・openSUSE Linux

   ・Ruby on Rails

   ・MogileFS

   ・Perlbal

   ・MovableType

   ・… and more !
                     5
Operation results


openSUSEでの運用実績

2007年2月、トライアルサービスとしてスタート以来、
(メンテ以外では)完全無停止、そして無事故!




月間50万PV以上のリクエストに応え続ける、
        止まらないシステム / サービスを実現!


       これまでも、そして これからも!

                           6
Agenda




         Agenda

         • What is moonlinx ?
         • Why Ruby on Rails ?
         • The Another important Technology
         • DANGA INTERACTIVE
             ・What is MogileFS ?
             ・What is Perlbal ?
         • And more
         • Last method

                                              7
Why Ruby on Rails ?




      Why Ruby on Rails ?




                            8
Once upon a time …

ちょっとさかのぼって、
         リニューアル前のmoonlinx




                        9
GWT




Google Web Toolkit
             を用いて開発された

 フルAjax Webアプリケーション


  GWT → Java のコードから Java Script を生成してくれる



                                           10
GWT, but …




             しかし!
GUIデザインの
開発・カスタマイズが
非常に大変…



    コレ正直しんど過ぎッス




                    11
GWTs Code

             テーブルタグを表現する場合
//列2,行4のテーブルを作成する場合
Grid tbl = new Grid(2, 4);

//セルへ列のタイトルを挿入する場合
tbl.setWidget(0, 0, new Label(“名前”));
tbl.setWidget(0, 1, new Label(“性別”));
tbl.setWidget(0, 2, new Label(“写真”));
tbl.setWidget(0, 3, new Label(“ホームページ”));

//セルへイメージ挿入する場合
Image img = new Image();
img.setUrl("http://hogehoge/images/logo.gif");
tbl.setWidget(1, 2, img);

//リンクの挿入
Hyperlink link = new Hyperlink(“トップページ", “top");
tbl.setWidget(1, 3, link);
                                                   12
Additional blow




                  さ・ら・に!

  SEOに恐ろしく弱い
      SEO:Search Engine Optimization
          (検索エンジン最適化)

                                       13
robot returns to home


          静的HTMLはたった数行!
            しかも、単にGWTを呼び出してるだけ!!



当然、サーチロボット                      ・・・・。
あっさり帰宅・・・



                            moonlinx
  なんにも
  ないじゃん・・・


    ※ プライバシー保護の為、一部モザイク処理をしております
                                        14
Selfishness


これじゃまずい、            もっとGUIカスタマ
けど時間もないよ?           イズを柔軟にでき
                     ないといけない




(必要に応じて)               SEO対策も
 Ajaxは使って              うまくできる
   いきたい               フレームワーク

           ワガママ言いたい放題!!
                             15
The demand is answered




そんなワガママを叶えてくれたのが…



        Ruby On Rails


                         16
How did you change?


具体的には…?
• 時間もあんまりかけられないんだけど
  作法を覚える=開発速度に正比例の手応え、噂通りの高速開発が可能に

• Ajax捨てたくないんだけど
  ヘルパーが巧く吸収してくれる

• GUIデザインは?
  GWTと比べて、HTMLベースでいけるので、自由度大幅UP

• SEO対策はどうなの?
  RESTに簡単対応(キレイなURL)、そしてソースがHTMLベースなので
  サーチエンジンがちゃんと引っ掛けてくれる(笑)

                                     17
GWT summary




GWTをお勧め出来るサイト
• 社員やオペレータ等が利用する業務系Webアプリケーション
• 集客を必要としない、既に知名度の高いWebサイト
  (高級ファッションブランド等)



GWTをお勧め出来ないサイト
• GUIデザインのカスタマイズが頻繁に発生するWebサイト
• 集客(SEO対策)が必要なWebサイト



                                 18
want the shortcut.




          とにかくサーバサイドの手を抜きたい!

使える時間はGUIデザインや
          ユーザビリティの改善につぎ込みたい!!


                 見た目命!!!

    そんなmoonlinxにはRuby On Rails
  なぜなら、彼もまた、特別な存在だからです。

                                 19
The Another important Technology




moonlinxを裏から支える、
    もう一つ重要なテクノロジー




                                   20
Danga Interactive




  DANGA INTERACTIVE



                      21
Brad Fitzpatrick


               moonlinxを裏から支えるOSS

• MogileFS
• Perlbal
• memcached

共通点 = 全て同じ作者
Brad Fitzpatrick さん。なんて読むんだ…?
成果物はLiveJournal , Vox(SixApart)で使われてる
Perl(CPAN)界隈の超有名人!らしい。

そんな彼のサイトが『DANGA INTERACTIVE』
      http://www.danga.com

                    何このイケメン
                   カッコよすぎだろ…


                                        22
Why Danga ?




     Why DANGA ?


                   23
Management of media file




 moonlinxはユーザーがイメージ・音楽・動画などの
           複数のメディアファイルを
                 バンバン(←ここ重要)
          アップロードすることが出来るサイト




 ディスク容量や管理が馬鹿にならない

                               24
Selfishness


ファイルのバックア          NFSとかさ、マウ
ップとか楽したいん          ントとかしたくな
   だけど               いんだよね




 ディスクの追加は
                   勿論SANとか買う
簡単に、かつサービ
                   金など何処にもない
 ス止めずにしたい

          またまた言いたい放題!!
                           25
The demand is answered




        それ、MogileFSで出来るよ!




                            26
What is MogileFS ?




What is MogileFS ?
    danga.com謹製OSS分散ファイルシステム
                     特殊カーネル不要
  Amazone S3やGFS
                     自動レプリケーション
   ライクなシステム          RAID , SAN , NFS 一切不要
                     ファイルシステム依存なし
                     簡単ディスク追加
                     自動フェイルオーバー
                                             27
MinimumOverview - Upload

mindevcount : 2の場合
※ 作成するコピーの数                            Webページ
                                      アップローダー


                     ファイル
                                          Key : hogehoge


                                                      アプリケーションの
                                                    Mogileインターフェイスが
                            Ruby on Rails
                                                       このキーでStore


 Storageのステータス管理
      mog DB                                        mogilefsd
      (MySQL)                  MogileFS             (trackers)
                          DB

 Storage nodeの、                http
                                                           mogstored
 どこかに2つファイ
  ルが作成される
                     AUTO Replication
                                                           ファイル


          ファイル        Mogile Storage node
                                                                       28
MinimumOverview - Download




                                          ①   Key : hogehoge


                                                    アプリケーションが
                                                   keyをtrackersに問い
                            Ruby on Rails               合わせる




➂                                             ➁
     アプリケーションは                 MogileFS            trackers(mogilefsd)は
    受け取ったファイルパ
                                                  key よりファイルのありかを
    スで実ファイルを取り            DB                           DBから引っ張り
    に行く、その後クライ
        アントへ                                       アプリケーションに伝える




                     AUTO Replication
                                                      ファイル
        ファイル
                      Mogile Storage node
                                                                          29
The demand is answered




                   よーするに




                           30
Upload


                                     mogilefsd
                       MogileFS
                を                    (trackers)
                                                  に
         ファイル


    Key : hogehoge     と言うKeyを付与して投げると

                             mogstored
            Storage node


                                  の、どこかに


                                  分コピーされる
              mindevcount : 2
              ※ 作成するコピーの数


                     しかもコピー自体は非同期http通信!
                                                      31
Download


                               mogilefsd
              MogileFS         (trackers)
                                                に


   Key : hogehoge      と言うKeyを問い合わせると

                                    mogstored
                    Storage node

              が                    の、どこかにあるかを
     ファイル
                                        教えてくれる

  しかもStorage nodeの死活監視 / 死んだ時は自動でレプリカ作成もしてくれる!

                                                    32
Selfishness


でも、trackersは            ファイルの扱いは
毎回DBに問い合わ              Railsで受け持たな
 せすんでしょ?               きゃいけないわけ?




1画面出すのに何回              Railsでメディアフ
SELECT文走らせ             ァイル扱うとコス
   るんだよ                   トでかすぎ

               またかっ!
                                 33
The demand is answered




            それ、Perlbalで(ry




                             34
What is Perlbal ?




    What is Perlbal ?
   Sexy reverse proxy load balancer and
          webserver, full of tricks.

                    Webサーバー
                    ロードバランサー
                    リバースプロキシ
                    プロキシキャッシュサーバー
                    MogileFSと相性最高!
                                          35
Perlbal




Railsの前に、Perlbalを置いて
    メディアファイルのやり取りをやらせてしまう



Railsより遥かにコストが掛からない!

しかも、将来の拡張に柔軟対応
            ロードバランシングも実現できる



                              36
X-REPROXY-CACHE-FOR




DBリクエスト対策は、Perlbalの
X-REPROXY-CACHE-FORでファイルパスをキャッシュ


 http://media.moonlinx.jp/media/system/hoge/xxxyyyzzz.jpg




Perlbalでproxyしたこの値をキャッシュすると…
毎回trackers(mogilefsd)に問い合わせが不要
つまりDBへのアクセスがいらない!

                                                            37
Overview




                         Perlbal         Perlbalにキャッシュがあれば
                                         、即ファイルパスを返す


                        Ruby on Rails
ファイルの処理
は、Railsをすっ
飛ばしてPerlbal                              trackersへの問い合わせ、
 が受け持つ                  MogileFS           つまりDBアクセスなし

                   DB


           ファイル

                  AUTO Replication

                   Mogile Storage node                       38
memcached



蛇足ですが…


        memcached
 みんな大好き、爆速メモリキャッシュサーバー

            オブジェクトをメモリにキャッシュ
            導入ラクチン
            分散もできる
            mixi, はてな, Facebook, Vox,
            LiveJournal, ニコ動…みんな大好き


                                        39
MogileFS - memcached Support


そのmemcachedを
        trackers(mogilefsd)に組み込むと…

MogileFSのキーやファイルの場所をキャッシュ

  • trackersに問い合わせが来た時点で初めて効果を発揮する
    今回はPerlbalのキャッシュで、trackersにすら到達しないような作
    りだから、現時点ではあんまり効果なし
    ・試験的・個人的興味な意味での導入です…
    ・Uploadのタイミングでキャッシュするようにしたから、Perlbalの
     キャッシュに乗るまでは有能(短っ!)


  • ただしmemcachedは分散設置できるから、今後Perlbalで追
    いつかなくなった時の2次キャッシュ的な対策にはなるかも


                                             40
In the openSUSE Repository

さて…

そんな便利な
DANGA INTERACTIVEシリーズですが


                        実は。

  openSUSEのRepositoryにフツーにあったりします

                便利な世の中になったな




                                    41
Method

ちょっとマイナーっぽくて、
         デフォルトのRepositoryにないソフトなんだよね


『http://software.opensuse.org/search/
                            で探してみましょう』




                       1-Click installするもよし、
                      Repositoryに追加するもよし、
                      直にrpm落としてコマンド叩く
                                 もよし




                                               42
And more




           And more !



                        43
Construction of verification environment

検証環境の構築
• MySQLやMogileFSのレプリケーションが動くか検証したい
• 物理的に足りない環境もどうにかして用意・検証したい




それXen(仮想マシン)でやればいいよ!
• ベンチマークは流石に難しいが、動作検証程度なら問題なし




                                           44
Health check

運用監視
• サーバ / サービスの状況はNagiosを使って常に監視
• 何かあれば、即アラートメールが飛んでくる




                                 45
Monitoring

モニタリング
• サーバ / サービスのモニタリングはMuninを利用
• チューニングや増強判断の素材に




                               46
Access analysis

アクセス解析
• Apacheのアクセス解析には awstatsを利用
• ユーザーの嗜好や、動向をチェック




                               47
That and this




      いかがでしたでしょうか、色々ご紹介してきましたが…



 これの用意、SUSEのYaSTで(ほとんど)全部出来るんです。

               Rubyも、Railsも、MogileFSも、
                 Perlbalも、memcachedも、
          Xenも、Nagiosも、Muninも、awstatsも、
           ついでに自動起動も、ランレベルの指定も、
        sysconfigの書き換えも、ハードウェアの管理も、
          ネットワークの管理も、ファイアウォールも…



                                          48
want the shortcut.




          とにかくサーバサイドの手を抜きたい!

インストール・コンパイル作業よりも
  チューニングやユーザビリティの改善につぎ込みたい!!


 そこは時間を掛ける所じゃない!

     そんなmoonlinxにはopenSUSE
  なぜなら、彼もまた、特別な存在だからです。

                               49
Last method

まとめ
Q. 開発速度上げられて、Ajax使えて、SEO対策出来て、デザインしやす
   くて…そんなフレームワークない?
A.   Ruby on Railsオススメ!

Q. サーバサイドの構築とか時間掛けないでやりたいんだけど
A.   それSUSEで実現できるよ!

Q. アートや音楽に興味あるんだけど
A.   moonlinx使ってね!

Q. クリエーターな知り合いが居るんだけど
A.   moonlinx薦めてね!

                                        50
Present by …




                             Thank you for listening !




               http://moonlinx.jp
                                                         51

Contenu connexe

Tendances

2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発Takeshi Totani
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜Naruhiko Ogasawara
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBAkihiro Kuwano
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 
Mongo db勉強会の補足
Mongo db勉強会の補足Mongo db勉強会の補足
Mongo db勉強会の補足CROOZ, inc.
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
ZFSでストレージ
ZFSでストレージZFSでストレージ
ZFSでストレージ悟 宮崎
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2tamtam180
 
MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説知教 本間
 
POSIX中心主義と情報科学教育
POSIX中心主義と情報科学教育POSIX中心主義と情報科学教育
POSIX中心主義と情報科学教育Tomoyuki Matsuura
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botdcubeio
 
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構Ryosuke MATSUMOTO
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜Takashi Uemura
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013Kazuho Oku
 

Tendances (20)

2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
Mongo db勉強会の補足
Mongo db勉強会の補足Mongo db勉強会の補足
Mongo db勉強会の補足
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
ZFSでストレージ
ZFSでストレージZFSでストレージ
ZFSでストレージ
 
MongoDB
MongoDBMongoDB
MongoDB
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
 
MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説
 
POSIX中心主義と情報科学教育
POSIX中心主義と情報科学教育POSIX中心主義と情報科学教育
POSIX中心主義と情報科学教育
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
 
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
 

En vedette

Jtf2015 edison consul_cluster
Jtf2015 edison consul_clusterJtf2015 edison consul_cluster
Jtf2015 edison consul_clusterNobuyuki Matsui
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into ModulesHideki Saito
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化Hideki Saito
 
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編Hideki Saito
 
Hadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise HadoopHadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise HadoopYifeng Jiang
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからYasuhiro Horiuchi
 
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうマイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうTakashi Abe
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来Kazuto Kusama
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!zaki4649
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうかMasahito Zembutsu
 
機械学習概論 講義テキスト
機械学習概論 講義テキスト機械学習概論 講義テキスト
機械学習概論 講義テキストEtsuji Nakai
 
インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由axsh co., LTD.
 

En vedette (13)

Jtf2015 edison consul_cluster
Jtf2015 edison consul_clusterJtf2015 edison consul_cluster
Jtf2015 edison consul_cluster
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into Modules
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化
 
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編
 
Hadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise HadoopHadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise Hadoop
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
 
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうマイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか
 
機械学習概論 講義テキスト
機械学習概論 講義テキスト機械学習概論 講義テキスト
機械学習概論 講義テキスト
 
インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由
 
Xen Nic
Xen NicXen Nic
Xen Nic
 

Similaire à Osc2008 Opensuse Moonlinx

OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化Nobuyori Takahashi
 
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)Takashi Sogabe
 
OpenStack Object Storage; Usage
OpenStack Object Storage; UsageOpenStack Object Storage; Usage
OpenStack Object Storage; Usageirix_jp
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねNaoto TAKAHASHI
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTeruo Kawasaki
 
Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera Japan
 
2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)Naoki Okino
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望Tetsuo Yamabe
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏Developers Summit
 
VMを改めて学んで見る
VMを改めて学んで見るVMを改めて学んで見る
VMを改めて学んで見るkishima7
 
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門irix_jp
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~じゅん なかざ
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutesYohei Sasaki
 
Mongo dbを知ろう devlove関西
Mongo dbを知ろう   devlove関西Mongo dbを知ろう   devlove関西
Mongo dbを知ろう devlove関西Ryuji Tamagawa
 

Similaire à Osc2008 Opensuse Moonlinx (20)

OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
Zynga
ZyngaZynga
Zynga
 
Aws privte20110406 arai
Aws privte20110406 araiAws privte20110406 arai
Aws privte20110406 arai
 
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
 
OpenStack Object Storage; Usage
OpenStack Object Storage; UsageOpenStack Object Storage; Usage
OpenStack Object Storage; Usage
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
Grailsのススメ(仮)
Grailsのススメ(仮)Grailsのススメ(仮)
Grailsのススメ(仮)
 
Mrubyの始め方
Mrubyの始め方Mrubyの始め方
Mrubyの始め方
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
 
Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219
 
2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
 
VMを改めて学んで見る
VMを改めて学んで見るVMを改めて学んで見る
VMを改めて学んで見る
 
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutes
 
Mongo dbを知ろう devlove関西
Mongo dbを知ろう   devlove関西Mongo dbを知ろう   devlove関西
Mongo dbを知ろう devlove関西
 

Plus de Kazuhisa Hara

Plus de Kazuhisa Hara (6)

ZFS on Linux @ZFS Day 2011.10
ZFS on Linux @ZFS Day 2011.10ZFS on Linux @ZFS Day 2011.10
ZFS on Linux @ZFS Day 2011.10
 
Osc2011 Do
Osc2011 DoOsc2011 Do
Osc2011 Do
 
Osc2010 Do LT
Osc2010 Do LTOsc2010 Do LT
Osc2010 Do LT
 
Osc2009 Do Xen Hara
Osc2009 Do Xen HaraOsc2009 Do Xen Hara
Osc2009 Do Xen Hara
 
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124
 
090214ldd Mogilefs
090214ldd Mogilefs090214ldd Mogilefs
090214ldd Mogilefs
 

Dernier

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成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
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った 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...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Dernier (8)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成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
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った 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...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

Osc2008 Opensuse Moonlinx

  • 1. OpenSourceConference 2008 Shimane openSUSE × Ruby on Rails + α で作るWebサービス moonlinx.jp Kazuhisa Hara 1
  • 2. About me Kazuhisa Hara moonlinx の中の人してます 一応SystemsEngineerらしいですよ? 今日は横浜から参戦 飛行機とか修学旅行以来だよ! 2
  • 3. Introductory remarks お話を始める前に… moonlinxって何だよ… 3
  • 4. What is moonlinx ? moonlinxとは… デザイン×音楽=新しいクリエイティション • オンラインカルチャーマガジン & webコミュニティ クリエーター、ミュージシャン向けプロモーションサイト • 8月27日、装いも新たに完全リニューアル!! • 今回はそんなmoonlinx・コミュニティサイトのシステムの1部をご紹介します Magazine Community 4
  • 5. Technology moonlinxを支えるテクノロジー ・openSUSE Linux ・Ruby on Rails ・MogileFS ・Perlbal ・MovableType ・… and more ! 5
  • 7. Agenda Agenda • What is moonlinx ? • Why Ruby on Rails ? • The Another important Technology • DANGA INTERACTIVE ・What is MogileFS ? ・What is Perlbal ? • And more • Last method 7
  • 8. Why Ruby on Rails ? Why Ruby on Rails ? 8
  • 9. Once upon a time … ちょっとさかのぼって、 リニューアル前のmoonlinx 9
  • 10. GWT Google Web Toolkit を用いて開発された フルAjax Webアプリケーション GWT → Java のコードから Java Script を生成してくれる 10
  • 11. GWT, but … しかし! GUIデザインの 開発・カスタマイズが 非常に大変… コレ正直しんど過ぎッス 11
  • 12. GWTs Code テーブルタグを表現する場合 //列2,行4のテーブルを作成する場合 Grid tbl = new Grid(2, 4); //セルへ列のタイトルを挿入する場合 tbl.setWidget(0, 0, new Label(“名前”)); tbl.setWidget(0, 1, new Label(“性別”)); tbl.setWidget(0, 2, new Label(“写真”)); tbl.setWidget(0, 3, new Label(“ホームページ”)); //セルへイメージ挿入する場合 Image img = new Image(); img.setUrl("http://hogehoge/images/logo.gif"); tbl.setWidget(1, 2, img); //リンクの挿入 Hyperlink link = new Hyperlink(“トップページ", “top"); tbl.setWidget(1, 3, link); 12
  • 13. Additional blow さ・ら・に! SEOに恐ろしく弱い SEO:Search Engine Optimization (検索エンジン最適化) 13
  • 14. robot returns to home 静的HTMLはたった数行! しかも、単にGWTを呼び出してるだけ!! 当然、サーチロボット ・・・・。 あっさり帰宅・・・ moonlinx なんにも ないじゃん・・・ ※ プライバシー保護の為、一部モザイク処理をしております 14
  • 15. Selfishness これじゃまずい、 もっとGUIカスタマ けど時間もないよ? イズを柔軟にでき ないといけない (必要に応じて) SEO対策も Ajaxは使って うまくできる いきたい フレームワーク ワガママ言いたい放題!! 15
  • 16. The demand is answered そんなワガママを叶えてくれたのが… Ruby On Rails 16
  • 17. How did you change? 具体的には…? • 時間もあんまりかけられないんだけど 作法を覚える=開発速度に正比例の手応え、噂通りの高速開発が可能に • Ajax捨てたくないんだけど ヘルパーが巧く吸収してくれる • GUIデザインは? GWTと比べて、HTMLベースでいけるので、自由度大幅UP • SEO対策はどうなの? RESTに簡単対応(キレイなURL)、そしてソースがHTMLベースなので サーチエンジンがちゃんと引っ掛けてくれる(笑) 17
  • 18. GWT summary GWTをお勧め出来るサイト • 社員やオペレータ等が利用する業務系Webアプリケーション • 集客を必要としない、既に知名度の高いWebサイト (高級ファッションブランド等) GWTをお勧め出来ないサイト • GUIデザインのカスタマイズが頻繁に発生するWebサイト • 集客(SEO対策)が必要なWebサイト 18
  • 19. want the shortcut. とにかくサーバサイドの手を抜きたい! 使える時間はGUIデザインや ユーザビリティの改善につぎ込みたい!! 見た目命!!! そんなmoonlinxにはRuby On Rails なぜなら、彼もまた、特別な存在だからです。 19
  • 20. The Another important Technology moonlinxを裏から支える、 もう一つ重要なテクノロジー 20
  • 21. Danga Interactive DANGA INTERACTIVE 21
  • 22. Brad Fitzpatrick moonlinxを裏から支えるOSS • MogileFS • Perlbal • memcached 共通点 = 全て同じ作者 Brad Fitzpatrick さん。なんて読むんだ…? 成果物はLiveJournal , Vox(SixApart)で使われてる Perl(CPAN)界隈の超有名人!らしい。 そんな彼のサイトが『DANGA INTERACTIVE』 http://www.danga.com 何このイケメン カッコよすぎだろ… 22
  • 23. Why Danga ? Why DANGA ? 23
  • 24. Management of media file moonlinxはユーザーがイメージ・音楽・動画などの 複数のメディアファイルを バンバン(←ここ重要) アップロードすることが出来るサイト ディスク容量や管理が馬鹿にならない 24
  • 25. Selfishness ファイルのバックア NFSとかさ、マウ ップとか楽したいん ントとかしたくな だけど いんだよね ディスクの追加は 勿論SANとか買う 簡単に、かつサービ 金など何処にもない ス止めずにしたい またまた言いたい放題!! 25
  • 26. The demand is answered それ、MogileFSで出来るよ! 26
  • 27. What is MogileFS ? What is MogileFS ? danga.com謹製OSS分散ファイルシステム 特殊カーネル不要 Amazone S3やGFS 自動レプリケーション ライクなシステム RAID , SAN , NFS 一切不要 ファイルシステム依存なし 簡単ディスク追加 自動フェイルオーバー 27
  • 28. MinimumOverview - Upload mindevcount : 2の場合 ※ 作成するコピーの数 Webページ アップローダー ファイル Key : hogehoge アプリケーションの Mogileインターフェイスが Ruby on Rails このキーでStore Storageのステータス管理 mog DB mogilefsd (MySQL) MogileFS (trackers) DB Storage nodeの、 http mogstored どこかに2つファイ ルが作成される AUTO Replication ファイル ファイル Mogile Storage node 28
  • 29. MinimumOverview - Download ① Key : hogehoge アプリケーションが keyをtrackersに問い Ruby on Rails 合わせる ➂ ➁ アプリケーションは MogileFS trackers(mogilefsd)は 受け取ったファイルパ key よりファイルのありかを スで実ファイルを取り DB DBから引っ張り に行く、その後クライ アントへ アプリケーションに伝える AUTO Replication ファイル ファイル Mogile Storage node 29
  • 30. The demand is answered よーするに 30
  • 31. Upload mogilefsd MogileFS を (trackers) に ファイル Key : hogehoge と言うKeyを付与して投げると mogstored Storage node の、どこかに 分コピーされる mindevcount : 2 ※ 作成するコピーの数 しかもコピー自体は非同期http通信! 31
  • 32. Download mogilefsd MogileFS (trackers) に Key : hogehoge と言うKeyを問い合わせると mogstored Storage node が の、どこかにあるかを ファイル 教えてくれる しかもStorage nodeの死活監視 / 死んだ時は自動でレプリカ作成もしてくれる! 32
  • 33. Selfishness でも、trackersは ファイルの扱いは 毎回DBに問い合わ Railsで受け持たな せすんでしょ? きゃいけないわけ? 1画面出すのに何回 Railsでメディアフ SELECT文走らせ ァイル扱うとコス るんだよ トでかすぎ またかっ! 33
  • 34. The demand is answered それ、Perlbalで(ry 34
  • 35. What is Perlbal ? What is Perlbal ? Sexy reverse proxy load balancer and webserver, full of tricks. Webサーバー ロードバランサー リバースプロキシ プロキシキャッシュサーバー MogileFSと相性最高! 35
  • 36. Perlbal Railsの前に、Perlbalを置いて メディアファイルのやり取りをやらせてしまう Railsより遥かにコストが掛からない! しかも、将来の拡張に柔軟対応 ロードバランシングも実現できる 36
  • 38. Overview Perlbal Perlbalにキャッシュがあれば 、即ファイルパスを返す Ruby on Rails ファイルの処理 は、Railsをすっ 飛ばしてPerlbal trackersへの問い合わせ、 が受け持つ MogileFS つまりDBアクセスなし DB ファイル AUTO Replication Mogile Storage node 38
  • 39. memcached 蛇足ですが… memcached みんな大好き、爆速メモリキャッシュサーバー オブジェクトをメモリにキャッシュ 導入ラクチン 分散もできる mixi, はてな, Facebook, Vox, LiveJournal, ニコ動…みんな大好き 39
  • 40. MogileFS - memcached Support そのmemcachedを trackers(mogilefsd)に組み込むと… MogileFSのキーやファイルの場所をキャッシュ • trackersに問い合わせが来た時点で初めて効果を発揮する 今回はPerlbalのキャッシュで、trackersにすら到達しないような作 りだから、現時点ではあんまり効果なし ・試験的・個人的興味な意味での導入です… ・Uploadのタイミングでキャッシュするようにしたから、Perlbalの キャッシュに乗るまでは有能(短っ!) • ただしmemcachedは分散設置できるから、今後Perlbalで追 いつかなくなった時の2次キャッシュ的な対策にはなるかも 40
  • 41. In the openSUSE Repository さて… そんな便利な DANGA INTERACTIVEシリーズですが 実は。 openSUSEのRepositoryにフツーにあったりします 便利な世の中になったな 41
  • 42. Method ちょっとマイナーっぽくて、 デフォルトのRepositoryにないソフトなんだよね 『http://software.opensuse.org/search/ で探してみましょう』 1-Click installするもよし、 Repositoryに追加するもよし、 直にrpm落としてコマンド叩く もよし 42
  • 43. And more And more ! 43
  • 44. Construction of verification environment 検証環境の構築 • MySQLやMogileFSのレプリケーションが動くか検証したい • 物理的に足りない環境もどうにかして用意・検証したい それXen(仮想マシン)でやればいいよ! • ベンチマークは流石に難しいが、動作検証程度なら問題なし 44
  • 45. Health check 運用監視 • サーバ / サービスの状況はNagiosを使って常に監視 • 何かあれば、即アラートメールが飛んでくる 45
  • 46. Monitoring モニタリング • サーバ / サービスのモニタリングはMuninを利用 • チューニングや増強判断の素材に 46
  • 47. Access analysis アクセス解析 • Apacheのアクセス解析には awstatsを利用 • ユーザーの嗜好や、動向をチェック 47
  • 48. That and this いかがでしたでしょうか、色々ご紹介してきましたが… これの用意、SUSEのYaSTで(ほとんど)全部出来るんです。 Rubyも、Railsも、MogileFSも、 Perlbalも、memcachedも、 Xenも、Nagiosも、Muninも、awstatsも、 ついでに自動起動も、ランレベルの指定も、 sysconfigの書き換えも、ハードウェアの管理も、 ネットワークの管理も、ファイアウォールも… 48
  • 49. want the shortcut. とにかくサーバサイドの手を抜きたい! インストール・コンパイル作業よりも チューニングやユーザビリティの改善につぎ込みたい!! そこは時間を掛ける所じゃない! そんなmoonlinxにはopenSUSE なぜなら、彼もまた、特別な存在だからです。 49
  • 50. Last method まとめ Q. 開発速度上げられて、Ajax使えて、SEO対策出来て、デザインしやす くて…そんなフレームワークない? A. Ruby on Railsオススメ! Q. サーバサイドの構築とか時間掛けないでやりたいんだけど A. それSUSEで実現できるよ! Q. アートや音楽に興味あるんだけど A. moonlinx使ってね! Q. クリエーターな知り合いが居るんだけど A. moonlinx薦めてね! 50
  • 51. Present by … Thank you for listening ! http://moonlinx.jp 51