顯示具有 GAE 標籤的文章。 顯示所有文章
顯示具有 GAE 標籤的文章。 顯示所有文章

2014年3月1日 星期六

2012年5月26日 星期六

App Engine 1.6.6 版發佈

原文網址:http://googleappengine.blogspot.com/2012/05/166-sdk-released.html

我們實在太興奮了,迫不及待分享 Search API 這個功能;不過,五月份我們還是有正規的版本發佈時程,裡頭有滿滿的新功能、錯誤修正、以及對一些小東西作粹鍊。

Search API

配合 Search API,我們在 Admin Console 的畫面中加入一個目前仍在實驗階段的 quota 額度限制。我們也修正一些 bug、改變一些 API 的命名以增加一致性。

service 改進

因為不再支援 Master/Slave datastore,新的使用者將不能建立 Master/Slave application。我們強烈建議開發者將現有的 Master/Slave application 轉換到 HRD 上。

功能更新

我們一直找尋解除系統限制的方式,讓開發者可以從 App Engine 平台中獲得更多。在這個版本中,開啟付費功能的 application 現在可以設定多達 100 個 cron 工作。(謎之聲:還不是只爽有付錢的人...)

最後,我們每週將會提示一小部份的 admin console 使用者參加使用者滿意調查。

當然,我們沒辦法把所有要告訴你們的東西都放上來,所以請不要忘記閱讀完整的版本更新紀錄(Python、Java 與 Go 版)。Stack Overflow 的 App Engine 板是很棒的地方,可以讓你從社群、App Engine 團隊中的成員得到技術上的協助,我們也持續地在 Google Group 上討論 App Engine。

譯註:文末還有一段,是 Google App Engine 正在找尋 Solutions Architects。

2012年4月28日 星期六

App Engine 1.6.5 發佈

原文網址:http://googleappengine.blogspot.com/2012/04/app-engine-165-released.html

(譯註:省略帶有詩意但是沒啥意義的第一段)

Datastore

我們在 Datastore 導入了一個實驗階段的 query 方式:projection query。對於 SQL 愛好者而言,可以用類似下列方式作 query:
SELECT Property1, Property2 FROM MyEntity ORDER BY Property3
projection query 與 keys-only query 的運作成本、效能等特性都相同,但是回傳的 entity 物件只有指定要求的 property。

2012年4月16日 星期一

自製 GWT 版 GAE Channel API

雖然之前寫〈用 Channel API 實作簡易聊天室〉,已經算是把 Channel API 順過一遍了,但問題是......
有了 GWT,誰還想去碰 JS 啊...... 囧>
於是 google 了一下,發現這兩個 project:gwt-gae-channel、gwt-channel-api 有將 Channel API 包好給 GWT 用,不過各有優缺點,茲簡單分析如下:

2012年3月28日 星期三

App Engine 1.6.4 發佈

原文網址:App Engine 1.6.4 Released

App Engine 三月份持續發佈塞滿新功能、系統改進與錯誤修復的新版本。在我們朝 Google I/O 前期議程邁進的同時,我們也持續專注在使產品更光鮮亮麗,這個釋出的版本就是一個閃閃發光的例子。

系統面的改變

  • Log:現在新的 log 儲存設定可以是一個月,而超過你指定界線的 log 將會被刪除。
  • Datastore Index 統計資料:Admin Console 的 Datastore Statistics 頁面現在會在 Datastore Entity 後頭顯示 Index 所佔用的儲存空間量。
  • Blobstore 遷移功能:Datastore Migration 工具現在包含一個實驗階段的選項,可以讓你在 M/S 與 HRD 之間搬移 Blobstore 物件。我們強烈建議所有的 application 都改用 HRD。
  • Datastore 備份至 Google Cloud Storage:在 1.6.3 版中,我們推出了 Blobstore 的備份還原功能:而在這個版本中,我們增加將資料備份到 Google Cloud Storage 的功能。
  • Memcache Viewer:我們導入了一個功能,可以觀看 memcache 的統計資料、以及輸入 key 值來查看對應的 memcache entry。
  • 從 Google Cloud Storage 提供資料:現在不但可以從 Blobstore 提供 blob,也可以由 Google Cloud Storage 直接提供。

Runtime 的改變

  • Thread:Java 與 Python 都提供執行 backend 時有 background thread 這個實驗階段的功能。此外,我們讓 Java 也能像 Python 2.7 一樣在處理 frontend request 時可以使用 thread。

