「Googleとパートナーを組むことによって、サーバーやアプリケーションのデプロイや構成の簡素化を実現できるのは喜ばしいことです。今後 Google Compute Engine との統合を進めていき新しいソリューションを生み出せることに期待しています。優れたユーザー エクスペリエンスを提供することが我々にとって重要であり、Compute Engine は数回クリックするだけで自分の好きなアプリをデプロイする素晴らしい方法を Bitnami ユーザーに提供することができます。」と、Bitnami Inc.の COO である Erica Brescia 氏は述べています。


Cloud Launcher を使えば、ほんの数分で Google Cloud Platform でお気に入りのソフトウェアパッケージを起動することができるようになります。Cloud Launcher にあるリンクからフィードバックするのを忘れないでください。我々のメーリングリストに参加すれば、アップデートを入手したりディスカッションに参加することもできます。さあ、始めましょう!


-Posted by Varun Talwar, Product Manager, Google Cloud Platform


詳細は、Flink 用のGoogle Cloud Dataflow ランナーを制作している data Artisansブログポストをご覧ください。

移植可能な Dataflow プログラミあングモデルのためのデプロイメントのオプションが増え、大変嬉しく思います。Dataflow ジョブのデプロイ先は問わないので、StackOverflow (“google-cloud-dataflow”) に是非参加してください。質問も受け付けています。


-Posted by William Vambenepe, Product Manager 



オンラインショッピングが一般化し、オンラインストアを運営するビジネスでは、増加するトラフィックの処理はもちろんのこと、セキュリティ面でも、お客様が安心して買い物ができる場所となるように取り組まれているエンジニアの皆さんも多いのではないでしょうか。

Google でも、昨年発表した PCI DSS の認定取得をはじめ、安心してオンライン決済の仕組みを構築できるプラットフォームとして、様々な取り組みを継続して進めています。しかし、このような情報セキュリティの文脈ではカバーできない種類のトラブルもまたオンラインストアでは発生します。

例えば、クレジットカードの不正利用によるチャージバック、アフィリエイト目的などでの受取拒否の代引き注文。不正なのかどうかの判断が難しい上に、不正であればオンラインストアにとっての収益阻害要因にもなります。

かっこ株式会社の SaaS 型不正検知サービスである O-PLUX は、このようなトラブルへのソリューションの1つです。O-PLUX は統計解析によって過去の不正取引の手口や傾向と類似しているかをリアルタイムに分析・検知する審査サービスとして SaaS 型で提供されています。利用している全ての会社からのデータを分析し、常に最新の不正手段に対応でき、利用企業全体でネガティブな取引の情報(詐欺/未回収/クレームなど)を共有できます。

Google App Engine を使い Google Cloud Platform で動作する O-PLUX について、かっこ株式会社の企画開発ディビジョンのマネージャーである亀山 誠さん(写真左)、同部署でリードエンジニアの石川 雄介さん(写真右)にお話をお聞きしました。

かっこ株式会社について、そしてお二人の会社での役割について教えてください。

亀山さん: 私は創業メンバーの 1 人なのですが、元々創業メンバーは同じ会社で、インターネット関連の決済代行サービス事業者で働いていました。クライアント企業の代わりに債権を引きとり、回収、請求代行をしてその分手数料を貰うというビジネスモデルで、不良の債権かどうかを審査しなければならない。そのため過去の不良取引の傾向から新規取引の不良可能性を予測する、という統計的なアプローチを採用していたのですが、この考え方をより広範に適用できると考え、かっこ株式会社を創業し、インターネット広告関連等の不正検知のコンサルティング事業を始めました。

その中で、インターネットにある不正の多くは共通したロジックで解決可能だということがわかってきて、そのロジックをもとに SaaS 事業として O-PLUX をはじめました。また、統計の解析の技術を使ってマーケティングにも転用できるということで、そのコンサルティングやサービス化検討もしています。

石川さん: 亀山は開発部門の総責任者。私はインフラを担当し、アプリケーションでエラーが発生した場合のエラーの原因調査や、システム上手作業で行わなければならないツールの実行や、データ投入を実施するチームのリーダーをしています。Google への問い合わせも私がしています。

現在 O-PLUX を利用している会社はどのような企業で、何社くらい利用しているのですか? また、競合企業があるなら教えてください。

亀山さん: 大手 EC サイトを含め、2000 サイトくらいで利用されています。国内でトータルの不正検知というサービスをやっているところはないですね。海外企業でよく比較対象になるのは、FraudNet を提供している The 41st Parameter 社や、ReD Shield を提供している ReD 社があります。

EC が拡大し続けている中でこその、課題解決のためのサービスということですね。大まかにどのようにサービスをお客様に提供しているのかお聞かせください。

亀山さん: Web API と管理画面というかたちで提供しています。API については、まずお客様の EC サイトで注文が入ります、そのエンドユーザーが、コンビニ後払いやクレジットカードを選択し、注文となった際に、その注文の情報と Javascript 経由で取得したブラウザの情報を送信してもらい、その情報から過去の傾向や統計解析した検知モデル、それに外部データを用いて、その決済の未回収のリスクを算出し、危ないかどうかのレスポンスを返すものです。審査は数秒程度で、クレジットカードの与信審査と同じくらいです。そこで、OK, NG 白黒つくものもありますが、お客様のポリシーによって、グレーゾーンを設けることができ、グレーゾーンの注文は、管理画面でお客様の担当者の方に白黒つけてもらう、というような仕組みになっています。

O-PLUX の構築をはじめたとき、はじめから Google Cloud Platform を使うことを決めていたんですか?

亀山さん: 元々 Google App Engine が出たころにさわったことがあったんです。

石川さん: 元々 1 人で作っていたんですよね。

亀山さん: そう、1 人だったので、ハードウェア壊れただとかそういうことに対処することは実質不可能で、IaaS サービスを使うにしても、OS とかミドルウェアだとか見なければならないことが多く、1人では無理で、アプリケーションだけに集中するために PaaS サービスである GAE を選びました。Heroku だとか他の候補もあったのですが、さわったことがあるという親しみもあったし、オートスケールするという仕組みも当初からあったことから選んだ、という経緯もあります。

最初は亀山さん 1 人ということですが、今開発にかかわっている方はどれくらいいるのですか?

石川さん: 正社員としては 9 人で、それ以外にも学生インターンやアルバイト、協力会社の方々など、20人以上のエンジニアが携わっています。

開発は、どのような開発プロセスで進めているのですか? そのとき利用しているツールについても教えてください。
石川さん:Scrum ですね。チケット駆動で進めていて、Redmine でチケットをあげてもらい、できることから実施していく、という感じです。

亀山さん: リリースの頻度は短めで、だいたい週に1回、多いときで 2 回くらい、最低 2 週に 1 回はリリースしています。プログラミング言語は Java で、Eclipse や Git だとか使っています。

石川さん: 開発のやりとりは Slack を使っています。今後 チャットの中で全ての開発フローが完結するようにやっていきたいですね。他には、国外とのやりとりは Skype。ドキュメントや日報は Qiita Team に書いています。

亀山さん: 新しいプロジェクトでは、Play framework だとかを使っているので、その情報であるとか、App Engine に関することについては、Qiita で外部に公開しているメンバーもいます。

App Engine はどのような形で使われていますか?

亀山さん: お客様からのリクエストを受けるフロントエンドのインスタンスが 100、多いときに 200 くらい起動しています。フロントエンド インスタンスでメインのアプリケーションが実行されていて、Dedicated Memcache にマスターデータとかを置いて、データを使い処理することろで使い、スループットを高めるために、後からでもいいような処理、データ書き込みの処理は多少のタイムラグがあっても構わないので、リアルタイムでなくても良いものは TaskQueue になげています。

Datastore は、当然データの保存、トランザクションのデータ、マスターデータなど全て Datastore に入れているという状況ですね。ほんとにシンプルに使っています。他にはメール用に Mail API、それにバックエンドのインスタンスとして、バッチ処理だとかを動かしているインスタンスがあり、そこで App Engine Cron Service を使ってます。

