Screen Shot 2016-01-19 at 10.25.30 AM.png


Dataflow により、バッチまたはストリームに使用できる 1つのポータブルなデータ パイプラインを作成し、Apache Flink、Apache Spark、Google Cloud Dataflow、ローカルな ダイレクト パイプラインといったさまざまなランタイムで実行できます。

Dataflow を Apache Incubator プロジェクトとして提案したことは、Google にとってエキサイティングな試みです。Dataflow モデル、SDK、ランナーがオープンソース データ分野で多くのユニークな機能を提供すると考えているからです。


パイプライン ファースト、ランタイム セカンド

Dataflow モデルと SDK により、まずデータ パイプラインの定義に集中できます。この段階では、データ パイプラインがどのように実行されるか、それらを実行する特定のランナーの特性が何かは考慮しないで済みます。


ポータビリティ

データ パイプラインは多くのランタイム エンジンでポータブルに実行できます。ランタイムはパフォーマンス、コスト、スケーラビリティなど、多様な考慮点を踏まえて選択できます。


統合モデル

バッチ処理とストリーム処理が 1 つのモデルに統合され、ウィンドウ制御や順序付け、トリガ制御など、強力なセマンティクスを利用できます。


開発ツール

Dataflow SDK は、オープンソースの言語、ライブラリ、ツールを使ってポータブルなデータ パイプラインを迅速かつ簡単に作成するのに必要なツールを提供します。

Dataflow モデルの威力を理解するには、O’Reilly Radar の記事である The World Beyond Batch: Streaming 102 をお読みになることをお勧めします。また、Dataflow の詳しい情報は下記からも得られます。


Dataflow に関する私たちの提案を検討してくれたApache Software Foundation とコミュニティには大変感謝しています。Dataflow のオープン開発に積極的に参加していくことを楽しみにしています。


- Posted by Frances Perry (Software Engineer) and James Malone (Product Manager)


1. クラウドエミュレーターの活用

下記の様な場合に gcloud emulators(Google Cloudエミュレーター)がお役に立ちます。
  • 通勤途中でインターネットに接続していない場合
  • 迅速で信頼性の高いテスト実施方法をお探しの場合
  • リモートサービスに接続する手間をかけずに開発マシン上でアプリケーションをテストしたい場合
エミュレーターが Google クラウドサービスのローカルなモックを提供しますので、コア機能の開発とテストを行うことができます。 

現在 Google Cloud SDK はデータストアと Pub / Sub エミュレーターを装備していますが、今後さらに多くのエミュレーターをご提供する予定です。

次のように、エミュレーター( Cloud Datastore 用エミュレーターなど)をスタートします。

$ gcloud beta emulators datastore start
...
[datastore] To connect, set host to http://localhost:8967/datastore
[datastore] Admin console is running at http://localhost:8851/_ah/admin

これで、ローカルマシン上で動作するローカルデータストアが入手できました。API は、上記のローカルホストのポートで入手できます。

このローカルエミュレーターを使用するために、DATASTORE_LOCAL_HOST
環境変数を設定し、gcloud-node、gcloud-rubygcloud-pythongcloud-java のクライアント ライブラリを設定します。

gcloud emulators (Google Cloud エミュレーター)のコマンドで、次のように、サービスごとに環境変数を自動設定できます。

$ $(gcloud beta emulators datastore env-init)
$ echo $DATASTORE_HOST 
http://localhost:8967

このエミュレーターは、ローカルホスト(ローカル環境)においてもシンプルでウェブベースのコンソールとなっています。詳細はこちらの資料をご覧ください。


2. オートコンプリート(自動入力)機能を活用してスピーディに入力

Google Cloud CLI の他の優れた機能として、 オートコンプリート(自動入力)機能が挙げられます。この機能は gcloud コマンドのほか、インスタンスやゾーンでも利用できますので、お試しください。

3. --format を利用して出力を整理

Google Cloud CLI は、他のスクリプトやプログラムへの入力として利用する環境について、さまざまな情報を提供します。 --format フラグを利用すれば、出力の的確な整理が簡単にできます。

--format フラグを使ってゾーンのリストアップと Google Compute Engine インスタンスの IP アドレスの指定を CSV 形式で行い、ゾーンと名前でソートする例を次に示します。

