Dividing By Zero

ソフトウェアをはじめとする技術に関する備忘録と日々のメモ書き。

ネットワークの継続的インテグレーション

はじめに

 ブログの初めに、「ネットワーク寄りのソフトウェア開発者のはず」とか書いたのに大してネットワークの話をしてなかったなーと思ったので、前回話した継続的インテグレーションに絡めたネットワークの話をしようと思う。

Bere-metal? White Box? Branded?

 私はそこまでOpen Stackには詳しくないのだが、面白そうなセッションがあったのでOpenStack Summit 2016に参加した。お目当てのセッションが始まる前に企業ブースを回っていた時に見つけたのが、Dellの「Dell Red Hat OpenStackCloud Solution Reference Architecture Guide」という冊子。

 正直構成そのものより、その構成の中で使われていたスイッチに目が行った。ちょっと気になったので、製品担当の人に話そうと思ったら...なんか厚切りジェイソンみたいな人が立ってる。日本語が通じることを祈りつつしゃべりかけてみる。

  • 私:「これってWhite Box Switchですか?」
  • ジェイソンさん:「Branded Switchだよ。White Box Switchもあるけど」

 良かった。日本語通じた。そっか、Branded Switchか...という事でここで解説。

blogs.forrester.com

 Forrester Researchのアナリスト曰くForresterでは企業向けのネットワークスイッチを4つに分類している。

Proprietary switch(独占的なスイッチ)

 ベンダー独自のネットワークOS、ハードウェアによって構成されるスイッチを指す。このネットワークOSとハードウェアは独自規格なので分離出来ない。なので両方購入する必要がある。ネットワーク機器は、サーバとは異なり特定用途(パケットの転送、経路の切り替えなど)に特化していたため、独自規格が多かった*1。基本的に高性能だが、採用している技術によっては特定ベンダー機器で固めないと機能を発揮できない。つまりネットワークの構成が特定のベンダー依存となる。こうなると、ほかのベンダーへの切り替えが難しくなる。余談だがプロプラエタリと名前がつくものは大抵、ロクな意味ではない。

Bare-metal switches(地金のスイッチ)

 主にOriginal Design Manufactur(発注元のブランド製品を設計~製造する製造者)のスイッチで、ネットワークOSがインストールされていないものを指す。もともとネットワークベンダー製品の設計、製造を行っていた会社が、その技術を使い、独自ブランド製品として発売している。ただ流通、拡販などはやや弱く代理店経由が多い。また、ODMが提供する技術サポートはハードウェアに関する基本的なものだけで、ネットワークOSなどに関してはサードパーティの製品などを顧客が別途調達する必要がある。いわゆる玄人向けの製品。

White-box switch(公開された仕様のスイッチ)

 Bere-metal switchだが、ネットワークOSがインストールされているものを指す。近年、ネットワーク機器も独自のハードウェア(カスタムシリコン)から、汎用的なハードウェア(商用シリコン)へと移り替わっており、その代表がBere-metal/White-box switchである。汎用/規格化されているのでサーバと同じように様々なOSをインストールできる。インストールされているネットワークOSは、White-box switchのベンダー、もしくはサードパーティ製の物がインストールされる。 

Branded bare-metal switches(ブランド ベアメタルスイッチ)

 Bere-metal switchだが、ODMによる提供ではなくOriginal Equipment Manufactur(ODMに比べ設計する能力のない製造だけを行う会社)により製造されたブランド付きのスイッチを指す。通常のBere-metal switchと同じように顧客がネットワークOSをインストールする必要があるが、ブランド元のベンダー企業によるハードウェアからネットワークOSに対する技術サポートを得ることができる。また流通、拡販なども通常のBere-metal switchに比べると格段に差がある。ジェイソンさんが言ってたのは多分これ。

Cumulus Networkが提唱するNetDevOps

  • 私:「上に乗るサードパーティのネットワークOSとか何が多いですかね?」
  • ジェイソンさん:「サードパーティ製とかだとBig Switch、Midokura、あとCumulus Networkかな」

 ここで挙げられたBig Switch/Midokura/Cumulus NetworksはネットワークOSを提供する会社だ。この中でソフトウェアのツールを使いDevOpsを行おうと提唱しているのがCumulus Networksだ。この会社が提供するのはCumulus Linuxと呼ばれるLinux OSをベースとしたネットワークOSである。