App Engine 以外に使っている Google Cloud Platform のサービスを教えて下さい。それをどう使っているのかも。

亀山さん: 今使っているのは、App Engine、Google Cloud Storage、それに BigQuery を少し使っていますね。サーバサイドのアプリケーションは全て App Engine で作っています。Cloud Storage については、お客様からデータをアップロードしてもらったりとか、逆にダウンロードしてもらえるストレージとして使っています。App Engine は 2012 年の 6 月からずっと使っていて、昔はインスタンス数も少なかったのですが、今はかなり増えています。

石川さん: 私は、2014 年の 2 月に参加したのですが、その頃とくらべてもお客様の数が拡大して、使うインスタンスも増えていますね。

Google Cloud Platform 以外に使われているサービスは何かありますか?

石川さん: 統計環境は Redshift を使っています。従来の RDB に慣れているコンサル・エンジニアが多いので。ユーザー部門がレポーティングする部分では Tableau を使ってますね。統計部門のアナリストは Redshift に直接アクセスしてデータを取得し、R 言語だとかを使って作業しています。

これまで Google Cloud Platform、特に App Engine を使っていただいてきた中で、率直にどういう感想をお持ちですか。

亀山さん: サービス立ち上げの時はなくてはならなかった。なかったらここまで広がっていないと思いますね。それか僕が過労で倒れていたか(笑)

なによりサーバがメンテナンスフリーで、アプリケーションに専念できるというは大きかったですね。ミドルウェア、RDB、OS といったところのチューニングを考える必要ないですし、それにスケールする、負荷にあわせてスケール仕組みって自分で作ったら相当大変だと思いますし、メンテナンスも大変だと思います。アプリケーションを動作させておけば、あとは負荷が増えようがなんとかしてくれる、そこは安心できる、その満足度は高いですね。

石川さん: なかったら会社もなかったかもしれないですね。ただ不正検知というサービスをやってるので、信頼性というところは求められています。多くの企業に導入していくなかで、少しでも処理が遅くなることは、センシティブな問題となり得ます。これからさらに導入企業を増やしていくなかで、我々もアプリケーションを改善していく必要がありますが、Google Cloud Platform にもさらなる速度向上と安定性を求めています。

Google Cloud Platform を今後こういう形で使いたい、と考えていることはありますか?

亀山さん: Google Container Engine には興味があります。製品に使うのはまだ先だと思いますが、社内の統計分析環境の新しいツールを作るとか、社内の新しいビジネスに使ったり、SaaS 事業でもマーケティング系の新しいサービスを作っていきたいと思っているので、そういうプラットフォームの候補として検討すると思います。

石川さん: 先ほど Redshift 使っていると言いましたが、以前 Google Cloud Platform のイベントで、データが大量になるほど BigQuery の方がさくさく動くというのを聞いて、今後データが増えてきたら BigQuery の利用を検討したいと思います。また、現在 App Engine を使っていますが、開発メンバーも増えてきているので、Compute Engine に移行する、実際そういう調査をやっているのですが、何かあってお客さんに説明しなければならないときに詳しくログ調査をしたりできるようにしたりだとか、普通のサーバとして使う場面が必要になってきたと思っています。

それで Compute Engine にすることで、Fluentd でログ回収し、BigQuery に繋いだりだとか、Tableau とも BigQuery は繋がるようなので、もっと速くお客様にデータを見せられるようにしたい。今は 1 日 1 度のタイミングなので、見れるのが前日のデータだけになってしまう。そこにもリアルタイム性を出していけるかと思っています。

亀山さん: Manged VM 含め段階的に考えていきたいですね。

O-PLUX を含め SaaS 事業の今後について教えてください。

石川さん: 調査レポートを出したりしているのですが、それらをプロダクト化していくようなことも含めて、いろいろなデータを扱っている会社なので、不正検知だけにとどまらず、世の中のためになるような、気を引くようなサービスが出せるんじゃないかと考えています。

不正検知も手口がどんどん進化していますし、EC も一般の人が自由に出品したりという時代になって、求められているニーズがどんどん高くなっているという実感があります。使っているお客様の要望もどんどん厳しくなっているという空気を感じていますね。

亀山さん: 成長とともにプレッシャーも増大している感じですね。注文フローのところに直接繋がっているという、ミッションクリティカルなところで使ってもらっているので。その分僕らも Google のサポートの方に要望を出しますが(笑)。

最後にスタートアップとして成長してきた経験から、他のスタートアップの方に Google Cloud Platform を勧めるとしたらどういうところですか?

亀山さん: App Engine を使ってきたので App Engine の話になりますが、負荷が高くなったときや、セキュリティ面を Google にまかせて、アプリケーションに特化できる。自分たちのビジネスロジックに特化できるという部分は凄くお勧めできます。

スタートアップにとって、アプリケーションをいかに使ってもらえるかというところが大きいと思うのですが、そこはコンサルティングをやってきたというところが大きかったのですか。

亀山さん: そうですね。そういった意味でコンサルティングの実績があったこと、最初に大手の会社が新事業を立ち上げるときに、ちょうど出会えたということは良かったです。スケジュールも決められて作るのは大変でしたし、求められるのも高かったですが(笑)


- Posted by Google Cloud Platform Japan Team







■ Google Cloud Platform のその他の導入事例はこちらから

        - Dmitry Shestak, Engineer@Infrastructure team, Wix


主要な機能


ログ インジェスチョンと確認:

ログを一箇所にまとめ、分析しやすいようにしておくのは重要です。Cloud Logging は、以下に方法でこれを可能にします。


  • Compute Engine VM (20 を超えるログタイプ) のログは fluentd エージェント経由で自動で収集され、カスタム設定で他のログを収集することも可能です。
  • Compute Engine の Activity ログは、システムのアクションをすべてログにし、API もデフォルトでオンになっています。エージェントのインストールは不要です。
  • システムログ、リクエストログ、アプリケーションログなどの App Engine ログは、すべての App Engine プロジェクトで自動でオンになっています。


Developers Console の中で、「Monitoring」 の下にある 「Logs」リンクをクリックすることにより Logs Viewer にアクセスできます。


テキストまたはドロップダウンメニューから結果をフィルタ可能


リアルタイムでログデータを検索:

Logs Viewer で、問題の調査やデバッグを素早く実行して、関連する状況を調べることができます。ドロップダウン メニューや最上部にあるフィルタ バーを操作するとログをフィルタすることができ、タイムラインにそってログを確認することができます。

下の画像は、Compute Engine のログをフィルタして、 「Firewall」 サービスのログのみを表示させ、特定のファイアウォール リソースを選択してログを表示させ、それを特定のログ レベルで実行しています。


Logs Viewer にてフィルタした状態


リアルタイムでログデータを分析:

多くのシーンで、複雑なクエリでログデータを分析する必要がでてきます。Cloud Logging では、簡単に Google BigQuery へデータを渡し、SQL でデータを検索、統合、確認できるようになります。
BigQuery へのエクスポートは、Logs Viewer の 「 Exports 」タブまたはこちらの詳細情報を参照してください。



BigQuery でのログデータ 


長期ログデータをアーカイブ:

Cloud Logging では、Logs Viewer にログを 30 日間保存します。これより長い期間データを保存したい場合は、ワンクリックで Google Cloud Storage へのエクスポートを設定できます。そこから、さらなるデータの処理や分析のために、BigQueryCloud Dataflow、あるいは何らかの Hadoop ソリューションへ転送することも可能です。また、先日ベータ公開した Google Cloud Storage Nearline で、より長期のログ保存がより低価格になりました。


始めるには: 

すでに Google Cloud Platform を使用中の方は、追加料金なしで Cloud Logging をご利用いただけます。BigQuery や Cloud Storage などの Google Cloud Platform サービスのご利用料金は通常通りです。詳細については、Cloud Logging ドキュメンテーション ページをアクセスしてください。フィードバックを待ちしています。


