アカウントをお持ちの場合

  •   パーソナライズされたコンテンツ
  •   製品とサポート

アカウントをお持ちでない場合

アカウントを作成
自動化とプログラマビリティ

データセンターにおける自動化とプログラマビリティに関するガイド

CLI からクリックへ
ネットワークの自動化によって将来のビジネスに備える

概要

過去 5 年の間に、データセンターのあらゆる側面が、何らかの形で自動化による変革を経験しています。自動化されたワークフローと仮想化されたテクノロジーにより、データセンターの効率性と俊敏性は劇的に改善されました。サーバ、仮想化、およびクラウドの管理者は、「ソフトウェア定義型」で業務を遂行するようになりました。こうした変革によってネットワークにおける重点が変化し、イノベーションがもたらされました。

このドキュメントでは、主にネットワークの自動化とプログラマビリティに関する使用例に焦点を当てます。オープンで拡張可能なモジュール型のネットワーク オペレーティング システムに進化した Cisco NX-OS に注目し、それによってネットワーキング インフラストラクチャ導入の自動化がどのように促進されるかを示します。また、ネットワーク ファブリックの自動化による利点を詳細に確認し、NX-OS に加えてシスコが提供するオプションを示します。最後に、シスコの専門知識を活用して、ソフトウェア定義型ネットワーキング分野におけるあらゆる進歩を採り入れながら、将来のデータセンターに備える方法を紹介します。

多くの組織でマルチクラウド データセンター戦略が現実化するとともに、データセンターは、ネットワーク セントリックのアプローチからアプリケーション セントリック モデルに移行しつつあります。お客様にとって重要なのはネットワーク インフラストラクチャそのものではなく、アプリケーションを 24 時間 365 日利用できるかどうかです。同時に IT に対する要求がかつてなく高まり、アプリケーションに加え、基盤となるサーバ、ストレージ、およびネットワーク テクノロジーが急増したため、IT スタッフの負担がさらに増大しています。

自動化とプログラマビリティに関する、ビジネス観点からの重要な使用例としては、たとえば次のものがあります。

IT as a service
(ITaaS)
インフラストラクチャ プロビジョニング
および自動化
DevOps モニタリング
およびセキュリティ
コンプライアンス

組織が自動化を行う理由の上位に挙がるのはこれらのいずれかです。

そのため、現代のデータセンターのコンポーネント(スイッチ、ルータ、サーバ、サービス アプライアンス)には、さまざまな自動化機能をサポートし、外部ツール(既製およびカスタム)に強力な API を提供することが求められています。ネットワーク リソースのプロビジョニングと帯域幅割り当ての自動化に加えて、ネットワークのサービス レベル契約(SLA)に対応するための遅延保証が必要になります。同時に、ネットワークのパフォーマンスとコンプライアンスをモニタリングする必要もあります。またそうした機能が複数のツールにわたって存在し、サイロ化されていることも、IT 担当者にとっての課題になります。これは、最新のアプリケーションに対してますます増している、セキュリティ、拡張性、可用性の要件に対応できるネットワークを構築する上で重要です。

CLI および SNMP からの転換

ネットワーク管理者にとって、シンプルなコマンドライン インターフェイス(CLI)ほど扱いやすいものはありません。シスコが 1980 年代初頭に最初のルータを開発して以来、ほとんどのネットワーク エンジニアが、スモールオフィス向け LAN から広域キャリア ネットワークに至るまで、設定、管理、トラブルシューティングを CLI で行ってきました。その後、CLI に対するシスコのアプローチは業界のデファクト スタンダードになり、他のベンダーもそれを模倣してきました。

CLI は、ネットワーク デバイスと連携する主要なインターフェイスとして、ネットワーク デバイスのライフサイクル全体で管理、運用、トラブルシューティングに利用されてきました。CLI は非常に包括的なインターフェイスですが、自動化のためのインターフェイスとしては以下のような限界があります。

  • CLI は、ユーザが読み取り可能なインターフェイスとして設計され、非構造化テキスト データをオペレータに返します。
  • 非構造化テキスト データの場合、マシンが読み取りな形式にトランスコードする後処理(スクリーン スクレーピング)が必要です。
  • CLI は、プログラムによって処理可能なエラー コードまたは終了コードを返しません。
  • CLI はシングル スレッドのシリアル インターフェイスであるため、複数のオブジェクトを同時に操作することができません。