Datastore framework 的改變

  • Python 的 NDB:NDB API 已經脫離實驗階段,成為完整支援的功能。這個新一代的 Datastore API 加強資料模組化、查詢、並從裡到外地支援非同步計算。
  • JPA 2 與 JDO 3:我們已經針對 App Engine 的 DataNucleus plugin 做出顯著的改善。這個實驗中的 plugin 版本為 2.0,增加 JPA 2、JDO 3 的支援,以及超過 40 個錯誤修正。這裡有列出完整的版本更新紀錄。

上面這些還不是全部,你可以在版本更新紀錄中(Python 版、Java 版)得知所有的新功能與錯誤修正。請將你所有的回饋意見送到我們的 Google Group;如果你有什麼程式方面的問題,可以在 Stack Overflow 上找尋來自我們或其他優秀開發者的協助。

2012年3月1日 星期四

App Engine 1.6.3 發佈

今年的第二個版本,讓你可以馬上開始使用這些新功能。有什麼可以比在你的 application 支援 A/B Testing、或是從你的 Google App domain 寄信時使用 DKIM 簽章,還更令人興奮呢?(謎之聲:降低收費啊!笨蛋!)這個版本有許多令人興奮的變化,讓你在今年多出來的這天保持忙碌。

2012年2月14日 星期二

GWT、GAE 的日期問題

開發環境:GWT 2.4.0、GAE 1.6.1、GPE 2.5.1、Objectify 3.0

正在作一個預約系統,很自然會有「取出某天所有預約」之類的需求,所以將 class 設計成這樣,期望能節省一些麻煩:
class Booking{
    Date date;
    int hour;  //時間間隔以「小時」為單位
    //skip other field
}

由於 GAE 的 Datastore 理論上沒有提供在 query 時可以卡入日期函數,所以如果不對日期作處理,下面這段「取得今天的預約」會完全取不到任何東西:
Objectify ofy = ObjectifyService.begin();
ofy.query(Booking.class).filter("date", new Date()).list();  //empty list

2012年2月1日 星期三

App Engine 1.6.2 版發佈

原文網址:http://googleappengine.blogspot.com/2012/01/app-engine-162-released.html

有些人可能會把龍想像成兇殘、囤積寶物、會噴火的怪獸。但 App Engine 團隊將龍視為吉祥與好運的象徵,我們很高興發佈龍年的第一個版本。

2011年12月26日 星期一

GPE 2.5 版介紹

原文網址:http://googleappengine.blogspot.com/2011/12/simple-development-of-app-engine-apps.html

當我們用 Google Cloud SQL 的方式讓 App Engine 支援 SQL,GPE 團隊就努力加強程式人員在撰寫 App Engine application 時的開發體驗,讓 GPE 能使用 Cloud SQL 作為後端的 database。

2011年12月15日 星期四

App Engine 1.6.1 版發佈

原文網址:http://googleappengine.blogspot.com/2011/12/app-engine-161-released.html

為了讓我們的開發者滿心喜悅,我們發佈了本年度最後一個版本(譯註:呼...... [散架])。這個時候有一些團隊裡頭的成員已經在享受夏日陽光了,我們也會在這個版本發佈之後短暫地冬眠一下。不用擔心,我們會按照原訂計畫在一月回來上工,but we couldn't resist tempting you with some new features that will keep you up tinkering well past midnight on January 1st(譯註:無法翻譯...... Orz)。

2011年11月18日 星期五

App Engine 1.6.0,正式脫離試用階段

原文網址:http://googleappengine.blogspot.com/2011/11/app-engine-160-out-of-preview-release.html

距離 App Engine 第一次舉辦的 Campfire One 已經三年半了,App Engine 已經結束測試階段,而成為完整支援的 Google 產品。創立 App Engine 的理念十分簡單:它應該很容易使用、易於擴展規模、以及開始使用的時候是免費的。每個月一百多億次的點擊、三十多萬個活躍的 application、以及十幾萬個開發者使用這個產品,都明顯表示這個理念的迴響。因為有你們的支持,Google 能對 App Engine 作長期的投資。

前些日子,我們宣佈脫離試用階段的計畫時,我們承諾要增加 Python 2.7、白金帳戶以及 Backend 來加強服務,而許多改變將在今天啟用:

2011年10月12日 星期三

App Engine 1.5.5 版發佈

App Engine 在 2011 年釋出了一些令人興奮的版本。隨著白天越來越短、天氣越來越冷、雜貨店裡頭的萬聖節糖果開始引誘人變胖,我們也一直努力讓最新的版本能順利推出。

