概要
Red Hat® Ansible® Automation Platform を使用して、IT 部門にとって最も面倒で時間のかかるプロセスの 1 つである移行を自動化することができます。
移行とは、使用するハードウェアまたはソフトウェアをある形式から別の形式に移行することによって、IT インフラストラクチャをアップグレードするプロセスです。これには、物理インフラストラクチャから仮想、仮想からクラウド、クラウドからコンテナといった移行が含まれることがあります。また、あるオペレーティングシステムから別のオペレーティングシステムへの移行や、ソフトウェアプログラム間の移行を意味する場合もあります。
この記事では、アプリケーションの移行と、Red Hat Ansible Automation Platform を使用して移行を自動化することで、移行に伴う時間、費用、そして悩みの種をどのように削減できるかについて説明します。
移行:手動によるアプローチ
一般に、アプリケーションやサービスを手動で移行するのは複雑で、エラーが発生しやすく、一貫性を保ちつつ繰り返すのが難しいプロセスであり、通常、移行の完了までに次のような作業が必要になります。
- サーバーを環境にデプロイする
- デプロイメントのチェックリストとガイドに従って、オペレーティングシステムを設定する
- すべてのものが機能するまで、必要に応じて構成をスポット変更する
- すべての環境、アプリケーション、デプロイメントなどに対してこのプロセスを繰り返す
レプリケーションを行う場合はこれらの手順を何度も繰り返すことになり、大変な手作業を伴うため、エラーが発生する可能性が極めて高くなります。システム管理者が異なれば、方法やツールも異なり、移行されたアプリケーション間で数々の差異が生じます。
長期的には (これは非常に長い期間にわたって行うことになります)、このアプローチによる移行は効率的に機能しません。デプロイメントはそれぞれに異なり、個別に処理する必要があり、「一度作って一度実行する」スタイルなので、繰り返すことができません。
また、手動で作業を繰り返すと、すでに終わった作業とかなり類似しているために、混乱やエラーが生じやすくなります。つまり、戻って問題を見つけ、それを修正し、同じ間違いをしている他のすべての場所を見つけて、それらも修正することになります。
移行プロセスは極めて繊細なものであり、多くの作業が手動で行われるため、アップグレードしてテクノロジーの「次の大きな波」(コンテナやエッジ・コンピューティングなど) を利用することは非常に困難で、手を付けるのがためらわれるような大変な作業になります。
実際、運用チームと話をすると、移行は、何か大きな問題でもなければ検討されないことがわかるでしょう。すべての要求はプロアクティブではなくリアクティブなものであり、チームのバックログがますます増えることになります。
定義、デプロイ、発見
幸いなことに、移行の自動化を実装することで、移行プロセスを大幅に単純化し、作業を迅速に完了し、スタッフをより大きな問題の方に集中させることができます。
さらに良いことに、Red Hat Ansible Automation Platform を使用した自動化なら、定義、デプロイ、発見という重要な 3 ステップのプロセスと共に移行の自動化を行えます。
このアプローチは、まず最も小さな作業を自動化してそのプロセスに慣れ (つまり、何が機能し、何を修正する必要があるかを確認する)、システムまたはプロセスの微妙な違いを確実に把握して知識を獲得し、毎回ゼロから始めたり、不要な変更を加えたりすることなく、学んだことを繰り返し適用することを前提としています。
- 定義:個別に自動化する各コンポーネントを決定し、途中でオーダー/プロセスを確認して、Ansible Playbook にまとめる (Playbook については次のセクションで詳しく説明します)。
- デプロイ:コンポーネント定義と自動化を使用してデプロイとテストを実行。
- 発見:自動化を適用するたびに、デプロイされたアプリケーションやソフトウェアをテストし、どのようなギャップがあるのかを発見。その後、始めに戻って問題があった点を再定義し、再度この 3 ステップのサイクルを繰り返します。何がうまくいくのか、うまくいかないのかを見極め、それぞれの問題の解決策を学ぶことで、このサイクルは徐々に速くなっていきます。
知っておいていただきたいのは、最初からすべてを 100% 正しいものにする必要はないということです。調整、修正、改良を重ねるほど、プロセスはスムーズに実行されるようになり、より繊細で完璧に近づきます。
自動化は、まったくしないかすべて自動化するかの二元論で語られるべきものではありません。チームの全員がメリットを得られる自動化を少しずつ、段階的に進めることは、必要な知識をすべて自分の中にため込んでいる自動化エンジニアが 1 人か 2 人いるよりも、はるかに良いことです。自動化は、組織内で誰もが貢献して活用する共通言語となる必要があります。
このアプローチには連続性があり、移行全体が完了して自動化されるまで、学習しながら前進することができます。次回の移行が必要になったときには、必要な作業が大幅に減少しているはずです。新しいテクノロジーが利用できるようになったときにそれを活用して、はるかに短い時間で新しい環境に移行できます。段階的なアップデートと改善は、個人ではなく、すべてのシステム管理者によって共有されます。
Ansible Playbook
移行プロセスの各コンポーネントとステップを定義したら、それらを繰り返し使える Playbook にまとめて、新しい環境への適用を開始します。
Ansible Playbook は設定、デプロイメント、オーケストレーションの機能を記録して実行します。繰り返し利用可能で再利用可能なシンプルな構成管理とマルチマシン導入システムを提供し、移行プロセスを効果的に記録し、必要に応じて繰り返し利用できます。
このように、Red Hat Ansible Automation Platform を使用した自動化によって、迅速なイテレーションと迅速な繰り返しが可能になり、その結果、存在する可能性のあるギャップと問題が明らかになり、はるかに迅速に対処されます。
プロセスを繰り返す
同じプロセスを使用してすべてのもの (インフラストラクチャ、アプリケーション、ファイアウォール設定など) を定義すると、必要な部分の使用をやめて新しいものと交換する (たとえば、Amazon 仮想マシンをデプロイするインフラストラクチャの使用をやめて、Rackspace 仮想マシンと交換する) のが容易になります。
開発モデルに関係なく、簡単かつ迅速にデプロイすることができます。これは、簡単な移行を可能にするために重要です。その結果、よりスムーズなプロセスができ、システムをどこへでも簡単に移行できるようになります。
留意すべきこと
次のことを覚えておいてください。
- 必ず、すべてのコンポーネントとプロセスをキャプチャしましょう。
- システムを手動でいじることはできるだけ避けましょう。代わりに、できる部分を自動化します。
- 諦めたり、圧倒されたりしないようにしましょう。簡単な作業、つまり、最も頻繁かつ一貫して行う作業を 1 つか 2 つ自動化することから始めましょう。そうすると、自分の時間量に影響が出始めます。
- 移行で重要なのは繰り返し可能であることです。繰り返し可能であるほど、プロセスを選択して別の場所に移行するのが簡単になります。
- すべての依存関係を考慮しましょう。移行が必要だが移行が難しいデータベースに依存する Web アプリケーションのように、システムをローカルに保持する複数の依存関係が存在する場合があります。
トレーニングを受講する
Red Hat Ansible Automation Platform は、エンタープライズ全体の自動化を実装するために必要なすべてのツールを備えており、開始して実行を継続するために必要なトレーニング、認定、サポートが含まれています。複数のトレーニングコースと認定資格に加えて、Red Hat ラーニングサブスクリプション (7 日間無料で試すことができます) をご用意しています。Red Hat Ansible Automation の機能についてはこちらの動画でご紹介しています。また、製品ページにアクセスすると詳細を確認できます。