Cisco Nexus 9000 シリーズは、多くのネットワーク管理者やオペレータが自動化のために利用している、次のような標準的なネットワーク管理機能をサポートしています。

  • Simple Network Management Protocol(SNMP)
  • Syslog
  • リモート モニタリング(RMON)
  • Network Configuration Protocol(NETCONF)
  • CLI および CLI スクリプト

自動化とプログラマビリティを区別する理由

IT プロフェッショナルは、「自動化」と「プログラマビリティ」という言葉を区別せずに使うことがありますが、この 2 つは意味が異なります。ネットワーキング分野では、「自動化」という用語は、最初から自動化されているタスクに対して使用されています。こうした機能は、シスコなどのベンダーがデフォルトで提供している場合が多く、機能を使用するかしないかは任意です。

他のタスクについては、ネットワーク管理者が同じ一連のコマンドを CLI に何度も入力しなければならない場合があります。そしてある時点で、それらのタスクを自動化して効率を向上させようと考えます。そのような特定のタスクを自動化するために、オペレーティング システムのスクリプト機能を使用することができます。オペレーティング システムのこの機能は、主に「プログラマビリティ」と呼ばれます。オペレーティング システムがプログラマビリティをサポートする範囲はさまざまです。以降のセクションで示すように、NX-OS は、プログラマビリティに関して業界でトップクラスのオープン性、拡張性、安全性を誇る、モジュール型の高度なオペレーティング システムです。

ネットワーク オペレーティング システムの重要な役割

現在のデータセンターでは、組織とそのアプリケーションで必要とされる帯域幅を提供してサービスを保証する、可用性に優れたネットワークが必要になります。現在のネットワークは、パフォーマンスと復元力に関する特性に加えて、ネットワーク リソースの自動プロビジョニングおよびモニタリング、統計情報やイベントに対するプログラム アクセスなどの新しい機能をサポートし、エンドツーエンドの可視性、ロールベース アクセス コントロール(RBAC)、ポリシー管理を実現する必要があります。

現在のデータセンターのネットワークにおける多様なニーズに応えるには、ネットワーク デバイス、より詳細に言えば、デバイスを稼働させるオペレーティング システムで、次のことを実現する必要があります。

  • 復元力:重要なビジネスクラスの可用性を確保する
  • モジュール型:ビジネス ニーズの進展に応じて拡張させ、ライフサイクルを延長させる
  • 高度なプログラマビリティ 高度なプログラマビリティ
  • 安全性:データと運用を保護し維持する
  • 柔軟性:新しいテクノロジーを統合し活用する
  • 拡張性:ビジネスと要件の変化に対応する
  • 使いやすさ:必要な学習量が少なくなるように、導入と管理をシンプルにし簡単に利用できるようにする

Cisco Nexus 9000 シリーズ スイッチで動作する、オープンな拡張Cisco NX-OS Softwareは、これらすべての基準を満たしています。NX-OS は、多様なオープン ソース ソフトウェアや商用テクノロジーと統合することで、包括的な自動化、オーケストレーション、プログラマビリティ、モニタリング、コンプライアンスに対応します(図 1)。

スクリプトと
自動化

エンタープライズ
モニタリング

オーケストレーションと
自動化

OpenStack

ノースバウンド

SNMPV1/V2/V3、Syslog メッセージ、NETCONF、CLI、XML、RMON

Cisco NX-API、Python スクリプティング

オープンなモジュール型

NX-OS は常に Linux を基盤として包含していましたが、これまで Linux 機能はほとんどエンド ユーザに公開されていませんでした。Open NX-OS と呼ばれる Cisco NX-OS では、基盤になっている Linux オペレーティング システムのフル機能をエンド ユーザが利用できるようになっています。さらにシスコでは、適切なレベルのセキュリティと保護の下で特定のユーザがこれらの機能にアクセスできるように、多数の拡張機能を組み込んでいます。

また Open NX-OS では、常に NX-OS で提供されてきた、次のような Linux のベスト プラクティス機能が引き継がれています。

  • モジュール型:モジュールは、必要な場合のみカーネルにロードされます。モジュールは要求に応じてロードおよびアンロードできます。
  • 障害の分離:NX-OS の機能、サービス、およびユーザ アプリケーション プロセスを完全に分離できます。
  • 復元力:予期しない終了条件が発生すると、グレースフル リスタートまたはプロセスの再初期化が自動的に行われます。