2011年10月8日 星期六

Google Cloud SQL:你的雲端資料庫


原文網址:http://googleappengine.blogspot.com/2011/10/google-cloud-sql-your-database-in-cloud.html

「提供一個可以簡單開發傳統資料庫應用程式的方法」是最常要求 App Engine 提供的功能之一。為了回應這些聲浪,我們很高興地宣佈 Google Cloud SQL 有限制地開放試用。現在你可以選擇讓 App Engine 的 application 使用完全在雲端當中但卻是熟悉的 relational database。這讓你能專注在開發 application 與 service,至於管理、維護 relational database 的雜事統統不用管。Google Cloud SQL 帶給 App Engine 社群許多好處:
  • 不用維護、也不用管理——我們都幫你處理了。
  • 高可靠度與可用度——你的資料會同步複製到多個 data center。機器、機架與 data center 的故障都會自動處理,盡可能地避免影響到 end user。
  • 熟悉的 MySQL database 環境,有支援 Java 的 JDBC、也有支援 Python 的 DB-API。
  • 綜合式的管理 database 使用者介面。
  • 簡單卻完全與 App Engine 整合。

這個 service 也包括了 database 匯入/匯出的功能,所以你可以把你既有的 MySQL 送上雲端,然後在 App Engine 當中使用。Cloud SQL 現在是免費提供,我們會在至少開始收費前 30 天公佈價格。在我們解決初期大小問題的同時也會持續改進這個 service,如果你想拿來試試看,請讓我們知道。

2011年9月28日 星期三

用 Channel API 實作簡易聊天室

Google App Engine 自 1.4.0 版推出 Channel API,使 server 與 browser 之間可以不透過 pooling 的方式做到 server push。不過 Google 官方教學文件摻雜了井字遊戲的元素,反而無法專注於 Channel API 上。這篇文章打算用最原始的聊天室,透過實做的過程來體驗一下 Java 版 Channel API。

因為是簡易聊天室,所以只打算提供一個共用的聊天室,然後用兩個 JSP 檔來解決:room.jsp、server.jsp。room.jsp  負責處理使用者輸入訊息、顯示對話;server.jsp(應該寫成 servlet 比較好,因為是簡易聊天室......)負責接收訊息、並廣播出去。

2011年9月16日 星期五

App Engine 1.5.4 版發佈


原文網址:http://googleappengine.blogspot.com/2011/09/app-engine-154-sdk-release.html

這四個禮拜真的是忙翻啦(你可能有聽說),但我們仍然保持每個月發佈新版本的期程。今天我們提供了新的 SDK,以及一些新功能和錯誤修正。

2011年9月8日 星期四

App Engine 1.5.3 版發佈


原文網址:http://googleappengine.blogspot.com/2011/08/app-engine-153-sdk-released.html

今天,我們很高興地宣佈新版的 App Engine 發佈了。你可能有注意到,在過去幾個月中,版本更新的頻率略有上升。我們做了一些內部改組,期待能每個月推出一個新版本。這個月的更新包含了一些 datastore 的更新、一些 blobstore API、memcache API 的更新,以及一個針對 Java 開發者的新功能。

2011年9月6日 星期二

App Engine 1.5.2 版發佈

原文網址:http://googleappengine.blogspot.com/2011/07/app-engine-152-sdk-released.html

server 產能的更新
  • 可調整的 Scheduler 參數 - 正如之前討論過,我們推出了兩款 scheduler 旋鈕(好吧,實際上看起來比較像滑動軸),讓你能控制有多少 instance 在 application 上執行的參數。現在,你將可以設定 panding latency 的最小值、以及閒置 instance 的最大量。

Datastore 的更新
  • 進階 query 計畫 - 我們移除了爆量索引的需要、也減少了許多 query 要自訂 index 的需求。在許多狀況下 SDK 會建議更佳的索引方式,接下來的文章也會介紹如何進一步最佳化。
  • namespace 層級的 datastore 統計資料:現在除了取得全部的 datastore 統計資料,我們也提供一個新的選擇,讓你可以以 namespace 來查詢。

Task Queue 的更新
  • 新的 Task Queue 細目頁面——我們改寫了 Administration Console 裡的 Task Queue 細目頁面,提供了執行中的 task 的更多資訊。你現在可以看到排隊中的 task、有效承載量、以及前一個執行 task 的資料。
  • 1MB 的 Pull Task 容量——對於容量大小的限制,我們的信念就是:只能變得越來越大!所以,在這個版本當中,我們把 Pull Task 的容量變成 1MB。
  • Pull Queue 時效變更——針對 Pull Queue 我們推出了新的 method,如果當初設定的時效不足時,讓你可以將現有的 task 延長時效。