- Posted by Deepak Tiwari, Product Manager

グルーヴノーツの Google Cloud Platform 活用事例前半は MAGELLAN を作成するに至った理由や、そのアーキテクチャーについて、また、なぜ Google を Google Cloud Platform を選んだのかについてお聞きしました。
後半では、グルーヴノーツでの開発方法や社内の雰囲気を中心に聞いていきます。

MAGELLAN で作るバックエンドの形


MAGELLAN で可能なこと、こういったバックエンドが実現できるという例を教えてください。

最首さん: 例えば、自動車、車載器からデータが送信されてくるとします。そのときニーズが 2 つあったとして、1 つはデータを 1 時間おきに集計をして、運行管理したいというニーズ、もう 1 つは、水温の急激な上昇だとか、衝突を検知したとか、インシデント管理したいというニーズ。そうすると送信されてくるデータ 1 個 1 個に対して処理をするということと、連続にストリーミング データとして処理をし続けるということが出てきて、それをどう作るかというと、車の台数が 1,000 台とか 2,000 台だったらいいですけど、100 万台となると難しくなるんですね。

僕らの MAGELLAN を使うと、トランザクションをスプリットするトランザクションルーターという機能があって、一方ではどんどんスケーラビリティのあるストレージにデータを投入して、もう一方ではワーカーを動かして 1 個 1 個データを見て、あ、これはやばいというときにアラート処理が動き始めるとか、こういうことが凄く簡単にできるようにしているんですよ。溜め込んだ大量データは BigQuery で後はよろしくなんですが(笑)

プロトタイプ、フィードバック


話が変わりますが、佐々木さんと最首さんはどういう役割分担をしているのですか?

最首さん: 製品の総責任者は佐々木で、社員にいつまでに何をやってこういう機能を先に出す、出さないという指示をしています。これから MAGELLAN をどう売っていこうか、というのは一緒に話していて、僕はどっちかというとお客さんのところに出向いて、仕事とってきたり、コンサルビジネスをしたりというのをやって、佐々木は製品をよりいいものにしていくというの役割分担をしています。

MAGELLAN の開発は、どのように進められたのですか?

佐々木さん: うちの社内で MAGELLAN の原型になる種みたいなのがあって、それをやろうという話になって Google Cloud Platform を使うということを決めて開発チームが立ち上がって、今 15、6名の体制でやっています。皆新しい技術を追っかけていくのは好きで、エンジニアはその技術を吸収してそれをどう展開するか考えるのは得意なんですけど、そういうことを機能として伝えることとか凄い不得意なんですよね、優秀なエンジニア程。なんでそこを仕切って、だらっとしているところをスプレットシートに書いていくようなことを私がしている感じ。そうこうして落ち着いたのはつい最近なんですけど(笑)、お客さんがついていたので、プロトタイプに近いものは既に導入していたんですね、そこでのフィードバックをもとに MAGELLAN というものを12月の末にリリースしたという感じです。

最首さん: 一番最初は、去年の6月にプロジェクト ランディというものを立ち上げてですね、なんでランディかというとバース(BaaS)を作ろうと思ったんで、バースと言えばランディだろうと(笑)大変不評で。それでこういうのを作ろうと、ホワイト ペーパーを、どういうのをターゲットにして、おおまかにどんなアーキテクチャーで、どんな機能が必要で、それはどんなことをやるもので、というのを書いたんですね、こういうのをやりたいと。こうのがあったら絶対いけると。社内の半分くらいの人間はなるほど、もう半分くらいの人間はポカーンと、一部の人間は意味ないんじゃないかと(笑)。それで、少人数 2 人くらいでプロトタイプを作って、ある程度形ができて大きくして、本格的になってきたところで、よろしくと(佐々木さんへ)

開発のとき、どういうプロセスで進めているのですか?

最首さん: アジャイルですね。最初はコンセプトありきで、そのコンセプトを実装して、ディスカッションして、また実装してと永遠と繰り返している感じですね。まず作ってみないとわからないことがあるんです。

佐々木さん: あと使ってみてもらうものがないとわからない、ということで最初 3 社さんに使ってもらって、フィードバックいただいて、SDK も含めてフィードバックをもらいながら次期リリースの内容を決めるというのを私の方でジャッジメントしながら。

最首さん: MAGELLAN には、シェアードモデルとデディケートモデルとあって、今ベータ リリースしているのはシェアードモデルの方で、ようするにリソースを皆でシェアする。デディケートは専用環境で、そこから営業を始めています。デディケートだとオンライン決済の機能もいらないですし、わかりやすい GUI もある程度なくてもいい。だから基本的な機能が出来あがったタイミングでこっちを売って、自動車関連、ゲーム、流通系の会社に使ってもらっています。そうするといろんな問題が出てくるわけです、こういうの必要だよねとか、ここわかりにくいだとか。どんどんフィードバック受けながらブラッシュアップしているんですよ。

佐々木さん: 案件毎のフィードバックを常に聞いて、次期リリースの機能の棚卸しをリリース前に必ずやってます。それにあわせて皆動いていて、そのマイルストーン毎にどういう機能をリリースをするのか、アジャイルはアジャイルなんですけど、チケット駆動というわけではなくて、スケジュール厳守の開発手法になってます。

開発を進めていく上で、使っているツールは?

佐々木さん: GitHub を使っていて、GitHub のイシューを中心に使ってますね。そこを中心にディスカッションするし、そのマイルストーンとかアサインも全部そこでやって。あと Slack は結構使っています。お客様毎にそれぞれグループが作れるというのは、セキュリティ上わかりやすく、お客様に導入しやすいし、GitHub が Slack と連携できるので、イシューの変更があった場合、Slack のチャットルームに全部飛ばしてます。あと、常時連絡を取りたいときのツールとしては、音声じゃなくてチャットでいいんで、メールは殆ど使ってないですね、契約上のやり取りをするときに、履歴を残すという使い方で社内の連絡用には使ってないです。ドキュメントは Google Apps、東京と福岡にスタッフがいるので Docs で共有してディスカッションしたり。あと音声つないで東京と喋るとか、必要に応じて福岡に来てもらったりとか。開発チームが殆ど福岡なんですよ。

最首さん: 福岡に拠点があることの良さはいろいろあって、人と人との距離が近く、通勤時間が少なくて、みんな 15 分とかだいたい 30 分以内くらいで通勤しているし、天神のど真ん中、そこそこ都会ですし。一時期は社内でまかない作ってみんなで食べたりしていたんですよ。

佐々木さん: まかない文化は、2007年くらいに(USの)Google さんに始めていって、そのときのランチミーティングが発祥なんですよ。これいいわ、と思って。それでずっと社内でまかないやりたくて。あの頃は、Google の話が今みたいに浸透してなくて、自分が会社作るときは絶対まかないやりたいなと思ってたんですよ。チームが別れると、いろんな人と話さなくなっちゃうんだけど、ランチが一緒だとしゃべるし、というアドバイスをたまたま Google に行ったときに教えていただいたんです。あと Dogfood の文化も。私が Dogfood の文化を聞いていたので、Google さんの出す製品についてはかなり社内で検証されたものしか出さないと聞いていたので安心感がある。

スピードとビジネスの成長にフォーカスした、クラウドの選択


では最後に、今回 Google Cloud Platform を使っていただいた感想と、今後どう使っていきたいか教えてください。

最首さん: Google とちゃんと付き合うということによって、これから何をしようとしているのかということを知ることができる。これは僕らのようなサービスカンパニーにとってはとても重要なことです。自分で頑張ってこれからどうしようと考えるのと、もう一つベンチマークとして Google のような巨大な企業が、いろいろな情報に対するアプローチを持ってる会社が今何を考えているのか知れますから。時々、びっくりするようなものが出てくるので、僕らが抱えているニーズにハマったりすると、破壊的なことが起きる。最近、そういうことが多くて恐れ入ってるんですけどね。これが他のベンダーだったら、さっき言ったようにサーバの値段が安くなりましたとか、SSD がついて、早くなりましたとか、それは何のイノベーションでもない気がするんです。

