GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Scott Delap , 翻訳者 松本 清一 投稿日 2007年8月20日
データを処理するアプリケーションを実行させることが、少しの手間でできるソフトウェアプラットフォームです。(中略)Hadoopは、MapReduceを実装し、Hadoop Distributedファイルシステム(HDFS)(下図参照(※1))を使用しています。MapReduceは、アプリケーションを沢山の小さな作業ブロックに分割します。HDFSは、信頼性のために複数のデータブロックのレプリカを作成し、クラスタのコンピュータノードにそれらを配置します。 MapReduceは、それらのデータを処理します。・・・
(※1)HadoopWebサイトにある図を参照のこと
HadoopはJavaで書かれており、プロジェクトをリードするDoug Cutting氏は、2006年1月にプロジェクト専属としてヤフーに雇われ、Hadoop自体も、近年ヤフーによって広く支援を受けている。ワシント ン大学では、Hadoopを利用した分散コンピューティングの科目が必須科目となっている。そのコースの資料が、Hadoopに関心を持つ技術者によっ てGoogle Codeに投稿されている。
最近、YahooのJeremy Zawodny氏が、Hadoopの状況について以下のように述べた。
ここ数年の間、 全ての企業において、大規模なWebシステムを構築することが求められており、それらは根本的な課題に直面しています。その基礎となるインフラストラク チャにおいては、購入価格、マシンパワー、インストール、沢山のサーバー管理といった課題が常にあります。たとえ、その辺にあるようなハードウェアを使う としても、それらをフル稼働させるために、分散-統合の処理をするためのソフトウェアの開発が必要となります。(中略)必要なソフトウェアインフラストラ クチャを構築することで、自分たちの技術を作り、競争上の優位性として捉え、先に進むことができます。しかし、私たちは、それとは若干異なるアプローチの 話をしています。成長している多くの企業や団体は、同様の機能が必要であると認識しています。我々は、Doug Cutting氏(オープンソースNutchとLuceneプロジェクトの開発者)の作業を支持しており、(これからの新しい)オープンソース Hadoopプロジェクトでの作業の継続と展開を支援するためにヤフーに加わるよう依頼しました。
Zawodny氏は、過去一年間に渡り、データソートのベンチマークを提供している。このテストでは、それぞれのノードが同じ量の入力データをソートしている。比率を例に挙げると、100ノードが合計10000に対し各々100レコードをソートするので、20のノードは合計2000レコードのソートに 各々100レコードをソートすることになる。最近のベンチマークは、以下の通りである。
| Date: | Nodes | Hours | |
| April | 2006 | 188 | 47.9 |
| May | 2006 | 500 | 42.0 |
| December | 2006 | 20 | 1.8 |
| December | 2006 | 100 | 3.3 |
| December | 2006 | 500 | 5.2 |
| December | 2006 | 900 | 7.8 |
| July | 2007 | 20 | 1.2 |
| July | 2007 | 100 | 1.3 |
| July | 2007 | 500 | 2.0 |
| July | 2007 | 900 | 2.5 |
Tim O'Reilly氏は、Zawodny氏の投稿を取り上げ、 このサポートがYahooのトップからのものであることを確認した。
Yahoo!は、去年の1月にhadoopを作ったDoug Cutting氏を雇用しました。しかし、OsconでのDoug氏の話によると、それはHadoopのお披露目パーティのようなもので、Yahoo!と しては、Hadoopプロジェクトをいかに重要なものと考えているかを明らかにしたかったのです。実際、私は、David Filoからの電話で、そのサポートがトップからのものであることを知りました。(中略)何故、Yahoo!'sとの関係がそれ程重要であるのか?まず第一に、それがウェブ2.0において、一種の競争上での転換点を示しています。検索分野で2番目に強い大企業が、オープンソースが彼らの前にそびえ立つ競争相手に対抗する大きな競争的武器であることを認識しています。(中略) Hadoopやその他のApacheプロジェクトをサポートすることで、Yahoo!は、自分たちが使うオープンソースソフトウェアプロジェクトに深く関わることができるだけでなく、それは、(Yahoo!の後ろ盾があることで)彼らに新たな「ギークな人の信頼性」を与える手助けとなります。(中略)第二に、おそらく同じくらい重要なことですが、Yahoo!はHadoopに実際に試す機会(※2)を提供しています。
(※2)例えば、Amazon EC2やAmazon S3を利用したHadoopのMapReduceがあります。
ブロガーのJohn Munsch氏は、"Hadoop And The Opposite Of The Not-Invented-Here Syndrome(Hadoop、そして自社開発主義症候群に反するもの)"という言い回しで、Yahooの関係について総括している。
MicrosoftのSriram Krishnan氏は、新規立ち上げの問題を考慮した議論へと話を移している。そして、業界がそういった大規模なソリューションへ移っている状態で、そ のソリューションを発展させている開発者たちは、HadoopとアマゾンEC2がを好んでいると書いている。
Web2.0の価値の大部分は、(多くのユーザが作った)データにあります。それは例えば、del.ico.us、Digg、Facebookです。(中略)大規模なサーバーソフトウェア(例えば、Gmail、Google検索、 Windows Live検索、Yahoo検索など)を動かすことは、一人の経済力でどうにかなるものではありません。典型的な長髪のグリークには、おそらく手をつけることができないでしょう。[それは、大規模なblobストレージ(S3、Googleファイルシステム)であり、大規模な構造化されたストレージ (GoogleのBigtable)や、そういったインフラ上でコードを実行させるための仕組み(MapReduce?、Dryad)といったものです。](中略)私は、Doug Cutting氏のオープンソースと同等のものがあるのかどうかをよく分かっていません。故に、Hadoopがその答えとなるものなのかもしれません。
【ネクストスケープ】.NET、C#のアプリケーション開発者募集
【豆蔵】大好評のため、Jenkins講座を追加開催致します!Jenkins作者の川口氏が講師です。
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
スレッド表示 返信