主な違い
Ansible と Kubernetes は、IT 環境の自動化においてそれぞれ異なる役割を果たすオープンソース・プラットフォームであり、個別に使用することも併用することもできます。
Ansible の主な目的は、インフラストラクチャ・コンポーネント全体にわたって反復的な IT プロセスを自動化することです。一方、Kubernetes はコンテナ化されたアプリケーションのデプロイメント、スケーリング、管理をオーケストレーションすることを目的としており、ハイブリッド環境での大規模なソフトウェア実行を可能にします。先進的な IT 環境においてこれらの目的は相補的なものであり、Ansible と Kubernetes を併用するのが一般的です。
Red Hat® Ansible® Automation Platform と Red Hat OpenShift® は、それぞれ Ansible と Kubernetes を基盤として構築されているエンタープライズグレードのソリューションです。Ansible と Kubernetes のコア機能を強化し、大規模でミッションクリティカルなデプロイメント向けの追加機能を提供します。
Ansible とは
Ansible は、システムのプロビジョニング、構成管理、アプリケーションのデプロイメントなどのさまざまな IT プロセスを単純化することを目的としたオープンソースの自動化エンジンです。
システム管理者やその他の IT プロフェッショナルによって、クラウドやオンプレミスなど、多様な環境における新規システムのセットアップとデプロイメントを自動化するために使用されています。Ansible は、ソフトウェアパッケージを最新の状態に保つなど、システムが望ましい構成を維持できるようにします。たとえば、Ansible を使用することで、数百ものサーバーに一貫したアプリケーションスタックをデプロイし、システムの効率性を実現できます。
Ansible コミュニティのドキュメントによると、Ansible は次のような設計になっています。
- エージェントレス:IT インフラストラクチャ全体のどこにも追加ソフトウェアをインストールする必要がなく、デプロイメントが容易です。
- シンプル:Ansible Playbook は、理解しやすい平易な言語である YAML でコードが記述されています。
- スケーラブルで柔軟:モジュール式の設計により、さまざまなオペレーティングシステムをサポートし、スケーラブルな自動化を実現します。
- べき等性と予測可能性:望ましい状態を変更することなく、モジュールを繰り返し実行します。
IT 自動化とは
Kubernetes とは
Kubernetes はオープンソースのコンテナ・オーケストレーション・プラットフォームで、コンテナ化アプリケーションのデプロイ、管理、スケーリングに伴う多くの手動プロセスを自動化します。
コンテナは、アプリケーションのコード、構成、依存関係を格納し、独立したプロセスとして実行します。各アプリケーションは独自のコンテナ内、または Pod に編成された複数のコンテナ内で実行されます。動作している Kubernetes のデプロイメントはクラスタと呼ばれます。クラスタは、実行中のコンテナのグループです。
Kubernetes の主な利点の一つは、ベアメタルサーバーから複雑なハイブリッドクラウド環境まで、さまざまな種類のインフラストラクチャで動作することです。
Kubernetes は 3 つの中核的な設計原則に基づいて構築されています。Kubernetes 実装の詳細によると、Kubernetes デプロイメントは以下の要件を満たす必要があります。
- セキュア:セキュリティに関する最新のベストプラクティスに従う必要があります。
- ユーザーフレンドリー:わずかな数の簡単なコマンドで操作できる必要があります。
- 拡張可能:特定のプロバイダーを優先することはせず、設定ファイルでカスタマイズできる必要があります。
Kubernetes 環境における自動化
Kubernetes はコンテナ化されたワークロードのオーケストレーションに優れていますが、通常、インフラストラクチャのプロビジョニング、アプリケーションのライフサイクル管理、マルチクラスタのサポートには追加のツールが必要になります。これらのタスクを手動で管理するのは大変な作業で、人為的ミスのリスクも高まります。Ansible は、クラスタのプロビジョニング、構成の適用、Kubernetes 環境全体にわたるアプリケーション・デプロイメントの管理を自動化することで、これらの課題に対処します。Ansible と Kubernetes を併用すれば、両方の強みを組み合わせ、Ansible のモジュールライブラリ、人間が読める Playbook、仮想マシンの移行といった複雑なタスクのサポートを活用できます。この統合によって主要な運用上のギャップを埋めることができ、Kubernetes 環境のスケーラビリティと一貫性を向上させられるとともに、長期にわたって管理しやすくなります。
Ansible Automation Platform と Red Hat OpenShift
小規模なデプロイメントで構成管理の自動化とコンテナ化されたアプリケーションのオーケストレーションを行う場合は、Ansible と Kubernetes で始めるのがよいでしょう。しかし大規模な運用の場合は、Red Hat OpenShift と Ansible Automation Platform がより包括的で信頼性の高いソリューションとなります。Red Hat OpenShift は Kubernetes をベースとするエンタープライズ・ハイブリッドクラウド・アプリケーション・プラットフォームです。Red Hat Ansible Automation Platform と組み合わせることで、インフラストラクチャおよびアプリケーション全体で自動化が拡張され、管理機能とセキュリティ機能が強化されます。インストールとライフサイクル管理を開始する最も簡単な方法は、OperatorHub を介して Red Hat OpenShift 内に Ansible Automation Platform をデプロイすることです。
Red Hat OpenShift に Ansible Automation Platform をインストールすると、これらのプラットフォームを連携させて次のことができるようになります。
- Red Hat OpenShift クラスタの作成、デプロイ、管理を自動化する
- 既存のクラスタ外のインフラストラクチャをクラウドネイティブなインフラストラクチャやサービスと連携させる
- 1 つの共通フレームワークからデプロイ、スケーリング、アプリケーションのアップデートを高い信頼性でサポートする
- 仮想マシン (VM) を一貫して移行および管理し、パブリッククラウド・ソリューションまたはプライベートクラウド・ソリューション用にプロビジョニングする
- Red Hat OpenShift クラスタのエンドツーエンドのビジネス継続性と障害復旧の自動化を確立する
Ansible Automation Platform と Red Hat OpenShift はどちらも YAML を使用するため、いずれかのプラットフォームの使用経験があればすぐに使い始めることができます。この共有基盤を通じて、OpenShift 管理者は Ansible Playbook を作成でき、自動化開発者はクラスタをより効率的に管理およびデプロイできます。
Ansible Automation Platform と Red Hat OpenShift の併用には他に以下のようなものがあります。
Ansible Kubernetes Collection
Ansible Kubernetes Collection は、Kubernetes クラスタへのアプリケーションのデプロイや、Pod、サービス、デプロイメントなどのリソースの管理、Kubernetes アプリケーション・プログラミング・インタフェース (API) の操作といったタスクを自動化できるモジュールを提供します。たとえば、Ansible Playbook を使用することで、Kubernetes クラスタ全体でマイクロサービスのデプロイを自動化できます。
Ansible OpenShift Collection
Ansible OpenShift Collection は、Kubernetes アーキテクチャ上に構築されている Red Hat OpenShift クラスタの自動化を単純化します。OpenShift プロジェクトの管理、アプリケーションのスケーリング、OpenShift リソースの処理といったタスクを自動化できます。
Red Hat Advanced Cluster Management
Red Hat Advanced Cluster Management for Kubernetes は、複数の OpenShift クラスタを一元管理できるツールです。管理者は、クラスタ全体にわたってアプリケーションをデプロイ、構成、監視できます。Red Hat Advanced Cluster Management は Ansible Automation Platform と組み合わせることで、多数のクラスタにまたがるタスクを自動化できます。
Kubernetes と Event-Driven Ansible
Event-Driven Ansible は、システム内のイベントに対する動的なリアルタイムの応答を可能にします。Event-Driven Ansible を Kubernetes と統合することで、トラフィックの急増時に Pod をスケーリングしたり、コードがリポジトリにプッシュされた際にアプリケーションの新バージョンをデプロイしたりするなど、Kubernetes クラスタ内のイベントへの自動応答が実現します。この統合により、Kubernetes で管理された環境のアジリティと回復力が向上します。
Red Hat の自動化とコンテナ・オーケストレーションを選ぶ理由
Red Hat は、Ansible と Kubernetes を含むオープンソース・テクノロジーのリーダー企業であるとともに積極的に開発も行っており、IT インフラストラクチャの保護、単純化、自動更新に不可欠なツールを生み出しています。
Red Hat Ansible Automation Platform を使用すると、全社規模で自動化を作成、管理、拡張できるとともに、プロビジョニング、構成管理、クラウド、仮想化といった数多くの IT 自動化のユースケースを管理することも可能になります。
Kubernetes を基盤とする Red Hat OpenShift を活用することで、コンテナ化された新しいアプリケーションを作成し、ホストし、クラウドでデプロイできるようになります。スケーラビリティ、制御性、オーケストレーションが提供されるので、優れたアイデアを迅速かつ簡単に新しいビジネスへとつなげられます。