概要
DevOps 自動化は、DevOps テクノロジーの進化形です。人間の介入を最小限に抑えてタスクを実行し、より迅速なソリューションの提供を支援します。開発チームと運用チームが協力して作業できるよう、ソフトウェア開発ライフサイクル全体を通じて複雑さを最小限に抑え、コストを管理し、コンプライアンスを確保します。
DevOps
DevOps とは、高品質かつ迅速なサービス提供によりビジネス価値や対応スピードを向上することを目的とした、企業文化、自動化、およびプラットフォームの設計に対するアプローチです。DevOps 手法によって、開発チームと運用チームは 1 つの DevOps チームになります。これにより、アイデアとプロジェクトが開発から本番へと進んでいく速さと効率が向上します。DevOps では、従来の手動による管理戦略の場合よりも、コード変更が頻繁に行われ、インフラストラクチャをより動的に使用します。
IT 自動化
IT 自動化とは、テクノロジーを利用して反復的な作業やプロセスを高速化し、人間による操作を削減することです。手作業の削減により生産にかかる時間を短縮し、IT チーム全体の効率性を向上させます。また、IT 自動化は環境のスケーリングに役立ち、さらに継続的インテグレーションおよび継続的デリバリー (CI/CD) ワークフローの構築も促進します。
自動化できる DevOps プロセス
DevOps 環境には、サーバー、仮想マシン、クラウドサービス、ネットワーク要素など、さまざまなテクノロジーが含まれます。これらの環境のセットアップとデプロイには通常、手作業による複数のプロセスが必要ですが、それを自動化することで効率とスピードを向上させることができます。
プロビジョニング
プロビジョニング (IT 環境のセットアップ) とこうした複雑な環境への変更のデプロイには、かなりの時間と労力がかかり、また、各コンポーネントに関する専門知識が必要になります。Infrastructure as Code (IaC) のアプローチに自動化を適用することで、開発者はコードを通じてインフラストラクチャを構成し管理できるようになります。インフラストラクチャをコード化することで、システムコンポーネントのプロビジョニングと管理を、最小限の手作業で行えるようになります。
開発
ソフトウェア開発者は、新しいアプリケーションとサービスの作成、継続的なテスト、デプロイに IT リソースを必要とします。IT 環境のセットアップ、コードのデプロイ、テスト・インフラストラクチャの構成などを手動で行う IT 運用は、リソースの遅延やサービス提供パイプラインの複雑化につながる可能性があります。また、概念実証 (PoC) のパフォーマンスを阻害し、最終的には開発の遅れを引き起こす可能性もあります。
アプリケーション・プログラミング・インタフェース (API) 中心の設計と自動化を組み合わせることで、IT チームはリソース提供にかかる時間を短縮でき、一貫したワークフローに欠かせない、迅速な PoC、開発、テスト、デプロイに対応できるようになります。Jenkins のようなテスト自動化オープンソース・プロジェクトは、開発の自動化を支援し、パフォーマンス分析に関するインサイトを提供します。
構成管理
IT チームはクラウド、ネットワーク、ストレージ、サーバー、エッジデバイスなど、広範なアプリケーションやシステムを管理しています。これらのシステムを正しくセットアップすることで、セキュリティ上の問題やシステムの遅延を防ぐことができます。構成管理を自動化すると、システムの望ましい状態を維持しながらライフサイクル全体を通じて一貫したパフォーマンスを確保し、自動化のドリフトを削減できます。また組織のニーズによっては、IT チームは構成管理ツールを活用してシステムメトリクス、コンプライアンス、バックアップ復旧プロセスの監視・記録を行ってシステムの健全性を維持するとともに継続的にデータを保護し、問題の早期検出に役立てることができます。
CI/CD
CI/CD は、ソフトウェア開発ライフサイクルを加速するために使用される 2 つのプロセスから構成されます。
- 継続的インテグレーション (CI) は、コードの変更を共有コードリポジトリに統合します。
- 継続的デリバリー (CD) は、それらのコードの変更のリリース、テスト、デリバリーを自動化します。
これらのプロセスを総称して CI/CD パイプラインと呼びます。
この自動化プラクティスにより、ソフトウェア開発ライフサイクル全体を通じてコードのエラーを回避しつつ、ソフトウェアのデリバリーを改善できます。CI/CD の他の主要コンポーネントにはロールバックと自動テストがあります。これらはコードの信頼性と安定性を確保します。GitHub Actions などのプロジェクトは、リポジトリに必要なすべての CI ソフトウェアワークフローを自動化します。CD ワークフローに関しては、The Linux® Foundation の Argo が Kubernetes ベースの環境に適した信頼性の高いソリューションです。
監視およびロギング
ログ管理はセキュリティ状態を監視します。環境のセキュリティを調査・改善するための貴重な情報源であり、リアルタイムでの検出と対応を行います。セキュリティ監視は、攻撃や侵入がいつ、どのように発生したかを示すログを生成します。Prometheus などのプロジェクトは、シンプルでスケーラブルな監視およびロギングのツールキットを提供しています。
Red Hat のリソース
DevOps 自動化の効果測定
DevOps 自動化のパフォーマンスの追跡と報告に役立つ指標は複数あり、デリバリーのパフォーマンスとソフトウェアの安定性について測定可能なインサイトを得ることができます。
DevOps Research and Assessment (DORA) チームは、以下の指標を特定しています。
- デプロイメント頻度 (DF) は、コード変更のデリバリーにかかる時間、または顧客が変更を本番環境にデプロイする頻度を測定します。
- デリバリーリードタイム (DLT) は、コードが作成されてから本番環境にデプロイされるまでの期間です。
- 平均復旧時間 (MTTR) は、障害発生後に製品やサービスを復旧するために必要な時間を測定します。
- 変更失敗率 (CFR) は、本番環境で失敗したデプロイメントの数を追跡します。これはパイプラインの全体的な健全性を反映し、エラーをプロセスの早期に特定します。
- 再作業率 (2024 年にテスト実施) は、アプリケーション内のユーザー向けバグに対処するために特定の期間内に実施された計画外のデプロイメントの数を追跡します。
Red Hat を選ぶ理由
DevOps の自動化は、Red Hat のソフトウェア開発モデルの中核を成すものです。このモデルは、当社がエンタープライズ向けのオープンソースソフトウェア製品として開発・リリースする Linux プロジェクトや Kubernetes プロジェクト、自動化プロジェクトに直接貢献しています。
Red Hat Ansible Automation Platform
Red Hat® Ansible® Automation Platform は、インフラストラクチャのプロビジョニングからアプリケーションのデプロイや構成に至るまで、開発ライフサイクル全体にわたる IT タスクの自動化を通じて、DevOps プラクティスの実装を強力に支援します。Red Hat Ansible Automation Platform を使用することで、CI/CD パイプラインの主要ステージの自動化と、automation controller を使用した DevOps ワークフローのオーケストレーションが可能になり、DevOps を促進できます。Red Hat を使用した自動化は、ロールベースのアクセス制御と、Ansible Playbook の人間が読める自動化言語を通じて、継続的なデリバリー、デプロイメント、部門間のコラボレーションを促進します。CI/CD パイプラインだけでなく、日常業務にも同一の自動化コンテンツを使用できます。また、Ansible Automation Platform は IT インフラストラクチャのほぼすべての側面と連携するため、一貫した開発環境、テスト環境、本番環境を迅速かつ容易にデプロイでき、アプリケーションの信頼性と回復力を高めることができます。
Red Hat OpenShift
Red Hat Ansible Automation Platform は、DevOps ワークフローにおいて Red Hat OpenShift® を補完します。ハイブリッド IT 環境向けの認定コンテンツコレクションによってサポートされています。Red Hat OpenShift Pipelines (Tekton を利用) と Red Hat OpenShift GitOps (Argo CD を利用) を通じた DevOps 自動化のための CI/CD 機能が組み込まれています。
Red Hat Developer Hub と組み合わせることで、Red Hat OpenShift は各チームが社内の開発者プラットフォームを管理し、Red Hat OpenShift Dev Spaces、Red Hat OpenShift Serverless、Red Hat OpenShift Service Mesh、Red Hat Application Services などのツールを使用してゴールデンパスを構築できるようにします。Red Hat OpenShift または Microsoft Azure Kubernetes Service が提供する監視およびロギングツールにより、パフォーマンスとインサイトを追跡することができます。
これらのツールは、セルフマネージドの Kubernetes プラットフォームでも、Red Hat OpenShift Service on AWS のような Red Hat OpenShift のクラウドバージョンでも利用できます。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。