$ gcloud compute instances list \
   --format='csv(zone:sort=1,name:sort=2,networkInterfaces[0].networkIP)' 
   > list.csv

CSVファイルを Google SpreadSheet で次のように開くことができます。
ここで紹介したのは、 --format を利用してできることのほんの一例にすぎません。JSON や表形式でデータをエクスポーズするほか、プロジェクションを使用してデータの選択、分類、選別を行うこともできます。


4. gcloud ツールを PowerShell で使用

PowerShell をご利用の方は、PowerShell オブジェクトの処理に gcloud ツールが便利です。上記の --format コマンドを書き換えて行います。

例:
PS> (gcloud compute instances list --format=json | Out-String | 
ConvertFrom-Json) | ?{$_.zone -match 'asia'} | select name

name
----
asia-ops-1
asia-ops-2
次のコマンドを使って、asia のすべてのインスタンスを再起動できます:
PS> (gcloud compute instances list --format=json | Out-String |
ConvertFrom-Json) | ?{$_.zone -match ’asia’} | %{gcloud compute instances
reset $_.name --zone $_.zone}


5. Compute Engine インスタンスに簡単に SSH 接続

Google Cloud CLI を利用すれば、Linux Compute Engine インスタンスに SSH (セキュアシェル)を使用して簡単に接続することができます。例例えば、次のコマンドを実行します:

$ gcloud compute ssh my-instance-name

これで、パブリックネットワークで接続できるすべてのインスタンスに、自動的にSSH (セキュアシェル)接続します。 SSH 鍵の生成や、外部の IP アドレスを探す手間は不要です。

さらに次のコマンドを実行します:

$ gcloud compute config-ssh

これで、Compute Engine インスタンスごとに、 ~/.ssh/config ファイルにエイリアスが作成されます。これらのエイリアスは、scp や sftp など、SSH を使用するシステムユーティリティで使用できます。 ターミナルからコマンドを入力します。

$ ssh myvm.asia-east1-c.myproject
or
$ sftp myvm.asia-east1-c.myproject

gcloud compute ssh コマンドgcloud compute config-ssh コマンドについては各ドキュメントをご確認ください。


-Posted by the Google Cloud SDK team, NYC 

このアーキテクチャを使えば、データ パイプライン処理を一度記述するだけで、コードベースを変更することなく、バッチ モードでもストリーム モードでもそのパイプラインを実行できます。これは、Google がオープンソースでリリースした Cloud Dataflow モデルの利点です。

Lightning Talk : DeNA and BigQuery というビデオには、先進的なモバイル ゲーム会社である DeNA が、BigQuery を使ってゲーム エコシステムを細かくチューニングしている様子が収められています。

具体的には、シニア データ サイエンティストの Appie Hirve が、Google のアナリティクス ツールのスピード面での利点を強調すると共に、彼女のチームが管理インフラストラクチャを必要とせずに膨大なゲーム データセットを集めている仕組みを説明しています。

プレーヤーを引き込みゲームをさらに大きく成功させるために、データ駆動の解析をすぐにでも始めたいとお考えの方は、新しいリファレンス アーキテクチャのレビューに参加してください。Google にお問い合わせいただくか、Google Cloud Platform のフリートライアルにサインアップしていただければ、すぐに始められます。


参考資料





- Posted by Oyvind Roti, Solutions Architect


* お気づきかもしれませんが、ハイメモリのインスタンス タイプでは価格差が縮まっています。AWS の場合、この種のインスタンスでは CPU に対する RAM の比率が特に高いので、GCP の比較インスタンスでは 2 コアではなく 4 コアのものを使っています。それでもまだ 15% も安いのです。

料金の値下げは一見魅力的に映りますが、Amazon の価格モデルの詳細を調べてみると、意外な問題点が出てきます。契約に囲い込まれてしまって新しい料金が適用されないとか、ニーズに合わなくなったインスタンスに縛り付けられているといった顧客たちの不満がよく聞こえてきます。

私たち Google は、できるかぎり顧客にとって有利で柔軟なものになるように、Google Cloud Platform の料金体系を設計しています。使用前に料金、マシン クラス、地域について長期契約する必要はありません。