Cisco NX-OS による自動化とプログラマビリティ

以降のセクションでは、Cisco NX-OS の自動化について概要を示します。大まかに次のように分類できます。

  • 設定済みの自動化
  • プログラマビリティ
  • Cisco Network Manager によるネットワーク ファブリック自動化
  • Cisco ACI ソリューションによるソフトウェア定義型ネットワーキング

設定済みの自動

Power on Auto Provisioning(POAP)

ネットワーク管理者は誰でも、すべてのスイッチング機器のソフトウェアを最新バージョンに維持するとしたら、多くの貴重な週末が犠牲になると考えるかもしれません。そこで有効なのが POAP(Power on Automatic Provisioning)です。POAP では、新しい Cisco Nexus スイッチを接続すれば、最新のコードに自動的にアップグレードされ、中央のサーバから設定を行うことができます。ルーチン ワークに時間を取られることなく、専門知識を必要とする業務に集中できるようになります。これがすなわち、生産性の向上です。

Extensible Messaging and Presence Protocol のサポート

Cisco Nexus 9000 シリーズ スイッチに搭載された拡張 Cisco NX-OS には、Extensible Messaging and Presence Protocol(XMPP)クライアントが統合されています。この統合により、9000 シリーズ スイッチでは、対人コミュニケーションに広く利用されている、XMPP 対応のチャット クライアントを利用して管理および設定を実施できます。XMPP のサポートにより、次のような有益な機能を利用できます。

  • グループ設定:Cisco Nexus 9000 デバイスのセットをチャット グループに追加することで、それらのスイッチをグループとして管理できます。たとえば、デバイスを個別に設定するのではなく、グループ内のすべてのデバイスに共通の設定を一度にプッシュできるようになります。
  • シングル ポイント管理:XMPP サーバが単一の管理ポイントとして機能します。ユーザは 1 つの XMPP サーバで認証を受ければ、サーバに登録されているすべてのデバイスにアクセスできます。
  • セキュリティ:XMPP インターフェイスでは RBAC がサポートされているため、ユーザは許可されたコマンドしか実行できません。
  • 自動化:XMPP はオープンな標準ベースのインターフェイスです。XMPP をスクリプトや管理ツールで使用することで、Cisco Nexus 9000 シリーズ デバイスの管理を自動化できます。

Puppet や Chef を含む DevOps のサポート

コードの記述と導入については、アジャイル開発手法、または継続導入のアプローチが取られるようになっています。この継続導入と呼ばれる方法では、アプリケーション開発者は、高度に分散化されたクラウドベースのインフラストラクチャに実稼働環境用のコードを継続して導入していきます。ほぼ同一のサーバにほぼ同一のサービスを導入することが多い場合には、効率性を最大にするために、インフラストラクチャ全体の設定とメンテナンスを自動化することが不可欠です。Chef や Puppet などの導入および設定管理ツールは、自動化できるように設計されています。それらのツールにより、環境全体の自動化とオーケストレーションがシンプル化され、標準化された一貫性のある導入が可能になります。

Chef では、「レシピ」と呼ばれる再利用可能な設定または管理タスクのセットを利用して、ユーザがインテントを定義することができます。定義したレシピは多数のデバイスに導入できます。Cisco Nexus 9000 シリーズ スイッチに導入されたレシピは、統計情報と分析情報の収集に使用する、ネットワーク構成設定とコマンドに変換されます。それにより、スイッチの設定と管理が自動化されます。

Puppet では、「マニフェスト」と呼ばれる、同様のインテント定義構造を使用します。9000 シリーズ スイッチに導入されたマニフェストは、スイッチ情報の収集に使用する、ネットワーク構成設定とコマンドに変換されます。

Puppet と Chef はどちらも広く導入されており、インフラストラクチャ自動化および DevOps コミュニティで注目されています。Cisco Nexus 9000 シリーズでは Puppet と Chef 両方のフレームワークがサポートされており、Puppet と Chef のクライアントが、スイッチの拡張 Cisco NX-OS に統合されています。

OpenStack の統合

