Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なぜアプリケーションのモダナイゼーションをしないといけないのか

D58fe5089757d3f2f7a32439fe3f19d0?s=47 kumakumakkk
September 12, 2020

 なぜアプリケーションのモダナイゼーションをしないといけないのか

D58fe5089757d3f2f7a32439fe3f19d0?s=128

kumakumakkk

September 12, 2020
Tweet

Transcript

  1. Cloud Onr Cloud OnAir Cloud OnAir なぜアプリケーションのモダナイゼーショ ンをしないといけないのか

  2. Cloud OnAir Cloud OnAir アプリケーションの モダナイゼーションとは

  3. Cloud OnAir ウェブ サービスの開発サイクル g.co/cloud

  4. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem ユーザ フロント データベース キャッシュ ビジネスロジック
  5. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem LB ユーザ カスタマ向け フロントロジック クライアント向け フロントロジック 管理者(社内)向け フロントロジック カスタマ向け ビジネスロジック クライアント向け ビジネスロジック 管理者(社内)向け ビジネスロジック  各種トランスコード 各種メッセージ送信 データベース キャッシュ ETL 各種モニタリング DWH
  6. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem
  7. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem
  8. None
  9. Cloud OnAir - 生産的ではない、繰り返し行わないといけないタスクの増加 - デプロイ頻度の低下 - コンプライアンス、監査、セキュリティ - 様々な状況や環境にロックインされてしまう

    大規模アプリケーションでよくあるチャレンジ
  10. Cloud OnAir Cloud OnAir 規模に合わせたモダナイゼーション

  11. Cloud OnAir - ポータビリティ性の向上 - 自動化 - 多様性を享受して、生産性を向上する イノベーションを加速するためにはどうするか?

  12. パフォーマンス 再現性 分離性 可搬性(ポータビリティ) ...など! アプリケーションを管理が従来のアプリケーションとは根本的に異なります。 なぜコンテナか?

  13. 44% container with known vulnerabilities Source: The state of open

    source security report 2019 by snyt
  14. Buildpacks create containers without a dockerfile. Source code OCI Container

  15. Containers without Dockerfiles 1. Security audited 2. Build your code

    the Google Way 3. Container novices can deploy to container platforms 4. Quick & Easy Builds (e.g. trying out some new code) 5. Migrating from App Engine or Cloud Functions 6. Integrated with Google Cloud products
  16. Cloud Runとは? デプロイアプリケーション : HTTP の $PORT でリッスンするコードを持つ コンテナイメージ SSL

    ターミネーション 実行中のコンテナへの HTTP リクエスト 自由に設定可能な 1 から最大 80 の同時リクエスト数 ゼロから数千のインスタンスの自動スケーリング 100 ミリ秒単位での使用した CPU、メモリの従量課金制
  17. Cloud Run Developer friendly • YAML からデプロイ • Cloud Code

    • Cloud buildpacks • ソースコンテキスト • 継続的デリバリー • Events for Cloud Run • Cloud Workflows More flexibility • 4 GB RAM • 4 vCPUs • 1 時間のリクエスト タイムアウト • 最小インスタンス • SIGTERM • gRPC サポート • サーバーサイド ストリーミング Enterprise ready • GA • 12 のリージョン • VPC アクセス • Gradual rollouts • Cloud Artifact Registry • Multi-region • Cloud CDN • Identity Aware Proxy • Cloud Armor
  18. GCP Project VPC アクセス Cloud Memorystore Redis と Memcached に接続

    プライベート IP に接続 Shared VPC のサポート Cloud Run Serverless VPC Connector Cloud Memorystore VM Compute Engine Virtual Private Cloud Private IP Private IP
  19. Multi-region load balancing 外部 HTTP(S) ロード・バランシング経由 リクエストを最も近いサービスにルーティング するグローバル エンドポイント を公開

    地域的なサービス停止障害に強い GCP Project Cloud Load Balancing Cloud Run europe-west1 Cloud Run us-central1 Cloud Run asia-no heast1 San Francisco Paris https://example.com https://example.com
  20. Events for Cloud Run 他の GCP リソースから Cloud Run サー

    ビスをトリガー 多くのリソースタイプで起動 (Cloud Audit Logging を活用) CNCF オープンスタンダードで提供: 詳細は DEV309 セッションで (coming soon)
  21. 最小 インスタンス 一部のインスタンスをアイドル状態にする コードスタートを回避する アイドル状態でインスタンスの料金を抑え る コンテナ インスタンス min =

    2 0 (coming soon)
  22. どこでアプリケーションを 実行するとよいでしょうか?

  23. Kubernetes Engine Compute Engine Cloud Run App Engine Cloud Functions

    Firebase
  24. { コンテナ コード { コンテナ アプリケーション 既存システム イベント/ウェブ + コンテナ

    ウェブ アプリケーション Kubernetes Engine Compute Engine Cloud Run App Engine Cloud Functions イベント駆動 Firebase ウェブ アプリケーションと モバイルバックエンド
  25. Kubernetes Engine Compute Engine Cloud Run App Engine Cloud Functions

    抽象化 アプリケーション どんなプログラム?接続方法は?ステートは? 使用中のソフトウェア、オペレーティングシステム CPU、メモリ、ディスク ネットワーク: ファイアウォールルール、 VPN、 ロードバランサ コンテナ・ランタイムコントラクト あらゆるプログラム言語、 HTTP リクエスト コード HTTPリクエスト イベント 関数定義
  26. Kubernetes Engine Compute Engine Cloud Run App Engine Cloud Functions

    必要条件 GPU、TPU、ハイブリッド、 特定の OS が必要 HTTP/S 以外のネットワークプロトコル GPU、TPU、特定のカーネルが必要、 Windows、ライ センスの必要条件、現行システムの移行 様々なプログラム言語の選択 コンテナで実行 アプリ: URL ルーティング、コードシェア、 トラフィック分割
  27. Kubernetes Engine Compute Engine Cloud Run App Engine Cloud Functions

    課金モデル リソース設定に応じた課金 リソース設定に応じた課金 使用量 / リソース 使用量に応じた課金 使用量に応じた課金
  28. Kubernetes Engine Compute Engine Cloud Run App Engine Cloud Functions

    チーム チームのインテグレーション: 開発、運用、セキュリティが連携 アーキテクチャの改善に対して前向き 様々なチーム構成やツール選択に適応可能 開発フォーカス ビルドツールとデプロイメントの決定権を持つチーム 開発フォーカス 開発フォーカス
  29. Buildpacks on Google Cloud • Google Cloud maintains a set

    of open source buildpacks for building containers to run on GKE, Anthos, & Cloud Run • Cloud Build native support for buildpacks • Cloud Run direct source deployments w/ buildpacks • Cloud Shell has pack pre-installed. • App Engine builds via buildpacks • Cloud Functions builds via buildpacks • Cloud Code deploy to Cloud Run with Buildpacks • Skaffold native support for buildpacks
  30. プロジェクトステージ 新規プロジェクト 現行システム / システム移行 Kubernetes Engine Compute Engine Cloud

    Run App Engine Cloud Functions
  31. ネットワーク アプリ B アプリ A

  32. ネットワーク アプリ B アプリ A A P I A P

    I
  33. ネットワーク B ネットワーク A アプリ B アプリ A A P

    I A P I ゼロ トラストネットワーク
  34. アプリ B アプリ A A P I A P I

    ID ID
  35. アプリ B アプリ A A P I A P I

    ID ID セキュリ ティ セキュリ ティ
  36. アプリ B アプリ A A P I A P I

    ID ID セキュリ ティ セキュリ ティ 認証 認可
  37. アプリ B アプリ A A P I A P I

    ID ID セキュリ ティ セキュリ ティ 認証 認可 ネットワークレジリエンシー ネットワークレジリエンシー
  38. アプリ B アプリ A A P I A P I

    ID ID セキュリ ティ セキュリ ティ 認証 認可 ネットワークレジリエンシー ネットワークレジリエンシー レイテンシー 障害耐性 サーキットブレーキング
  39. アプリ B アプリ A A P I A P I

    ID ID セキュリ ティ セキュリ ティ 認証 認可 ネットワークレジリエンシー ネットワークレジリエンシー レイテンシー 障害耐性 サーキットブレーキング ポリシー制御 ポリシー制御
  40. アプリ B アプリ A A P I A P I

    ID ID セキュリ ティ セキュリ ティ 認証 認可 ネットワークレジリエンシー ネットワークレジリエンシー レイテンシー 障害耐性 サーキットブレーキング ポリシー制御 ポリシー制御 利用上限 レートリミット
  41. アプリ B アプリ A A P I A P I

    ID ID セキュリ ティ セキュリ ティ 認証 認可 ネットワークレジリエンシー ネットワークレジリエンシー レイテンシー 障害耐性 サーキットブレーキング ポリシー制御 ポリシー制御 利用上限 レートリミット 可観測性 可観測性
  42. アプリ B アプリ A A P I A P I

    ID ID セキュリ ティ セキュリ ティ 認証 認可 ネットワークレジリエンシー ネットワークレジリエンシー レイテンシー 障害耐性 サーキットブレーキング ポリシー制御 ポリシー制御 利用上限 レートリミット 可観測性 可観測性 ロギング メトリクス 分散トレーシング トポロジー
  43. 業務ロジック ではない・・! 業務ロジック B 業務ロジック A A P I A

    P I ID ID セキュリ ティ セキュリ ティ 認証 認可 ネットワークレジリエンシー ネットワークレジリエンシー レイテンシー 障害耐性 サーキットブレーキング ポリシー制御 ポリシー制御 利用上限 レートリミット 可観測性 可観測性 ロギング メトリクス 分散トレーシング トポロジー
  44. ネットワーク関連機能 業務ロジック B A P I ID セキュリ ティ 認証

    認可 ネットワークレジリエンシー レイテンシー 障害耐性 サーキットブレーキング ポリシー制御 利用上限 レートリミット 業務ロジック A A P I ID セキュリ ティ ネットワークレジリエンシー ポリシー制御 可観測性 可観測性 ロギング メトリクス 分散トレーシング トポロジー
  45. サービスメッシュ アプリケーション から ネットワーク関連機能 を分離

  46. 業務ロジック A P I ID セキュリ ティ ネットワークレジリエンシー ポリシー制御 可観測性

  47. 業務ロジック 業務ロジック A P I ID セキュリ ティ ネットワークレジリエンシー ポリシー制御

    可観測性 A P I ID セキュリ ティ ネットワークレジリエンシー ポリシー制御 可観測性
  48. コンテナ B   コンテナ A 業務ロジック 業務ロジック A P I

    ID セキュリ ティ ネットワークレジリエンシー ポリシー制御 可観測性 A P I ID セキュリ ティ ネットワークレジリエンシー ポリシー制御 可観測性
  49. Pod   envoy(サイドカーコンテナ) コンテナ 業務ロジック 業務ロジック A P I ID

    セキュリ ティ ネットワークレジリエンシー ポリシー制御 可観測性 A P I ID セキュリ ティ ネットワークレジリエンシー ポリシー制御 可観測性
  50. Pod   Envoy(サイドカーコンテナ) コンテナ 業務ロジック A P I ID セキュリ

    ティ ネットワークレジリエンシー ポリシー制御 可観測性 プラットフォーム / SRE チーム 開発チーム • 業務ロジックに集中 • とても軽量 • 可搬性が高い • 自動化 • スケーラビリティ • 高いセキュリティ • 制御が効く
  51. Cloud OnAir Cloud OnAir アプリケーションの モダナイゼーション まとめ

  52.    抽象化レベル 技術要件 チーム & 組織

  53. 複数サービスの組み合わせ

  54. Cloud Datastore Cloud SQL Cloud Spanner Cloud Bigtable BigQuery Translation

    API Natural Language API Speech API Vision API App Engine Compute Engine Kubernetes Engine Cloud Functions Cloud Run Cloud Storage Cloud Pub/Sub Cloud Tasks Cloud Scheduler
  55. Cloud OnAir

  56. Cloud OnAir - ポータビリティ性が向上 - 自動化 - 多様性を享受して、生産性が向上 イノベーションを加速する

  57. Cloud OnAir - APP210-JP Istio / ASM でグローバルにスケールするサービスを構築し よう -

    SVR105-JP 最適なコンピューティングの選択 - SVR224-JP Cloud Run の新機能 - SVR227 Buildpacks on Google Cloud 今日のピックアップセッション
  58. Cloud OnAir - APP236 - An App Modernization Story with

    Cloud Run - APP234 - Secrets in Serverless - 2.0 - OPS100 - Designing for Observability on Google Cloud - OPS101 - Managing Enterprise-scale Distributed Business & Operations on Google Cloud その他おすすめセッション
  59. Cloud OnAir Google Cloud Next ‘20: OnAir Google Cloud Next

    ’20: OnAir の セッションへのご登録はこちらから https://cloud.withgoogle.com/next/sf/japan