その点について、今選択肢としてはオンプレミスもあるでしょうし、Google Cloud Platform も、MAGELLAN も他のクラウド ベンダーもある中で、どういう基準で選んでいくべき時代だと思いますか?

最首さん: いろんな観点があると思うんですが、エンドユーザーは自分たちがやろうとしていることがもっとも簡潔にできて、コストがかからないものを選ぶべきだと思います。でもそれは、今までこうだったから、慣れているから、というのは忘れた方がいい。ドラスティックにびっくりするほど変わってきているので、慣れているからと 100 の努力でやっていたことが、1 の努力くらいで済んだりするんですよ。ちゃんと勉強して、ちゃんと調べて、ちゃんと評価して、その中で最適なものを選ぶということが常にエンドユーザーの視点であるべきだと思います。僕らみたいなサービス ベンダーにとって何が重要かというと、コンピューターを安く手に入れることが重要なのではなくて、やろうとしているサービスがドラスティックな結果を生みだせるか、劇的な効果とか、劇的なサービスの変化を世の中にもたらせるか、ということを考えなきゃいけない。今までこうだと思ってきたことが、がらがら変わっているので、あまり先入観なくフラットに今ある技術を評価しなきゃいけないですね、それができなければ人のいいなりになるしかないかなと。

佐々木さんはいかがですか?

佐々木さん: 見てると、どこもかしこもどんな企業も IT 部門がないと駄目な状況になってるんですけど Google の仕組みを使うとあまり必要がない。例えば、データセンター選んで、というのもいらないし、Google Apps を入れてみたいな話から、Google Cloud Platform を使えば直ぐにサービスを作り始められる利便性、BigQuery があればデータをとりあえず投げ込んで SQL をたたけばいい。それをしようとデータベースを何にしようかと考える必要もなく、専門性のある人を連れてこなくてもいいという導入のしやすさ。今までのビジネスを変えずに取り組めるという状況に近くになってきているので、選択肢としてはそういう考え方の方がいいのかなと。

他のベンダーだと結局インフラ エンジニアがいるし、データベースエンジニアいるしと、エンジニアもいないし、人集める方が大変。ゲームがわかりやすくて、今までフロントばかり作ってた人が、ネットワークが必要なゲーム、運用が必要なゲームという流れの中で、その継続していく仕組みを自分たちが持たなければならないという時代におもむろに放り出されたのがゲーム業界の人たちなんですよね。それをやるには人を探さなきゃいけないんですけど、それが IT の人なのかなんなのか、ゲーム会社の人たちはまだ漠然とわかってないんです。そういう人たちに対しては、やっぱり今までフロントに注力できてたんだが、もっと注力できる仕組みとして、他のベンダーより Google の方がいい。

さらに MAGELLAN であったら。

佐々木さん: その通りです。今ゲーム会社さんも、Ruby on Rails はできないけど、Javascript ならできるということで Node.js で書いてもらっているお客様もいるんですよ。そこだけ今までやってきたことを、ちょっとだけ毛が生えた程度でも学べば、実際に直ぐに導入してもらえて、もう明日から使えるって。それをデータセンター借りてとなると、明日からは使えない。そのスピード感をどれだけ持てるか、という選び方は重要なのではないかと思います。

最首さん: 最近思うんですけど、やっぱり今の時代はできるだけ速くいろんなことがやれた方がいいし、コストもかけないでやったほうがよくて、でも企業経営していく上で SWOT 分析みたいな考えでいくと、その弱みを消して強みを伸ばしてというけれども、弱みなんて消さなくていいんじゃないかと思うんですよ。弱いと思うことはやらない。強みをとにかく伸ばすことに全経営資源投入するみたいな。じゃあ弱いところをどうするのかというと、ここで自分の会社が競争するわけではないので、どっかを使えばいいという時代になってるんだと思うんですよね。会社の弱いところを 1 個 1 個潰していったらとてつもないことになって、それは巨大企業でも成立しない。

コンピューターのリソースも、どんどんトランザクションが増えていくと運用が最も重いコストになるわけですよ。そこにいかに手間をかけないか、インフラに関するノウハウをできるだけ知らなくて済むようにする、という方向が、ひとつ考えていくべきことだと思います。これから IoT のサービスを考えたりだとか、新しいゲームを作りたいという人にとってはインフラのノウハウは重要ではないわけですよね。それよりも本当にビジネスになることをいろいろトライしてみて、本当に世の中に受け入れられるサービスの形を模索しなければならない。そういうところに特化してサービスを作っていくべきだと思うんですよ。なので、是非 MAGELLAN を使ってください(笑)。


- Posted by Google Cloud Platform Japan Team





■ Google Cloud Platform のその他の導入事例はこちらから
Share on Twitter Share on Facebook


このデータベースの初期バージョンには 85 億個の遺伝子変異に関するアノテーションが含まれています。情報源には次のものが含まれています。




さらにこのデータベースには、Conservation スコアと Evolutionary スコア、また、メンデリアン表現型に関連する確率を予測するスコアリングも含まれています。


基礎研究と同様にゲノム シーケンシングが臨床ケアにとってますます一般的になっていくに従い、正確かつ包括的な遺伝子変異データベースが遺伝子情報を理解するうえで不可欠なものとなるでしょう。我々は、遺伝子変異の詳細なアノテーションが Google BigQuery を用いたビッグデータ処理に適合することを理解しました。このことを強く確信したので、Google Cloud Platform を通じて、この先例のないデータベースをゲノミクス コミュニティに寄贈したのです。


なにかご質問があれば、Tute Genomics の こちら からお問い合わせください。


Posted by Bryce Daines, Reid Robison, Chris London, Brendon Beebe, David Mittelman, and Kai Wang of Tute Genomics

Share on Twitter Share on Facebook

(写真左: 株式会社グルーヴノーツ 代表取締役会長の佐々木 久美子さん、写真右: 同じく代表取締役社長の最首 英裕さん)

スマートフォンのゲーム市場は既に家庭用ゲーム機を超えていると言われほど大きくなり、その中でも人気のあるゲームのバックエンドのトランザクションはどれほどのものなのか、実際に運用しないことには ”想像もできないほど” なのでしょう。

こういう状況がゲームだけなのかというと、例えば自動車におけるテレマティクス分野で、数百万台の車から走行データが送られてくる状況や、年内にもより身近になってくるであろう IoT 分野でセンシング データが大量送信される状況が思い浮かびます。共通しているのは、モバイル、頻繁なアクセス、そして大量のデータ。

このような状況に当てはまる事業を始めようとしたとき、長い時間とコストを費やしバックエンド インフラストラクチャーを構築するよりも、それがウェアラブル デバイスならその利用体験に、なんらかのセンサーであるならその状況を伝えるアプリケーションに注力したいでしょうし、運用に費やす時間を事業の成長のために使いたいと考えるのではないでしょうか?

株式会社グルーヴノーツMAGELLAN は、Google Cloud Platform を使い構築され、まさにその問題を解決するクラウド プラットフォームとして、昨年末に公開されました。その MAGELLAN について、代表取締役会長の佐々木 久美子さん、代表取締役社長の最首 英裕さんに話を聞きました。その様子を、前半、後半と 2 回に分けてお伝えします。

新しい時代に適用したコンピューター アーキテクチャーとしての MAGELLAN


2 人ともそれぞれ会社を経営してきた中で、グルーヴノーツを設立されたわけですが、設立にいたった背景と事業内容を教えてください。

