機械学習・データ分析・NoOPSのインフラ! - GCP NEXT Tokyo 2016 レポート
高丸 翔英
こんにちは。ビューティー開発チームの高丸です。
最近、SOFT SKILLSを読んだ後輩が「(エンジニアは)ブログを書くべき」という言葉に印象を受けてブログを書き始めたので、それに影響を受けて私も書いております……。
さて、9/6に開催されたGCP NEXT Tokyo 2016に参加してきましたので、レポートしたいと思います。
弊社でもクラウド活用は進んでおり、以前、CETのプロジェクトのテックブログ記事で紹介したGoogle Cloud Platformですが、最近はますます勢いを感じます。
機械学習
まずは、機械学習をかなり推している雰囲気がありました。
"5年後には大型IPOの成功はすべて機械学習によってもたらされるだろう"(by Eric Schmidt)
というぐらい、機械学習の熱は至るところで感じますが、昨年2015年に発表したTensorFlowと連携するCloud Machine Learning(現在はAlpha版)が大きなインパクトを与えるのではないかと私は感じました。
いくつかデモがありましたが、どうしても機械学習で精度を上げようと思うと、パラメータをチューニングしたり、そもそもモデルを作り直したりする必要があり、それにはとても時間がかかります。 ですが、GCP上でモデルのトレーニングが行えるので、非常に高速に学習させることができるようになりました。
あとは、APIも揃っており、簡単に機械学習のデータを利用できるのは画期的です。
皆が皆、あの難しい数式やアルゴリズムを知らなくても、機械学習を始められてしまうのです!
ただ、「機械学習を有効活用するには、機械学習の習得にコストを掛けましょう」というアドバイスもありました(笑)。
活用事例としては、不正画像アップロードの検知や不正利用の検知、マーケティングデータの分析が多く、現状は精度を上げている段階のようです。
BigQuery
ビッグデータ解析と言えば、BigQueryというのはもう根付いてきたかもしれません。
先述のブログ記事の中でも「コストダウンできた」という事例を紹介させていただきましたが、他社の事例でも、
- メンバーがデータ分析する文化を醸成した
- エンジニア以外にも触ってもらうようにした(SQLを教えた)
- 旧DBや旧データ基盤から、BigQueryに移行した
など、BigQueryを浸透させる動きが強まってきたと思いました。
ビッグデータは、データを活かしてこそのビッグデータだと思うので、エンジニアの以外の人も頑張ってSQLを使えるようになりましょう!そういう時代に入ったと思います!
Cloud Pub/SubとCloud Dataflowを使ったSpotifyの事例紹介などもあり、リアルタイムに集めたデータの処理からバッチ処理まで、どんな場所でも使えるイメージです。
Google App Engine
私も、知人から最近のGAEの素晴らしさを語られてから再注目しているのですが、改めて良さを感じました。
PaaSなので、インフラ管理が減り、スケーリングが簡単なことは然ることながら、細かいところで言うと、
- スケールアウトが速い(数ミリ秒〜数秒)
- ミドルウェアが揃っていて、特にTask Queueが使いやすい
- Goがサポートされている(まあ、Herokuもサポートはしているのですが……)
というところでしょうか。 もちろん、コンテナ技術が発展してきているので、インフラ構築もかなり楽になりましたが、新規サービスを作る上では、PaaSは選択肢の1つとして残ると思います。
Kubernetes
私が今回一番興味があったのは、Kubernetesでした。
発音が難しくて有名でもありますが、基調講演でローリングアップデート、しかもマルチクラウドでデプロイをさっと行っていたのは圧巻でした。
TerraformやCloudFormationを使った構成管理ももちろん有効ですが、GKEでまとめてコンテナの配置・リサイズから負荷分散までやってくれるのはうれしい限りです。
大規模なアプリケーションのマイクロサービス化を進めるにあたり、各サービスのスケーリングを考える必要があると思いますが、GKEでの管理はかなり楽になると思います。
Kubernetes v1.4は、割と安定性を重視したリリースになるんでしょうか。
おわりに
クラウドの特徴は各社に違いがあるものの、GCPの良さを深々と感じることができました。
基調講演で「自動化していなければ、バグとみなす」や「No DBA、NBD(No Big Deal)」といった印象的なフレーズを残しつつ、スマートに解決するプロダクトが紹介されていました。
新規サービスで利用を検討するのはもちろんのことですが、「プロダクトの開発で本当に集中しなければいけないことは何なのか」と考えた時に、自動化できる部分はGCPに任せるといったやり方は重要だなと感じました。
これからのアップデートも要チェックです!