f:id:na-777:20161027235400p:plain

cumulusnetworks.com

why not use open source off-the-shelf automation tools that are already being leverage

なんで、もう活用されている既存のオープンソースの自動化ツールを使わないんだ

  ネットワークOSとして動作するLinux OSという位置づけのため、サーバで利用できるソフトウェアがインストール可能とのこと。上記の図はサーバ構築に特化したビルドツール(構成管理ツール)であるChef/Ansible/Puppetを利用したケースである。

 従来、ネットワーク機器への設定投入は

  • 顧客もしくは社内の他部署からの要望を資料にまとめる
  • まとめた内容をもとに検証環境のネットワーク機器を使ってコマンドを投入
  • それをもとにコマンド投入の手順書を作成、手順書のチェックも行う
  • 手順書をもとに商用環境のネットワーク機器に対してコマンドを投入
  • コマンドによってネットワーク機器の設定が変更される

 といったように手作業が多かった。時間もかなりかかる。Cumulus Networksが提唱するNetDevOpsではどうなるかというと

  • 顧客もしくは社内の他部署からの要望を資料にまとめる
  • まとめた内容をもとに検証環境のネットワーク機器設定を行う作業を手順を定義
  • 作業を定義したコードのレビュー、動作確認を行う
  • 商用環境のネットワーク機器に対して作業を定義したコードを実行
  • コードによってネットワーク機器の設定が変更される

 となる。商用環境に対しての作業は、作業内容を定義したコードを実行するだけ。手作業に比べて時間がかからないし、コード化(プログラム化)されているので同じ作業なら使い回しも効く*2。またCumulus Networks Blogの他記事ではバージョン管理システム継続的インテグレーションツール、テスティングフレームワークなどの使用も推奨している。

導入している企業

  • 私:「どうですか、売れてますか?」
  • ジェイソンさん:「Branded Switchはそこそこ売れてますよ。ただWhite Box Switchに関してはサポートがないので、データセンタ事業者とか自前で何とかできる所しか買わないですね」
  • 私:「White Box Switchは海外のデータセンタ事業者が結構入れてますよね。最近は日本のデータセンタも導入し始めてきていますし」
  • ジェイソンさん:「White Boxは安いですからね。ただ、少し高いけどBrandedはサポートがあるからいいですよ*3

  こういった機器を導入し、効率化を図れる企業は限られている。ベンダーサポートに過度な依存をせず、自分たちに必要なものを見極め、自前の技術者で解決できるところでないと、効率的な仕組みを作り、運用していくのは厳しい。逆に言えば優秀な技術者を取り込み、彼らの意見を取り入れ、それを実現させる体制があれば、少額の投資で効率的な仕組みを作ることができるはずだ*4

まとめ

  • 従来、ネットワーク機器は特定用途に特化していたため独自の規格が多かった
  • 低コスト、技術の普遍化/進歩により汎用的な規格が登場するようになった
  • LinuxベースのネットワークOSにより、サーバ技術がネットワークにも使用可能
  • ソフトウェア関連ツールの利用や、継続的インテグレーションの適応も視野に
  • しかし、こういった技術を採用できる企業は限られている 

*1:特定用途でしか使わないので汎用的にする必要もないし、専用のネットワークOS/ハードウェアとして設計した方が性能も出せる。

*2:頻繁に同じような作業を行うのであれば構成管理ツールは有用、異なる作業を行う場合は効果が薄い。ただ作業手順(コード)が必ず残されるのは便利

*3:物によって値段が上下するので一概には言えないのだが、Proprietary switch > Branded bare-metal switch > Bare-metal/White-box switch

*4:ただ、ここで述べられているのはネットワークが頻繁に変更されるシステムである。適材適所、費用対効果などを考えて技術を採用しなければ、無駄な投資で終わる。規模によってはベンダー製品に頼ってしまったほうが良い場合も、もちろんある。