Slurm DevOps - 遠い将来の美しいクレーンよりも 3 日でより良く機能するシジュウカラ

私は XNUMX 週間のプロジェクトが大好きですが、XNUMX 年にわたるプロジェクトには怖気づいています。 アジャイルでは、MVP とインクリメントの概念がとても気に入りました。これはまさに私の好みです。実行可能な部分を作成し、実装して、次に進みます。

同時に、書籍やカンファレンスで議論されている形式の DevOps 変革は、XNUMX 年かかるプロジェクトにすぎません。 あるいは数年後。

私たちは、「XNUMX つのスプリントでの MVP DevOps」と「増分への準備」のパラダイムに基づいて DevOps コースを構築しました。 そして、人間の言葉で言えば、「参加者が帰ってきたら、すぐに自宅で何かを実践し、その恩恵を受けることができるようにするため」です。

MVP DevOps: このコースには、基本的な DevOps プロセス用のツールが含まれています。 私たちは、すべての CI/CD システムをレビューして比較したり、コードとしてのインフラストラクチャ アプローチの深さを明らかにしたりするというタスクを自分たちに設定したわけではありません。 私たちは、Gitlab CI/CD、Ansible、Terraform および Packer、Molecule、Prometheus、EFK という XNUMX つの明確なスタックを提供します。 コースから参加し、トレーニング資料からパイロット プロジェクト用のインフラストラクチャを収集し、そこで作業することができます。

Slurm DevOps - 遠い将来の美しいクレーンよりも 3 日でより良く機能するシジュウカラ

増分への準備: 各要素に多くの実践例と例を提供します。 XNUMX つのツールを選択し、トレーニング図面を使用して実装を開始できます。 たとえば、開発環境をロールアウトするための Ansible プレイブックを作成したり、ボットに接続して携帯電話からサーバーを管理したりできます。 つまり、XNUMX週間で具体的な実践結果が得られます。 それは会社全体の DevOps 変革からは限りなく遠いかもしれませんが、それはそこに存在し、機能し、利益をもたらします。

Slurm DevOps トピック

トピック #1: Git のベスト プラクティス -それ自体が物語ります。
トピック #2: 開発の観点からアプリケーションを操作する — エンジニアには管理者と開発者の能力が必要なので、開発については管理者に伝えます。

トピック #3: CI/CD の基本

  • CI/CD オートメーションの概要
  • Gitlab CI の基本
  • gitlab-runner のベストプラクティス
  • CI/CD などの一部としての Bash、make、gradle ツール
  • CI の問題を解決する手段としての Docker

トピック #4: 運用中の Gitlab CI/CD

  • 仕事を始めるときの競争
  • 実行の制御と制限: のみ、次の場合
  • アーティファクトの操作
  • テンプレート、インクルード、マイクロサービス: 導入の簡素化

CI/CD の基本的な概念と概念、および CI/CD 実装のためのツールを学生に紹介します。 その結果、学生は CI/CD 設計パターンと適切な実装ツールを独自に選択できるようになります。

次に、Gitlab での CI/CD の実装を示し、セットアップを段階的に説明し、Gitlab CI を使用する高度な方法を確認します。 その結果、学生は自分のプロジェクト用に Gitlab CI を独立して構成できるようになります。

最初の DevOps Slurm と比較して、理論を 2 倍 (トピックあたり XNUMX 時間) に縮小し、すべてのシステムのレビューを避け、Gitlab CI のみを残しました。 私たちは実践に重点を置き、多くのベストプラクティスを追加しました。

トピック #5: コードとしてのインフラストラクチャ

  • IaC: コードとしてのインフラストラクチャへのアプローチ
  • インフラプロバイダーとしてのクラウドプロバイダー
  • システム初期化ツール、イメージ構築(パッカー)
  • Terraform を例として使用した IaC
  • 構成ストレージ、コラボレーション、アプリケーションの自動化
  • Ansible プレイブック作成の実践
  • べき等性、宣言性
  • Ansible を例として使用した IaC

