2015年8月28日金曜日

コンテナーの世界(6) -モニタリング&セキュリティー! 
                 -TwistLock & Sysdig

この「コンテナーの世界」シリーズでは、前半( )ではコンテナー技術の動向、後半( )では新しいエコサイクルを作るSDSやSDNのスタートアップを紹介してきた。今回はモニタリングでセキュリティー改善にに取り組むスタートアップを紹介しよう。

=TwistLockは新たなコンテナーセキュリティに取り組む!=
企業がコンテナー技術を導入する際の課題は幾つかある。なかでもセキュリティは厄介だ。今年5月、ステルスモードから抜け出たばかりのTwistLock(本社:Tel Aviv & San Francisco)はコンテナーのセキュリティの改善を目的に設立された。Twistlockとは、本来、貨物コンテナーを船舶やトラックで輸送時に固定する緊締装置のこと。眠っていたLinuxコンテナー技術の目を開けさせたのはDockerだしかし単一Linux上で複数のコンテナーを連動実行させるには不安定な要素が多い。それをしっかりと固定させるのがTwistLockの役目である。コンテナーがこれまでの仮想化技術にとって代わるには、安全に稼働させる仕組みが要る。そのための第一歩が発表した「Virtual Container Security Suite」だ。企業が必要とする幅広いコンテナー利用の可視化とその制御が当面の狙いである。ひとつひとつのコンテナーは、膨大なエンタープライズアプリ群の部品であり、実際のところデベロッパーはそれらを再利用しながら開発を進めるこのため、連携型のコンテナーアプリには脆弱性が内在する。TwistLockはこれらへの対応として、洗練したUIで静的なコンテナーイメージとランタイムの両方を可視化させ、加えてパッケージングにはセキュリティーポリシーの導入を要請する。この際、公開脆弱性情報のVCEやプロバイダー、オープンソースプロジェクトなどが提供する情報を元にセキュリティーの脅威を最小化しようと試みる。TwistLockは発表と同時に$2.5M(約3億円)の資金も手に入れ、テイクオフ体制に入った。
TwistLock Diagram

=Sysdigもモニタリングでセキュリティに挑戦!=
次に紹介するSysdigは「Container Visibility Company」を目指してLoris Degioanni氏が2013年に設立した会社だ。Sysdigのβリリースは昨年の4月、システムレベルのモニタリングとトラブルシューティングツールだった。それが進化し、クラウドサービスとなったものが今回発表されたSysdig Cloudだ。Sysdigの利用はSysdigコンポーネントをDocker開発環境のコンテナー上に展開するだけ。Sysdigのアーキテクチャー(下段Slideshare参照)では、通常のアプリやコンテナーとやり取りするカーネル間にフッキングのインスツルメントレイヤーがあり、これによってコンテナー上のSysdigはクラウドを利用しながら、収集される全アプリデータを分析する。対応するソフトはCentOSやCoreOS、ubuntuなど各種OS、DockerやRocketなどの各種コンテナー、MySQLやPostgreSQL、Riakなどの各種DB、さらにAWSクラウドなどでも構わない。Sysdigが提供する分析サービスは3つ。①Real Time Dashboard-全てのパフォーマンス情報をリアルタイムで表示し、これによってシステムの異常や特殊な動きを見つけ出す、②Historical Replay-これらの表示データは全てクラウド上に格納され、どの部分でも遡って再表示が出来る、③Dynamic Topology-さらにSysdigは全てのコンテナー化されたインフラを自動的にトポロジーとして図式化する。同社が考えだしたこの方式は「ContainerVision」として、現在特許申請中だ。VCからの投資は、設立時に$2.3M(約2.7億円)のシーズファンド、今回の発表時にSeries-Aとして$10.7M(約138億円)を獲得し、拡販への体制が整った。


=エンタープライズのコンテナーセキュリティーとは!=
以上見てきたように、同一OS上でリソースシェアリングするコンテナー技術は、これまでのハイパーバイザーに比べて、パフォーマンスは高いが、セキュリティー面で難がある。この課題に関するパーフェクトな解決策は見当たらない。そこで運用時に徹底したモニタリングをしてトラブルの早期発見に努め、合わせてパフォーマンス監視も実行する。また、開発時の再利用のリパッケージングにはポリシー適用も効果的だ。いずれにしても、エンタープライズアプリのコンテナー利用は、クローズドな環境が幸いして、当面は徹底したモニタリングやポリシー適用で凌ぐことになるようである。

2015年8月10日月曜日

コンテナーの世界(5)-SDNスタートアップ 
 - Socketplane、WeaveWorks & CoreOS/Flannel