最首さん: 僕らが、分散系技術を使って企業システムに取り組んでいた時、佐々木は福岡でゲーム会社を作っていて、僕のチームと佐々木のチームを一緒にすると面白いことができると思ったんですよ。なぜかというと、モバイル ゲームには未来の(サーバサイド)コンピューティングの形があるように思えたんです。モバイル デバイスが前提で、四六時中使う大勢の人から大量のアクセスがあり、そのレスポンスが要求される。その裏側では高速に分析をしたり、頻繁な機能の更新をしていく。それを見てると、これからはきっとパソコンも使われなくなって、未来の形がどんどん変わっていくだろうと。それを先取りしていく必要があると強く思って、ゲームのバックエンドに特化して事業をはじめました。

それからオンライン ゲームのバックエンドとなるクラウドサービスを提供していると、その安定したデータ収集の仕組みと、それを高速に処理するという仕組は、センサーデータや POS データといった大量のデータが絶え間なく集まるような、ハードウェアを作っている企業や、自動車向けサービスを行う企業、それに流通、特に物流データを扱う企業の用途にも共通性があって、モバイルデバイスであり、アクセス数が非常多い世界なので、製造業とか IoT 系の会社からの問い合わせが非常に多く、そういった企業にもサービスを提供しています。

MAGELLAN も、そのようなオンライン ゲームの経験から生まれたものなのですか?

最首さん: そうですね。いろいろな案件をやるなかで、一時期は 1 日ごとに数万人ずつユーザーが増えるサービスをやったりもしました。そこで知ったのが、これまでやってきた金融系や製造業の、いわゆる業務システムレベルでの大規模システム技術では、全く通用しないということ。そのくらいの凄まじいことが起きていることを実感をして、こういうことが未来にどんどん起きていくのだとするならば、たぶん今までのコンピューター アーキテクチャは全然通用しなくなる。それならば、新しい時代に適用した形を作っていこうと試行錯誤して、そこでもいろんな問題が出てきて、それを乗り越えるためにはもっといろいろなことを考えて、そういう繰り返しを経験したことからできあがってのが MAGELLAN です。

パートナーとしての Google


その MAGELLAN を動かす環境として、Google Cloud Platform を選んでいただきました。また、最首さんは Blog にもクラウド ベンダーの違いについて書かれていましたが、Google Cloud Platform を選択した理由がなんであったのか教えてください。

最首さん: 根っこにあるのは、ゲームの凄まじいトランザクションを従来の発想で乗り越えるのがとても大変だったということ。それは普通に Web サーバや、アプリケーションサーバ、DB サーバなどを置いていくだけでは済まない、もっと高いレベルでの対応が必要だったんです。もちろん Google 以外のクラウド ベンダーを知らないわけじゃないですけど、ぼくらが直面していたことからすると、違和感を感じざるを得なかった。そんな中、Google の人達と話をすると、考えているのは安いコンピューターとか性能の良いサーバとかそういう話じゃなくて、何か本質的なことを考えている気がして…

それが Google と同じインフラストラクチャーで動かせるということ、最首さんたちの経験が MAGELLAN に還元されたように、Google のサービス提供者としての経験がそのまま Google Cloud Platform に還元されているということなのかもしれません。

最首さん: だから組む相手としてふさわしく、やっぱり何をやろうとしているかを聞いておく、知っておくことで凄い勉強になって、新しい性能の良いサーバーが出ました、値段半分になりましたとかだと、あまり勉強する必要はないわけですよ。あ、凄いですね、というだけなんですけど、Google はもっと違うことを考えているので、そこは僕にとってもの凄く刺激的だし、面白いですね。

例えば、Hadoop で作ったプログラム。クロス集計的な機能を高速にしましたという類のプログラムを BigQuery に置き換えたら、とても簡単に置き換わってしまった。しかも、速度が桁違いに速く、運用コストは殆どかからない。サーバのセットアップをする必要もない。データを投入してコマンドを打つと、知らないあいだに数千台のサーバが勝手に動いて、何十億件のデータ処理をするのに 3 秒くらいで答えが帰ってきて、値段が 30 円ですと。集計を組み合わせるというレベルだったら(締め処理のようなこと)BigQuery が Hadoop の代わりになると気がついたときに半日くらい考えこみましたね、これなんなんだと(笑)。これまで結構頑張ってやってきたことが、ほんの僅かな時間で構築できて、コストはお小遣い程度。あまりにもドラスティックすぎて、みんな怖くて口にできないんじゃないかと思ってしまった。

しかもクエリーを書くのは簡単なので、僕らがプログラムを作るのではなくて、お客様に開発してもらっているんです。やってくださいって説明したらできてるんですよ。しかも日常的にプログラム組んでない人たちじゃないんです。でも BigQuery でバッチ作って流している。そういうことが目の前で起きているということを正確に理解して、受け入れないといけない。

大量のトランザクション処理は WhatsApp を参考に


あらためて MAGELLAN の話を聞かせていただきたのですが、Google App Engine のようにアプリケーションさえ作れば、あとは MAGELLAN がスケーリングだとか運用に必要なことをやってくれると理解しています。

そうですね。今の形は App Engine に似たところがあるけど Ruby on Rails で開発できる、これから他の言語プラットフォームも出していきますが、App Engine だけど Node.js で書ける、というような形です。しかも App Engine は App Engine アプリケーションを書く流儀がありますが、流儀がないのですよね。普通の Web アプリケーションとして書くとそのまま動きます、という形です。プロトコルも HTTP じゃなくて MQTT でも動いてしまう。HTTP じゃないのに何故か Web アプリケーションのように書ける。これって IoT では結構重要なことです。なぜかというと、デバイスは PC のように HTTP のようなリッチなプロトコルを自由に使えない状況にあるし、メーカーや業界独自のプロトコルだとかの存在もありますし、メモリサイズの問題や消費電力など、つまりデバイスの価格にも影響してきます。そのため MAGELLAN では通信プロトコルには依存しないような作りにしました。このおかげで、独自プロトコルを組込んでも、サーバーロジックはそのまま行けるであるとか、そういうことを考えられるようになりました。

先ほど話にあった、大量のトランザクション処理を MAGELLAN ではどう処理しているのですか?

MAGELLAN の中にトランザクション ルーターというものがあって、そこで処理しています。そこで大量のトランザクション処理をいかにこなすかというときに参考にしたのが WhatsApp。なぜ彼らはあれだけの処理を非常に少ないサーバーの台数で処理できるのか、それを調べたときに、Erlang OTP という電話交換機などの制御のための仕組みがあり、それがとても大きな効果を発揮するということを知って、じゃあその構造を見習って実装していこうと。おかげで非常に高性能なエンジンが完成しました。

最もふさわしい形として選んだ Docker


MAGELLAN で特徴的なのは Docker コンテナを使われていることだと思います。まだ実サービスとして使っているところはあまり多くはありませんが、今回 Docker を選択したというのはどういう理由からだったのですか?

最首さん: 開発に自由度を与えるにはどうしたらいいか、というときに、開発の自由度を下げて、開発流儀を縛るとやりやすくはなるんです。App Engine のように。でも自由に書けるように、いろんなライブラリを使えるようにしようとすると、プログラムソースを上げるというよりは、環境をあげられなければ、うまくデプロイできない。では、環境をどうやってあげるのか、というときに、Docker イメージを作ってあげれば、環境ごとあがるわけです。そういう形がふさわしいと使ったので、いち早く使ったつもりもなく、ただいろんな選択肢の中でこれが一番ふさわしいと選択しただけで、その準備している間に世の中が Docker ブームになってきて、あれあれ、みたいな(笑)

Google は Kubernetes をリリースしていますが、そういうものは使わずにクラスタリングマネージメントを?

最首さん: そうですね。Kubernetes がオープンソースでリリースされたのは、MAGELLAN が結構できてからで、今後だんだん融合していくのかと思います。

ユーザーにわかりやすい仕組みとしてのコンテナ


最首さんは、イーシー・ワン時代にコンポーネントという形で機能の部品化を進めらていました。コンテナも大きな単位の部品化という考え方もできるかと思います。コンテナについてどうお考えですか?

