[cloud onair]...

29
Cloud Onr Cloud OnAir Cloud OnAir アプリケーションにフォーカス! ビジネスに直結する開発の極意を ご紹介します。 2018 3 8 放送

Upload: google-cloud-platform-japan

Post on 16-Mar-2018

1.470 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud Onr

Cloud OnAir

Cloud OnAir

アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。2018 年 3 月 8 日 放送

Page 2: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Agenda

Cloud OnAir

1

3

2

“ビジネスに直結する開発” とは?

構築 / 計測 / 学習 を最適化

本日のまとめ

2

Page 3: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

Cloud OnAir

“ビジネスに直結する開発” とは?

Page 4: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

● IT を使ったビジネス変革

○ 開発の最適化

■ ものづくりのサイクルを短くする

■ 沢山の物を作る

○ 運用の最適化

■ 人的リソース

■ コンピューティングリソース

ビジネスインパクト

本日のテーマ

2018 年 2 月 8 日放送 のテーマ

Page 5: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

“ビジネスに直結する開発” とは?

● 開発の最適化

○ ものづくりのサイクルを短くする

○ 沢山の物を作る

= ビジネスに直結する開発?

Page 6: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

“ビジネスに直結する開発” とは?

ユーザのニーズも多様化しているし、どのアイディアがヒットするだろうか?

ヒットするかどうかわからないものに、大きな投資は難しい

いかにフィードバックから学べるか!

現場の声

Page 7: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

● IT を使ったビジネス変革

○ 開発の最適化

■ ものづくりのサイクルを短くする

■ 沢山の物を作る

○ 運用の最適化

■ 人的リソース

■ コンピューティングリソース

“ビジネスに直結する開発” とは?

フィードバックループを短くし、ユーザのフィードバックを取り込みながら、本当に必要なものを高速に開発する

本日の“真の”テーマ

Page 8: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

構築 - 計測 - 学習のフィードバックループ

引用: リーンスタートアップ

アイディア

製品データ

構築

計測

学習

構築 ~ 計測 ~ 学習のフィードバック

ループを短くすることで、

ユーザのフィードバックを得ながら、

本当に必要なものを高速に開発できる

Page 9: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

Cloud OnAir

構築を最適化

Page 10: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

早くユーザにプロダクトを届けるためには?

構築の最適化?

(1) 作業時間を削減(効率化)する

● 設計 / 構築 / テスト / リリース を高速化する

● 工程を省く

(2) リリース対象を分割する

● マイクロサービス

Page 11: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

(1) 作業時間を削減(効率化)する

● 設計 / 構築 / テスト / リリース を高速化する

○ CI / CDを活用する

● 工程を省く

○ マネージドサービスを活用することで、以下を削減

■ ログサーバのキャパシティ管理

■ スケーリング

■ HA構成

■ ディザスターリカバリー

■ etc.

構築の最適化 〜 (1) 作業時間を削減(効率化)する 〜

Page 12: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

継続的インテグレーション( CI: Continuous Integration)一日に何度もビルドを実行し、ソフトウェアをインテグレーションした時に発生する

様々な問題を早期に検出する

→フィードバックループを短くし、ソフトウェア開発の品質と生産性を向上させる

継続的デリバリー(CD: Continuous Delivery)ソフトウェア全体のライフサイクルを通じて、常に本番環境にリリースできる状態を保つ

→リリースまでの期間を短縮することで、フィードバックループを短くできる

構築の最適化 〜 (1) 作業時間を削減(効率化)する 〜

Trunk, Releasebranch/tag

git flow

CD

CILocal env, Feature

branch/PR

deploy to test envint teststrigger build +

unit test

artifact registry

bake/package sys tests deploy to

qa/staging/prodtriggerint teststrigger build + unit test

引用: [改訂第3版]Jenkins実践入門

Page 13: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

GCP では、CI / CDにおける自動化を実現するためのプロダクトを

簡単に利用可能。

構築の最適化 〜 (1) 作業時間を削減(効率化)する 〜

Container Builder

Container Registry

Cloud Source Repositories

CloudLauncher

また、普段使っているアプリケーションをワンクリックでデプロイしたり、組み

合わせて利用することも可能。

Page 14: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

構築の最適化 〜 (1) 作業時間を削減(効率化)する 〜

GCP を利用してCI / CDを実現した一例。

開発者は、アプリケーションに

フォーカス。自動化により、ユー

ザに新しい価値を届ける

までの時間を短縮。

Page 15: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

(1) 作業時間を削減(効率化)する

● 設計 / 構築 / テスト / リリース を高速化する

● 工程を省く

(2) リリース対象を分割する

● マイクロサービス

早くユーザにプロダクトを届けるためには?

構築の最適化?

Page 16: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

構築の最適化 〜 (2) リリース対象を分割する 〜

UIAUTH

ORDERSINVENTORY

ACTION PROC& more

UI AUTH

モノリス

UI