もともとのカタログ記載価格が安く、Sustained Usage Discounts があり、前払い契約による囲い込みがないうえに課金が分単位になっています。また、プリエンプティブル VM やカスタム マシン タイプがあるため、業界内で他に類を見ないほど料金構造がお客様にとって有利になっています。

Google の料金体系と Amazon のそれとの比較については、過去の投稿「クラウドの料金体系を理解する」を参照してください。

2016 年にアプリケーションを構築し、ホスティングすべきクラウド プロバイダーを検討する場合は、私たちの TCO Tool をお試しください。

開発インスタンスと本番インスタンスの異なる組み合わせや環境の違いに応じて、クラウドにホスティングされる現実のアプリケーションの総コストがどのように変化するかを確かめましょう。そして、必ず競合他社と比較してください。

あけましておめでとうございます!


- Posted by Miles Ward, Global Head of Solutions, Google Cloud Platform


195 か国で事業を展開する Amadeus は、世界の旅行業界に IT ソリューションを提供する大手企業です。トランザクション当たりわずか 100 マイクロ秒の CPU 消費の増加が、1 年間で数千ドルのホスティング コスト増につながるような大規模ソリューションを手がけています。

このたび同社は、コストとパフォーマンスの管理を目的に Google Cloud Platform を導入しました。



航空券の平均検索数に対する予約の成約率(look-to-book レシオ)は、以前は 10 対 1 に達していました。それが今では 1000 対 1 まで落ち込むことも珍しくありません。

しかも、航空券の需要は決して一定ではありません。需要変動に対応するには、ピーク時の大量のトラフィックを予測し、必要なキャパシティ調整を行う必要があります。

これは航空会社にとって厄介な課題です。増加の一途をたどるオンライン購入トランザクションを処理するため、オンライン旅行サイトはキャッシュ ベースのソリューションを開発しました。

しかし、キャッシュ ベースのシステムには限界があります。航空会社の高度な売上管理ポリシーを正確に反映しないからです。

私たち Amadeus は、旅行の未来を形作る技術を開発しています。私たちのお客様とパートナーのビジネス ニーズを理解するため、航空会社に影響を与えるトレンドに非常に注目しています。そうしたトレンドの1 つが、さまざまなデジタル チャネルを通じて航空会社の商品をチェックして購入する消費者の急激な増加です。



大手航空会社は、旅行者から得られる価値を最大化して売り上げに結びつけることを目指しており、高度な売上管理ソリューションに投資しています。

売上高を最大化するには、すべての航空券検索をリアルタイムに処理し、特定の料金クラスの適切な空席を最適な価格で提供する必要があります。さらに、航空会社があらゆる販売機会を捉えるには、さまざまな購入プラットフォームにわたって一貫した形で空席を提供することが重要です。

ところが、キャッシュ ベースのシステムはリアルタイムの売上最大化と相反し、適切な商品を適切な顧客に適切なタイミングと価格で提供する航空会社のマーチャンダイジングとパーソナライズの妨げになります。



すべての流通チャネルにわたって適切で一貫した形で航空券の提供を続けるのは大変ですが、どうすればマスマーケット向けの動的コンテンツ配信で高いパフォーマンスを確保できるのでしょうか?

私たち Amadeus は、Google Cloud Platform を利用してユニークなクラウド ベースのソリューションを開発しました。この Amadeus Airline Cloud Availability は、航空会社の予約システムから空席検索と購入トランザクションの処理を肩代わりします。また、それらの予約システムでは最終的な予約と決済が行われます。

このソリューションにより、どのようなパブリック クラウドにもプライベート クラウドにもデプロイできます。オンライン旅行代理店やメタ検索エンジン、グローバル流通システムで使用される購入プラットフォームに近い場所で、より効率の高いソリューションをフルに活用して航空券の提供が行われるようになります。結果的に、航空会社が検索および購入トラフィックの大幅な増加に効率的に対応するのに役立ちます。



私たちは 2015 年 2 月から 7 月まで、Lufthansa と共に GCP で Amadeus Airline Cloud Availability(プロジェクト コードネームは “R-Box” )のパイロット運用を実施しました。その目的は下記の 2 つでした。

  • Google Compute Engine を使用した空席検索処理のスケーラビリティとパフォーマンスの実証。Amadeus は現在、ドイツのミュンヘンにあるプライベート データセンターで、140 社以上の航空会社のために空席検索を 1 秒当たり 400 万件以上処理しています。このトラフィックは毎年 50% のペースで増えています。
  • 空席検索および処理トラフィックのインフラストラクチャ コストの抑制