最首さん: プログラム モジュールをコンポーネント化し、再利用性を高めていくということは、うまく言った部分もあったかもしれませんが、考える粒度が小さすぎたのは問題だったのかなと。それにロジックがビューと切り離しにくく、結局うまく再利用ということろまでは踏み込めませんでした。その後出てきた流れ、SOA や、Web API、RESTful インターフェイスだとかのように、機能を比較的大きな単位で分割し、疎結合にして再利用を図るという流れは、うまくいったとは思うのですが、あの当時、やはりネットワークがボトルネックになりやすく、通信に冗長性を持たせることはなかなかできなかった。とはいえ今や、ある企業で使っている機能や、あるサービスで使っている機能を API 化することによって、機能分割して再利用性を高めるということは、当たり前のようになってきています。もっと時間をかけて考えていくべきテーマだったんでしょうね。

コンテナに関していうなら、VM で頑張る必要がなかった、ハードウェアレベルまで完全にエミュレーションする必要はなかったということだと思います。結局上位層で使っている部分というのはハードウェア I/O しているわけでもないし、もっと抽象化されているので、コンテナのような発想で十分だといえば確かにそうだと。昔 Google は VM を使ってないと聞いたんですけど、それは当たってたたわけですよね。全部ハードでやってるらしいと、それは嘘だったわけですね(笑)。

コンテナ時代の開発の仕方というのは、作っている側からするとまた違ったパラダイムなのかと思うのですが、実際に利用していていかがですか?

最首さん: そうですね、デプロイし易いというか、どうですか?開発責任者として

佐々木さん: 自分たちがどうかということより、ユーザーさんが何か作るというときに、使わせやすいかというのはありますね。ここだけ作ればいいという説明ができて、ユーザーさんでも自分が開発したいもののためには、ここだけやればいいというのがわかるので、今までインフラよりのことまで全部やらなければいけなかったことが、コンテナによって上辺だけでよくなっている、作るアプリケーションだけ見ていればよくなるというユーザー視点では、私たちがサービス提供する上では凄くよかった。

最首さん: ワーカーを開発するとき MAGELLAN に上げる前に、その Docker イメージのままローカルで動かすことができるんですよ。Web インターフェイスをエミュレートしているので、とりあえず Web インターフェイスのままテストして、これでOKとなってデプロイすると全然違うインターフェイスで動く。

佐々木さん: 技術もそうですけど、私はどちらかというとユーザーさんの使い易さの方が重要だと思っていて、そこが吸収される技術であれば、どちらかというとなんでもいいと言ってしまうタイプなんですけど、それが Docker だと本当にわかりやすい。単純にもう、そこが今は一番。

結局運用がどれだけ簡単になるか、というところですよね。

佐々木さん: 結局は技術がどうかよりも、運用のしやすさをお客様も求めるので、最初の開発で完了じゃなくて、その後継続していくものなので、ゲームもそうだし、一般のシステムもそうですけど、やっぱり継続した運用を考えたときには、メンテナンスのしやすさ。そのための人材を確保するよりは、Docker 部分だけ考えていられた方がいいですよね。

Google App Engine を使っているお客様も同じことを話していて、とりあえずデプロイしておけば、あとは運用する必要もなく、アプリケーションを良くすることだけを考えられると仰っています。

最首さん: 例えば、オンライン ゲームだと、来週からテレビコマーシャルを打ちますとなると、確実にユーザーが増えるのが見えていて、その増設規模が 100 台とか 200 台とか三桁単位で増設していったりとかで大変なんですよ。環境作って、最終的に性能とかも確認してリリースしてとか、もうそれだけで 10 時間、20 時間がまたたく間に過ぎていく。台数が多くなると、面倒見なきゃいけないことの負担はもの凄く多くなってきますし。また、サービスを止めないで機能を変えたり、あとは 例えば Apple に iOS のアプリを審査に出すと、そのために審査用のサーバを建てないといけない、でも終わったら本番に切り替えないといけないとか、そういう運用上の面倒くささ、というのは今までの企業システムでは考えられないレベルで出てくる。そういうことをいかに楽にできるかというのを MAGELLAN ではかなり考えて作っていますね。それが大変だと思ってない人には、なかなかわかりにくいかもしれませんが。

Google Cloud Platform でもそうですが、品質であったり運用を考慮した機能は、それができたストーリーに共感できる人でないと、使ってもらう前に伝えることは難しいですね。

最首さん:そうですね。

(後半に続く。)


- Posted by Google Cloud Platform Japan Team





■ Google Cloud Platform のその他の導入事例はこちらから
Share on Twitter Share on Facebook


Share on Twitter Share on Facebook


構成

メモリ
(GB)
継続利用時の
1 時間当たりの最低料金
(米ドル)
標準的な
1 時間当たりの料金
(米ドル)1
非継続利用時の 
1 時間当たりの最大料金
(米ドル)
n1-standard-32
120
1.412 ドル
1.538 ドル
2.016 ドル
n1-highmem-32
208
1.658 ドル
1.806 ドル
2.368 ドル
n1-highcpu-32
28.80
0.896 ドル
0.976 ドル
1.280 ドル
*標準的な 1 時間当たりの料金(米ドル):Compute Engine の全ユーザーを対象に算出された平均的な利用での 1 時間当たりの料金。継続利用割引を含む。

デジタル制作会社の Industriromantik 社では、Google の 32-vCPU マシンが初期段階からテストされています。同社の技術担当ディレクターを務める Fredrik Averpil 氏は、マシンについて次のように述べています。


「これまでのところ、すべてのジョブで 16-vCPU から 97 ~ 98% という安定した
スピードアップが実現しています。3D レンダリングとしては最高の効率です」


開始するにはデベロッパー コンソールから 32-vCPU マシンを使って新しいインスタンスを作成するか、gcloud のコマンド ライン インターフェースを使用する新しい仮想マシンの作成方法をご覧ください。32-vCPU マシンは Ivy Bridge と Haswell ゾーンでのみ利用可能です。


ワークロードの実行やプラットフォームでの使用についてのフィードバックは、ぜひこちらからお寄せください。


- Posted by Scott Van Woudenberg, Product Manager for Google Compute Engine

Share on Twitter Share on Facebook


透過的なメンテナンスの利点

ライブ マイグレーションによって Google が目指したのは、VM を再起動することなく、すべてのデータセンターにあるハードウェアやソフトウェアを最新の状態に保つことです。こういったメンテナンスは、ホストマシンの再起動が必要となるため、透過的なメンテナンスがないのなら、当然 VM にも影響がでます。


ライブ マイグレーションで解決するであろう問題は例えば次のようなものです。これらは実際に私たちが遭遇してきたも問題です。




皆さんが運用の中で様々な問題に直面したときに、ライブ マイグレーションがどれだけ役立っているかを知って驚きました。実際、サイトの信頼性に係わるエンジニアは、まだライブ マイグレーションが皆さんに提供されていなかったころにもツールとして使い、プロダクション時に起きる可能性のある障害への対処や、あるいは軽減していました。


以下は、予期せず実際に発生したものの、実行中のゲスト OS には影響なく対処できた問題です。




トランスペアレント メンテナンスの実施

導入後、マイグレーションは数十万回実施されてきています。多くの VM はマイグレーション導入後に立ち上げられて、すべて複数回マイグレートされました。反応は非常に好意的です。初期のマイグレーションのテスト期間中は、Rightscale でマイグレーションの効果を調べました。対象の VM をすべて 2 回マイグレートした後、次のようなレポートが得られました。


「ログファイルを調べましたが、データベースの中の全データは…まったく異常ありません。もしインスタンスがマイグレートされていたことを Google が教えてくれていなかったとしたら、まったくわかりませんでした。すべてのログとデータは正常ですし、RightScale のクラウド管理 ダッシュボードには、ゾーン、インスタンスのサイズ、IP アドレス、リソースなど、いずれも変化はありませんでした」。


ServerDensity の David Mytton 氏と協働で、レプリケートした MongoDB をライブ マイグレーションしたところ、マイグレーション終了後に David はツイートしました。


