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

Kubernetes がない世界の CloudNative ジャーニー

athagi
March 12, 2021
330

Kubernetes がない世界の CloudNative ジャーニー

20210312 に行われた CloudNative Days Spring 2021 ONLINE のスライドです

athagi

March 12, 2021
Tweet

Transcript

  1. クラウドネイティブへのアプローチ
 • 0からクラウドネイティブに作り直す:夢のある方針
 ◦ 新規に作り始めるならこっち
 ◦ 既存システムがある場合はビックバンリライトになる
 ▪ 保証されるのはビッグバンだけ(Martin Fowler)


    • リフト&シフトして徐々に最適化する:現実的な方針
 ◦ 長期的な観点で計画を立てる必要がある
 ◦ クラウドリフト後に最適化するためにリファクタリングしないと単 なるリホストになってしまう

  2. クラウドネイティブとは
 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミック な環境において、 スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。このアプ ローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言 型APIがあります。 
 
 これらの手法により、 回復性、管理力、および可観測性のある疎結合システム

    が実現します。 これらを 堅牢な自動 化と組み合わせることで、エンジニアは インパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うこと がで きます。
 
 Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシステムを育成・維持し て、このパラダイムの採用を促進したいと考えてます。 私たちは最先端のパターンを民主化し、これらのイノベーショ ンを誰もが利用できるようにします。 
 CNCF Cloud Native Definition v1.0 : https://github.com/cncf/toc/blob/main/DEFINITION.md 

  3. 特徴
 
 • コンテナの恩恵
 ◦ どの環境でも同じように動く
 • K8s の恩恵
 ◦

    宣言的な構成管理
 ◦ 開発と運用の関心ごとを分離
 ◦ 自動化されたロールアウト/ロールバック
 ◦ 自己修復
 • 組織としてK8s をキャッチアップしていく必要性

  4. K8s のある世界とない世界の差分
 • K8s がある世界
 ◦ 宣言的
 ◦ コンテナイメージという単一の成果物
 ◦

    インフラ・K8s・アプリを管理
 • K8s がない世界
 ◦ 命令的
 ◦ Artifact と Golden Image の組み合わせ
 ◦ インフラ・OS・アプリを管理

  5. K8s がない世界の落とし穴
 • 一つのチームで開発のサイクルが回せない
 ◦ 組織間のオーバーヘッドが発生し、素早くサイクルを回せない
 • クラウドシフトして局所的な自動化で満足してしまうため、組織の境界が 変わる力学が働かない
 •

    アドホックな自動化による業務の硬直化
 • K8s やコンテナが解決している問題を自分たちで実装する必要あり
 • チーム間の技術スタックが異なり、組織内で共有可能なナレッジが蓄積さ れない可能性

  6. 対応策
 • Stream-aligned team
 ◦ ユーザに価値を届けることが可能な チーム
 • Enabling team


    ◦ Stream-aligned team をサポートして出 来るようにする
 • Platform team
 ◦ セルフサービスなプラットフォームを Stream-aligned team に提供
 Team Topologies: Organizing Business and Technology Teams for Fast Flow 

  7. クラウドネイティブの時代
 Stream-aligned team
 • プロダクト開発
 • ビルド・デリバリー・デプロイ
 • テスト環境の管理
 •

    本番環境の運用
 
 Enabling team(SRE)
 • プロダクトチームの補助
 ▪ 運用やCICDのプラクティスの提供
 
 Platform team
 • セルフサービスのプラットフォーム
 対応策
 古き良き時代
 Dev
 • プロダクト開発
 • ビルド・デリバリー
 
 Ops
 • テスト環境の管理
 • 本番環境へのデプロイ
 • 運用
 • 監視

  8. でも、そもそも......
 • K8s の学習コストを払わない代わりに、自分たちで作りこまなくてはなら ない
 ◦ 仕組みに乗ることで落とし穴を避けられる
 ▪ Kubernetes
 ▪

    マネージドサービス
 • 変化に対応できる組織になる必要がある
 ◦ 組織レベルで古き良き時代から変わる必要がある
 • (クラウドリフトも大変だけど)クラウドジャーニーに終わりはないという
 マインドが必要