CI/CD実現に必須なDevOpsの取り組み

ミドルB事業者で進むCI/CD

 継続的なインテグレーション(CI)と、継続的なデリバリー(CD)は、開発運用と品質管理を一体とした体制、いわゆるDevOpsの枠組みにおける重要な要素です。ネットワーク業界では、まだ一般的ではありませんが、他の分野では導入が進んでいます。

 レッドハットは、DevOps実現のために、オープンソースによるCIツールであるJenkinsと、Red Hat OpenShift Container Platformを用意して、アプリケーションのコンテナ化をサポート。仮想マシン(VM)上でアプリケーションを稼働させる場合と比較して、立ち上げ時間の大幅な削減を可能にするとともに、テスト環境から本番環境への切り替えの迅速化を実現しています。

  こうした取り組みは、ネットワーク構成をシンプルにすることができるため、ネットワーク事業者にとっても活用するメリットは大きく、例えば、ドイツテレコムのグループ会社T-Systemでは、Red Hat OpenShift Container Platformを導入したDevOps環境で、ビッグデータの解析ツールのコンテナ化などを、実現しています。BMWが、新しいサービスを改善しながら継続的に提供するために、DevOpsのフレームワークを活用していることとあわせ、ミドルB事業者が求めるCI/CDのあり方を示していると考えてよいでしょう。

エッジノードにおけるクラウドネイティブなサービス

 T-SystemやBMWなどは、BtoBtoXの中央のBにあたるミドルBのビジネスを展開している企業ですが、実際に通信サービスプロバイダーは、こうした企業に対して、インフラの分野で何が提供できるのでしょうか。前提にしなければならないのは、ミドルBの事業者は、クラウドの環境でDevOpsを実現したいと考えていることです。

 例えば、NTTネットワーク基盤研究所が提案するキャリアエッジPaaSは、こうしたニーズに応える新たな取り組みとして注目されています。キャリアエッジPaaSは、Red Hat OpenShift Container PlatformとNLBのエッジコンピューティングを組み合わせたプラットフォームを展開し、そのうえで、ミドルB事業者がCI/CDを実現する環境をつくっていこうというもの。新しいコンセプトのエッジコンピューティングとして、注目されています。

Carrier Edge PaaS コンセプト for cloud native service

SoE領域で始まる先進的な取り組み

 ビジネス環境や顧客ニーズの変化に応じて、迅速な開発が求められるSoEの領域では、ミドルB事業者が牽引する形で、さまざまな技術が進化しています。現在、VM上で稼働しているアプリケーションは、今後、コンテナ化が進み、近い将来には、ベアメタルの上でコンテナアプリケーションを稼働させ、コンテナ化が難しいアプリケーションをVM上で稼働させるといったハイブリッド化が進んでいくと考えられます。

 一方、SoRの領域では、コンテナ化は、あまり進んでいないのが現状でしょう。SoR領域で、どのように進化を加速できるかが、課題といえるかもしれません。

自動化が進まない
ネットワーク業界の現状をどう変えるか

運用手順書に頼るしかない現状

 ネットワーク業界で、自動化が期待されたのはSDNの領域でしょう。実際、2008年に、オープンフローが開発されて以降、いくつかのSDNソリューションが登場しています。とはいえ、実際には、それほど自動化は進んでいません。

 自動化が進まない原因はいくつか考えられますが、求められるスキルが専門的で、ネットワークの構成が複雑になればなるほど、技術者の組織や体制が複雑になってしまうのも原因の一つでしょう。ネットワーク機器が増えるほど自動化は難しくなり、運用手順書(MOP)に頼らざるを得なくなってしまうのが現状なのです。

 テスト環境を構築してテストを実行。そのプロセスに沿ったMOPを作成してレビューし、その後、MOPに従って本番環境を構築するというプロセスは、現在もほとんど変わっていません。結果的に人件費もかさむことになり、俊敏性にも欠けることになってしまいます。

Ansible活用で始まる自動化へのアプローチ

 Ansibleの機能の一つは、MOPをプレイブックで置き換えるというものです。MOPの手順をプレイブック化することで、例えば複数の環境で、同一のプロセスを完璧に再現することができますし、ヒューマンエラー発生の可能性は最小化され、迅速なシステム構築が可能になります。また、運用の手順をプレイブック化することで、コンプライアンスチェックや、変更履歴の管理も実現します。

 プレイブックにより、ネットワーク・インフラ全体にわたって、自動的に同じ値を設定できるようになり、ヒューマンエラーによる事故の発生の抑制することができますし、コンプライアンスチェックも運用のポリシーにあった形で実現できるのです。

MOPをAnsible プレイブック化(手順書の置き換え)