@MongoDB レプリカ セットで @googlecloud ライブ マイグレーションをテスト。
まったく影響なし。どのノードも、プライマリが移動したことに気付かなかった!”


実際 Google は、ホストへのカーネルのアップグレードと全 VM にセキュリティ パッチ当てを、どの VM も欠けることなく行っています。そこに含まれる大量のコンポーネント、さらにその依存関係までが、どの時点においても 1 つとして障害を起こしたり、失うことがなかったことを考えると驚異的なことだと思いませんか? マイグレーションの間、VM を構成する多くのコンポーネント(ディスク、ネットワーク、管理ソフトウェアなど)は、元のホスト マシンとマイグレート先となるマシンにデュプリケートされます。マイグレーション中のどこかで、その 1 つでも障害を起こせば、それがアクティブ(クラッシュなど)なものであれパッシブ(消失など)なものであれ、実行中の VM に影響を与えずにマイグレーションを完全に取り消します。


どのように動作しているのか

実行中の VM をあるホストから別のホストへマイグレーションするとき、ゲスト VM と、それと通信している全てに対して透過的な方法で、マイグレーション元から先へすべての状態を移す必要があります。これをシームレスに行うには、多くのコンポーネントが関与してくるのですが、ここでは、大まかなステップを見ていきます:

マイグレーションのプロセスは、VM を現在のホストマシンから移さなければならないという通知から始まります。その通知には、ファイルへの変更(例えば、リリース エンジニアが新しい BIOS が利用できるようになったことを指摘するため)、ハードウェアへのオペレーションのための定期メンテナンス、ハードウェア障害が起こりそうなときに発生する自動的なシグナルなどから始まります。