マイクロサービス

ORDERSINVENTORY

UI

ACTION PROC ACTION PROC

or

小さなサービスを組み合わせて、一つのアプリケーションを

開発するアプローチ。

Microservices: What?

Page 17: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

構築の最適化 〜 (2) リリース対象を分割する 〜

(異なる)最適な技術を採用可能

同時並行性 & 分割

集中した小さなチーム

再利用性 & 置き換えやすさ

マイクロサービス

UI AUTH

UI

ORDERSINVENTORY

UI

ACTION PROC ACTION PROC

Microservices: Why?

※ チームの状況などを考慮し、適切な大きさのサービスに 分割することが重要です

Page 18: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

構築の最適化 〜 (2) リリース対象を分割する 〜

Microservices: How?

※コンテナおよび GKE の詳細については、2017 年 第 2 回「GCPのアプリランタイム について学ぼう」をご覧ください。

Google Kubernetes Engineコンテナ中心のインフラを実現する

Kubernetes のマネージドサービス

コンテナ技術 と マイクロサービス は相性抜群!

コンテナ=コードと依存性をひと固まりにまとめることで、

● デプロイ単位の単純化

● アプリケーションとインフラの疎結合化

● 起動が速い

Page 19: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

Cloud OnAir

計測を最適化

Page 20: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

保存 分析処理収集

● 異なるアイディアを比較したい

→ A/B テスト

● 一部のユーザのみで比較したい

→ カナリアテスト

計測の最適化?

※データ分析に関する詳細は、2017 年 第 3 回放送「No-ops で大量データ処理基盤を簡単に構築する」をご覧ください。

Page 21: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

A/B テスト

異なるバージョンをリリースし、その

結果を元にアイディアの良し悪しを判断

カナリアテスト

一部のユーザのみに先行的にリリースし、デー

タを収集したり、安全にリリース

Load balancer

Version A50%50%

Version B

Version BVersion A

Load balancer

Production Fleet (95%) Canary test (5%)

Load balancer

Production Fleet

異なるアイディアを比較 一部のユーザのみで比較

計測の最適化 〜 アプローチ 〜

Page 22: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

Google App Engine Google Compute Engine

計測の最適化 〜 GCP ならこんなに簡単! 〜

GCP では、A/B テストやカナリアテストを簡単に設定可能。

切り戻しが簡単なこともポイント!

Page 23: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

Cloud OnAir

学習を最適化

Page 24: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

学習の最適化 〜 学習における課題 〜

分析する

準備作業を依頼する

課題

● 分析する人に応じて、様々な分析のニーズが存在

(ツール、分析手法 etc.)

● 準備作業の属人性

(ツールセットアップ etc.)

● 分析時の処理待ち時間意思決定する

分析方法を学ぶ学習コスト

待ち時間

待ち時間

Page 25: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

学習の最適化 〜 ビッグデータ基盤の全体像 〜

Cloud Logs

Google App Engine

Google Analytics Premium

Cloud Pub/Sub

BigQuery (テーブル)

Cloud Bigtable(NoSQL)

Cloud Storage(ファイル)

Cloud Dataflow

BigQuery Analytics(SQL)

収集 保存 分析

バッチ

Cloud DataStore

処理

ストリーム

Cloud Monitoring

Cloud Bigtable

リアルタイム アナリティクスおよびアラート

Cloud Dataflow

Data Studio 360

ML EngineTensorflow

Page 26: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

学習の最適化 〜 ビッグデータ基盤の全体像 〜

Cloud Logs

Google App Engine

Google Analytics Premium

Cloud Pub/Sub

BigQuery (テーブル)

Cloud Bigtable(NoSQL)

Cloud Storage(ファイル)

Cloud Dataflow

BigQuery Analytics(SQL)

収集 保存 分析

バッチ

Cloud DataStore

処理

ストリーム

Cloud Monitoring

Cloud Bigtable

リアルタイム アナリティクスおよびアラート

Cloud Dataflow

Data Studio 360

ML EngineTensorflow

分析する人に応じて、様々な分析のニーズが存在(ツール、分析手法 etc.)→ ニーズに応じたツール、使い慣れたツールとの連携により  学習コストを削減。

準備作業の属人性→ マネージドサービスの活用により、属人性を排除。

分析時の処理待ち時間→ BigQuery の活用により、待ち時間を圧倒的に削減

Page 27: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

Cloud OnAir

まとめ

Page 28: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

まとめ

28

● IT をビジネスに直結させるためには、

× 大量の機能・製品を高速に作る

○ フィードバックループを短くすることで、本当に必要なものだけを作る

GCP を活用することで、構築 ~ 計測 ~ 学習の

フィードバックループを短くし、

真に価値を生み出す作業にフォーカス

Page 29: [Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送

Cloud OnAir

まとめ

29

開発を最適化するためにクラウドならではの

機能を使いましょう

開発

マネージドサービス

自動化

分析基盤