運用自動化を支援するAnsible

 Ansibleは、Ansible EngineとAnsible Towerの2つの製品で構成されています。Ansible Engineは、デバイス側にエージェントを導入する必要がなく、効率的なデバイス管理が可能。例えば、ネットワークベンダーであれば、ベンダー側がモジュールを用意し、そのモジュールを使ってプレイブックを作成することで、設定の自動化が可能になるといった特徴を持っています。また、Ansible Towerは、ネットワークエンジニアが作成したプレイブックにより、正確に設定を各デバイスに反映させることができるなど、オペレーター向けの機能を提供します。

 Ansible EngineとAnsible Tower、この2つの製品でAnsibleは、ネットワーク運用の自動化を強力に推進します。例えば、従来、新しいルーターを導入する際に、エンジニア自身が作成していたテンプレートやスクリプトをプレイブックに置き換えることで、汎用性のある運用プロセスを実現することができます。また、プレイブックは階層化できるため、新しいデバイス導入の際には専用のプレイブックを作成して紐付けるだけでよく、既存のシステムを改変する必要がありません。ベンダーロックインを排除する仕組みとしても有効でしょう。

プレイブックは統一された言語YAMLで定義、人が読める自動化、特殊なコーディングスキルは必要ない

ネットワーク業界で注目されはじめたCI/CD

 Ansibleは、バージョン2.3でNETCONFに対応したことで、より多くのデバイスに対応可能になりました。現在、さまざまなネットワークデバイスのベンダーが、Ansibleへの対応を進めていますが、対応デバイスが急速に増えているのは、Ansible自体がベンダーニュートラルにつくられているため、ベンダー側にとっても、使いやすいからでしょう。極論すれば、各ベンダーがこれから開発するデバイスは、アンシブル対応が前提になるのではないでしょうか。



設定のプレイブック化で、運用自動化を実現

複雑な設定の自動化を可能にするAnsible

 設定の自動化では、例えば、シスコ社Nexusスイッチに対して、Multi-Chassis Link-Aggregation(MLAG)- 2台のスイッチをまたいだリンク アグリゲーションを利用した冗長接続設定をプレイブック化し、複数のデバイスに展開するといった場合や、デバイスごとに異なるセキュリティをプレイブック化して上位階層の設定ファイルとして用意しておくことで、その下の階層のデバイス設定を効率化するといった場合が考えられます。

 また、クラウドの設定も、プレイブック化できるため、例えば、アマゾンやアジュールなどのクラウド用のDynamic Multipoint VPN設定をプレイブック化するといったことも可能になります。

AnsibleがネットワークCI/CDを支援

 Ansibleは、また、複雑なネットワーク環境には実装が難しいCI/CDのサポートも可能です。例えば、テスト環境で構築したアプリケーションを本番環境に構築するといった場合、プレイブックを使うことで、設定をそのまま活用できるためです。Ansibleを活用することで、SoRの領域においても、SoEの領域においても、CDの実現が可能になります。

DevOpsでの(CD)継続的デリバリー支援

すでに始まっているネットワーク業界でのAnsible適用

 導入が遅れていたネットワークCDの領域ですが、現在、米国のケーブルテレビ大手コムキャストがAnsibleを活用した一万以上ものデバイス、複数のネットワークOSの運用を開始しています。コムキャストでは、Ansibleの活用で、手動でアクセスリストなどを作成していた時代には30%以下だった運用ルールに沿った設定を、100%にしたとしています。

 また、Ansibleは、NFV/SDNの領域でも活用されはじめています。例えば、VNFを追加する、オープンスタックのインスタンスを立ち上げる、Cephストレージのボリュームを増やすといった場合にAnsibleの活用が可能なためです。また、ネットワークのフローや設定、ルーティングの情報を自動化して制御するSDN領域でも、立ち上げまでの外部の環境の整備などにAnsibleを活用する場合が増えていますし、モバイルサービスにおけるバーチャルIMS、バーチャルEPCの領域でも、簡易的なサービスオーケストレーションなどにAnsibleの活用が始まっています。

Ansibleを活用したビジネスサービス自動化例 モバイルサービスの自動化例

多様な領域で活用が進むAnsible

従来のノウハウと統合可能、自動化を加速するAnsible

 Ansibleは、Cisco Network Services Orchestratorなど、従来のソリューションとの組み合わせも可能です。また、NFVのプラットフォーム構築などで複数のソフトウェアの実装が必要な場合、Ansible を利用してそれぞれのテスト環境の整合性をとりながら効率的にテストを行うことが可能になるなど、従来培ってきたノウハウにAnsibleを組み合わせることで、ネットワークのインテグレーションや、CI/CDを実現できる環境は、すでに整いつつあるといえます。

 DevOpsが実現しにくいネットワーク業界において、Ansibleは、いわばNetOpsともいえる形で、さまざまなニーズに応えていく可能性を秘めているのです。

XCI: クロス コミュニティCI例

XCI User Guide : http://docs.opnfv.org/en/latest/submodules/releng-xci/docs/xci-user-guide.html

運用コストを削減、スケーラブルな運用を支援

 ネットワーク業界にとって、ネットワークの自動化に役立つというAnsibleの機能は、その魅力の一部でしかありません。Ansibleによって、Linuxも、Windowsも、OpenStackも、コンテナも、運用の自動化が可能になりますし、プレイブックを使いこなすことによって、設備管理コストの削減、スケーラブルな運用体制の構築など、多くのメリットが期待できるからです。とくにエッジコンピューティングの領域では、複雑な設定を効率化するためにも、Ansibleは必須でしょう。ぜひ一度試してみてほしいと思います。

イメージ

Document Download

講演資料ダウンロード

ANSIBLEを活用した5G・クラウドネイティブ時代のネットワークCI/CD