GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。

作者 Robert Bazinet , 翻訳者 編集部 投稿日 2009年5月22日
Ruby on Rails(リンク)は、わずか数年前の登場以来、よくがんばっていますが、必ずしもスケーリングでないと批判されています。開発者は、どんな問題の解決にも正しい 方法と間違った方法が必ずあることを知っていますが、Ruby on Railsのスケーリングでも事情はまったく同じです。
Rails Envy Podcast(リンク)とenvycastsのGregg Pollack氏は、New Relicと協力したScaling Railsというふさわしい名前のポッドキャストで、Ruby on Railsについて取り上げています。Pollack氏は、フロリダ州オーランドに住み、自身の会社Rails Envyで教育用メディアを製作しています。彼は、Orlando Techコミュニティにおいて非常に精力的に活動しており、BarCampOrlandoやOrlando Ruby Users Group、またオーランド初の公式コワーキングスペースであるCoLabの組織化を支援しています。
InfoQは、新しいスクリーンキャストと、それらがどのように開発者のRuby on Railsスケーリングを支援するかについて、Pollack氏と話す機会がありました。
Robert Bazinet (RB) :スケーリングをテーマに始められたenvycastsシリーズの紹介を見ましたが、今度はScaling Railsという新しいシリーズ。これは偶然の一致ですか?
Gregg Pollack (GP) :私は、Scaling Railsについてenvycastsを作りたいと数か月前に考えました。しかし、そこに到達するため、基本から始めてRubyについて考えるべきだと気づいたのです。それで、最初に"Scaling Ruby" envycastを出しました。それから、シリーズの次のenvycastは"Scaling Rails"になるはずでしたが、運良くNew Relicがスポンサーになってくれたので、それを無料で発表することができました。
RB:Scaling Railsシリーズを出そうと最終的に決定した理由は何ですか?
GP:理由はいくつかあります。
RB:envycastsのアイデアや後のScaling Railsの件は、どうして出てきたのですか?
GP:私が非常に情熱を傾けていることの2つは、映画製作とウェブ開発です。envycastsは、私にこれらの2つの情熱を組み合わせて、ことによると子供を養うのに十分な利益を出す方法を与えてくれました。正直に言って、これらのビデオで大もうけはしていません。しっかりと請負仕事をしている方が、金にはなります。でも、言ったように、これが好きなんです。
envycastsの目的は、楽しい教育用ビデオを提供することです。
RB:New Relicは、Railsのスケーリングに興味を持っているようですね。あなたのシリーズは、彼らのRails Labの一部になっています。この関係について詳しく教えていただけますか?また、これらのスクリーンキャストについてもお願いします。
GP:New Relicは、Railsコミュニティの拡大を支援して、企業のRailsフレームワークの採用を促進しようと考えているのです。それは正しいやり方です。彼らは、顧客を増やそうとしているのですが、私たちのような小さなコミュニティと連携する方法の1つは、コミュニティ自体に投資することです。過去に、Engine Yardが、RubiniusプロジェクトやMerbプロジェクトに投資して、同じことをしています。
New Relicは、Rails Performanceのトピックに関するコンテンツを製作するために、Rails Labウェブサイトを立ち上げました。私のビデオのスポンサーになってくれたので、Rails Labで無料でそれらを公開できたのです。
RB:企業によるRails採用の未来は、どのようなものになりますか?これらのスクリーンキャストは、Railsがそこに至るのを支援できますか?
GP:大企業内部で、プロジェクトでRailsを使用するように経営者側を説得する若い開発者が、徐々に増えています。普通は、内部アプリケーションから始まり、ゆっくりと稼働環境へと進行します。来年にかけて、より多くの大企業が、稼働環境へ自身のRailsアプリケーションをリリースするのは確実だと考えています。
今は、特に経済性のためにも、Railsを使い始めるチャンスです。Railsを使えば、より少ないコードでより多くの成果を上げることができます。また、(少なくとも私の経験では)保守費は、他の言語やフレームワークよりはるかに少なくて済みます。このことに他の企業より早く気づいた大企業は、競争的優位を維持するのが比較的簡単になります。
そのあたりの開発者が、次のプロジェクトでRailsを使うようボスを説得するのに、これらのビデオを使ってもらいたいと思います。あくまでも希望ですが。
RB:Railsのスケーリングに関して、これからのRailsスクリーンキャストには、どのようなものが出てくるのですか?
GP:今の時点では正直言ってよくわかりません。今のところ、13のエピソードが出ています。
RB:Railsがスケーリングできないという印象を持つ人がいるのは、なぜですか?
GP:スケーラビリティに関する悪評の大多数は、数年前のTwitterとTech Crunchが出所だと思います。Twitterは、おそらくご存じのように、毎秒何百万のリクエストを処理できる、メッセージングプラットフォームです。Railsは、twitterのようなメッセージングプラットフォームのフロントエンドに使えるかもしれませんが、バックエンドインフラストラクチャーは、スケーリングできる必要があるので、ほとんどのウェブフレームワークをそのまま扱うことができません。 twitterにはスケーリングの問題があったので、多くの人間が、これをRuby on Railsアプリケーション一般にスケーリングの問題があると解釈してしまったのです。明らかにそうではないのですが。
RB:企業でRailsアプリケーションの作成を始める開発者が、スケーラブルなRailsアプリケーションを作成するのに、どのようなアドバイスがありますか?
GP:私のScaling Railsスクリーンキャストをすべて見てください!これは自己宣伝です。
冗談はさておき、Railsに付属する多くのキャッシングメカニズムの利用方法を学習してください。稼働環境のアプリケーションをモニターできるように、New RelicのRPMのようなサーバーモニタリングツールをインストールしてください。この情報を利用して、アプリケーションが遅いところ、最適化すべきところを見つけます。
最近、memcachedに飛びつく企業があります。本当に時間をかけてデータベースクエリを最適化する前に、memcachedを使ってデータベースオブジェクトを格納し始めてはいけません。
最後に、プロジェクトの一番最初に、「アプリケーションを最適化する」ための時間を、稼働を始める前に作業計画で確保しておきます。その時間を誰かに奪われないようにしてください。
RB:あなたが作ったスクリーンキャスト以外に、開発者がスケーラブルなアプリケーションを作成するのに役立つリソースを推薦していただけますか?
GP:私の推薦は次の通りです。
RB:企業の開発者には、RubyとRuby on Railsを使用する、どのような利点がありますか?
GP:そうですね…これは、私たちの話の範囲外なのですが、企業でRailsを使用する最大の利点は、プロジェクトの保守段階にあります。
RB:本日はお忙しい中、お時間を頂き、ありがとうございました。
Gregg Pollack氏は、Rails Envyポッドキャストの共同ホストでありRails Activist Team(リンク)のメンバーです。Scaling Railsウェブサイト(リンク)でScaling Railsシリーズの13のエピソードをすべて見つけて、スクリーンキャストとコードのサンプルをダウンロードしてください。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式
本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。
前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。
Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。
スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。
No comments
スレッド表示 返信