空席検索は、Couchbase クラスタでデータにアクセスする C++ バックエンド ファームで処理されます。分散 NoSQL ストアである Couchbase は、航空券のフライトと料金に関する詳細データをホストしています。

こうした大規模アプリケーションでは、CPU 消費が重要な指標になります。トランザクション当たりわずか 100 マイクロ秒の CPU 消費の増加が、1 年間で数千ドルのホスティング コストの上昇につながるからです。

私たちのソリューションの Compute Engine へのデプロイは、最初からシームレスに行うことができました。直感的なコンソールに加え、プリインストールされていた一連のさまざまな Linux イメージ(CentOS 7.1 を使用)のおかげです。

空席検索を処理するバックエンド インスタンスの最初に作成されたものは、初めてネットワークに接続されてからほんの 2 時間後に、トラフィックを受け入れる準備が整っていました。


1,500 コアのチャレンジ

Amadeus と Google のエンジニアリング チームは、3 つのリージョン(米国中部、西欧、東アジア)に分散して割り当てられる 1,500 コアのキャパシティを最大限有効に活用するために協力しました。これらの各リージョンには、Couchbase のレプリケーション プロトコルである Cross-datacenter Replication(XDCR)を使用して航空券データが配布されています。

私たちのミッションは、1 ドル当たりの空席検索処理数を増やすことでした。そのためにいくつかの措置を講じました。


  • トランザクション当たりの CPU パス長の短縮。C++ の低レベルのいくつかの最適化を行い、Google のメモリ アロケータである TCMalloc を利用して短縮を実現しました。
  • アプリケーションのコアを稼働させ続けることを目的とした Couchbase データ ストアの IO スループットの向上。私たちは Compute Engine の内部ネットワークの安定性と非常に低いレイテンシに強い印象を受けました(Couchbase クラスタ ノードへのラウンド トリップがサブミリ秒で安定しています)。
  • Couchbase クラスタをホストする VM 上での NOOP スケジューラの有効化(SSD のスループットを高めるために最適な IO スケジューリング パターンを実現します)。
  • サーバーを常に 85~90% の CPU 使用率で動作させるための VM サイズ(CPU /メモリの組み合わせ)の調整(アプリケーション サーバーには n1-highcpu-16 を、Couchbase クラスタ ノードには n1-highmem-4 を選択するなど)。




第 1 フェーズの変化

R-Box のパイロット運用の目標は当初計画よりもはるかに早く達成されました。GCP の柔軟性と Google のサポート チームのおかげです。

1,500 コアを使用した空席検索処理の全体的なスループットは、Amadeus と Google の協業開始からわずか 3 か月で倍増しました。


さらなる前進

私たちは現在、パイロット運用の第 2 フェーズに入っています。このフェーズでは以下のように、航空券需要の変動に応じたハードウェア キャパシティの動的な調整、VM のサイズの微調整、Compute Engine のプリエンプティブル VM(私たちがよく “低コストの VM ” と呼んでいるものです)の活用を目指しています。

動的なキャパシティ調整
Kubernetes(Google のコンテナ オーケストレーションおよびクラスタ管理ソリューション)を利用して実装が進められています。Kubernetes は、空席検索および処理トラフィックの変動に応じてアプリケーションの VM を動的に起動またはシャットダウンできるようにするために、R-Box フレームワークに導入されつつあります。

Kubernetes は、私たちの PaaS パートナーである Red Hat が、PaaS 製品およびサービスである OpenShift の一部として出荷しています(私たちは社内アプリケーション プラットフォームの Amadeus Cloud Services を、こうした戦略的製品上に構築しています。IaaS プロバイダーに対する独立性を確保するためです)。

さらに、インスタンスの料金が分単位の従量制であることも、ホスティング コストの最適化に役立ちます。


プリエンプティブル VM
2015 年 5 月にリリースされたプリエンプティブル VM は、通常の VM よりもはるかに低コストで(70% 安く)利用できます。

