初心者向け DevOps とプラットフォームエンジニアリング
ゼロから始めましょう。コンテナ、Kubernetes、CI/CD、GitOps を使って、現代のチームがどのようにソフトウェアを構築・リリース・運用しているのかを、ハンズオンガイドで一つずつ学べます。
このパスの対象者
「コンテナ」「Kubernetes」「パイプライン」といった言葉は聞いたことがあるものの、それらを組み合わせて使ったことがない開発者、システム管理者、キャリアチェンジを目指す方に向けたパスです。本番環境での経験は必要ありません。必要なのは好奇心とターミナルだけです。
学べること
- アプリケーションをパッケージ化し、どのマシンでも同じように動かす方法
- Kubernetes の役割と、最初のワークロードのデプロイ方法
- コミットから稼働中の環境まで、変更がどのように届くのか
- GitOps の基本と、多くのチームが採用している理由
- 環境を恐れずに破棄して再作成する方法
このパスの使い方
右側のガイドは技術ごとにまとめられ、初めて学ぶ順序に並んでいます。あちこち飛ばずに、一つの技術ずつ進めてください。各ガイドはハンズオン形式です。読むだけでなく、使い捨てのクラスターを立ち上げて、手を動かしながら進めましょう。
始める前に
- コマンドラインの基本操作(cd、ls、ファイルの編集)に慣れていること
- 練習用の使い捨てクラスターを使うための、無料の Rackmint アカウント
- Web アプリケーションとは何かについての基本的な理解
次のステップ
ここまでが自然にできるようになったら、中級パスに進みましょう。さまざまな要素をつなぎ、繰り返し実行できる自動化されたワークフローを構築します。
What's in this path
Argo CD
5 guides-
Argo CD で Web アプリケーションをデプロイする Argo CD で Git から本番環境まで。 -
Push と Pull:Argo CD が Kubernetes にデリバリーする仕組み Git 主導の pull 型デリバリーが、デプロイ、セキュリティ、復旧の方法をどう変えるか。 -
Argo CD をインストールしてサインインする 任意の Kubernetes クラスターに Argo CD をインストールし、Web UI にアクセスします。 -
宣言的マニフェストで最初のアプリケーションをデプロイする Application リソースを使って Argo CD を Git リポジトリに向け、同期の様子を確認します。 -
Argo CD CLI でアプリケーションを管理する ターミナルからログイン、作成、確認、差分表示、同期、ロールバックを行います。
Flux CD
5 guides-
Push と Pull:Flux が Kubernetes にデリバリーする仕組み Git 主導の pull 型デリバリーが、デプロイ、セキュリティ、復旧の方法をどう変えるか。 -
Flux をインストールしてクラスターを bootstrap する Flux CLI をインストールし、事前チェックを実行し、Flux が Git から自分自身を管理するように bootstrap します。 -
GitRepository と Kustomization で最初のアプリケーションをデプロイする Kustomization リソースを使って Flux を Git のマニフェストに向け、同期の様子を確認します。 -
Flux CLI で Flux を管理する ターミナルから、Flux リソースの確認、調査、調整、差分表示、追跡、一時停止、トラブルシューティングを行います。 -
Flux CD と Argo CD:GitOps ツールの選び方 アーキテクチャ、UI、Helm、シークレット、テナンシー、イメージの自動化を比較して、適切なツールを選びます。
Kubernetes
6 guides-
Kubernetes とは何か、そしてそれが解決する問題 コンテナだけではスケールしなくなる理由と、Kubernetes がマシンの集まりを 1 つのプラットフォームに変える方法。 -
Kubernetes クラスターの仕組み:コントロールプレーンとノード クラスターを動かすコンポーネントと、kubectl apply から実行中のコンテナまでの間に何が起きるか。 -
ローカルクラスターをセットアップして kubectl を使い始める minikube で単一ノードのクラスターを動かし、kubectl で接続し、毎日使うコマンドを学びます。 -
最初の Kubernetes マニフェストを書く YAML の基本、すべてのオブジェクトに共通する 4 つのフィールド、Pod での作成、確認、削除のサイクル。 -
Deployment:スケーリング、自己修復、ローリングアップデート Pod のレプリカを実行し、ダウンタイムなしで更新し、リリースがうまくいかなかったときにロールバックします。 -
失敗する Pod をデバッグする:describe、logs、exec、port-forward Pod が Pending のまま、クラッシュする、応答しない原因を突き止めるための、繰り返し使えるチェックリスト。
containerd
2 guidesGrafana
4 guides-
Grafana をコードとして運用する:全体像 ファイルに置けるもの、API が必要なもの、そしてそれらがどう組み合わさるか。 -
Docker Compose とプロビジョニングフォルダーで Grafana を実行する すべての設定をファイルとしてマウントして、compose ファイルから Grafana を起動します。 -
grafana.ini と環境変数で Grafana サーバーを設定する 設定ファイルの場所、上書きの順序、設定を Git に保つ方法を理解します。 -
YAML からデータソースをプロビジョニングする UI の代わりにファイルで、データソース、認証情報、カスタムヘッダーを定義します。
Helm
4 guides-
Helm チャートの構造:チャート、values、テンプレート、リリース すべてのチャートに共通するフォルダー構造と、Helm を単なる YAML のバンドラー以上のものにする 3 つの概念。 -
既存のマニフェストから最初の Helm チャートを作成する Deployment、Service、ConfigMap をテンプレート化したチャートに変換し、インストールしてアップグレードします。 -
リリースを管理する:インストール、アップグレード、ロールバック、アンインストール リリースのライフサイクル全体をカバーするコマンドと、リビジョン履歴がどのようにロールバックを可能にするか。 -
Artifact Hub から公開チャートを見つけてインストールする 他の人がすでに書いたチャートを探し、インストール前に内容を確認し、必要なものだけを上書きします。
OpenTelemetry
5 guides-
OpenTelemetry を解説する:SDK、OTLP、Collector YAML を 1 行も書く前に、構成要素と、設定が存在する 3 つの場所を理解します。 -
Docker Compose で OpenTelemetry Collector を実行する マウントした設定ファイルから Collector を起動し、テストデータを送り、debug exporter で確認します。 -
Collector の設定モデル:コンポーネント、パイプライン、プロバイダー Collector の YAML のルールを学びます。命名、パイプライン、connector、ファイルのマージ、環境変数。 -
OTEL_* 環境変数で SDK を設定する 標準の変数を使って、任意の言語のサービス名、exporter、サンプリング、制限を設定します。 -
コードを変更せずにアプリを計装する:Java、Python、Node.js 環境変数とコマンドラインのフラグだけで、OpenTelemetry のエージェントをアタッチします。
Prometheus
4 guides-
Prometheus のアーキテクチャと pull モデル Prometheus が受信ではなくスクレイプする理由と、ターゲット、exporter、サービスディスカバリーがどう組み合わさるか。 -
Prometheus のデータモデル:メトリクス、ラベル、メトリクスの種類 Prometheus における時系列とは実際に何か、そしてターゲットがそれを公開するプレーンテキスト形式。 -
node_exporter と cAdvisor でホストとコンテナを監視する Prometheus、node_exporter、cAdvisor を一緒に実行し、両方をスクレイプして、ターゲットが正常であることを確認します。 -
Grafana でメトリクスを可視化する:データソース、パネル、コミュニティのダッシュボード Grafana を Prometheus に接続し、1 つのパネルをゼロから作り、すべてを手作業で作る代わりに、既製のコミュニティダッシュボードをインポートします。