- tech系
Cloud OnAir 第10回 ~開発の最適化~速報まとめ
目次
こんにちは。クラウドエース編集部のかめなしです。
2017年10月5日より、【隔週木曜 18:00~18:45】に、Google社のエンジニアが、 Google Cloud Platform の製品、サービスや導入事例等について解説する番組が始まっています。
ユーザー参加型の生放送番組となっており、視聴者からのリアルタイムQ&Aも受け付けています!
この記事では、動画を見逃した方や、見る時間が無い方向けに、要点をかい摘まんで、クイックに紹介したいと思います。
特に今回はスライドの内容が秀逸であり、スライドを主体に解説が展開します。
今回は、ビジネスに直結する開発やクラウドならではの開発に関するお話です。
講師は、Google Cloud カスタマーエンジニアの岩成 祐樹さんです。
掛け声は、めざせクラウドマスター!
今回のテーマ: 「アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。 」
Cloud OnAir 第8回 ~「最適化」を深掘する ~ では「運用の最適化」がテーマでしたが、今回は「開発の最適化」です。
「クラウドで開発をすると、どういうメリットがあるか?」
「運用の最適化」は、「どのような構成がよいか」というお話でしたが、今回の「開発の最適化」については、「クラウド上での開発をすることによる『更なるメリット』について解説しています。
アジェンダ
- ビジネスに直結する開発とは?
- 構築・計測・学習のサイクルを最適化
- 本日のまとめ
ビジネスに直結する開発とは?
Cloud OnAir 第8回「運用の最適化」の中でも「開発の最適化」に少し触れ、「ものづくりのサイクルを短くする、沢山のものを早く作る」というテーマが紹介されました。
今回そこに「真のテーマ」が加わります。
- 真のテーマとは?
フィードバックループを短くし、ユーザからのフィードバックを取り込みながら、本当に必要なものを高速に開発する。 - 「フィードバック」とは?
- リリースした製品に対するユーザーの反響を新製品・新機能に反映していくこと。
- 製品の開発、リリース、反響の反映…を繰り返すことを、今回フィードバック・ループと呼んでいる。
開発のフィードバックループ: 構築・計測・学習
これら3段階のサイクルを最適化する手法を知り、クラウドマスターを目指しましょう!
次項で各々の項目について解説していきます。
構築・計測・学習のサイクルを最適化
1.構築の最適化
より早く、ユーザーに自社のプロダクトを届けたい。それを実現するためのアプローチは?
- A 作業工程の削減(効率化)
効率化することで、各工程の所要時間を短縮する
そもそもの工程を省いてしまう - B リリース対象の分割(マイクロサービス化)
たとえば、家全体をリフォームするのではなく、キッチンだけを改修する、といったことが可能となる。
A 作業工程の削減(効率化)
- マネージドサービスを活用
作業工程自体をサービスに代行させることで、大幅に工程を省略できる。 - リリースを高速化
今日は特に「CI/CD」について、詳細に説明します。
CI/CD … CI (継続的インテグレーション)とは
- たとえば、ソフトウェア開発では、個々の部品を別々の部署が開発し、最終的に統合することでひとつの製品をリリースする、ということが多い。
もし、その統合テストが最後の一度しか無かったら、不安ですね。 - 細かいサイクルで都度、全体のテストを自動的に実施させることで、問題を早めに検出して回避したい、という考え方。
- 全体の生産性が向上する。
CI/CD … CD (継続的デリバリー)とは
開発のステップだけでなく、実際にユーザまで届けるリリース作業も自動化システムに組込むことで、リリースの速度を高めること。
CI/CDの実現をサポートするGCPならではの機能
- GCPには、CI/CDの自動化を実現するためのプロダクトが多数用意されている。
- 既存環境で使い慣れたツールも、Cloud Launchaerですぐに使い始めることができる。
- これにより、開発者はアプリケーションの開発に集中できる。
B リリース対象の分割(マイクロサービス化)
- マイクロサービスとは…モノリシックサービスの対義語。
- モノリス…ひとつで完結する巨大なもの、のこと。
- アプリケーションが肥大化していくと、モノリシックサービスでは追い付かなくなる。→必然的にマイクロサービス化を検討することになる。
- マイクロサービスは、各々が単体で完結する、機能単位の小さなサービスの集合体。
マイクロサービスの4つのポイント
- (異なる)最適化技術を採用可能である
サービスの特性に応じて、最適な手法を選択できる柔軟性。 - 同時並行性 & 分割
一箇所に問題が発生しても、全体に波及しない。 - 集中した小さなチーム
自分達の把握しているサービスだけに集中できる。 - 再利用 & 置き換えの容易さ
たとえば「課金機能」等、汎用性のある機能を個別に分割しておけば、他のプロダクトでも再利用ができる。
また、機能単位で差し替えることも可能になる。
全てマイクロサービスとして開発しない理由とは?
- 小規模なシステムにおいては、マイクロサービス化するメリットよりも、マイクロサービスとして設計するコストのほうが高く、かえって高コストになりかねない。
- ここまで紹介したメリットを押さえつつ、必要な部分からマイクロサービス化していくことをおすすめします。
マイクロサービス化の実践
Google Kubernetes Engine(GKE)によるコンテナ管理とマイクロサービスの相性は抜群です。是非お試しください。
2. 計測の最適化
ユーザーからのフィードバックの、何を計測するのか。
何を計測することができれば、嬉しいのか?
計測のアプローチ
- 新旧アイデアの比較をしたい。
異なるアイデアの比較…A/Bテスト - 一括リリースでなく、部分的な公開ができるといい。
一部のユーザーだけに公開…カナリアテスト
これらを個人で実現しようとすると大変。
→クラウドを前提とした開発に移行することで、ハードルが大幅に下がる。
GCPならどう簡単にできるのか?
- A/Bテスト、カナリアテストの仕組みを最初から用意しています。
- GAE(Google App Engine)では、リリースバージョンの切り替えもワンタッチで実現。切り戻しも簡単です。
さらに、過去のバージョンを保有しておくことについては課金対象外。気にせず使えます。
これだけたくさんの選択肢があるが、使いこなせるか不安…
→是非イベント会場にお越しください。直接ご説明いたします。
3. 学習の最適化
- 「学習」は4つのステップに分かれる
- 4つのステップで発生する2つのコスト
- 学習コスト
- 待ち時間の発生
これまでの課題
- 分析についての様々なニーズ(ツール・分析手法等)の不充足
- 準備の作業工数の肥大化、属人性
- 分析処理自体の所要時間
解決策
- 使い慣れたツールとの連携を提供
- 準備の自動化により、属人性を排除
- BigQueryの圧倒的な処理速度が分析所要時間を解決
まとめ
ビジネスに直結させるアプリケーション開発を実現するための最適化ポイントは、
大量の機能・製品を高速に作ること
というよりも、
構築・計測・学習のフィードバックループを短くすることで、本当に必要なものだけを、的確に作ること
この点を念頭に置いて、クラウドならではの開発最適化機能を使っていく必要があるでしょう。
最後にひとこと
いかがでしたでしょうか。
以上が「Cloud OnAir 第10回 ~アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。~」の速報でした。
次回の放送は、「クラウド移行した企業様事例紹介」です!
Google Cloud Platform がどのような企業で、どんな使われ方をしているのか、楽しみですね。
なお、「 Cloud OnAir 第6回 ~ Google Cloud の事例紹介 ~ 」では株式会社メルカリさん、株式会社ソウゾウさんの事例が紹介されていました。
第6回の放送を見ていないという方は、ぜひもこちらもチェックしてください!
録画された内容は、YouTube でも視聴できますが、リアルタイムのQ&Aのある生放送をご希望の方は Cloud OnAir 公式ページ からお申し込みください!
参考リンク
YouTube視聴
Cloud OnAirの放送は、今回分含め、バックナンバーも全てYouTubeで視聴できます。
スライドと合わせて進行する解説を、是非ご覧ください!
YouTube URL:https://www.youtube.com/watch?time_continue=2&v=HjFpq608LxU
SlideShare
今回の動画で説明に使用されたスライドについても、SlideShareでいつでも閲覧可能です。
登場した用語について振り返りたい、用語同士の関係性を確認したい等、大変参考になります!
スライドURL:https://www.slideshare.net/GoogleCloudPlatformJP/cloud-onair-201838
それでは、次回も3/22(木) 18:00にお会いしましょう。
この記事を共有する