※この投稿は米国時間 2018 年 10 月 17 日に Google Cloud blog に投稿されたものの抄訳です。

2011 年以降、Go デベロッパーは Google App Engine を、スケーラブルかつフルマネージドで使った分だけの料金で済むソリューションとして、ウェブ サイトや API のホスティングに使用してきました。ただし、これまでは制限もあり、イディオマティックにならないようにコードを構成したり、アプリケーション起動やネットワーク接続、データ格納のために特別な SDK を使ったりする必要がありました。

私たち Google はこのほど、App Engine スタンダード環境向けの Go 1.11 ランタイムをベータ リリースしました。数週間前にリリースされたばかりの最新バージョンの言語へのアップデートのほか、従来の App Engine スタンダード環境ランタイムに存在した制限を取り除いています。Go 1.11 ランタイムでは次のことが可能になりました。
  • Go アプリケーションのイディオマティックな構成 : 依存関係を vendor フォルダに追加し、main パッケージを使用
  • 任意の Go パッケージのインポート
  • Gin などの Go ウェブ フレームワークの利用
  • Google Cloud Client Libraries for Go の利用

Go モジュールのサポート

Go 1.11 では実験的なオプトイン機能としてバージョン付きモジュールを新たに導入しました。バージョン付きモジュールは go.mod ファイルで定義され、バージョンを加味したモジュールの依存関係を記述できます。App Engine もこの実験的な Go モジュールをサポートします。GOPATH の外部からアプリケーションをデプロイするときに go.mod ファイルが含まれていれば、クラウドでアプリケーションをビルドする前に依存関係が自動的にダウンロードされます。

App Engine スタンダード環境で Go アプリを実行するメリット

App Engine スタンダード環境にクラウド アプリケーションをデプロイして実行すると、次のような特別なメリットが得られます。
  • 自動スケーリングと、使った分だけの料金 : App Engine スタンダード環境にデプロイされた Go アプリケーションは、送られてくる HTTP リクエストに基づいて自動的にスケーリングされます。App Engine は急速なスケールアップに対応できるとともに、インスタンスが不要になればゼロまでスケールダウン可能です。お客様は使用した分の料金を支払うだけで済み、インフラストラクチャについて何か考慮する必要はありません。
  • 強力なセキュリティ : App Engine 上では最初から HTTPS URL が使用でき、カスタム ドメインの証明書をシングルクリックで生成できますが、App Engine のセキュリティ機能はそれにとどまりません。セキュリティ フィックスを含む Go 1.11 の最新リリースに常にアップデートされるほか、Ubuntu OS も自動アップデートされます。また、DDoS 攻撃からも保護されます。
  • GCP との統合 : Go アプリケーションのデータは、サービス アカウントを気にすることなく Cloud FirestoreCloud SQL に簡単に格納できます。OpenCensus Libraries for Go を使用してアプリケーションをトレースしたり、Stackdriver で自動的にログとエラーを表示したりすることも可能です。

今すぐ Go 1.11 をお試しください

App Engine の準備は整っており、いつでも Go アプリケーションをホスティングできます。
  • Go 1.9 ランタイムから Go 1.11 ランタイムへの移行の方法については、こちらのガイドをご覧ください(Go 1.11 ランタイムでも古い App Engine API を使用できます)。

新規に利用される方は App Engine の無料枠を使って Go 1.11 を試用できます。アプリケーションのデプロイ方法についてはこちらのチュートリアルに従うか、以下の短い動画をご覧ください。
App Engine gopher(Renee French 作、Creative Commons 表示 3.0)

- By Steren Giannini, Product Manager


わずか 12 か月で 1 万を超えるコミットを受け、TensorFlow は大幅なパフォーマンス向上分散訓練サポートの追加iOS および Raspberry Pi への対応、広く使われているビッグデータ インフラストラクチャへのインテグレーションを実現してきました。

また、私たち Google は GoRustHaskell から TensorFlow へのアクセス手段を提供するとともに、最新のアート イメージ分類モデルをリリースし、さらには GitHubStack OverflowTensorFlow メーリング リストで膨大な数の質問にお答えしてきました。

TensorFlow は Google において、大規模な本番機能から探索的研究までのありとあらゆるものをサポートしています。

たとえば、私たちは最近、TensorFlow(および TensorFlow 専用のハードウェア アクセラレータである TPU : Tensor Processing Unit)を使用して、Google Translate の大幅な改良版をリリースしました。