最後,我們有一些令人振奮的消息是關於實驗中 Go 執行環境。雖然 Go 仍然在實驗階段,但從 1.5.2 之後,Go 將可以存取所有 HRD 的 application。

一如往常,也有一些小功能與錯誤修復,在我們的版本更新紀錄當中可以找到完整的清單(Python 版,Java 版)。我們期待在論壇當中看到您的回饋意見與問題。

2011年7月4日 星期一

App Engine 1.5.1 版發佈

原文網址:http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html


Google I/O 已經結束一個月,所以我們覺得應該再來個版本發佈了。這個月我們發佈 ProtoRPC 這個正式的 Python API;讓 SDK 有 HRD(High Replication Datastore)的功能,協助開發者更能理解同步 model;另外增加了 Channel API、以及一些好東西。列舉如下:

service 變更

  • 地理定位 header:App Engine 現在會在每個 client 的 request 當中夾帶 header,來盡可能地分辨是哪一個國家發出的 request。「X-AppEngine-country」這個 header 可以讓你依照使用者的所在地來客製化內容。我們希望這代表使用者不用再到「你的國家」下拉選單當中選擇。

更新 Java 和 Python 的 API

  • Channel API(支援 Presence):現在你可以為你的 application 設定內建的 service,來偵測使用者的 presence。這讓你可以在使用者連線或斷線時作對應的行為。
  • Image API(支援 WebP):Image API 現在支援 WebP 格式。WebP 是一種新的圖像格式,Google 在今年初的時候開放原始碼。這個格式是用破壞性壓縮的方式,可以比 JPEG 格式檔案小 39% 、卻提供相同的畫質。

新的 Python API

  • ProtoRPC: ProtoRPC 是一個 open source 的 frame,用來建立一個良好定義、易於使用、web base 的 RPC service。雖然 ProtoRPC 跟 Google Protocol Buffers 定義 service 差不多,但 ProtoRPC 的目標是讓開發人員更容易開始定義 web base 的 service,同時允許這些 service 隨著時間改變而能逐步成型與拓展。

Datastore

  • SDK 中的 HRD:從發佈 HRD時,我們就希望能提供工具、幫助開發人員在設計 application 時了解和測試新的同步 model。1.5.1 SDK(Java 與 Python 版)可以模擬 HRD 的同步 model。這表示在設定對應的 SDK 選項後,跨 entity group 的查詢結果,偶爾會與剛寫入的資料有出入。這應該會讓你開發的過程中,處理這個同步 model 更加靈活。

(最後一段懶得翻譯 [逃])

2011年5月16日 星期一

App Engine 1.5.0 版發佈

原文網址:http://googleappengine.blogspot.com/2011/05/app-engine-150-release.html

App Engine 團隊一直在拼命準備 Google I/O,而今天我們很高興地宣佈 App Engine 1.5.0——夾帶著一堆完成的新功能——正式發佈了。這個版本帶來了全新的特性:引入了 Backend、Task Queue 的重大改進、全新實驗性質的 Go 語言運行環境、High Replication Datastore 變成預設的設定(價格也降低了!),以及許多調整與 bug 修復。

service 變更
  • Backend:截至目前為止,App Engine application 是在一個短暫存在、動態的 instance 上頭運作,我們啟動它來回應 request 然後再關掉它。這對於建構可擴增的 web application 是很棒的事,但是如果你在找尋建立大型、長時間存活、以及/或密集存取記憶體的底層功能,就會有很多限制。在 1.5.0 版,我們引入了 Backend,讓使用者可以打破這樣的限制!Backend 是由開發人員控制、長時間運行、可定址的 instance 集合,至於需要多少 instance 則任由開發人員設定。這些 instance 沒有 request deadline,它們可以被啟動和停止(或是當呼叫到時動態啟動),它們可以使用 128M~1G 的記憶體、以及一定比例的 CPU。如果你想要了解更多,可以讀一下 Java 與 Python 版的 Backend 文件。
  • Pull Queue:現在大多數的用戶在他們的 application 中大量使用 Task Queue,不過在靈活度上還是有很許多改善空間。在 1.5.0 引入的 Pull Queue 讓開發者可以在 application 準備好時,把 task 從 queue 中「pull」出來執行,而不用倚賴 Task Queue 在先前設定好的頻率把 task push 進 queue 中。這表示你可以寫一個 Backend 來作一些背景程序,然後當 Backend 準備好時從 Pull Queue 中 pull 一個或上百個 task 來處理。此外,我們導入了 REST API,它允許外部 service 做同樣的事情。舉例來說,如果你有一個外部 server 是在做圖形轉換或 OCR,你可以用 REST API 來 pull、執行這些 task,然後回傳結果。結合這兩個改進,我們還增加了 payload 的限制與處理速度。我們很高興能同時擴展 Task Queue 的使用、以及加強改善 App Engine 與 REST of the Cloud 之間的整合。

