これは、DevOps エンジニアになる方法に関するステップバイステップのガイドであり、関連する学習リソースへのリンクが含まれています。
DevOps についてさらに詳しく知りたい場合は、必ずニュースレターを購読してください。
このリポジトリが役立つと思われる場合は、Patreon で私をサポートすることを検討してください。
このロードマップの目的は、景観についてのアイデアを提供することです。このロードマップは、次に何を学べばよいか迷ったときに役立つものであり、誇大広告や流行のものを選択するよう促すものではありません。場合によっては、あるツールが他のツールよりも適している理由をある程度理解する必要があります。また、誇大宣伝や流行が常にその仕事に最適であるとは限らないことを覚えておいてください。
このプロジェクトが気に入った場合、またはソリューションを学習または開始するためにこのプロジェクトを使用している場合は、スターを付けてください。ありがとう!
PDF版をダウンロードしてください。
DevOps エンジニア向けの学習リソース (ほとんどは無料)
1.GIT
2. 1 つのプログラミング言語を学ぶ
3. Linux とスクリプトを学ぶ
4. ネットワーキングとセキュリティを学ぶ
5. サーバー管理を学ぶ
6. コンテナについて学ぶ
7. コンテナオーケストレーションを学ぶ
8. インフラストラクチャをコードとして学ぶ
9. CI/CD を学ぶ
10. モニタリングと可観測性を学ぶ
11. 1 つのクラウドプロバイダーを学ぶ
12. ソフトウェアエンジニアリングの実践を学ぶ
追加のリソース
ツール
本
すべてのリソース (ファイル) は GIT リポジトリに保持されます。これらのファイルはアプリケーション コードであるだけでなく、コードとしてのインフラストラクチャでもあります。
Git はソース コード管理に使用される無料のツールです。 Git はソース コードの変更を追跡することに慣れており、複数の開発者が非線形開発で共同作業できるようになります。
最も人気のある 2 つの Git プラットフォームは、 GitLabとGitHubです。
ここでは、git clone、branch、merge などの Git コマンドと、プル リクエストを使用してプロジェクトで共同作業する方法を学習する必要があります。
リソース:
無料のPro Git ブック
Atlassian の Git を無料で学ぶ
Git ブランチングを無料で学ぶ
CodeAcademy で Git と GitHub を無料で学ぶ
Git コマンド エクスプローラー(無料)
Git イマージョン無料
無料のビジュアル Git リファレンス
エンジニアとして、自動化スクリプトの作成に使用できるプログラミング言語を少なくとも 1 つ知っておくことをお勧めします。
DevOps 用の人気のあるプログラミング言語には、 Python、Go、JavaScript などがあります。
Python はマルチパラダイム言語です。インタープリタ型言語であるため、コードは記述されるとすぐに実行され、その構文によりさまざまな方法でコードを記述できます。 Python は、読みやすさ、一貫性、使いやすさに重点を置いているため、新人プログラマーが最初に学ぶべき言語として推奨されることがよくあります。
ここでは、構文、if/else、ループ、データ構造など、プログラミング言語の基本概念を学ぶ必要があります。
リソース:
Python で退屈なことを自動化する本(無料)
Python クラッシュ コース(無料)
最新の JavaScript チュートリアル(無料)
初心者のための JavaScript クラッシュコース(無料)
Eloquent JavaScript、第 3 版、Marjin Haverbeke の無料書籍
無料の例で確認する
オペレーティング システムは、コンピュータのユーザーとそのハードウェアの間のブリッジとして機能します。その機能は、ユーザーがプログラムを便利かつ効果的に実行できる設定を提供することです。
ほとんどのサーバーはLinux OS を使用しているため、Linux とその CLI に慣れる必要があります。
簡単に始められるディストリビューションの 1 つはUbuntuです。
さらに、開発と運用のタスクを自動化するためのスクリプトについての知識も必要です。
ここでは、 Bash や Powershellなどの OS 固有の言語、または Python や Go などの独立した言語を学ぶことができます。
リソース:
オペレーティング システム - 概要無料
シェル スクリプトのチュートリアル(無料)
初心者向け Powershell チュートリアル: Powershell スクリプトを無料で学習する
Bash リファレンス マニュアル(無料)
究極ガイド:無料の Ubuntu を始める
FreeBSD ハンドブック(無料)
Linuxコマンドハンドブック無料
ネットワーク プロトコルは、同じネットワーク内の異なるデバイス間でデータを送信する方法を決定する、確立された一連のルールです。基本的に、内部プロセス、構造、設計の違いに関係なく、接続されたデバイスが相互に通信できるようになります。
ここでは、ネットワークの仕組み、ファイアウォールの設定方法、 DNS の仕組み、 OSI モデル、IP アドレス、ポートなどを理解する必要があります。
リソース:
OSI モデルの無料説明
Computer Networking: A Top-Down Approach bookビデオ コンテンツビデオ
IT プロフェッショナルのための TCP/IP およびネットワーキングの基礎Pluralsight コース
DevSecOps : CI/CD の保護をマスター | DevOpsパイプラインUdemyコース
DevOps における実践的なセキュリティ: DevSecOpsブックで継続的なセキュリティ、展開、配信を確保する
DevOps の保護: クラウドのセキュリティブック
サーバー管理には、サーバーが確実に最適なパフォーマンス レベルで動作するために必要なすべてのインフラストラクチャの監視とメンテナンスが含まれます。効果的なサーバー管理戦略の主な目標は次のとおりです。
信頼性を最大限に高めながら、サーバーの速度低下とダウンタイムを最小限に抑えます。
安全なサーバー環境を構築します。
時間の経過とともに組織のニーズに合わせてサーバーと関連運用を拡張します。
ここでは、フォワード プロキシとリバース プロキシ、キャッシュ サーバーとは何か、Nginx、Apache、IIS などのWeb サーバーの操作方法を知る必要があります。
リソース:
リバースプロキシとは何ですか?無料
キャッシュサーバー無料
リバースプロキシとフォワードプロキシ:無料の違い
負荷分散とは何ですか?無料
ファイアウォールとは何ですか?無料
NGINX ハンドブックは無料です
Apacheサーバーを無料で学ぶ
IIS を無料で学ぶ
コンテナは、コードとそのすべての依存関係をパッケージ化するソフトウェアの標準単位であり、アプリケーションはあるコンピューティング環境から別のコンピューティング環境へ迅速かつ確実に実行されます。
Docker は、現在最も人気のあるコンテナ テクノロジです。 Docker コンテナ イメージは、コード、ランタイム、システム ツール、システム ライブラリ、設定など、アプリケーションの実行に必要なすべてが含まれる軽量のスタンドアロンの実行可能なソフトウェア パッケージです。ここでは、コンテナー、Docker ネットワーキング、ボリューム、Dockerfile を実行する方法、および Docker-Compose を使用して複数のコンテナーを実行する方法を知る必要があります。
リソース:
コンテナとは何ですか?無料
コンテナをボトムアップから無料で学ぶ
TechWorld with Nana による初心者向け Docker チュートリアル(無料)
Docker Mastery: Docker Captain Udemy コースの Kubernetes +Swarm を使用
サービスメッシュとは何ですか?無料
Kubernetes を使用した無料の DevOps
コンテナ オーケストレーションは、コンテナのデプロイ、管理、スケーリング、ネットワーキングを自動化します。
コンテナ オーケストレーションは、コンテナを使用するあらゆる環境で使用できます。これは、再設計することなく、異なる環境に同じアプリケーションをデプロイするのに役立ちます。また、コンテナ内のマイクロサービスにより、ストレージ、ネットワーキング、セキュリティなどのサービスの調整が容易になります。
ここでは、 Kubernetes の仕組みと、Kubernetes クラスターを管理し、そこにアプリケーションをデプロイする方法を学ぶ必要があります。
リソース:
TechWorld による完全初心者向け Kubernetes 短期集中コース (Nana による無料)
入門書: Kubernetes の成り立ち、概要、および重要な理由の記事
Certified Kubernetes Administrator (CKA) 実践テスト付きUdemy コース
Kubernetes を学ぶ - KodeKloudコースによる初心者から上級者まで
クラスター サービス、Ingresses、または API ゲートウェイをいつ無料で使用するかを理解する
Service Mesh がどの問題を解決するかを理解する (抽象化 smi-spec.io を無料で使用する)
TLS と DNS を無料で自動化する方法を学ぶ
Kubernetes 稼働状況に関するブック
Kubernetes ラーニング パス - Microsoft によるゼロからヒーローまでの 50 日間(無料)
IaCと呼ばれることもあり、通常は YAML や JSON などのマークアップ言語でインフラストラクチャを定義するために使用される技術とツールを指します。コードとしてのインフラストラクチャを使用すると、エンジニアは環境のセットアップと解体を自動化できます。オンデマンドでゴールド コピー環境をプロビジョニングすることで、導入を加速し、リスクを軽減します。
Terraformは最も人気のあるインフラストラクチャ プロビジョニング ツールですが、他にも Ansible、Chef、Puppet、Vagrant などがあります。
ここでは、インフラストラクチャのプロビジョニングと構成管理を行う方法を知る必要があります。
リソース:
GUI、CLI、API: コードとしてのインフラストラクチャの基本用語を無料で学習
公式 Terraform チュートリアルは無料です
Terraform無料の総合ガイド
プロのように Terraform ドキュメントを自動化しましょう!無料
再利用可能な Terraform モジュールを無料で作成する
イスティオとは何ですか?無料
パペットの概要無料
無料および有料の人形コース
無料の Ansible を使ってみる
Ansible の基本を学ぶ
Red Hat Ansible の無料および有料を始めましょう
Ansible Udemy マスターコース
シェフを無料で学ぶ
継続的インテグレーション/継続的デプロイメント (CI/CD) は、アプリ開発の段階に自動化を導入することで、アプリを顧客に頻繁に配信する方法です。 CI/CD は、新しいコードの統合によって開発チームと運用チームに生じる可能性がある問題の解決策です。
CI/CD では、統合とテストの段階から配信と展開に至るまで、アプリのライフサイクル全体にわたって継続的な自動化と継続的な監視が導入されます。これらの接続されたプラクティスは、「 CI/CD パイプライン」と呼ばれることが多く、開発チームと運用チームによってサポートされています。
CI/CD パイプラインにはビルド、テスト、デプロイなどのさまざまな段階がありますが、さらに多くのアクティビティが含まれる可能性があります。
バージョン管理からコードを確認してビルドする
さまざまな種類の承認に段階的なゲートを設ける
環境変数の管理
サービスの再開
テストの実行
さらに...
ここでは、CI/CD サーバーのセットアップ、コードの統合とパイプラインの自動トリガー、および管理ツールの構築とパッケージ化の方法を学ぶ必要があります。
一般的な CI/CD ツールには、Jenkins、TeamCity、CircleCI、Bamboo、GitLab、Azure DevOps などがあります。
リソース:
継続的インテグレーションは無料
CI/CD パイプライン: 優しい入門書(無料)
無料のチュートリアルで GitLab を学ぶ
GitLab CI/CD FREEを使ってみる
Jenkins、ゼロからヒーローへ: DevOps Jenkins マスターになるUdemy コース
GitHub アクションを無料で学習する
GitHub Actions FREEのワークフロー構文
Azure DevOps を無料で学ぶ
GitLab チートシートは無料
モニタリングには、計画、開発、統合とテスト、展開、運用に至る開発プロセス全体の監視が含まれます。これには、運用環境におけるアプリケーション、サービス、インフラストラクチャのステータスを完全かつリアルタイムで表示することが含まれます。
これは、ソフトウェアが実稼働環境にある場合に特に重要であり、インフラストラクチャとアプリケーションのあらゆる種類の問題を追跡する必要があります。
最も人気のある 2 つのツールは、 PrometheusとGrafanaです。
ここでは、モニタリングを設定してデータを視覚化する方法を知る必要があります。
リソース:
可観測性とは何ですか?包括的な初心者向けガイド(無料)
マイクロサービスを無料で監視する方法、理由、内容
DevOpsモニタリングは無料
基本的な監視テクニックと高度な監視テクニックを無料で適用する
プロメテウスを無料で学ぶ
Grafana を無料で学ぶ
エラスティックスタック無料
クラウド プロバイダーは、インフラストラクチャを抽象化し、セキュリティと請求の境界に基づいてプロビジョニングするための API レイヤーを提供します。クラウドはデータセンターのサーバー上で実行されますが、抽象化により、単一の「プラットフォーム」または大規模なアプリケーションと対話しているように見えます。クラウド プロバイダーを使用してリソースを迅速にプロビジョニング、構成、保護できる機能は、最新の DevOps の大きな成功と複雑さの両方の鍵となっています。
市場で最も人気のあるクラウド プロバイダーは、 AWSとAzure 、そしてGoogle Cloudです。
ここでは、ユーザーと管理、ネットワーク、仮想サーバーなどを管理する方法を知る必要があります。
リソース:
試験 AZ-900: Microsoft Azure の基礎(無料)
Microsoft Azure Fundamentals 認定コース (AZ-900)無料
AZ-900 | Microsoft Azure Fundamentals フルコース、無料模擬テスト、Web サイト、学習ガイドは無料
究極のAWS認定クラウドプラクティショナー - 2022 Udemy
Cloud Guru による AWS 開発者学習パス
DevOps エンジニアとして、おそらくスクラムなどのアジャイルの世界で他の開発者とチームで働くことになるでしょう。したがって、 SDLCのさまざまな部分と、そこで使用されるツールを知ることが非常に重要です。
さらに、CI/CD 方法で自動テストを設定する必要があるため、自動テストがどのように機能するかを知っておくとよいでしょう。
ここでは、スクラム、 SDLCのすべてのフェーズ、自動テストの仕組みなどを知る必要があります。
リソース:
スクラムとは何ですか?無料
スクラムフリーについて学ぶ方法
ソフトウェア開発ライフサイクル (SDLC) フェーズとモデルは無料です
Jira でのアジャイルの初心者ガイド: コースの説明は無料です
SAFeを無料で学ぶ
自動化テストを無料で学ぶ
GitLab - DevOps の初心者ガイド(無料)
一般的な SDLC モデルは無料
作業追跡:** Asana、Monday、Jira、Trello、Azure Boards。
ソースコード管理: Git、Github、GitLab、BitBucket、Azure DevOps。
CI/CD : Jenkins、Team City、Github Actions、Travis CI、Bamboo、Circle CI、Azure Pipelines、Octopus Deploy、Harness、CloudBees CodeShip。
ソースコード分析: SonarQube、Veracode。
アーティファクト管理: Artifactory、Docker Container Register、npm、Yarn、NuGet。
構成管理: Terraform、Ansible、Puppet、Chef。
コンテナ オーケストレーション: Docker、Kubernetes、Red Hat OpenShift。
モニタリング: Prometheus、Grafana、Splunk、Dynatrace、Kibana。
The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations 、Gene Kim、Patrick Debois、John Willis、Jez Humble
この本では、製品開発、品質保証、IT 運用、情報セキュリティについて紹介します。 DevOps を初めて使用する人、または DevOps のさまざまなコンポーネントがどのように連携して機能するかを詳しく知りたい人にとっては、非常に有益な書籍です。
Accelerate: リーン ソフトウェアと DevOps の科学: 高パフォーマンスのテクノロジ組織の構築と拡張、Nicole Forsgren、Jez Humble、Gene Kim
この本では、ソフトウェア配信パフォーマンスの測定の背後にある調査結果と科学の両方を紹介します。 DevOps を上級管理職に宣伝する場合、これは素晴らしいツールです。
継続的デリバリー: ビルド、テスト、デプロイメントの自動化による信頼性の高いソフトウェア リリース、Jez Humble、David Farley
自動化されたアーキテクチャ管理とデータ移行が導入されます。以来標準となった展開パイプラインの概念の多くは、この本で確立されました。コードとしての構成、ビルドと展開の自動化、効率的なテスト手法については、技術的な詳細で説明します。ほとんどが技術書です。
チーム トポロジ: Fast Flow のためのビジネス チームとテクノロジ チームの編成、Matthew Skelton、Manuel Pais
この本では、顧客への価値の迅速な伝達を可能にする方法でチームを組織する方法について説明しています。これは、ストリーム調整チーム、有効化チーム、複雑サブシステム チーム、およびプラットフォーム チームという 4 つの基本的なチーム トポロジのセットを提供し、さまざまな組織コンテキストに合わせて組み合わせて適応させることができます。
効果的な DevOps: コラボレーション、親和性、大規模なツールの文化の構築、ジェニファー デイビス、リン ダニエルズ
この本では、チームの連携を改善するための効果的な方法が紹介されています。情報サイロを打破し、関係を監視し、組織内のチーム間およびチーム内で生じる誤解を修復する方法を示します。
The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win 、Gene Kim、Kevin Behr、George Spafford
これは、効率性とコミュニケーションについての古典的な小説です。 ITの仕事は製造工場の仕事と同じで、ワークフローを効率化する仕組みを構築する必要があります。世の中にある最高の本のひとつ。
サイト信頼性エンジニアリング、Betsy Beyer、Chris Jones、Jennifer Petoff、Niall Richard Murphy
この本では、Google の開発、展開、監視のライフ サイクル全体と、世界最大のソフトウェア システム (SRE とも呼ばれる) の管理方法について説明します。自分は DevOps 側の「運用」側にいると考えている人、またはさまざまな開発チームと運用チームの間の絆を強化する方法を知りたい人は、SRE を読むべきです。
このロードマップをハンバーガーとして提示することもできます :)。
ロードマップを改善できると思われる場合は、更新情報を記載した PR を開いて問題を送信してください。また、今後もこれを改善していきますので、このリポジトリにスターを付けて再訪問していただければ幸いです。
改善を加えたプルリクエストを開く
問題のアイデアについて話し合う
言葉を広めてください
ミラン・ミラノヴィッチ博士 - 3MD の CTO。
Romano Roth – Zühlke の DevOps 責任者。