前回はDocler周りのSDS(Software Defined Storage)関連2社を紹介した。
今回は広義のSDN(Software Defined Network)として、ネットワーク関連のスタートアップを追ってみよう。

=Docker標準となるか:SocketPlane!=
最初に紹介するSocketPlaneは記憶されている読者も多いと思うが、今年3月、Dockerに買収された会社だ。ファウンダーはCEOのMadhu Venugopal氏とVPのDave Tuker氏、そしてBrent Salisbury氏。彼ら3人とも元はRed HatのエンジニアでOpenDaylightの主要コントリビュータとしても有名だ。2014年10月の立ち上げ時は、たった6人この小さな会社の本拠地はシリコンバレーでは有名なスタートアップ向けシェアオフィPlug and Play、ここでは大小様々なサイズのレンタルオフィスだけでなく、経理やリクルート、ファンディングなど諸サービスの面倒も見てくれる。 

さてDocker周りの課題はこれまで幾つか指摘されてきた。その中でも、最も大きなものはネットワーク関連の扱いだ。問題の根本はDockerが基本的にシングルホストを前提にしたものだからだ。しかし実際の業務適用の場面は、同一ホスト内のコンテナー間は勿論、マルチホスト間でのコミュニケーションが欠かせない。例えばAホストのコンテナーにアプリを乗せ、Bホストにデータベースを乗せて連携させるイメージだ。このためには各ホスト間にトンネルを張らなければならない。SocketPlaneではこのトンネルにVirtual Extensible LAN(VXLAN)対応のOpen vSwitchを採用し、各ホストに搭載してゲートウェイとしてオーバーレイさせる。買収後、同社はこれまで通り単独製品として存続していたが、6月末リリースのDocker 1.7で状況が変わった。1.7のトライアルPluginとして、SocketPlaneベースのMulti-Host Networkingが出たからだ。これが安定すれば、いずれ正式にDockerに組み込まれることになるだろう。ここに至るネットワーク周りの課題と対応は、昨年11月の提案書Native Docker Multi-Host Networkingに纏められているので参照されたい。



=もうひとつの試み:Weave= 
SocketPlaneと殆ど同時期ロンドンを拠点とするWeaveWorks(旧Zettio)もDocker向けSDNを開発していた。設立は2014年、最初のバージョンが出たのは同年9月のことだ。創設者でCEOのAlexis Richardson氏とCTOのMatthias Radestock氏はオープンソースメッセージングシステムで有名なRabbitMQを開発したメンバーである。この経験を活かして開発したのがWeaveだ。複数のコンテナーからなるホストにはWeaveルータがインストールされ、識別子を持ったピアーとなる。それらピアーが連携してTCPコネクションを確立し、さらにトポロジー情報を交換し合う。これがWeave Network(下図)だ。このコネクションによって外部からのアクセスやコンテナーから他システムへのアクセスが可能となる。こうしてみると、WeaveはRabbitMQの経験を活かした独自のトンネル技術であることが解る。


 =Googleの息のかかったCoreOSからも:Flannel= 
CoreOSにもFlannelがある。
周知のように同社製品はGoogleのクラウドGCEKubernetesとの親和性が高い。両社は緊密な関係にある。CoreOSのファウンダーでCEOのAlex Polvi氏とBrandon Philipsは共にRackspaceの出身だが、CoreOSはもともとGoogle Chrome OSからフォークしたものだ。直近のSeries-AはGoogle Venturesがリードして$12M(14.4億円)を調達した。実のところ、このFlannelもGoogleの旧Rudderプロジェクトを引き継いだものだ。Googleのコンテナー管理Kubernetesは各コンテナーの連携にRudderを用いていた。それを一般化したものがFlannelである。FlannelではDocker本来のポートマッピングではなく、各コンテナーにIPアドレスを付与し、SSHで暗号化されたネットワーク通信を行う このゲートウェイとなるのが各ホストでデーモンとして起動させるFlannelだ。これがトンネルとなる。現バージョンでもFlannelをマルチで走らせることが出来るが今年5月CoreOS Fest 2015では、さらに進化させたマルチテナント化やOpen vSwitchの採用なども発表された。


以上見てきたようにDockerのネットワーク課題を解決する取り組みは幾つかある。Dockerが買収したSocketPlaneが逃げ切るのか、はたまた別のものが抜け出すのか、それはこれからデベロッパーが決めることになる。注目すべきはGoogleの動きだろう。CoreOSを押さえながら、FlannelやKubernatesなどをGCE上で戦略的に統合し始めた。さらにGoogle自身、Google Container Engineを開発しており、現在はβとなった。これらが上手くいけばAWSやAuzreをキャッチアップ出来るかもしれない。