コース概要
モジュール1:マイクロサービスの設計
• 適切なマイクロサービスの境界
• ドメイン駆動設計(DDD)の使用法
• ビジネスドメインの境界への代替案(揮発性、データ、テクノロジー、組織構造による変動)
• モノリスの分離
• 早期デコンポジションのリスク
• レイヤごとのデコンポジション
• デコンポジションパターン(ストレンジラー、並行実行、フィーチャートグル)の使用法
• データ分解に関する懸念事項(パフォーマンス、整合性、トランザクション)
モジュール2:Dockerとランタイムの最適化
• 適切なベースイメージの選択
• レイヤー数の最小化
• マルチステージビルドの使用法
• イメージの最適化(複数行の引数などのソートなど)
• ビルドキャッシュの活用
• イメージバージョンの固定
• リソース割り当ての詳細なチューニング
• 安全なコンテナ運用プラクティス
• パフォーマンスのためのランタイム設定
モジュール3:Kubernetesとリリース戦略
Kubernetesデプロイメントの概要
• 初期デプロイメントの作成と実行
• Kubernetesデプロイメントオプション
ローリングアップデートデプロイメントの実行
• ローリングアップデートの理解
• ローリングアップデートの作成と実行
• デプロイメントのロールバック
カナリアデプロイメントの実行
• カナリアデプロイメントの理解
• カナリアデプロイメントの作成と実行
ブルーグリーンデプロイメントの実行
• ブルーグリーンデプロイメントの理解
• ブルーグリーンデプロイメントの作成と実行
ジョブとCronJobの実行
• ジョブとCronJobの作成
モニタリングおよびトラブルシューティングタスクの実行
• kubectlを用いたトラブルシューティング技法
モジュール4:自動化と運用効率化
Pythonを用いてKubernetesの一般的なタスクを自動化する
• Pythonを用いてKubernetesでの管理操作を実行する
• Pythonを用いて構成オブジェクトを定義する
• Pythonを用いてデプロイメントオブジェクトを作成する
• Pythonを用いてKubernetesイベントを監視する
• Pythonを用いてデプロイメントをスケーリングする
デプロイメント自動化の課題の理解
• Kubernetesによる宣言的構成
• 構成整合性の管理
GitOpsアプローチを用いたデプロイメント自動化
• GitOpsの原則
• Fluxの紹介
• KubernetesクラスターへのFluxインストール
自動デプロイメントのためのFlux設定
• 通知の使用法
• ソースリポジトリの構造
イメージ自動化によるアプリケーションアップデートの処理
• Fluxを用いてアプリケーションデプロイメントを更新する
• コンテナイメージリポジトリのタグをスキャンする
• 最新イメージ選択のポリシー定義
• 自動イメージ更新を実行するためのFlux設定
モジュール5:観測可能性と根本原因の明確化
Kubernetesのロギングおよびトレーシング機能
• ロギングとトレーシングが重要な理由
• Kubernetesログへのアクセス
• ポッドとコンテナのログ
• コントロールプレーンのログ
• ノードとポッドのリソース使用量
ログの収集と分析
• ログ集約
• ログ可視化
Kubernetesにおける分散トレーシング
• 分散トレーシングとは何か
• OpenTelemetryの使用法
• 分散トレーシングツール
• アプリケーションのインストゥルメンテーション
• トレーシングを用いたパフォーマンス問題の発見
PrometheusとGrafanaによるモニタリング
• 観測可能性の概念
• モニタリングツール
• Prometheusインストゥルメンテーションの使用法
ロギングの高度なユースケース
• ログ処理
• ログのフィルタリングとエンリッチメント
• イベントソーシング
モジュール6:クラスター危機シュミレーションとインシデント対応
• クラスター環境におけるさまざまな障害タイプの理解
• ノード障害のシュミレーション
• ポッド eviction & リソース枯渇シナリオ
• ネットワーク問題
• アプリケーションタイムアウト処理のためのDNS障害シュミレーション
• APIサーバー outage のシュミレーション
• システム安定性に向けた高トラフィックのシュミレーション
• ストレージ障害
• 構成エラー
• インシデント報告手順の理解
モジュール7:トラブルシューティング支援のためのAI
• Kubernetesにおける生成AIの利点
• K8sGPT CLIのアーキテクチャ
• K8sGPT CLIのインストール
• K8sGPTのコマンドと使用法
• K8sGTCアナライザー(podAnalyzer、pvcAnalyzer、rsAnalyzerなど)の使用法
• K8sGPTを用いたクラスターの分析
• K8sGPTを用いたリアルタイム問題の分析
• クラスター内オペレーター for K8sGPT
要求
- Linuxコマンドラインの基礎知識
- アプリケーション開発またはシステム管理の実務経験
- コンテナ(Dockerの概念)への親しみ
- Kubernetesの概念(ポッド、デプロイメント、サービスなど)に対する基本的な理解
- ソフトウェアアーキテクチャ(例:API、サービス)に関する一般的な理解
対象者:
- DevOpsエンジニア
- サイト信頼性エンジニア(SRE)
- マイクロサービスと連携するバックエンド/ソフトウェア開発者
- クラウドエンジニアおよびプラットフォームエンジニア
-
Kubernetes環境に移行しようとしているシステム管理者
お客様の声 (2)
クレイグはトレーニングに非常に積極的に関わり、常に私たちが注意を払っているか確認し、例を日常の活動に合わせて調整しました。また、プレゼンテーションに含まれていない情報であっても、質問された際には常に回答を提供してくれました。
Ecaterina Ioana Nicoale - BOOKING HOLDINGS ROMANIA SRL
コース - DevOps Foundation®
機械翻訳
講師の高いコミットメントと知識
Jacek - Softsystem
コース - DevOps Engineering Foundation (DOEF)®
機械翻訳