ただし、Compute Engine が他のタスクのためにプリエンプティブル VM の使用するリソースにアクセスする必要がある場合、プリエンプティブル VM は、Compute Engine によってシャットダウンされる(プリエンプトされる)可能性があります。

私たちは、R-Box のコンピュテーション VM の数を 10% 余分に設定し、これらをすべてプリエンプティブル インスタンスのみで賄うことを計画しています。これは、「こうした VM の一部が日常的にシャットダウンされてしまっても、全体的な処理能力は空席検索を処理するのに必要なレベルに保たれる」という想定に基づいています。

こうして新機能を活用することにより、大幅なコスト節減が見込まれます。


カスタム マシン タイプ
2015 年 11 月にリリースされたカスタム マシン タイプを、これまで使用してきた通常のインスタンス タイプ(n1-highcpu-16 と n1-highmem-4)の代替としてセットアップしています。

カスタム VM のサイズは、自社にとって必要最小限のコアとメモリ(GB 単位)で設定できます。カスタム マシン タイプの目的は、CPU とメモリの無駄をなくすことにあります。


Google Cloud Platform のインパクト

Google Cloud Platform を利用した私たちのプロジェクトは非常にエキサイティングで印象深いものでした。その理由は以下のとおりです。

パフォーマンス
ネットワークのレイテンシ、スループット、安定性は驚くべきものです。また、多くのリージョンで行われている VM の次世代 Intel アーキテクチャ(Haswell)への移行により、空席検索の処理パフォーマンスに CPU の大幅な性能向上の効果が現れるでしょう。


安定性
6 か月にわたるパイロット期間に VM が停止してしまうことはほとんどありませんでした。メンテナンスの通知プロセスも円滑に機能しています。VM のライブ マイグレーションは本当に透過的です。


モニタリング
Stackdriver フレームワークでは、システムに関する指標(CPU、メモリ、IO)とユーザー定義の KPI(1 秒当たりの空席検索処理数に類似)の両方のリポート機能が優れています。効率的なアラート システムやモバイル アプリの「Cloud Console」との組み合わせにより、本番グレードのモニタリング ソリューションがたちまち出来上がりました。


イノベーションのペース
6 か月のパイロット期間中に、私たちのプロジェクトに役立つ大きな発表が 3 つありました。プリエンプティブル VM のリリース、カスタム マシン タイプの導入、そして最も重要な、2015 年 5 月に行われた 15% の値下げです。


要約

Google Cloud Platform による R-Box のパイロット プロジェクトは、パフォーマンスの最適化に関する私たちのアプローチを変えました。私たちは CPU にどれだけコストをかけるかという観点を超えて、インフラストラクチャ全体で最適化を追求するようになったのです(最終的に重要なのは効率性です)。

Google Cloud Platform は、社内ベンチマーキングのための非常に効率的なサンドボックス環境です。Google Cloud Platform が今後、Amadeus の多くのアプリケーションにとって理にかなったホスティング ソリューションとなるのは間違いないでしょう。


明けましておめでとうございます。本年も、Google Cloud Platform をどうぞよろしくお願いいたします。

早速ですが、先月(2015 年 12 月 )発表された Google Cloud Platform 関連のニュースをブログ記事から振り返ってみます。

[新製品, 新機能]
待望のCloud SQLの新しい世代(第2世代)がベータリリースされています。Compute Engine ベースに生まれ変わり、従来版に存在していた性能面での制限事項が解消されました。
また、コストコントロール等管理系の機能を強化した BigQuery の新しいバージョンがリリースされました。

[顧客事例]

[パートナー関連]

[Developer Tips]
2015年の大きなトピックとしてあげられるコンテナの広まりですが、Google Cloud Platform を利用すると、コンテナの実行環境となる Kubernetes クラスタの構築や コンテナ自体のログや監視機能を簡単に使うことができるようになっています。

[ソリューション]
AWS 経験者向けに書かれた Google Cloud Platform 入門のホワイトペーパーが公開されています。これにより、既にAWSを利用している方が Google Cloud Platform の世界に足を踏み入れることが容易になることを期待します。

[その他]
Google Cloud Platform のグローバル イベント Next を3月にサンフランシスコで開催することを発表し、申し込みの受付を開始しました。
Share on Twitter Share on Facebook