Java 8 ランタイム以降のサンドボックスと gVisor やっぱり AppEngine ja night #3 @apstndb
Try CapeDwarf CapeDwarf is an open-source alternative to Google App Engine, allowing you to run applications written for the Google App Engine on the WildFly Application Server without modification. Latest News Ales Justin Jul 27, 2015 Finally 2.0.0.Final version / release With no reported major issues with our CR releases, I finally tagged and released 2.0.0.Final. Download it here: http://downlo
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads
前回「秋はまだですか」と書きましたが、その日のうちに気温下がったw これでちょっと過ごしやすくなったかも。…薄着で寝ててちょっと風邪引きそうになったのは内緒(・ω・) 本題。 クロスドメインでの非同期通信(XMLHttpRequest Level2)をGoogle App Engineで実装したのでメモ。はまったポイントもいくつか書いておきます。 特にハマったのは出力ヘッダ周り。 Access-Control-Allow-Origin これはあちこちのサイトに書かれてますね。このヘッダを「*」で出力してあげると他ドメインからの通信を受け付けるようになります。・・・が、これだけじゃダメなんです。 Access-Control-Allow-Methods こいつを指定してあげないとサーバーが受け付けてくれません。GETならGET、POSTならPOST・・・と指定してあげないといけません。これは
早すぎる最適化オジサン @makotokuwata まずAppEngineがいまいちブレークしないのは、お金を集める仕組みが用意されていないことと、Datastore (Bigtable) の使い方が難しいことの2点だと思う。 早すぎる最適化オジサン @makotokuwata 1点目の、集金システムについて。AppEngineと比べて、たとえばiPhoneアプリは十分ブレークしているといえるけど、これはやはりiPhoneアプリは販売して収益を出せる可能性があることが大きい。 早すぎる最適化オジサン @makotokuwata それに比べて、GAEはインフラと開発環境は提供するけど、集金の仕組みは提供できてない。言い方を変えると、無料で使える環境は提供しているけど、収益を上げるための環境は提供できてない。そこがiPhoneアプリと違うところ。
Authors: Daniel Shawcross Wilkerson and Simon Fredrick Vicente Goldsmith Contributors: Ryan Barrett, Erick Armbrust, Robert Johnson, Alfred Fuller Massively scalable web applications encounter a fundamental tension in computing between performance and correctness: performance is often addressed by using a large and therefore distributed machine where programs are multi-threaded and interruptib
Aしげる先生の記事で http://songofcloud.gluegent.com/2010/04/google-app-engine-sdk-133.html CommittedButStillApplyingExceptionなんてものが出来たと聞いていろいろ読み返してみた。 http://code.google.com/intl/ja/appengine/articles/life_of_write.html http://code.google.com/intl/en/appengine/articles/transaction_isolation.html http://code.google.com/intl/ja/appengine/articles/transaction_isolation.html DataStoreのcommit呼び出し = [Entityの更新=C
※2010/4/23 sessionのクリアについてご指摘頂き、追記しました。Google App Engine for Java(GAE/J)にて、どんなアプリを使う場合でも (自分的に)ほぼ必須となる設定ファイルのまとめ。 ていうか、リファレンス読めばいーんだけどさ 1.sessionを有効にする & クリアの設定をする Javaでsession使わないケースなんてあるのか? appengine-web.xml に 下記を追加 <sessions-enabled>true</sessions-enabled> GAE/Jでsessionを使う場合、このままだとDatastoreにsession情報が残ったままなので定期的にクリアするcronを設定する web.xml に 下記を追加 <servlet> <servlet-name>_ah_sessioncleanup</servlet-
最近Apps MarketplaceというプラットフォームがGoogleから公開されました。B|CtoB なアプリケーションを登録できるプラットフォームです。アプリケーションの登録・公開方法については@ITさんに記事がありますので、そちらを参考にして下さい。今はまだ開発ベンダ向けのGoogleによる課金のサービスが提供されていませんが、これが開始される時までにそれなりにMarketplace向けのアプリの構築に慣れておきたいものです。私の場合は、モチロン AppEngine を使うことにします。 Google Apps Marketplace企業向けアプリ出店入門(1/2) ─ @IT 注意が必要な点として、登録できるアプリケーションには2種類あるって事です。アプリケーションの登録時に「directly installed into Google Apps domains」という選択肢をオ
Mapion マピオンラボ Java Google App Engine for Java、Slim3のWEBアプリを独自ドメインに切り替えるとき 休日に「なうまぴおん」のサーバ側をしこしこ作った岩澤(Twitterアカウントは@iwazer)です。 うらなんとかディレクターからはGoogle App Engine for Java(GAE/j) そのものやSlim3の使い方的なエントリーキボンヌ言われたんですが、どちらもたいへん使いやすく公式ドキュメントを読むだけでやりたい事がすぐ実装できてしまう!なので公開直前に慌ててやった修正について書きます。 開発中やプレビューリリース中にはGAE/jからデフォルトで与えられるドメイン (name.appspot.com) を使えるので、面倒な設定なしにアプリをアップロードするだけですぐに公開することができます。 その後、正式リリースする際には独自
Google App Engine上でアプリを作りはじめて約二ヶ月。いろいろと分かって来たこともあるので、自分へのメモも含めてまとめてみる。まずは、Datastoreの話から。 なによりも大切なのはデータベースの設計 あたりまえと言えばあたりまえの話だが、App Engine上でアプリを作る上でもっとも大切なこと(=頭を使うべきところ)は、データベースの設計である。特にリレーショナル・データベース(RDB)上でのアプリ作りに慣れた人には、大きな「発想の転換」が必要なので、ここは注意が必要。 特に絶対にやっては行けないのは、 将来RDB上へ移行できるようにレイヤーを作って、その上にアプリを作る RDB上に作ったアプリをデータモデルを大幅に変更せずにApp Engine上に移植する RDBを前提に設計されたフレームワークをApp Engine上に載せて、その上にアプリを作る など。App En
他の話を期待してる人も多いと思うのだけど、まとめるのに時間がかかりそうなので小ネタを。 まず、このエンティティ使用状況をみてください。 これ、http://kistools.appspot.com/rateで格納されているエンティティのひとつなんですけど、Metadataが85%になってます。 内訳はこんな感じで、Integerのプロパティが2つあって、あとはMetadataです。 同じIntegerでも利用率が違うというのも面白いところですが、確かに上のプロパティのほうが桁数が大きいデータが入ってるとはいえ、これは誤差かも。 ところで、Metadata。 Google App Engineのデータストアは、それぞれのエンティティにプロパティ名まで格納しているはずです。 ということは、長いプロパティ名を使うとそれだけMetadata容量が増えてしまう。特にログのように量の増えがちなデータに
Google App Engine のDatastoreには、通常のリレーショナルデータベースと比べた時にいくつかの制限があるが、その一つが「このプロパティの値は常にユニークでなければならない」という指定(ユニーク制限)ができないことである。 Invoice IDのように自動生成するものであれば、アプリケーション側でなんとかすることも簡単だが、メールアドレスやハンドル名など、ユーザーが入力するものになると、ユニークであることをきちんと判定した上でEntityを作ることが必要になる。 もちろん、単純に「有無をチェックして、なければ作る」というプログラムではスレッド間の競合に対応できないので、そこはトランザクションを使ってアトミックに処理をする必要がある。 App Engine上でトランザクションを実現するには、エンティティグループという仕組みを使って行うが、気をつけなければいけないのは、エン
ご存じのとおり、App EngineのJVM(App Server)はクラスタ化されていて負荷分散される――というのがGoogleの説明です。しかし、WebブラウザからApp Engineに届くHTTPリクエストや、Task Queueのタスクによって呼び出されるHTTPリクエストは、実際にどのような感じで複数のJVMに配られるのでしょうか? どれくらいの量のリクエストが届いたとき、何台のノードに負荷分散される? 負荷分散のアルゴリズムは?(単純ラウンドロビン、sticky session/session affinity、負荷状況に応じた転送など) 新しいJVMの追加や、既存のJVMの削除のタイミングは? これらについてはGoogleから情報が公開されておらず、謎です。そこでApp Engine利用者の皆さんが実際の経験やテストを通じて情報を交換しながら想像たくましくするしかないわけです
Google Appengineのメンテナンス時間がある時、datastoreが読み込み専用になるのが多いと思いますが、データを書こうとする時に、CapabilitiesErrorと言う例外が起こる。それを自分のコードうまく処理しないと、500エラーがでて、ユーザには良くない表現になる。 ドキュメントがないけども、実は、Appengine SDKでmaintenanceが行ってるかどうかをチェックできる capabalities と言うAPIがあります。 メンテナンスがスケジュールされて、ある時間以内にメンテナンスを行うかをチェックします。僕は django を使ってるけど、capabilities API に特に依存がないですね。 from google.appengine.api.capabilities import CapabilitySet datastore_write = C
クラウドPDFサービスのパフォーマンス測定について 先日公開したScalable PDFのパフォーマンステストと同様に、クラウドPDFサービス(GAEのReflex iTextサービス)についてもパフォーマンステストを行ったので公開したいと思う。 クラウドPDFサービスは、AmazonEC2のかわりにGAEを使っており、負荷分散機能はGAEまかせとなるが、Reflex iTextのサービスを使っている点はScalable PDFサービスと同じである。ただ、GAEの場合は実行時間など、いろいろな制約があり、リクエストが失敗する前提で設計しなければならないといった考慮が必要となる。今回のテストにおいては、エラー時に時間間隔を置いてリトライする仕組みを取り入れている。 結果としては、以下のように、GAEでも約8千ページを4~5分で処理できたということで、まずまずであったのだが、これがいっぱいいっ
(随時更新中です。間違いなどありましたらコメントをお願いします!) このページのtinyurl: http://tinyurl.com/gaetips Datastoreのtips Bigtableの内部構造 BigtableによるDatastoreの実装 Datastoreによるクエリの実装 トランザクションとエンティティグループ Datastoreのtips List Proprtyとmerge joinの使い方 GAE一般のtips GAEのサーバー構成とリクエストの流れ Task Queue APIの使い方 開発環境とプロダクション環境の違い Flex/AIR+GAEのtips GAE/JにBlazeDSを組み込む BlazeDSの本番環境へのデプロイでハマる Datastore APIの取り扱いでハマる App Engine開発の便利な参考ページ TOPGATEさんのGoogle
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く