GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Scott Delap , 翻訳者 編集部 投稿日 2007年12月19日
10月にIBMとGoogleは大学向けインターネットスケールコンピューティングの推進で協力する旨の発表を行った(source)。
このイニシアチブの目標は台頭する大規模分配コンピューティングのパラダイムをより良く提示するために、コンピュータサイエンスを学ぶ学生達の高度な並列コンピューティング実践知識を向上させる事である。IBMとGoogleは大学のカリキュラムの増加と研究領域を広げるために、ハードウェア、ソフトウェ アとサービスを提供するため協力している。この二つの会社は両者のリソースが合体する事によってこの新たなコンピューティングモデルを探求するための、学会に対するその経済的、論理的な障壁を低くすることを望んでいる・・・巨大的に並列なプログラムの開発を簡易化するためにGoogleとIBMは下記のリソースを作り出した。
- グーグルの提供するコンピューティングインフラのオープンソース実装を動作させているプロセッサのクラスタ(ApacheのHadoopプロジェクトからのMapReduceとGFS)
- 巨大な並列コンピューティングテクニックを狙いとした、グーグルとワシントン大学が開発したCreative Commonsライセンスの大学カリキュラム。そのプログラムはここで入手可能。
http://code.google.com/edu/content/parallel.html- 学生達がHadoopを動作するクラスタのためのプログラムを開発するのを助けるためのオープンソースソフトウェアをIBMが開発。そのソフトウェアはオープンソース開発プラットフォームであるEclipseと一緒に動作する。そのプラグインがここで入手可能。
http://lucene.apache.org/hadoop/- IBM Tivoliシステムマネジメントソフトウェアを使用したIBMのクラスタのマネジメント、モニタリング、動的リソースのプロビジョニング。
- プログラムにおける大学間での協力を促進するWebサイト。これはIBMのInnovation Factoryに備わっているWeb 2.0テクノロジの上に構築される。
負けじとYahooが11月に分配コンピューティング用のシステムソフトウェアのリサーチと開発の発展を目標としたオープンソースプログラムの発表を行っている(source)。この発表の重要な部分はYahooはM45と名付けられた、Hadoopを使ったスーバーコンピューティングデータセンターを作るというところだ。そのクラスタには”丁度4000個のプロセッサと、3テラバイトのメモリ、1.5ペタバイトのディスク、そして最大で一秒に27兆以上の循環数(27 テラフロップ)を誇るパフォーマンスが備わっていて、世界で一番早いコンピュータの50位以内にランクインする”。12月にはYahoo Developer NetworkはHadoopとDistributed Computing(source)に焦点を合わせた新たなブログを開始した。
その数日後にIBMは2008年の上四半期を予定としたBlue Cloud(source)のコンピューティングプログラムを発表した。
・・・Blue Cloud - IBMのAlmaden Research Centerクラウドインフラストラクチャに基づている - にはXenとPowerVMで可視化されたLinuxオペレーティングシステムイメージとHadoopパラレルワークロードスケジューリングが含まれている。Blue Cloudはサーバが要求に応じた最適なパフォーマンスを確実にするのをマネージするソフトウェアである、IBM Tivoliによってサポートされている。これには、最も要求された状況下でさえも信頼性を確実にし、またパフォーマンスを加速するシームレスのエクスペリエンスをユーザに提供するために、即時にリソースを複数のサーバを通してプロビジョンするのが可能なソフトウェアが含まれている。Tivoliモニタリングはプロビジョンされたサーバの健康状態をチェックして、それらがサービスレベルの契約を満たしているかを確認する・・・
一番初めの提供物(source)は"cloud"ソフトウェア装備されたIBM BladeCenterになるだろう。元々それは内部的に動作されるはずだった一方、IBMはそのパッケージソフトが進化するにつれてクラウドコンピューティングサービスを探求して行くだろう。
最後にAmazonは先日SimpleDBサービスの限定ベータバージョンを発表した。SimpleDBはリレーショナルデータベースではない。その代わりに、それはモデルのようにハッシュテーブルに基づいている。CRUDオペレーションとクエリ言語が提供されている。価格はストレージの量と消費されたマシーンタイ ムに基づいている点において類似している。
マシーンの利用 Amazon SimpleDBを1時間使う毎に$0.14Amazon SimpleDBはそれぞれのリクエストのマシンリクエストを測り、ある特定のリクエストを完成するために使用されたマシン容量に基づいて請求し、またそれはおよそXeonプロセッサ1.7 GHzの時間当たりの能力に標準化されている。
データトランスファー
- 1GBごとに$0.10-全てのデータトランスファーイン
- 1GBごとに$0.18-始めの10 TB/月データトランスファーアウト
- 1GBごとに$0.16-次の40TB/月データトランスファーアウト
- 1GBごとに$0.13-月50TB以上のデータトランスファーアウト
データトランスファーのインとアウトはAmazon SimpleDBへのトランスファーのインとアウトを意味している。AmazonとSimpleDBと他のAmazon Web Services間でトランスファーされたデータは無償である。
ストラクチャーデータストレージ-毎月1GB当たり$1.50
AmazonはAmazon S3とAmazonDBのインフラストラクチャの違いを説明した。
・・・Amazon S3とは異なり、SimpleDBは生のデータを保持していない。むしろあなたの入力したデータを迅速なクエリを行えるよう、インデックスを作るために拡張する。それに加えてAmazon S3とAmazon Simple DBは異なるタイプの物理的ストレージを使用している。Amazon S3はより大きなオブジェクトを低価格でストアするために最適化された、密度の高いストレージドライブを使用している。Amazon SimpleDBはより小さなデータの小片を保持しデータアクセススピードのために最適化されたより密度の低いドライブを使用している。Charles H. Ying氏はSimpleDBがErlang(参考記事)に基づいていることを報告しており(source)、その後下記の事項を考慮するよう続けた。AWSサービス全体であなたのコストを最適化するために、大きなオブジェクトかもしくはファイルがAmazon S3に保持されるべきで、一方Amazon SimpleDBに保存するにはより小さなデータ要素かもしくはファイルポインタ(可能性としてAmazonS3オブジェクトに)が最善である。なぜならサービス間の密接な統合とAWS環境内でのフリーデータトランスファーのおかげでデベロッパたちは両方のサービスを彼らのアプリケーションに統合する事によってAmazon SimpldDBの速さとクエリ能力、そしてAmazon S3内の低費用でのデータ保持の利点を活用する事ができるのだ・・・
- イベント的な一貫性-データは即座に全てのノードを通して繁殖しない・・・レイテンシーは通常2番目くらいだが、高度なデータセットかもしくはロードにはより多くのレイテンシーを経験するかもしれない。良い面はあなたのデータがなくならないところだ!
- クエリがlexigraphicalである-lexicographicalのオーダーフォームにあなたのデータをストアする必要がある(あなたの整数値をゼロパッドにしてネガティブの整数値一式に整数のオフセットを付加して日付をISO8601か何かに変換する)
- サーチインデックス-テキストサーチ用に自分のインデックスを構成する必要がある。SimpleDBのクエリ表現はテキストサーチをサポートしないので、”テ キストサーチ”を適切に行うために逆転したインデックスを構築しなければいけない。これは実のところとても軽量な素晴らしい方法で、たくさんの興味深いインデックススキームが可能になることは確かだと思う。
GigaOMのNitin Borwankar氏はSimpleDBをとても破壊的だと見なしており(source)、既存のリレーショナルデータベースと、Active RecordとHibernateに一般的に使用されているObject Relational Mappingsとの簡単な比較検討を行っている。
原文はこちらです:http://www.infoq.com/news/2007/12/simpledb
【豆蔵】大好評のため、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
スレッド表示 返信