Google のクラスター マネージメント ソフトウェアは、データセンターやジョブを制御するポリシー(た(例えば、データセンターの最大稼働率や、ジョブにおいて 1 ユーザーのために 1 度にマイグレーションできる VM の数であるとか)に従って、こうしたイベントやメンテナンス スケジュールを監視しています。


マイグレーションの対象となる VM を選択されたら、マイグレーションが差し迫っていることをゲスト VM に通知します。一定期間経過した後、マイグレーション先となるホストが選ばれ、そのホストでマイグレーション元の VM を受け入れる先となる新しい空の VM をセットアップするように依頼します。図の中の認証(Authentication)は、マイグレーション元と先との接続を確立するためです。


VM のマイグレーションには次の 3 つのステージがあります:

  1. 予定されたマイグレーションが行われるまでの間、ほとんどの状態をマイグレーション先へと送信しながら VM はマイグレーション元で動作します。この期間に、例えばすべてのゲスト VM のメモリをマイグレーション先へコピーすると同時に、再度変更されたページがないか追跡しています。この状態がどれだけ続くかは、ゲスト VM のメモリー サイズや、そのページが変更される率(ダーティ状態の率)によります。
  2. 停止している間、VM が完全に実行を止める時間はほんの短い間ですが、一瞬停止し、マイグレーション先で VM が動作を始めるために必要な残りの状態が送信されます。停止状態に入るのは、マイグレート前の準備期間中の状態の送信が、動作状況に対して増えなくなったポイントに達したときです。ここでは特に、送られるメモリのバイト数とゲスト VM がページを変更する率とのバランスをとるアルゴリズムを採用しています。
  3. マイグレート後の一定期間、VM はマイグレーション先で実行されていますが、マイグレーション元の VM もそのままマイグレーション先をサポートする機能を提供していることがあります。例えば、ネットワーク ファブリックが VM の新しいローケーションで用意できるまで、マイグレーション元の VM は、マイグレーション先の VM が送受信するパケットの転送サービスを提供します。


最終的にマイグレーションが完了すると、システムはマイグレーション元の VM を削除します。マイグレーションが実行されたことは、ログからわかります。


全てにおいて透過的にメンテナンスしていくことには、たった 1 つの VM でさえも犠牲にしないという目標があります。これを達成するため、超高レベルの厳格なテストをライブ マイグレーションに対して実施してきました。マイグレーション アルゴリズムの中で注意すべきポイントの全てで、障害を引き起こすためにフォールト インジェクションを使い、それぞれのコンポーネントごとにアクティブとパッシブの障害の両方を生成します。デベロップメント テスト(数か月にわたる)のピーク時には、毎日数万回のマイグレーション テストを実施してきました。


このような複雑で多面性のあるプロセスを行うには、インフラストラクチャーの隅々にまで、強力なスケジューリング、オーケストレーション、オートメーションの組み合わせを深くインテグレーションすることが求められます。


まとめ

ライブ マイグレーション テクノロジーによって、ゲスト VM への影響なくインフラストラクチャーを最高の状態に維持することができます。Google が VM を不老不死にしたと主張するレビュワーもいました。定期的、非計画的メンテナンスが要求される中、物理マシンの再起動が必要な数多くの問題がありながらも、長期間 VM を実行し続けることが可能となっています。


最近発生した、他のクラウド プロバイダに影響を与えたセキュリティ上の問題のいくつかが、私たちに影響がなかったように、今後発生しうる新たな脆弱性に対しても、Google は VM への影響なくCompute Engine を保護できるようにしていきます。


-Posted by Miche Baker-Harvey, Tech Lead/Manager, VM Migration

Share on Twitter Share on Facebook



最後となる今回は、デベロッパー アドボケイト 佐藤 一憲のセッションです。Google における Big Data から始まり、BigQuery が速い理由、fluentd と BigQuery によるリアルタイム ストリーミング インポート、それから Lambda アーキテクチャーによるリアルタイム KPI 分析を説明しました。BigQuery については様々情報があるため、ここでは Lambda アーキテクチャーによるリアルタイム KPI 分析をレポートします。

Real-time KPI Analytics with Lambda Architecture

Lambda アーキテクチャGoogle Cloud Platform で構成するために、データ入力には fluentd を使い、バッチ処理には BigQuery、リアルタイム処理には SQL を使ったストリーム処理が可能な、LINE の田籠さんによる Norikra、その結果を見るダッシュボードとして Google スプレッドシートを使い、デプロイには Docker コンテナを活用しています。
このビデオからも、リアルタイムにスプレッドシートのグラフが更新されていくのがわかります。今回のメインではないものの、スプレッドシートでこのようにリアルタイム ダッシュボードが作れることは、様々な用途に応用していけそうです。その他のアプリケーションの例として、モニタリング システムなどが考えられますね。

Lambda アーキテクチャーは、人的なミスを含めた対障害性としても、スケーラビリティの面でも優れたアーキテクチャーで、例えばリアルタイムでの集計の仕方を間違って、正しくメトリクスの値を把握できていなかったとしても、バッチ処理側で元データを管理しているため、後で正しく修正したレポートを見ることができる、そして想像すると殆どの用途が当てはまるアーキテクチャであることがわかると思います。

このソリューションで次のことが可能になります。

  • BigQuery と Fluentd で秒間 100 万行のストリーミングインポートが簡単に行える
  • Norikra で秒間 100 万行の KPI の解析をリアルタイムに SQL を使い簡単に行える
  • Google スプレッドシートで実現できるリアルタイム ダッシュボード
  • Docker を使うことで 10 分内にデプロイ可能

モバイル デバイスから送られてくる大量のデータを優先順位付けし、リアルタイムに処理/分析していくことは、デバイスの多様化や高機能化が進むほどに、より重要性が増してきます。今回紹介した方法を一例として、今後 Compute Engine や BigQuery を使った、どんなソリューションが出てくるのか楽しみです。

さらに詳しく見ていくには GitHub の lambda dashboard を見てください。

以上で、Google for モバイル アプリのセッションが終わりました。これまでのレポートから、何か今後のモバイル開発に役に立つことが見つけられたら、とても嬉しいです。また次のイベントで皆さんに会えることを楽しみにしています。


- Posted by Google Cloud Platform Japan Team
Share on Twitter Share on Facebook


Google Maps の登場が 2005 年、今年は 10 週年にあたります。覚えている人もいるかもしれません、登場した当時は、まだ日本もなく北米とヨーロッパの一部だけでしたが、当時としては革新的な AJAX ベースの UI でスムーズなパンニング、ズームイン、ズームアウトを実現していました。そして現在では多くの皆さんが日々使うアプリケーションとして成長し、機能的にも、ストリートビューや高解像度の衛星画像、航空写真など大きく発展しています。

US での調査結果ですが、モバイルが発展した今、Google の検索の 30% が位置情報、または地理的要素に関連していると言われています。そしてインターネットを利用をする 40% 以上の人が、Google Maps か Google Maps API を使ったウェブ サイトを使い、さらにその内の半分がモバイルから利用しています。Google Maps から 10 年、位置情報の重要性はモバイルの発展とともに高まり、GPS、ビーコン、各種センサーなどと連動し、O2O ソリューションから、子供や高齢者を見守るサービスまで、これからもさらにその重要性が増していくでしょう。

“ 5 分” でわかる位置情報アプリの開発


セッションの一番最初で Ingress について説明しました。そこで、Ingress のように位置情報と連動し実際にポータルを訪れ、ハックするアプリケーションを作っていきます。

四国八十八ケ所と名付けられたこのアプリケーション(どういうアプリケーションかは想像できますよね)は、Android Studio、Google Maps API、Google Cloud Platform といった Google の開発者向けツールの活用の仕方としても、Android Studio を使った開発ワークフローとしても、これから始める皆さんにはとてもわかりやすいチュートリアルなのではないでしょうか。

Android Studio は Google Cloud Platform のモジュールを追加していくことで、Android アプリケーションに簡単に Google Cloud Platform をバックエンドとして追加できるようになります。ローカルでバックエンドを含めたテストができて、そのままデプロイまで Android Studio で行えます。現在サポートしているのは、App Engine、Cloud Endpoints、Cloud Messaging。そしてコードは Cloud Repositoryバージョン管理できます。


さて、ここでは開発の詳細省くので、以下の画像をご覧ください。




これだと 5 分というより、5 秒ですね。
ソースコードは GitHub にあります。まずは API Key を取得して、Developers Console から新しいプロジェクト作りましょう。


次回で最後です。デベロッパー アドボケイト 佐藤 一憲による「モバイル KPI 分析の新標準 〜 Fluentd + Google BigQuery」をレポートします。


- Posted by Google Cloud Platform Japan Team
Share on Twitter Share on Facebook

オンライン データ ストレージ ソリューションと Nearline と従来型コールド ストレージとを比較

Google Cloud Storage Nearline が、容量に制限なくデータを保存をでき、いつでもデータへアクセスできる、低コストで堅牢なストレージを可能にしました。特にフォーカスしたのは、生活の中に新しいユースケースをもたらすようにすること。それが、バックアップやストレージのリーディング プロバイダーと協業している理由であり、このエコシステの発展にフォーカスしている理由です。この独特で新しいストレージ オプションの素晴らしくイノベーティブな使い方を見れることを楽しみにしています。まずは、Nearline のサイトドキュメントを見て、そして使い始めましょう!


-Posted by Avtandil Garakanidze, Product Manager
Share on Twitter Share on Facebook


Google Cloud Platform の事例紹介とピタペラポン

続いては、株式会社グラシスの長谷川 祐介さん。Google Cloud Platform を使い MSP、システム コンサルティング事業をしていく中での事例を紹介いただきました。その中の 1 社として 4月に開始予定の新しい教育サービス、ハマる英語動画アプリ「ピタペラポン」を提供する株式会社ハグカムの道村 弥生さんにも登壇いただきました。

この Blog では、Google Cloud Platform のセッションに限定してお伝えしていますが、Google for モバイル アプリでは、モバイル アプリケーションのビジネスから開発、UI/UX までを総合的に扱ったイベントとして開催されました。その中でも新規事業開発の中で、長谷川さんと道村さんのお話は、多くの面を伝えてくれた内容でした。

グラシスさんの事例はゲームを中心に、例えば株式会社 Zeadle さんのソーシャル ゲームのバックエンドでは通信に WebSocket を使い、各種ログは BigQuery に送信、ディスクには SSD 永続化ディスクを使っていることや、その他グロバールなリアルタイム対戦ゲームの話など聞かせていただきました。そしてゲームだけではない、ということで道村さんと交代です。

道村さんのスライドの中で、長谷川さんが登場し引用されていた一言が印象的でした。


“インフラはまるっとお任せで、コンテンツ開発・運営に注力して下さい。”


Google Cloud Platform とグラシスさんでインフラを整え、ハグカムの皆さんは、サービス内容とアプリケーションの UX に集中する、事業に係わる様々な役割の人が自分のやるべきことに徹底的にフォーカスしている状況が道村さんのセッションから伝わってきます。

道村さんの伝えてくれた、サービスのコンセプトから、それを実現するために何が必要となるのか、その考え方は、新しくサービスを始めようと考えている人にも開発者の皆さんにも参考になることが多かったのではないでしょうか。

道村さんも、イベントについてのレポートを書いています(写真付き)。

MAGELLAN on Google Cloud Platform

このセッションの最後は、株式会社グルーヴノーツさんです。Ruby 開発者としても有名な近永 智之さんに、ゲーム、車載機器、IoT などのモバイル アプリケーション向けプラットフォームである MAGELLAN と、MAGELLAN が動作している Google Cloud Platform について話していただきました。MAGELLAN プラットフォームでは、アプリケーションは Docker コンテナを使いデプロイするように構成され、柔軟なアプリケーション構成、高速なデプロイ、そしてスケーリングを実現し、HTTP(S) だけでなく、HTTP2、MQTT のサポートされていること、そしてマルチ ステージの仕組みも単に開発を簡単にするだけではなく、アプリケーションの審査までも考慮して設計されている点が特徴的でした。

様々な Google Cloud Platform サービスを活用していただいている中で、今回は Compute Engine と BigQuery について、利用する中で特に何が役に立つかという視点で説明されました。Compute Engine では大きく 4 つ:




他にも多くのクラウド サービスの経験があるグルーヴノーツさんのお話は Google Cloud Platform の特徴が良く分かるものだったのではないでしょうか。たとえば、高可用性についてのお話では、冗長化構成は必要だとしながらも、ライブ マイグレーションによって、メンテナンス再起動がスケジュールされたとしても自動的にインスタンスが物理マシンを移動し、ソケットを繋いだままのインスタンスであるにもかかわらず接続が切れることもないと、スクリーンショットを交えた説明が行われました。

BigQuery については、グルーヴノーツさんでの使い方は、ユーザーのアクションのログ、リソース情報を集め、状況分析、課金情報の計算のために利用し、データ投入はストリーミングのみ利用しているそうです。そして、BigQuery のとてつもなく速いクエリー、そして高いコスト パフォーマンスについて話してくれました。

Google Compute Engine の説明のときの Interoperability のお話の中で、Compute Engine から他のサービスへのアクセスは、スコープ設定をしておけば認証の設定を簡略化できる(編集注:プロジェクト作成時に、他の Google サービスへアクセスするためのサービス アカウントが自動作成されるため)と説明してくれましたが、データ投入部分に使っている fluentd でもこのように認証を簡略化できているそうです。

コストについては、バッチでのインポート/エクスポートは無料、ストレージコストは容量あたり Google Cloud Storage よりも安く、ストリーミング インサートでは 10 万レコードあたり $0.01 と非常に高い性能に対して、コスパフォーマンスに優れていると説明してくれました。
次回は、セールス エンジニア 丸山 智康による、Google Maps API と Google Cloud Platform を使ったモバイル アプリケーション開発に関するセッション、「Maps API で、かしこく地図アプリを開発しよう」をレポートします。


- Posted by Google Cloud Platform Japan Team
Share on Twitter Share on Facebook