|
序文 さまざまなビジネスが IT にますます依存するようになり、クラウド コンピューティング テクノロジーが普及するにつれて、企業の IT インフラストラクチャの平均規模は拡大し続けています。 Web 2.0企業の中には、2週間以内に数千台のサーバーを追加する必要があるところもあります。そのため、運用・保守において、サーバーを一つ一つ手動で設定するのは面倒で非効率なだけでなく、保守や拡張にも大きな悪影響を及ぼします。 従来型の企業においても、定期的なバックアップ、サーバーステータスの監視、ログ記録などは、手動で行うと非効率で人的資源の無駄になります。そのため、自動化は長年にわたり、すべての運用保守(O&M)担当者が習得すべき必須スキルとなっています。 自動化の規模、要件、実装方法は企業によって大きく異なるため、運用チームが他社の手法を技術レベルでそのまま適用することは困難です。しかし、多くの場合、自動化の根底にある原則には共通点があります。 運用と保守の自動化の最初の3つの段階 ◆ 手動ステージ: ソフトウェアの導入とメンテナンスは手動操作によって繰り返し実行されます。 ◆スクリプト段階:スクリプトを記述することで、ソフトウェアの導入やメンテナンスが簡単に行えます。 ◆ツールフェーズ: サードパーティ製のツールを使用して、ソフトウェアを効率的かつ便利に導入および保守します。 これらの段階は、運用に関する知識、経験、そして教訓が継続的に蓄積されるにつれて進化していきます。さらに、第2段階と第3段階は並行して進行していると言えます。Linuxには既に多くのサードパーティ製ツールが存在しますが、運用作業の円滑化におけるLinuxスクリプトの役割は紛れもなく重要です。 DevOps が登場する前は、運用および保守担当者は主にこれら 2 つの方法を業務に使用していました。 Linuxに役立つオープンソースツール 1. 準備ツール キックスタート Red Hatが先駆的に開発したKickstarterインストールは、事前に設計されたインストールプロセスに従う、完全に自動化されたシステムインストール方法です。インストール方法には、CD-ROM、ハードドライブ、ネットワークなどがあります。 靴屋 Cobblerは、ネットワーク経由でLinuxを迅速にインストールするためのサービスです。改良を加えることで、Windowsのネットワークインストールにも対応できます。Pythonで開発されたこの小型軽量ツール(コード行数はわずか15,000行)は、シンプルなコマンドでPXEネットワークインストール環境を構築できるほか、DHCP、DNS、yumパッケージイメージの管理も可能です。 オープンQRM openQRMはオープンなプラグイン管理アーキテクチャを提供し、NagiosやVMwareなどの既存のデータセンターアプリケーションを容易に統合できます。openQRMの自動化されたデータセンター運用は、可用性の向上だけでなく、企業のデータセンター管理コストの削減にも役立ちます。このオープンソースのデータセンター管理プラットフォームは、プラグ可能なアーキテクチャを通じてデバイスの導入と監視の様々な側面を自動化し、特にクラウドコンピューティング/仮想化ベースのビジネスにメリットをもたらします。 宇宙遊泳 Spacewalkは、Fedora、Red Hat、CentOS、SUSE、DebianのLinuxサーバーを管理できます。データセンターに複数のLinuxサーバーがある場合、手動での管理はもはや適切ではありません。Spacewalkはパッチ、ログイン、アップデートを管理できます。 運用保守(O&M)の自動化、ビッグデータ/クラウドコンピューティングの時代において、サーバーやアプリケーション環境の自動インストールを事前に設定しておくことは、O&Mの効率性を向上させるだけでなく、作業負荷とエラー発生率を大幅に削減します。これは特に、数百台、数千台のサーバーを保有する企業にとって重要です。システムインストールに必要な作業負荷と時間は、自動化なしでは想像を絶するほど膨大になります。 2. 構成管理ツール 年配世代: シェフ Chef は、Ruby などのコードを使用してサーバーを管理および構成し、独自のライブラリを作成できるシステム統合フレームワークです。 コントロール層 ControlTierは、複数のサーバーおよびアプリケーション層(コード、データ、構成、コンテンツ)にわたるサービス管理アクティビティを自動化するための完全なオープンソースシステムです。ControlTierの一般的な用途には、アプリケーションのデプロイ、状態管理、複数のサーバーにわたるオンデマンドの管理タスクの実行などがあります。ControlTierはクロスプラットフォームであり、同じ物理サーバー、仮想マシン、またはクラウドコンピューティングインフラストラクチャで使用できます。 機能 Funcは、Red HatがFedora Unified Network Controllerの一部として設計・開発したシステム管理フレームワークです。統合管理および監視に関する一連の問題を解決することを目的としています。多くのサーバーシステムの管理を効果的に簡素化できるツールです。習得しやすく、使いやすく、拡張しやすく、機能が充実しており、設定もシンプルという利点があります。 人形 Puppetは、オープンソースのソフトウェア自動化設定およびデプロイメントツールです。使いやすく強力なため、ますます注目を集めています。多くの大手IT企業が、クラスタ内のソフトウェアの管理とデプロイメントにPuppetを使用しています。 若い世代: ソルトスタック Salt は、簡単に導入でき、数分で起動して実行でき、拡張性が高く、数万台のサーバーを簡単に管理でき、サーバー間の通信を数秒で可能にするほど高速な、まったく新しいインフラストラクチャ管理アプローチです。 アンシブル Ansibleは、Pythonベースで開発された新興の運用保守ツールです。多くの既存の運用保守ツールの利点を組み合わせ、オペレーティングシステムのバッチ構成、プログラムのバッチ展開、コマンドのバッチ実行などの機能を実現します。 大規模な展開を行う場合、サーバー環境を手動で構成することは非現実的であり、自動展開ツールを使用する必要があります。 3. 監視ツール ナギオス Nagiosは、無料で利用できるオープンソースのITインフラストラクチャ監視システムです。強力で柔軟性が高く、Windows、Linux、VMware、Unixホストの状態だけでなく、スイッチやルーターなどのネットワーク設定も効果的に監視します。ホストまたはサービスに異常が発生すると、メールまたはSMSでアラートを送信してIT運用担当者に即座に通知し、状態が回復すると通常のメールまたはSMS通知を送信します。 オープンNMS OpenNMS は、ネットワーク サービスを自動的に識別し、イベントを管理および警告し、パフォーマンス測定を実行し、その他のタスクを実行できるネットワーク管理アプリケーション プラットフォームです。 サボテン Cactiは、PHP、MySQL、SNMP、RRDToolをベースに開発されたネットワークトラフィック監視およびグラフィカル分析ツールです。snmpget経由でデータを取得し、RRDtoolを使用してグラフを描画します。インターフェースは非常に美しく、RRDtoolのパラメータを理解することなく、魅力的なグラフを簡単に作成できます。さらに、RRDtoolの複雑なパラメータを理解する必要もありません。強力なデータ管理機能とユーザー管理機能を備えており、ツリー構造、ホスト、任意のグラフを表示できるユーザーを指定できます。また、ユーザー認証のためにLDAPと統合でき、独自のテンプレート、SNMPクエリ、スクリプトを追加することもできます。ユーザーフレンドリーなインターフェースを備えた、非常に強力で包括的なツールです。 ゼノス・コア Zope アプリケーション サーバーをベースとしたアプリケーション/サーバー/ネットワーク管理プラットフォーム。可用性、構成、パフォーマンス、およびさまざまなイベントを監視するための Web 管理インターフェイスを提供します。 ザビックス Zabbixは、分散システムとネットワーク監視機能を提供するWebベースのインターフェースを備えたエンタープライズグレードのオープンソースソリューションです。サーバー/サービスやその他のネットワークデバイスの状態を監視するためのネットワーク管理システムです。バックエンドはC言語、フロントエンドはPHPで記述されており、様々なデータベースとの連携が可能です。また、様々なリアルタイムアラートメカニズムも提供しています。 神経節 Gangliaは、高性能分散システム(クラスタ、グリッド、クラウドコンピューティングなど)向けに設計されたスケーラブルな監視システムです。階層型アーキテクチャに基づき、最大2000ノードのクラスタをサポートします。CPU負荷分散やネットワーク使用率など、リアルタイムまたは過去のシステム統計情報をリモートから監視できます。Gangliaは、マルチキャストベースのlisten/publishプロトコルを使用してクラスタの状態を監視します。Gangliaの実装には、XML(データ記述)、XDR(コンパクトポータブルデータ転送)、RRDtool(データストレージと可視化)など、さまざまなテクノロジーが統合されています。 データ監視とビジネス監視は、問題をタイムリーに検出し解決するために不可欠です。監視システムには、主にサービスアプリケーション監視、ホスト監視、ネットワークデバイス監視、ネットワーク接続監視、ネットワークアクセス品質監視、分散システム監視、アラーム設定、監視グラフと履歴データなどが含まれます。 運用と保守における自動化の重要性 自動化とは、運用・保守において反復的で煩雑な作業を削減するために確立されたプロセス手法を指します。自動化は、人的ミスの削減、タイムリーなアラームと障害復旧、ビジネス可用性の向上といったメリットももたらします。 運用保守業務の自動化には、まさに上記の2つの側面が含まれます。要約すると、分散したタスクを一元化し、複雑なタスクを簡素化・整理し、プロセスを標準化し、生産性を最大限に高めること、つまり運用保守担当者の負担を軽減することです。 自動化のスキルと意識は、運用・保守(O&M)業務において極めて重要です。O&Mは単にツールを使用するだけでなく、多くの技術と意識が求められます。具体的な技術と意識には以下が含まれます。 1. これらの素晴らしいツールを習得し、自分の利益のために使用する方法。 2. さまざまなアプリケーション環境に基づいてさまざまなツールを選択する方法。 3. 用途等に合わせたツールの組み合わせ方や使い方 覚えておくべき重要な点は、ツールは運用と保守において人を支援するだけであるということです。人間の介入と意思決定は依然として必要であり、ツールがすべての運用と保守作業を完全に代替できるわけではありません。ツールは実際のビジネスロジックとシナリオに統合される必要があります。アーキテクチャと同様に、TaobaoやBaiduのような大企業が採用しているすべてのアーキテクチャが、すべての企業や事業に適しているわけではありません。 自動化された運用と保守の範囲 ◆設置の自動化 ◆ デプロイメントの自動化 ◆ 監視自動化 ◆自動展開 ◆ アップグレードの自動化 ◆自動化されたセキュリティ管理 ◆自動化の最適化 ◆自動データバックアップ 自動化管理とセキュリティにおける過去の技術実装としては、HP OpenviewやIBM TivoliといったHPとIBMのITILおよびITSM製品が挙げられます。これらのツールはすべてLinux版があり、他の類似ツールに対する優位性は、成熟した商用アプリケーションにあると言えます。これらはすべて確立されたブランドです。 現在、Git、SVN、Jenkins、Docker などの自動化ツールや、オープンソース ソフトウェアがいくつかあります。 ツールの選択 小規模な Web サイトから、数百万または数千万のユーザーがいる Web サイトまで、アーキテクチャの規模に応じて、さまざまなツールを選択します。 ツールを選ぶ際には、数百万、数千万のユーザーを抱えるウェブサイトの場合は、成熟度が高く、高性能で使い慣れたツールを検討する必要があります。小規模なウェブサイトの場合は、オープンソースや無料のツールを検討する必要があります。 この原則はアプリケーション指向です。数百万、数千万のユーザーを抱えるウェブサイトには、幅広い課題が伴い、高い要件が求められます。未熟なツールは、リーダーや企業に導入を納得してもらうのが難しい場合が多いため、主に成熟度に重点が置かれます。 自動化された運用および保守計画 自動化は、いくつかのツールを学ぶだけでは実現できません。実際、計画が不十分だと、自動化は人員削減に失敗するだけでなく、より多くの問題を引き起こす可能性があります。 したがって、運用および保守担当者は、自動化プロセスを設計する際に次の原則を考慮する必要があります。 1. 用途に応じてツールを選択します。 2. 重要なアプリケーションの場合は、成熟度の高いツールを選択します。 3. 1 つのツールに頼りすぎず、比較と分析が必要です。 4. ツールの特性を習得します。 5. ツールを制御するのは人間であり、ツールを監視するのは人間であり、ツールが人間を制御するのではない。 6. スクリプトを使用してカスタマイズされたシナリオを作成するスキルがあります。 自動化の経験の蓄積 ◆ 定期的に優れた IT メディアの Web サイトを閲覧し、このトピックに関する記事を読むことで、知識と学習の幅が広がります。 ◆会社のビジネスシナリオに基づいて、いくつかの自動化ツールを選択し、公式サイトにログインして、その動作原理を学習して理解します。 ◆ オフライン自動化運用・保守活動やメディアイベントに定期的に参加し、自動化分野の専門家や上級プロフェッショナルとコミュニケーションを図ります。 |