Kubernetes と推し進める、モダンなソフトウェア開発ライフサイクル
from Google Cloud Anthos Day
Kubernetes と推し進める、モダンなソフトウェア開発ライフサイクル
なぜモダナイズするのか
Time to market (アイデアをユーザに提供するまで)のリリースする時間をどれだけ短かくできるか
どうやってモダナイズするのか
高速なリリースサイクル
拡張性の容易さ
高可用性
コンテナ化だけではアジリティ/フレキシビリティは大きく変わらない
適した開発プロセス
開発だけでなく承認プロセスなど全てを計測し、ボトルネックから改善
どれだけスループットを上げるか
リリースサイクルの自動化
CI/CD
暗黙知から形式知へ
リリースのライフサイクルに合わせて最適化していく
承認プロセスとか
組織とアーキテクチャのデカップリング
組織の分割
アーキテクチャの分割
strangler pattern
Anti-corruption layers Pattern
mizukmb.iconマイクロサービス的な
継続した運用の改善
可用性100%は目指すべきではない (エラーバジェット)
開発ライフサイクル
設計
GKE
マスタ管理はGoogleが行う
ノードの自動アップグレード、スケール、修復
kubernetesとGCPの機能を最大限に利用した構成
Cloud Run
kubernetesを使う必要のない状況
コンテナをデプロイするだけで起動する
サーバレス
開発
ローカルの実行の話
開発環境の差異をなくす
OS, ランタイムをパッケージング
エミュレータの利用でマネージドサービスの挙動を再現する
mizukmb.iconGCP限らずフルマネージドサービスはあるよなあ
ビルド、テスト
Cloud Buildでテスト、ビルド→Cloud Registryに登録までフルマネージドでできる
デプロイ
GitOpsで
モニタリング
Stackdriver Loggingで標準出力/エラーを送信
SLOを考慮した運用
GCPにはSLOモニタリングがある
mizukmb.iconこれすごいな。SREを提唱したGoogleならではの機能という感じがする