Google 的 Cloud Spanner

GoogleCloud Spanner 這個服務拿出來賣了:「Introducing Cloud Spanner: a global database service for mission-critical applications」,以及說明的「Inside Cloud Spanner and the CAP Theorem」。

Cloud Spanner 的規劃上是希望有 RDBMS 的能力 (像是 ACID 特性),又有強大的擴充能力 (scalability) 與可用性 (availability):

Today, we’re excited to announce the public beta for Cloud Spanner, a globally distributed relational database service that lets customers have their cake and eat it too: ACID transactions and SQL semantics, without giving up horizontal scaling and high availability.

在說明裡有提到 Cloud Spanner 是做到 CAP theorem 裡面的 CP:

The purist answer is “no” because partitions can happen and in fact have happened at Google, and during some partitions, Spanner chooses C and forfeits A. It is technically a CP system.

然後把 A 拉高到使用者不會在意 downtime 的程度:

However, no system provides 100% availability, so the pragmatic question is whether or not Spanner delivers availability that is so high that most users don't worry about its outages.

當然,比較讓人爭議的是 Twitter 上 Google Cloud 官方帳號的 tweet,直接講同時解決了 CAP 三個條件:

價錢不算便宜,不過對於想要找方案的人至少有選擇...

Google 的 Load balancer:Seesaw

前幾天因為流感而睡太多,來消化一些文章。

上個星期 Google 放出一套用 Go 寫的 Load balancer,叫 Seesaw:「Seesaw: scalable and robust load balancing」。

比較有趣的是 BGP 與 anycast VIP 的能力:

Seesaw v2 provides full support for anycast VIPs - that is, it will advertise an anycast VIP when it becomes available and will withdraw the anycast VIP if it becomes unavailable.

Google 這個規模玩的是不同 scale 的花樣...

AWS 推出 Amazon API Gateway

AWS 推出了「Amazon API Gateway – Build and Run Scalable Application Backends」,使得 Scalable API 又前進了一步。

API Gateway 可以直接將 HTTP Endpoint 接上 AWS Lambda 提供服務,並且也會自動接上 CloudFront,不過 CloudFront 不可選等級,目前看起來是最低的 Class 100,所以老問題還是沒解,如果不是用 168.95.1.1168.95.192.1,我們家的 IP 會被解去 ARN (Stockholm Arlanda Airport) XD

  4.|-- snuh-3201.hinet.net        0.0%    10    0.3   0.3   0.3   0.3   0.0
  5.|-- tpdt-3011.hinet.net        0.0%    10    6.7   9.0   4.8  12.5   2.8
  6.|-- r4101-s2.tp.hinet.net      0.0%    10    0.5   0.9   0.5   1.5   0.0
  7.|-- r4001-s2.tp.hinet.net      0.0%    10    3.8   1.1   0.5   3.8   1.2
  8.|-- r11-pa.us.hinet.net        0.0%    10  199.8 151.6 143.1 199.8  19.0
  9.|-- las-bb1-link.telia.net     0.0%    10  140.6 142.6 140.5 159.7   6.0
 10.|-- sjo-b21-link.telia.net     0.0%    10  141.6 142.1 141.5 146.1   1.2
 11.|-- nyk-bb2-link.telia.net     0.0%    10  217.0 218.9 217.0 224.0   2.6
 12.|-- kbn-bb4-link.telia.net     0.0%    10  305.7 305.8 305.7 306.2   0.0
 13.|-- s-bb4-link.telia.net       0.0%    10  316.4 316.4 316.4 316.6   0.0
 14.|-- s-b9-link.telia.net       10.0%    10  316.4 316.5 316.4 317.5   0.0
 15.|-- amazon-ic-300293-s-b9.c.t 10.0%    10  311.5 311.5 311.4 311.5   0.0
 16.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 17.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 18.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 19.|-- server-54-230-96-67.arn1. 10.0%    10  311.5 311.8 311.5 313.2   0.4

除了使用提供的 url 以外 (HTTPS Endpoint),也可以接上自己的 domain (以及對應的 SSL certificate):

另外功能是產生 SDK,支援 iOSAndroid 以及 JavaScript 三種版本:

這樣又簡化了不少東西...