一方、Magenta と呼ばれるプロジェクトでは、メロディーを作り出せる新しい強化学習ベースのモデルを開発しました。先ごろ Google Brain チームを訪れたある大学院生は、イメージに美術スタイルを自動的に与えることができる TensorFlow モデルを作りました。

DeepMind は、すべての研究用のエンジンとして TensorFlow を使うことを決定しました。同社は最近、生の波形データに基づいて音声や音楽を生成する魅力的なモデルを作り出しています。

私たち Google が特にすばらしいと考えているのは、TensorFlow を活用する動きが世界中の人々の間に広がりつつあることです。以下はその一例です。
  • オーストラリアの海洋生物学者たちは、絶滅の危機に瀕しているマナティー科の生態に関する理解を深めるため、TensorFlow を使って数万枚の高解像度写真からマナティーを見つけ出す作業を進めています。
  • 日本のある先進的なキュウリ農家は、大きさ、形、その他の特徴に基づいてキュウリを仕分けするモデルを TensorFlow で開発しています。
  • 放射線医たちは、医療用スキャナの画像からパーキンソン病の兆候を見つけるために TensorFlow を使っています。
  • サンフランシスコのベイエリアで働くデータ サイエンティストたちは、TensorFlow と Raspberry Pi を組み合わせてカルトレインの運行状況を追跡しています
私たちはこれまで、研究プロジェクトから本番システムまでの、Raspberry Pi のような最も小さいデバイスから GPU / TPU を満載したサーバー ファームに至るあらゆる規模のハードウェアに TensorFlow が対応できるようにしてきました。

しかし、TensorFlow は単なる 1 つのオープンソース プロジェクト以上の存在になっています。そのため、私たちは関連ソフトウェアと機械学習モデルのオープンソース エコシステムを全力で強化していきます。
  • TensorFlow Serving プロジェクトは、本番システムで TensorFlow モデルをサービングするプロセスを単純化します。
  • TensorFlow の “Wide and Deep” モデルは、古くから使われている線形モデルとディープ ニューラル ネットワークを結合させます。
  • クラウド環境で TensorFlow を使いたい人のために、マネージド サービスとして TensorFlow を提供する Cloud Machine LearningGoogle Cloud Platform に加わりました。
さらに、TensorFlow のモデル リポジトリはコミュニティの貢献によって成長を続けており、GitHub だけで TensorFlow 関係のリポジトリが 3,000 以上も作られています

TensorFlow コミュニティに参加するには、私たちの新しい Twitter アカウント(@tensorflow)をフォローするか、GitHub のプロジェクトに参加するか、Stack Overflow の Q&A で質問するか、コミュニティのディスカッション リストに参加してください。

私たちは、最先端プロジェクトや意欲的な研究、急成長を遂げているスタートアップ、学習用プロジェクトなどで TensorFlow を使用しているすべての人々に大変感謝しています。

また、コードベースに直接貢献していただいた方には特別な感謝の気持ちを捧げたいと思います。これからも世界中の機械学習コミュニティの協力を仰ぎながら、TensorFlow をより良いものにしていく所存です。


* この投稿は米国時間 11 月 9 日、TensorFlow の Product Manager である Zak Stone と、TensorFlow team によって投稿されたもの(投稿はこちら)の抄訳です。

- Posted by Zak Stone, Product Manager for TensorFlow, on behalf of the TensorFlow team


Stackdriver Debugger は、最初から次の言語とプラットフォームをサポートしています。
こうした機能はすべて、Stackdriver Debugger バックエンドとやり取りするための入口としてアプリケーションに公開されている Stackdriver Debugger API を使って実現されています。

この API を利用すれば、独自エージェントを実装し、好みのプログラミング言語用にデバッグ データを集められるようになります。また、お気に入りの IDE で直接デバッグ スナップショットやログポイントを設定して表示できるようにするため、IDE に Stackdriver Debugger UI を実装することも可能です。試しに、私たちはこの API を使用して、gcloud debug コマンドラインに Stackdriver Debugger を統合してみました。

Stackdriver Debugger に磨きをかけるため、皆さんからのフィードバッグや提案をお待ちしています。ぜひ、リクエストやフィードバックをお寄せください。また、新しいエージェントの作成や既存エージェントの拡張などでこのプロジェクトに貢献してみたい方は、こちらのアドレスから Debugger チームにご連絡ください。


* この投稿は米国時間 10 月 21 日、Product Manager である Sharat Shroff によって投稿されたもの(投稿はこちら)の抄訳です。

- Posted by Sharat Shroff, Product Manager