DevOpsの学習はどこから始めますか?


10

本当にヘルプなどなかった「DevOpsチームで開始する方法」を検索して、同様にそれらの多くのだけでなく、他の多くは本当に正しい方法で私を指していません。これまでに見たすべてのyoutubeビデオも役に立ちませんでした(私が何を開発しているのかを説明するビデオは必要ないため)、このビデオはこれまでの唯一の真の例外です(物事がどのように統合されるかを示しています)。

私はCCNAであり、DBMSにも精通しています(現在、並列処理の実行やその他のものを学習しています)。

しかし、私は最初に何を学ばなければならないのか(またはその問題について正しいリソースをどこで見つけるのか)わかりません。

私はもうすぐ卒業するので、実世界での経験はありません。

何かアドバイスや助けはありますか?

回答:


5

Devopsはソフトウェアの実行に関連しています。アプリケーションまたはサービスを実行する方法がすべてです。したがって、次のステップはサーバー構成ツール、仮想マシン、コンテナです。これらのツールのドキュメントを確認し、発見、観察可能性、スケーラビリティ、冗長性などについて学ぶことをお勧めします。いくつかの例を挙げると:

サーバー構成:

  • PXE
  • アンシブル
  • 傀儡

VM:

  • 浮浪者
  • QEMU

容器:

  • Docker
  • Kubernetes

編集:クラウドテクノロジーの概要:

ソフトウェアアーキテクチャがマイクロサービスに関するものである場合、コンテナーは適切な選択です。古いモノリシックアプリケーションを使用している場合、VMは悪い選択肢ではありません。したがって、それは常に具体的に学ぶ必要があるコンテキストに依存します。トピックはそれを要約するためにかなり広いです。本はそれを助けるかもしれませんが、残念ながら私は良い幅広い本を提案することはできません。「Kubernetes in Action」はKubernetesで良いスタートを切ることができます。


竹、ジェンキンス、チームシティなど、ci / diについても追加します。
Cyclonecode

1
私が忘れてしまったことと、それが役立つかもしれません。クラウドテクノロジーの概要:CNCFの風景
jhamfler

投稿を編集して詳細情報を追加してください=)私は実際にこれを見つめました。
Cyclonecode

あなたが正しい@Cyclonecode。完了
ジャムフラー

これが愚かな質問である場合は申し訳ありませんが、EC2がすでに仮想マシン内で実行されている場合、なぜDockerが必要なのですか?
PirateApp

4

まず、DevOpsは文化ではなく役割であることを強調したいと思います。私の意見では、スナイパー、マリン、サッパーなどの独自の専門知識を持つコマンドーのチームと比較できます(コマンドーシリーズについて考えてみてください)。これらの専門知識を組み合わせることで、基本的に連携して、ミッションを達成したり、ビジネス価値をできるだけ早く作成したりすることができます。

LowOpsとNoOps

数週間前から、人とのたくさんの会話の後に、むしろ最近のLowOpsについて話していることがわかりました。ソリューションを実装する場合、これは完全に自動化されており、同僚が私に尋ねるのではなく、自分でマシンを展開できることを意味します。完全に自動化することがすぐにできない場合もありますが、作業を完了するために1つのコマンドを実行するだけで済むように(LowOps)、数時間を無駄にするのではなく、自動化されていることを確認します。私がそのようなソリューションを作成した場合、私はすべての人のために私の個人的なソリューションを自動化するためのチケットが同僚に作成されていることを確認します。例:私の同僚がボットで私のbashスクリプトの1つを変換し、ボットスクリプトが毎晩実行されるようにしました。

ここに画像の説明を入力してください

図1:https : //www.gslab.com/blog-post/what-is-noops/

「devopsから始める方法」

能力が混在するチームの一員であり、チームがソフトウェアを自分で展開する必要があることを確認してください。すべてのチームメンバーと話し、知識や意欲の欠如があるため、誰もやりたくないタスクから始めます。タスクから始めると、知らないことに出くわします。ビデオの視聴、ミートアップへの参加、本の購入と読書、ツールに関するブログと公式ドキュメントの読み始め、プルリクエストの確認と他の人とのコミュニケーションと聞き取り、文書化と同僚への解決策の準備とデモ(知識の共有)を同僚に依頼する。最後の提案は、ワークライフバランスに注意を払うことです。


2

ここでの他の答えは、ツールに焦点を当てています。私の意見では、ツールキットで能力を獲得することはもちろん良いことですが、DevOpsカルチャーにうまく適合させることはできません。DevOpsは、最初の一連のプラクティスまたはメソッドです。

これらの手法と方法が有用である理由を理解することは、経験とともに得られますが、そのような贅沢はありません。したがって、私はあなたに指摘します

基礎テキストとして。

連続配信のウェブサイトはまた、一連の持っている原則基礎の開始時に、あなたに関連した接地を与えます。

これらから始めて、あなたが通知されますされ、実践や方法を学びますどのようにあなたが協力し、ツールを使用しています。


2

学ぶ必要があるのは、Linux、Docker、ネットワーキング、Git、Jenkinsなどです。ここでインタラクティブに学ぶことができます

あなたがビデオチュートリアルを探しているなら、pluralsightはあなたに何か良いものを持っています。


1

これは私が何度も自分自身に尋ねてきた種類の質問であり、それは私に続く傾向があります(今、私はほとんど「初心者」から抜け出しているので、より高度なトピックをどこで学ぶべきか疑問に思っています)。悲しいことに、あなたが指摘したように、検索エンジンでこれらの質問をすることは、幹部をターゲットにしたウェブサイトで溢れ、デボップとは何かを説明しようとする傾向がありますか?そして、なぜ開発者はソフトウェアサイクルを産業化する必要があるのでしょうか。

そうは言っても、あなたの質問に答えるために、私は個人的な経験からのみ話すことができます。私は優れたDocker入門ガイドから私の学習の旅を始めました


1

「DevOpsの学習」は、ご存知のように、クエリの範囲が広すぎるように感じますが、同じことをググる必要があったことを覚えています。

@jhamflerの答えに追加するには:自問してみて、なぜそれについて学びたいのですか?どのコンテキストから来たのですか?DevOpsは通常、手動のハードルを分解するか、チームのサイロ構造を破壊する必要があります(誰もが自分のタスクを実行し、結果の統合について他の誰かに頼る)。あなたのプロジェクトにはそのような「ギャップ」がありますか(私はあなたが持っていると思います)?自動化によってメリットが得られるのはどの部分ですか?

私が提案できる典型的な問題は次のとおりです:

  • 手動サーバーメンテナンスVSスクリプトソリューション
  • 信頼性とバックアップ
  • 統合テストの自動化
  • 継続的な展開(Webサービスなど)の自動化
  • ...

おそらく、「継続的デプロイメント」および「継続的統合」(CI / CD)の検索も役立つ可能性があります。


1

学び、慣れるために必要な最初のこと:

  • unix(ファイルシステム、権限、プロセス、サービス、ログ、ネットワークなど…)
  • SSHおよびリバーストンネリング
  • nano / vim
  • python
  • ギット

次に、より具体的なトピックに進むことができます。

  • コンテナー化(例:docker)
  • 構成管理(例:ansible)
  • 継続的な展開(例:ジェンキンス)
  • モニタリング(プロメテウス/グラファナなど)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.