Datastore
  • 預設為 High Replication Datastore:High Replication Datastore 經過幾個月的使用和回饋意見(以及至今 99.999% 的正常運作時間),讓我們有信心認為,這對廣大的使用者而言是正確的方向。所以,今天我們做了兩件事:當新的 application 建立時預設使用 HRD;降低 HRD 儲存的價格,從 $0.45 降低到 $0.24,來鼓勵大家開始計畫轉移至 HRD。我們一直很感謝早先使用 HRD 的使用者,他們測試、發現問題,並在這個版本當中修復其中的一些問題。

API 改變
  • 為了回應眾人的期盼,HTTP request 跟 response 的大小增加至 32MB。
  • Mail API:我們對 Mail API 增添一些限制,好讓所有使用這個 service 的 application 提高可靠性和信任度。首先,電子郵件必須以 Google 管理的電子郵件帳號(Gmail 或是 Google Apps 均可)寄出。其次,對新建立的 application,每天免費的額度從 2000 減少到 100。這些都將有助於確保 application 發出的信件可以可靠地到達目的地。

Administration
  • 下載程式碼:1.5.0 當中,除了上傳程式碼的使用者可以下載原始碼之外,也讓列在 Admin Console 的 project owner 可以下載。owner 是在 1.4.2 版引入,是一種 admin 角色。

Go
  • 新的運作環境:在 1.5.0 版當中,我們啟用一個實驗性質、給 Go 程式語言使用的運作環境。Go 是一個開放程式碼、靜態類別、編譯型的語言,但有動態、輕量級的感覺。這對 App Engine 來說也是有趣的新選擇,因為 Go 會 compile 成 native 碼;對 CPU 密集使用的 task 來說,用 Go 會是一個好選擇。截至目前為止,Go 版的 App Engine SDK 已經可供下載了,我們將儘快讓你可以 deploy Go 的 application 到 App Engine 上。如果你有興趣早一點開始「Go」,註冊就可以成為正式啟用時的首批測試者。閱讀 Go Blog 的公告,當中有更多細節。

這個版本中還有其他一海票的更改、bug 修復,所以請查閱完整的版本更新紀錄,包含所有 Java 與 Python 的議題修正。最後,如果你有興趣知道接下來這一年當中 App Engine 的方向,請到 2011 Google I/O 的其他公告看看!

2010年3月26日 星期五

App Engine SDK 1.3.2 發佈

今天,我們很高興宣佈 App Engine 1.3.2 版(Java 與 Python 版)正式發佈。1.3.2 版包含數個改變以及 bug 修正。

在這個版本當中,我們全神貫注在解除許多已經影響到開發者的限制:

  • Blobstore API—提供一個新的 method(Python 用 fetch_data,Java 用 fetchData)使你的 application 可以用程式讀取 Blob 的內容。
  • URLFetch API—你可以存取的 port 增加了。現在可以存取的 port 為 80~90、440~450、1024~65535。
  • Mail API—我們放寬了郵件附加檔案的種類,包含了常見的文件種類:.doc、.ppt、.xls。
  • Task Queue API—我們把 Task Queue 的 refill 率增加到每秒 50 次。

我們也很高興地宣佈,根據你們的回饋意見,App Engine 有了一個新的 DoS 阻斷系統。這個系統可以讓你把特定的 IP 存取你的 application 時列入黑名單當中,以防止他們浪費你的錢或是佔用你的 quota。你還可以在 Admin Console 看到最常存取你的 application 的 IP,以幫助你找出你想要阻擋的 IP。 關於這個功能的更多資訊,請參閱下列文件:Python 版、Java 版 。

這個版本還有很多改變跟修正,包含新 Java 版的 Appstat profiling tool。詳細的資料請閱讀版本更新紀錄(Python 版、Java 版),並下載新版的 SDK。