Neutron は、OpenStack 用のネットワーキング機能を提供します。それにより、OpenStack 内の各コンポーネントが、外部とすばやく効率的に通信できるようになります。9000 シリーズでは、Neutron 用の Cisco Nexus プラグインもサポートされています。このプラグインにより、業界をリードするネットワーク プラットフォームを利用して Infrastructure-as-a-Service(IaaS)ネットワークを簡単に構築できます。使い慣れた管理機能と制御機能を利用して、パフォーマンス、スケーラビリティ、安定性を確保できます。このプラグインを使用することで、クラウド ネットワークの運用がシンプルになります。OpenStack の機能を利用すればオンデマンドのセルフサービス マルチテナント コンピューティング インフラストラクチャを構築できることはよく知られていますが、OpenStack の VLAN ネットワーキング モデルを仮想および物理インフラストラクチャ全体に導入することは、必ずしも容易ではありません。OpenStack Networking は、ネットワークを直接設定できるプラグインがサポートされた、拡張可能なアーキテクチャを提供しています。

包括的なプログラマビリティのサポート

オープンな拡張 Cisco NX-OS の包括的なプログラマビリティ機能により、自動化機能のカスタマイズやスクリプト処理が可能になります。

Cisco NX-API のサポート

Cisco Nexus 9000 シリーズ スイッチに搭載された Cisco NX-API により、Web ベースのプログラムで Cisco Nexus 9000 シリーズにアクセスできます。この機能は、オープン ソースの Web サーバである NGINX を通じて実現されます。Cisco NX-API では、Web ベース API を通じて CLI のすべての設定機能および管理機能を公開しています。Cisco Nexus 9000 シリーズ スイッチでは、API コールの結果を XML または JSON 形式で出力するように設定できます。この包括的で使いやすい API により、9000 シリーズ スイッチで迅速な開発が可能になります。

Python スクリプティング

Python は簡単に習得できる強力なプログラミング言語です。効率的で高水準なデータ構造を持ち、オブジェクト指向プログラミングに対してシンプルで効果的なアプローチを取っています。Python は、簡潔な構文、動的な型指定、インタープリタ型という特長を持っており、ほとんどのプラットフォームのさまざまな分野でスクリプティングと高速アプリケーション開発が可能な優れた言語です。

Cisco Nexus 9000 シリーズは、インタラクティブ モードと非インタラクティブ(スクリプト)モードの両方で Python Release 2.7.5 をサポートしています。

Cisco Nexus 9000 シリーズ スイッチの Python スクリプティング機能により、スイッチの CLI にプログラムからアクセスし、POAP および Cisco Embedded Event Manager(EEM)のアクションを含むさまざまなタスクを実行できます。Cisco NX-OS CLI を呼び出す Python コールへの応答は、テキスト形式ではなく JSON 形式で返されます。この強力な機能により、Python スクリプティングを簡単に実行できます。また、スクリプトの上位互換性も確保されています。Python インタープリタは、Cisco NX-OS にデフォルトで搭載されています。

bash シェルへのアクセスと Linux コンテナのサポート

DevOps 環境のネットワーク オペレータと、現在のエンタープライズ データセンターは、ネットワーク デバイスのコンピューティング環境向けに開発された、包括的なツールおよびスクリプト機能を利用しようとしています。そのようなお客様をサポートするために、シスコは Linux シェルへの直接アクセスと Linux コンテナのサポートを可能にしました。Linux シェルにアクセスすることで、Cisco Nexus 9000 シリーズ スイッチの基盤となる Linux システムにアクセスして使い慣れた Linux コマンドを実行し、基盤のシステムを管理できるようになります。また Linux コンテナを使用して、追加のソフトウェアを可能な限り安全にインストールし、9000 シリーズ スイッチの機能を強化することができます。

NX-OS の自動化とプログラマビリティのサマリー

表 1 に示すように、Cisco NX-OS は自動化およびプログラマビリティ機能の包括的なセットを備え、さまざまな使用例を実現しています。

表 1. ビジネスの重要な戦略目標に対する NX-OS のサポートのサマリー

  ITaaS インフラのプロビジョニングと自動化 DevOps モニタリング セキュリティとパフォーマンス
自動化
POAP    
Chef 統合
Puppet 統合
XMPP のサポート    
OpenStack のサポート      
OpenDaylight      
OpenFlow        
プログラマビリティ
Cisco NX-API
Python スクリプティング  
bash のサポート  
Linux コンテナ  