UI と openstack cli に関する理論的な部分を減らし、実践に焦点を当てました。
同じアプリケーションを使用する XNUMX つの IaC アプローチを見て、それぞれのアプローチの長所と短所を示します。 その結果、学生はどのアプローチをどこで使用するべきかを理解し、Terraform と Ansible の両方を使用できるようになります。

Terraform に関するトピックでは、実際のチームワークとデータベースへの状態の保存について見ていきます。 モジュールを使用する場合、学生は自分でモジュールを作成して構成し、その使用方法、つまり再利用、バージョン管理を学びます。 Consul を使った作業を追加し、どのような場合に Consul が必要になるのか、そしてそれを正しく使用する方法を示しましょう。

トピック #6: インフラストラクチャのテスト

  • 彼らがなぜテストを書かないのか考えてみましょう。
  • IaC にはどのようなテストがありますか?
  • 静的アナライザー、本当に役に立たないのでしょうか?
  • ansible + 分子を例にした IaC の単体テスト
  • CI の一部としてのテスト
  • ステロイドの検査、または IaC 検査が終了するまで 5 時間待たない方法

私たちは理論的な部分を減らし、Vagrant/Molecule に関する話を減らし、リンターとその操作に焦点を当てて実践と直接テストを増やしました。 CI の観点から見ると
テストを高速化する方法。 実際には次のようになります。

  • 役割に応じてホストの必須変数の存在をチェックする自己作成のリンター。
  • 変更されたロールのみを CI テストに追加することで、テストの実行時間を大幅に短縮できます。
  • シナリオテストの追加。 アプリケーション全体を統合テストとしてデプロイします。

トピック #7: Prometheus を使用したインフラストラクチャ監視

  • 健全な監視システムを構築する方法
  • 販売前であっても、分析、開発効率、コードの安定性のためのツールとしてモニタリング
  • プロメテウス + アラートマネージャー + グラファナのセットアップ
  • リソース監視からアプリケーション監視への移行

マイクロサービスの監視 (リクエスト ID、API 監視ツール) について詳しく説明します。 多くのベストプラクティスと独立した作業が数多く存在します。

独自のエクスポーターを作成しましょう。 実稼働インフラストラクチャとアプリケーションだけでなく、Gitlab のアセンブリの監視も設定します。 失敗したテストの統計を見てみましょう。 実際に、healthCheck を使用しない場合と使用する場合のモニタリングがどのようになるかを見てみましょう。

議題その8。 ELK を使用したアプリケーションのログ記録

  • Elastic とそのツールの概要
  • ELK/Elastic Stack/x-pack - 何が違うのか、またその違いは何ですか?
  • ElasticSearch を使用して解決できる問題 (検索、ストレージ、スケーリング機能、構成の柔軟性)
  • インフラストラクチャ監視 (x-pack)
  • コンテナーとアプリケーションのログ (x-pack)
  • 例としてアプリケーションを使用したロギング
  • Kibana を使用した作業の実践
  • Amazon から Elasticsearch のディストリビューションを開く

このトピックは完全に再設計されており、Eduard Medvedev がホストを務めており、多くの人が DevOps と SRE に関するウェビナーで彼を目にしました。 彼は、教育アプリケーションの例を使用して、EFK を使用するためのベスト プラクティスを説明し、デモンストレーションします。 キバナとの練習もあります。

トピック #9: ChatOps によるインフラストラクチャの自動化

  • DevOps と ChatOps
  • ChatOps: 強み
  • Slack と代替手段
  • ChatOps 用のボット
  • Hubot とその代替品
  • セキュリティ
  • テスト
  • ベストプラクティスと最悪のプラクティス

ChatOps には、権利分離による認証の実践、別のユーザーによるアクションの確認、Mattermost の形で Slack に代わる理論と実践、ボットの単体テストと統合テストの理論が追加されました。

DevOps スラムは 30 月 30 日に始まります。 価格 - 000。
読み終えた方は、プロモーション コード habrapost を使用して DevOps コースを 15% 割引でご利用いただけます。

登録 ここで

Slurmsでお会いできるのを楽しみにしています!

出所: habr.com

コメントを追加します