devops automation how is automation applied devops practice
DevOpsでの自動化:
前回のチュートリアルでは、 DevOpsでのソース管理 。ここで、このチュートリアルでは、DevOpsの自動化について学習します。
自動化はDevOpsプラクティスの究極の必要性であり、「すべてを自動化する」がDevOpsの主要な原則です。 DevOpsでは、自動化キックは、開発者マシンでのコード生成からコードがコードにプッシュされるまで開始され、その後も本番環境のアプリケーションとシステムを監視します。
推奨読書=> 有益なDevOpsチュートリアルシリーズ
継続的インテグレーション、継続的テスト、継続的デプロイを含むDevOpsパイプライン全体(ライブでのアプリケーションパフォーマンスモニタリングを含む)が自動化されます。
インフラストラクチャのセットアップと構成、およびソフトウェアの展開を自動化することは、DevOpsプラクティスの重要なハイライトです。 DevOpsの実践は、数時間にわたって配信を行い、プラットフォーム間で頻繁に配信を行うために、自動化に大きく依存しています。
したがって、DevOpsの自動化により、速度、精度、一貫性、信頼性が向上し、配信数が増加します。最終的に、DevOpsの自動化は、構築、デプロイ、モニタリングからすべてをカプセル化します。
ビデオパート2ブロック3:DevOps自動化–16分40秒
このチュートリアルでは、DevOpsプラクティスにおける自動化の重要性を詳しく理解しましょう。
ここでは、以下について説明します。
- 自動化はDevOpsの実践にどのように適用されますか?
- 自動化の必要性と役割?
- 何を自動化するのですか?
- ツールとフレームワーク、継続的テスト?
自動化について話すのは少し怖いです。なぜなら、私が自動化についてどれだけ話しているか、私によれば、それは決して完全ではないからです。
言うまでもなく、自動化は単に手動タスクから離れているだけです。人々は、ありふれた日常業務への関与を減らし、時間と知性を新しいまたは革新的な何かに利用したいと考えています。
そうは言っても、DevOpsにおける自動化の役割は、顧客に継続的に価値を提供する上で非常に重要であり、非常に重要です。
これらの質問の両方が一緒に答えられるので、自動化がDevOpsプラクティスでどのように適用されるか、そして何を自動化するかについて、一緒に答えましょう。
何を自動化するのですか?
この自動化の時代では、この質問への回答にはあまり説明は必要ないと思います。どこに行っても、人間の介入が最小限であるかまったくないかのいずれかで、自動化されているものが見られます。したがって、DevOpsも例外ではありません。
従来のソフトウェア開発方法では、自動化されていたのは開発チームとその活動、特にテストだけでした。以前は、自動化とはテストケースのテストと自動化を意味し、機能テストケースだけでなく、パフォーマンスやセキュリティなどの非機能テストも意味していませんでした。
また、他のアクティビティ、特に自動化に使用されるopsアクティビティはありません。 8台のサーバーを含む巨大なクラスターへの手動展開の失敗とそれが引き起こした損失は非常に良いです 例 デプロイメントに伴う複雑さの問題であり、Devopsアクティビティの自動化の必要性を明確に説明しています。
PCの修復およびオプティマイザツールウィンドウ10
私は、組織が、彼らの知性、それぞれの分野の知識、彼らの経験と専門知識に基づいて行っていたネットワークと環境を構成するために、巨額の給与パッケージを支払うことによって高度なスキルと知性のある人々を雇っているのを見ました。完全な手作業。
誰もが知っているように、手動構成は常にエラーが発生しやすくなります。手動セットアップの場合に一般的に発生するのは、一定期間にわたって同じ作業を何度も繰り返した後、これらの賢い人々、ネットワーク構成者はこれらの活動に飽きて、間違いを犯してしまうことです。過失に。
あなたは彼らが非常に素晴らしく、これらの活動は彼らにとって非常に単純で面白くないでしょう、そして彼らはこの退屈な仕事ではなく、毎日新しい挑戦を必要としていることを知っています。
そのため、ソフトウェアのインストールとインフラストラクチャ部分のバージョン管理の自動化の導入は、時間の節約に加えて多くの人的エラーを減らし、一般の人がこれを実行できるようにして、熟練労働者への依存を取り除きました。
また、新しい環境をセットアップするためのチケットを上げるなど、新しい環境をセットアップする場合はプロセスを実行し、ITチームが背後からセットアップに取り組んでいるため、これらの煩わしさがすべて解消されます。
したがって、個々のチームメンバーは、タスクを実行する権限を与えられます。自動化によって達成される速度、信頼性、一貫性を想像してみてください。そのため、自動化が大幅に増加し、本番環境への配信数が増加しました。
そのため、現在DevOpsの実践において、運用チームはすべての作業の自動化も開始しており、これがDevOpsの成功の鍵となっています。
実際、DevOpsの実践では、自動化キックは開発者のマシンでのコード生成から始まり、コードが本番環境にリリースされるまで、そしてその後もライブでアプリケーションを監視します。これは典型的なDevOpsサイクルです。
開発および運用チームは、コードおよび環境構成をソース管理にチェックインします。ここから、自動化が開始され、ビルドのトリガー、単体テストケースおよびその他の基本的なコード品質、カバレッジテストケース、セキュリティ関連のテストケースなどが実行されます。
コードがこれを完了すると、コードは自動的にコンパイルされ、バージョン管理に保存され、さらにテストするために、最終的には製品リリースに向けて、追加の環境に自動的にデプロイされます。
ビルドのトリガーからユニットテスト、パッケージ化、指定された環境へのデプロイ、ビルド検証テスト、スモークテスト、受け入れテストケースの実行、そして最終的なデプロイまで、開発のすべてのフェーズで自動化が実行されていることがわかります。最終的な本番環境に移ります。
テストケースの自動化と言っても、単体テストだけでなく、インストールテスト、統合テスト、ユーザーエクスペリエンステスト、UIテストなどです。
DevOpsは、開発アクティビティに加えて、運用チームに、サーバーのプロビジョニング、サーバーの構成、ネットワークの構成、ファイアウォールの構成、本番システムでのアプリケーションの監視など、すべてのアクティビティを自動化するように強制します。
マルウェアやスパイウェアを削除するための最高のソフトウェア
したがって、自動化するものに答えるには、ビルドトリガー、コンパイルとビルド、展開またはインストール、コード化されたスクリプトとしてセットアップされたインフラストラクチャの自動化、コード化されたスクリプトとしての環境構成、テストは言うまでもなく、展開後のライフパフォーマンスの監視です。ログの監視、アラートの監視、ライブへの通知のプッシュ、エラーや警告などの場合のライブからのアラートの取得、
最終的にすべてのプロジェクト関連ドキュメントを自動化します。
つまり、DevOps言語での自動化とは、継続的インテグレーション、継続的テスト、継続的デプロイ、継続的デリバリーを意味します。次のパートでは、それぞれについて詳しく説明します。
全体として、DevOpsは、可能な限り、自動化可能なもの、再現可能なもの、精度が要求される場所、時間のかかるもののいずれかが自動化される、開発と運用のすべてのアクティビティを可能にします。
それでも、自動化に使用するツールについて言及しなければ、自動化に関する議論は不完全です。
したがって、適切なフレームワークと自動化ツールの選択は、DevOpsの自動化の重要な要件です。
オープンソースツールとライセンスツールの両方で、Opsチームによるアクティビティ、プロビジョニングマシン、自動サーバーの回転、ネットワークの構成、ファイアウォールなど、配信パイプライン全体のエンドツーエンドの自動化をサポートするツールが数多く市場に出回っています。さらに、ソフトウェアのパフォーマンスを監視します。
また、特定の組織は、コードコミットからコード展開までのDevOpsのエンドツーエンドプロセスを統合するために独自のフレームワークを開発しました。これには、単一の統合ツールであるドキュメントが含まれ、チームは関連するものについてフレームワークの外に出る必要がありません。プログラムするために、バージョン管理、テストケースの作成、レビュー、テストケースの結果のダンプ、分析など。
例えば: puppet、Azureリソースマネージャー、シェフなど、
DevOpsでの自動化のメリット
以前のリリースでは、自動化が行われずに本番環境に移行するのに何年もかかり、最近ではリーン、スクラム、安全のいずれであってもアジャイルであり、自動化の割合が改善されているため、リリースのタイムラインは数か月または数週間。
しかし、リリースを数時間でできるだけ速くするためには、自動化が絶対に必要です。したがって、パイプライン全体で自動化を実施しない限り、このような迅速で頻繁なリリースを行うことは不可能だと思います。
したがって、当然のことながら、DevOpsの目的、頻繁かつ迅速な配信を通じて顧客に提供される高品質と価値を達成したい場合は、すべてを自動化する必要があります。
明らかに、自動化によって手動エラーや個人への依存がなくなり、パフォーマンスが向上し、精度が向上するため、一貫性と信頼性が実現することがわかっています。したがって、すべてを自動化することで、高品質の配信というdevopsの目的が可能になり、頻繁なリリースとより高速なリリースが可能になります。
一言で言えば、自動化、
- 手動エラーを削除します
- チームメンバーは権限を与えられています
- 依存関係が削除されました
- レイテンシーが削除されました
- 配達の数を増やします
- リードタイムを短縮します
- リリースの頻度を増やします
- より速いフィードバックを提供します
- 速度、信頼性、一貫性を実現します
つまり、DevOpsの自動化は、最終的には、構築、デプロイ、モニタリングからすべてをカプセル化します。
推奨読書
- DevOpsでの配信の小さな増分の重要性
- DevOpsのソース管理またはバージョン管理(ビデオチュートリアルパート2-ブロック2)
- DevOpsチュートリアル:DevOpsの究極のガイド(25以上のチュートリアル)
- アジャイルマニフェストに基づくDevOpsプラクティス(パート2-ブロック1)
- DevOpsテストチュートリアル:DevOpsはQAテストにどのように影響しますか?
- クラウドでのDevOps実装のためのAWSCodeCommitチュートリアル
- SeeTest Automation Tutorial:Mobile Test Automation Tool Guide
- DevOpsでの継続的デリバリー