「構成管理」は、システムエンジニアリングプロセスの一部であり、ライフサイクル全体にわたる複雑なシステムの設計、統合、および管理に重点を置いています。
これには、提案された変更を効率的に管理、分析し、変更のステータスを追跡し、システムの完全性を長期にわたって維持するためのポリシー、手順、ツール、および技術を導入することが含まれます。
ソフトウェア構成管理の作業のほとんどが自動化されているため、手作業によるエラーの可能性を最小限に抑え、従業員は他の重要な事柄に集中することができます。現在、市場には、システム管理を容易にし、拡張性を高めるこのようなツールが溢れています。
完璧なソフトウェアというものはありませんが、もしかしたら、独自の要件にぴったりのツールがあるかもしれません。この記事では、世の中にある最高の構成管理ツールをいくつか紹介しています。それぞれのツールは、特異な機能を備え、複雑さのレベルも異なります。
13. IBM Rational Synergy
長所
✔高度なベースラインおよびリリース管理機能
✔すべてのファイルと論理的な変更を容易に判断
✔ソフトウェアの再利用とコンポーネントベースの開発をサポート
短所
✖大きなファイルを扱う際に予期せぬエラーが発生することがある
価格:年間1,690ドルから
IBM Rational Synergyは、ソフトウェア開発チームとシステム開発チームのコラボレーションを促進し、全体的な生産性を向上させるタスクベースの構成管理ツールです。文書、コード・スクリプト、ソフトウェア実行ファイル、ライブラリなど、ソフトウェア開発に関連するすべての成果物を管理する単一のリポジトリで構成されています。
IBM AIX、Linux、Windows、Solarisなどの多くのOSで動作します。また、Rational Change などの他のIBMのソフトウェアと統合して、開発状況や変更要求の影響をリアルタイムに可視化します。
このツールは、特定のリリースに含まれるすべてのファイルと論理的な変更を簡単に判断することができます。自動検出機能が付いているため、完全で一貫性のあるビルドを実現できます。また、迅速なバックアップ機能により、ダウンタイムを最小限に抑えることができます。
12. ServiceNow Configuration Management Database
長所
✔利用者のIT環境の正確で最新の情報を提供する
✔複雑な構成をわかりやすくグラフィカルに表示する
✔外部ソースから認証データをインポートできる
短所
✖モジュールや機能がモバイル機器に対応していない
価格:定額ではない(ライセンスの数と種類によって異なる)
ServiceNow Configuration Management Databaseは、企業のITサービスで使用されるハードウェアとソフトウェアのコンポーネントに関するすべての関連情報を含むデータベースです。また、それらのコンポーネント間の関係も追跡します。
この広範な情報を使用して、構成データの整理されたビューを提供し、企業のインフラとサービスの完全な可視性を得て、情報に基づいた意思決定を行うことができます。
このツールは、標準的な分類法、データ品質基準、定義済みのセマンティクス【コードの断片の意味】、共通のプロセスを持つ単一のデータモデルに基づいて構築されています。そのコア機能により、健全性に関する問題の監視と特定、データの整合性に関する問題の調整、データ・ライフサイクルの管理を容易に行うことができます。
11. Docker
長所
✔開発の生産性を向上させる
✔Windows/Linuxのコマンドラインとのシームレスな統合
✔あらゆる運用インフラや複数のクラウドに対応
✔大規模なコミュニティがDockerをサポートしている
短所
✖学習コストが高い
✖システムリソースを大量に消費する
価格:月額5ドルから。無料版(無制限の公開リポジトリ付き)もある
Dockerの特徴は、軽量なコンテナ化技術にあります。必要なコンポーネントをすべてコンテナに入れてアプリケーションを展開するため、構成や設定にかかわらず、どのようなLinuxサーバーでも実行することができます。
利用者は、コンテナを作成、設定、テンプレートとして保存し、Dockerエンジンを搭載した他のホストで使用することができます。これらのテンプレートは、さらに同じ構成のコンテナを作るために使用可能です。このようにして、Dockerはワークフローを簡素化し、高速化します。
アプリケーションを独立したコンテナや異なる言語で展開することができます。これにより、言語、フレームワーク、ライブラリ間の競合のリスクが軽減されます。Dockerは、GitHub、CircleCI、VS Codeなどの一般的な開発プラットフォームで動作します。
10. Octopus Deploy
長所
✔スクリプトを使わずにあらゆるものをデプロイできる
✔定常処理および緊急時の手順書を自動化
✔すべてのDevOps【Development and Operationsの略語、ソフトウェア開発手法の一つ】の自動化を行う
✔高度なデプロイパターンをサポート
短所
✖階層構造や設定は、初めてのユーザーを混乱させることがある
✖間違ったバージョン情報が数時間表示されることがある
価格:10個のデプロイメントターゲットまでは無料、ターゲットごとに9ドル/月
Octopus Deployは、NodeJSアプリケーション、ASP.NETウェブアプリケーション、Javaアプリケーション、およびカスタムスクリプトのデプロイを、クラウドおよびオンプレミスのインフラで簡単に自動化することができます。
事前に設計された400以上のステップテンプレートにより、最新のアプリケーションや旧来のアプリケーションの最も複雑なデプロイを簡素化します。また、ローリング、カナリア、マルチテナンシーなどの最新のデプロイパターンをサポートしています。
また、リリースの管理や、定常処理および緊急時の運用タスクの自動化にも使用されています。CISO、NASA、StackOverflow、DocuSign、Fortune100のうちの25社など、世界中に25,000以上の顧客がいます。
9. Rudder
長所
✔1回のインストールで10,000台以上のマシンを管理可能
✔直感的なUI、内蔵のテンプレートライブラリとエディタ
✔継続的な脆弱性管理
✔ホストごとのポリシーを動的に生成
短所
✖他のツールに比べてコミュニティが少ない
価格:1ノードあたり年間70ドル。無料版もある
Rudderは、重要なシステムの設定を継続的に展開、監査、修正することができるオープンソースのツールです。
その動作原理は、管理対象の各マシンにインストールされた軽量のローカル・エージェントに依存しています。具体的には、各マシンにインストールされたエージェントはpullモードで動作し、中央のサーバーから設定を回復して、自律的に継続して適用します。
Rudderは、日常的にマシンを設定するためのウェブ管理インターフェイスを提供します。セキュリティポリシーの適用、脆弱性の管理、詳細なレポートによるインフラの分析が可能です。また、ドラッグドロップ式の設定エディタを採用しているため、非常に特殊なビジネスタスクを実行する場合でも、プログラミングのスキルを必要としません。
8. Juju
長所
✔OpenStackクラウドを迅速にモデル化して展開する最速の方法を提供する
✔アプリケーション・サックに関する予備知識は必要ない
✔ビッグデータやPAASなど、スケールアウトしたワークロードに強い
短所
✖タスクによっては、完了までに時間がかかりすぎる
価格:無料
Jujuはオープンソースのモデリングツールで、コマンドラインやグラフィカルなUIを使ってクラウドアプリケーションを効率的にデプロイ、設定、管理することができます。GUIで独自のソリューションを作成したり、ストアを閲覧して使い始めることができます。
このツールは、アプリケーションの展開、構成、保守に必要なすべての情報を含む、チャームと呼ばれる様々なスクリプトのセットを提供します。チャームには、依存関係、対話オプション、スケールアウトの手法、バックアップやアップデートのような運用イベントなど、アプリケーション固有の知識が集約されています。
チャームは、あらゆるプログラミング言語や構成管理スクリプトシステムで記述することができ、Linuxアプリケーションと一緒に導入することができます。また、MySQLやMongoDBなど、何百ものオープンソースアプリケーションに対応しています。独自のチャームを書く(または利用可能なチャームを呼び出す)だけで、対応するサービスが数秒でデプロイされます。
7. SaltStack
長所
✔リモートシステムを並行して実行
✔仮想マシンの自動化
✔Masterあたり1万のminions【すべての管理対象ノードにインストールされるオプションの Salt エージェント】を制御できる設計
✔初期設定が済んだ後のメンテナンスが少ない
短所
✖他のツールに比べてドキュメントが少ない
✖設定の構文を理解するのに多少の学習が必要
価格:1ノードあたり年間150ドルから。30日間の無料トライアルがある
SaltStackは、IT企業が大規模なクラウドインフラの管理とセキュリティを実現するためのイベント駆動型自動化ツールです。このオープンソースのツールのアーキテクチャは、リモートでコマンドを実行するという考え方に基づいています。これには、シェルセッション【シェル/端末の現在の状態/環境】を使用してリモートサーバーに対してインタラクティブにコマンドを発行するような複雑なタスクの実行や、リモートウェブサーバーに静的なウェブページを表示するよう指示するような単純なタスクの実行が含まれます。
このツールは、多数のマシンを明示的にターゲットにして、直接コマンドを発行することができます。1つまたは複数のminionsを制御するMasterという考え方に基づいています。
ユーザーはMasterからminionsの集団に向けてコマンドを発行し、minionsはコマンドで指定されたタスクを実行し、データをMasterに返します。特定のアクションを管理するために、様々なタイプのモジュールを管理することができます。
SaltStackは、高速かつスケーラブルに構築されています。Google、Wikimedia、LinkedInなどで、数千台のサーバーを持つ大規模なインフラの管理に使用されています。
6. Bamboo
長所
✔シンプルなユーザーインターフェイス
✔ビルドを自動的にデプロイするため、時間を大幅に節約できる
✔非常にわかりやすいエラーログ
✔優れたサポートチーム
短所
✖ドキュメントやビデオチュートリアルが非常に少ない
価格:10ジョブまでは10ドル、ローカル・エージェントは無制限
Bambooは、継続的デリバリとリリース管理のためのツールです。ビルドエンジニア、開発者、テスター、システム管理者が共通のプラットフォームで作業し、データを共有することができる一方で、本番デプロイなどの機密性の高い作業を非公開にすることができます。
あらゆるプログラミング言語や、Docker、AWS CodeDeploy、Amazon S3などの一般的な技術に対応しています。ビルドプロジェクトとデプロイプロジェクトの両方で、あらかじめ用意された数多くのタスクの中から選択することも、無料のアドオンを探すこともできます。
約100種類のビルドエージェントをサポートしており、複数のテストを並行して実行したり、キューを流し続けたり、素早くフィードバックを得るための十分なパワーを備えています。
さらに、Bamboo、JIRA、Bitbucket は完全に統合されており、機能リクエストからデプロイまでの完全なトレーサビリティを実現しています。
5. SolarWinds Network Configuration Manager
長所
✔設定変更をリアルタイムに通知
✔一度に多数の機器に変更を適用可能
✔ファームウェアのバージョンや規格への準拠状況をレポート
短所
✖価格が高い
✖Cisco以外の機器の情報はそれほど詳細ではない
価格:1,687ドルから。30日間の無料トライアルがある
SolarWinds Network Configuration Managerは、ネットワークスキャンとディスカバリーを利用して、すべてのネットワーク機器の最新の状態を把握することで、ネットワーク機器の正確なインベントリを作成することができます。
このツールを使えば、HP、Cisco、Dell、Juniperなどのスイッチ、ルーター、その他のネットワーク機器の設定とコンプライアンスを管理することで、ネットワークのセキュリティと信頼性を高めることができます。
スクリプトの実行、設定エラーの表示、定期的なバックアップのスケジューリングなど、重要なプロセスを簡略化します。異機種混在のネットワークにおいて、様々な機器の設定を管理するために多大な労力を費やす必要はありません。このツールは、ネットワークのダウンタイムを最小限に抑えながら、すべてを処理します。
ネットワーク機器ファイルのバックアップを確実に行い、不確実なイベントから守ります。また、必要に応じて変更できる、各機器の詳細なレポートを提供します。
4. CFEngine
長所
✔インフラを一目で見渡せる包括的な可視性を提供
✔カスタムアラートとアクション
✔低消費電力のデバイスにも最適
✔強力なユーザーコミュニティがある
短所
✖学習コストが高い
✖すぐに使えるモジュールがない
価格:25ホストまで無料で接続可能。クレジットカードは不要
ミッションクリティカル【必要不可欠】なITインフラを安全に管理するために、CFEngineはオープンソースと商用の両方のオプションを提供しています。分散型アーキテクチャを採用しているため、数千ノードへの拡張も容易です。
CFEngineの最初の製品版は1993年にリリースされており、開発と使用の長い伝統があります。これは、コードベースが効率的で、エラーが起こりにくいことも意味しています。
このソフトウェアは、直感的なダッシュボードとレポートによって、潜在的な構成上の問題、インフラのインベントリデータ、およびコンプライアンス情報を可視化します。また、ポリシーアナライザという機能があり、各行のポリシーがサーバー上でどのように機能しているかをリアルタイムに知ることができ、推測せずにトラブルシューティングを行うことができます。
CFEngineは、数千台のサーバーを持つ大規模なデータセンターを多数運営しており、100カ国以上のユーザーが登録しています。Samsung、Panasonic、Pfizer、LinkedInなど、数多くの人気ブランドから信頼を得ています。
3. Chef
長所
✔アプリケーションのデプロイとインフラのテストをワンストップで行うことができる
✔プログラムによる自動化を実現
✔クラウドとの優れた統合
✔優れたWindowsサポート
短所
✖適切なドキュメントがない
✖大規模な集団を管理する際、その複雑さが裏目に出ることがある
価格:1ユーザーあたり年間250ドルから。無料版もある
RubyとErlangで書かれたChefは、組織内のサーバーの設定とメンテナンスを効率化するために使用されます。Chefは、OpenStack、Microsoft Azure、Amazon EC2、Oracle Cloud、Google Cloud Platformなど、多くのクラウドベースのプラットフォームと統合することができ、小規模なシステムから大規模なシステムまで、自動的にプロビジョニングと設定を行うことができます。
Chefの特徴は、プログラミングに対する宣言的なアプローチにあります。これにより、長期的に大混乱を引き起こす可能性のある、長くて複雑なコードを記述する必要がなくなります。この自動化ツールを使えば、数回のクリックで、あらゆる機器にソフトウェアアプリケーションを展開・管理することができます。
プログラミングにあまり精通していないチーム員でも使用することができます。しかしながら、Chefは純粋なRubyのドメイン固有言語を使用しているため、システム構成の 「レシピ【設定内容を記述したファイル】」を書くためには、Rubyの基本的なスキルが必要です。
Chefは、そのソフトウェアの100%をApache 2.0ライセンスの下でオープンソースとして開発しており、その使用に制限はありません。その商的流通であるChef Enterprise Automation Stackは、そのオープンソースコードのみで構築されており、コンプライアンス、アプリケーションの自動化、セキュリティを統合しています。現在、Fortune 500企業の半数以上に採用されています。
2. Ansible
長所
✔最小限の学習で済むシンプルなセットアップ過程
✔インフラを分かりやすい言葉で説明できる
✔新しいリモートマシンをすぐに管理できる
✔優れたドキュメントとサポート
短所
✖大規模で複雑なインベントリでは苦労する
✖Red Hatのエコシステムへの参加が必要
価格:年間5,000ドル(100ノードまで)から。無料試用版がある
Ansibleは、アプリケーションのデプロイ、構成管理、サービス内オーケストレーション、その他のITニーズを自動化するシンプルなIT自動化エンジンです。
単一のシステムを一度に管理するのではなく、基盤となるすべてのシステムがどのように相互作用するかを記述することで、ITインフラをモデル化します。エージェントやカスタムセキュリティインフラを使用しないため、非常に簡単に導入できます。
また、独自の宣言型言語を使用しており、自動化タスクを平易な英語で記述可能です。Python、Ruby、Perl、Bashなど、様々な言語でスタンドアロンのモジュールを書くことができます。これらのモジュールを(デフォルトではSSH経由で)実行し、ジョブが完了すると削除します。
Ansibleを使えば、WindowsとUnix系システムの両方を設定することができます。ベアメタルホストや仮想マシンのほか、VMware、KVM、Linode、OpenStack、Azure、Atomic、DigitalOcean、CloudStack、Amazon Web Services、Google Cloud Platformなど、様々なクラウド環境で動作します。
1. Puppet
長所
✔リソースの抽象化が可能
✔特定のメンテナンスアクションをスケジュールできる
✔迅速なリリースと進化
✔他のサーバーライフサイクル技術とシームレスに統合できる
短所
✖新しいプログラマーには難しいかもしれない
✖オープンソース版には適切なダッシュボードが付属していない
価格:10ノードを無料で提供後、1ノードあたり年間99ドルの課金となる
Puppetは、企業のインフラ全体における複数のアプリケーションやサービスのサーバー設定、展開、管理、オーケストレーションに広く利用されています。
Rubyで書かれたPuppetは、特にWindowsとLinuxシステムの設定を管理するために作られています。システムの構成を記述するのにドメイン固有の言語を使用しています。
Puppetはマスタースレーブ方式を採用しており、マスターとスレーブはSSLを使った安全な暗号化チャネルで通信します。
主に2つのバージョンがあります。
・オープンソースPuppet:自由にダウンロードできるOS固有のエージェントパッケージ、大規模なスケーラビリティを持つサーバー、データウェアハウス機能を提供します。
・商用版Puppet:ノードを効率的に管理するためのGUI、ロールベースのアクセス制御、API、イベント駆動の自動化ツールを備えています。
このソフトウェアは、すべてのものを望ましい状態に自動的に維持する一方で、ビジネスニーズの変化に応じて変更を加えるための制御を提供します。他のツールとは異なり、Puppetには状況認識機能と望ましい状態の衝突検知機能があります。また、5,000以上のコミュニティが提供するモジュールが含まれています。
よくある質問
構成管理ツールと資産管理ツールの違いは何ですか?
資産管理ツールは、最も効果的な方法で資産の開発、管理、アップグレード、廃棄を行うための体系的なプロセスに従っています。主に金融や公共インフラの分野で使用されています。一方、構成管理ツールは、財務会計的な側面は管理しませんが、他のすべてのサービス管理プロセスをサポートします。
構成管理ツールにはどのような機能がありますか?
このツールの主な目的は、システムやサービスの正確で詳細な記録を残し、定期的に更新することです。以下のような重要なタスクを実行します。
・アプリケーションの展開
・インフラの自動化
・自動化されたプロビジョニング
・ノード管理
・タスク管理
・ロールベースのアクセス制御
・可視化と報告
このようなソフトウェアを使用するメリットは何ですか?
ソフトウェア管理ツールは、ネットワークにインストールされているすべてのハードウェアとソフトウェアを正確に識別し、様々なハードウェアを設定し、機器を迅速にアップデートしたり、あらかじめ定義されたベースラインに復元するために使用できるスクリプトを作成します。これにより、
・障害やセキュリティ侵害のリスクを低減します
・技術資産の二重化の必要性を低減します
・正式なポリシーと手順を導入し、問題解決を迅速化します
・効率的な変更管理と迅速なサービスの復旧が可能になります
その他の利点は以下のとおりです。
・コーディング規約に準拠することで、コードのナビゲーションが容易になります
・効率的な設計分散により、何千ものリモートサーバーの管理が容易になります
・資産の重複が少ないため、コスト削減につながります
デメリットはありますか?
時代遅れのツールや設定が不十分なツールは、サイバーセキュリティ上の大きなリスクとなり、最終的にはデータ漏洩などのサイバー攻撃につながる可能性があります。インフラを自動化したい場合は、サイバーセキュリティ、情報セキュリティ、情報リスク管理の3つを念頭に置く必要があります。
今後の構成管理ソフトウェアとは?
2019年の世界の構成管理市場規模は16億ドルとされています。MarketandMarkets社のレポートによると、この数字は2019年から2024年の間に15.1%のCAGR【年平均成長率】で、2024年には33億ドルに達するということです。
成長を促す主な要因として、デジタル技術の出現や、ITリソースの簡素化と同期化に対する需要の高まりが挙げられます。予測期間中に最大の市場規模を保持するのは、情報技術対応サービスと通信部門です。