マルチクラウド化への動きがある一方で、現在のデータセンターでは、依然としてサイロ化されたリソースや施設、限定的なスケーラビリティ、不十分なリソース使用率、複雑化などの課題を抱えています。しかし、最大の課題と言えるのは時間でしょう。データセンターが進化と拡張を続ける中で、時間の問題はさらに大きくなると考えられます。先に説明した自動化およびプログラマビリティ ツールでは十分ではない可能性があります。ここで登場するのが、ユニファイド ファブリックの概念です。

シスコ ユニファイド ファブリックは、クラウドベース、仮想化、汎用の各データセンターの主要な構成要素として機能します。基盤となる接続性を提供し、物理ネットワーキング、仮想ネットワーキング、ストレージ、ネットワーク サービスを統合します。また、柔軟性の高いアーキテクチャと、物理、仮想、およびクラウド環境での一貫したネットワーキングを実現します。

シスコの戦略は、お客様がこれらのサイロから脱却して進化し、人、プロセス、テクノロジーを進化させることで、実際に IT をサービスとして提供し、データセンターのトレンドを最大限に活用できるようにすることです。つまり、アプリケーションを迅速に導入し、厳しい競合の中で優位性を獲得できるような IT を実現するということです。

Cisco Data Center Network Manager は、シスコ ユニファイド ファブリック向けの管理システムです。データセンター ネットワーク インフラストラクチャのプロビジョニング、モニタリング、トラブルシューティングを可能にします。サービス レベル契約を満たすために必要な Quality of Service(QoS)について最適化できるように、統合型データセンターの可視化と制御を行う方法を提供します。

Network Manager によって、データセンター インフラストラクチャの総合的な稼働時間および信頼性が増し、それにより、ビジネスの継続性が向上します。また、データセンターにおけるルーティング、スイッチング、およびストレージの管理ニーズを満たす堅牢なフレームワークと包括的なフィーチャ セットも提供します。Cisco Data Center Network Manager は、ユニファイド ファブリックのプロビジョニングをシンプル化し、SAN コンポーネントおよび LAN コンポーネントを監視します。Network Manager は、Cisco Nexus、Cisco MDS、および Cisco Unified Computing System™(Cisco UCS®)製品向けに、Web ベースの単一の管理コンソールによる高度な可視性と制御を実現します。

これまでに示したすべてのソリューションは、いずれもネットワーキング インフラストラクチャをシンプルかつ統合的に管理するという、複雑な問題を解決することを目的としています。ソフトウェア定義型ネットワーキングとも呼ばれるアプリケーションセントリック インフラストラクチャによるアプローチは、問題の姿を根本から変えるものです。このアプローチでは、基盤にあるインフラストラクチャだけをシンプル化する方法を見つけるのではなく、アプリケーション自体のインテントを把握して可能な限り最良のインフラストラクチャを提供し、優れたパフォーマンスを実現しようとします。

Cisco ACI ソリューションでは、一元的な自動化とポリシーに基づいたアプリケーション プロファイルによる包括的なアーキテクチャが提供され、ソフトウェアの柔軟性の利点を享受しながらハードウェアのパフォーマンスを維持できます。

Cisco ACI の主な特徴:

  • アプリケーション主導のポリシー モデルによるシンプルな自動化
  • リアルタイムのアプリケーション ヘルス モニタリングによる一元的な可視性
  • DevOps チームおよびエコシステム パートナーの統合に対応したオープンなソフトウェアの柔軟性
  • ハードウェアのスケーラブルなパフォーマンスとマルチテナント機能

Cisco ACI による将来のネットワークは、DevOps およびアプリケーションの急速な変化に対応して導入、監視、管理できることを目的としています。ACI は、リソースのプロビジョニングおよび管理の自動化を可能にする共通のポリシー フレームワークとシンプル化により、その目的を実現します。

まとめ

シスコでは、テクノロジーの進化と新しいテクノロジーの出現によって、市場のニーズが急速に発展することを認識しています。シスコは、お客様のニーズに対応してきた長年の実績に基づいて、オープンな拡張 Cisco NX-OS ソフトウェアを設計し、新機能によって迅速に進化できるようにしました。NX-OS を強力な基盤とする Cisco Nexus 9000 シリーズ スイッチと、自動化およびプログラマビリティに関する包括的な機能により、将来のデータセンターのセキュリティ、スケーラビリティ、可用性の要件に応じたネットワーク自動化を実現できます。

関連情報