コンテナ導入にあたって壁となる「データ永続化」の問題
ネットアップは1992年に米シリコンバレーで創業され、NAS、SAN、それらを統合したユニファイドストレージなどをエンタープライズ企業向けに提供するITソリューションプロバイダとして成長してきた。強みはRAIDやSnapshotなどを効率よくデータ管理できる仕掛けを用意していること。近年はクラウド市場にも注力しており、「デジタルトランスフォーメーション時代に向け、当社がこれまで開発してきたデータ管理の効率化の仕掛けを、Microsoft AzureやAmazon Web Servicesなどのクラウドサービスと連携しソリューションとして提供する企業へと変貌しつつある」と、ネットアップ CTOの近藤正孝氏は語る。
クラウドとともにここ数年、ネットアップが注力しているのがコンテナ関連の技術である。「コンテナが登場した当初、ハイパーバイザーよりも効率よくシステムを立ち上げることができることで注目されたが、ステートレス(状態を保存しない)な設計のアプリケーションを想定した技術であるため、データの保管・保存(データ永続化)に課題がある。エンタープライズ企業がコンテナを導入し、アプリケーションの開発から運用までといったライフサイクルを可能にするには、データの永続化が必要だ。そこでネットアップのコンテナへの取り組みが始まった」(近藤氏)
他の多くのストレージベンダーでもデータ永続化のための取り組みを行っているが、中でもネットアップは長く貢献し続けている。ネットアップは、クラウドネイティブなOSSを推進する団体であるCNCF(Cloud Native Computing Foundation)に、2015年12月からボードメンバーとして参画しており、コンテナオーケストレーションツールKubernetesに対して、データの永続化やデータマネジメント環境という観点で貢献してきた。
「ダイナミックストレージプロビジョニングの策定や、最近ではCSI(クラウドストレージインタフェース)など、データ永続化周りの技術の策定に関わっている。Kubernetesと連携して外部ストレージに対して動的にプロビジョニングする仕組みである『Trident』を開発し、オープンソースで公開している」(近藤氏)
システム技術本部 ソリューションアーキテクト部ソリューションアーキテクトの渡邊誠氏は、データ永続化の重要性について以下のように語る。
「コンテナの特徴は、ラップトップで作ったアプリケーションを仮想サーバやクラウドなど異なる環境に移しても同じように動作できるポータビリティ性だ。しかし本当にアプリケーションを動かすには、データも持ち歩かないといけない。それもネットアップの技術を使えば簡単にできる。
例えば、テストデータを作るのは結構大変な作業だが、ある程度のデータが蓄積できればそれをコピー、クローニングしてすぐにテストが実施できる。数テラバイトのデータの移行には通常2~3時間かかるが、当社の技術を使えば数秒で用意できる。それに加え、容量消費もしない。2TBのデータを5つコピーしても10TB消費するのではなく、2TB+変更分となる」
このようにクラウドやコンテナ技術にいち早くコミットしてきたネットアップだが、近藤氏は「実際にサービスを開発しているエンジニアには、ネットアップがコンテナに貢献し、アプリケーション開発に重要なサービスを提供していることが伝わっていなかった」と語る。というのも同社は冒頭でも述べた通り、NASやユニファイドストレージなどの製品を提供してきた。それらの製品の窓口になるのはIT部門だったからだ。
直接、アプリケーション開発者やデータサイエンティストにアプローチする手段であり、技術への本気度を伝えるために新たに始めた取り組みがある。それが「ネットアップ・デジタルトランスフォーメーション・ラボ(NDX Lab)」だ。
NDX Labとは、エンタープライズ企業のデジタルトランスフォーメーションを加速させるための取り組みである。コンテナ化、マイクロサービス化などデジタルトランスフォーメーションを推進するテクノロジー導入のシナリオ(ドキュメント)の公開、ワークショップ、オンライン(Slackによる意見交換・共有)・オフライン(ネットワーキング)のコミュニケーションの場を提供する。
エンタープライズ企業がコンテナ化を進めるためのロードマップ
NDX Labの初めての試みとして、2018年4月にワークショップが開催された。
「手順に沿って手を動かすだけのハンズオンにはしたくはなかった」と近藤氏。NDX Labのワークショップは、レクチャーはあるものの、基本的にはドキュメントを参照しながらあくまで参加者が自発的に考え、他のメンバーと協力しながら、次の6つのステップを実装していくという流れになっている。
Level 0 | 環境の確認、Kubernetesの基本操作(事前準備) |
---|---|
Level 1 | アプリケーションのコンテナ化(Docker fileの作成、ビルド、デプロイ、稼働確認) |
Level 2 | ステートフルコンテナの実現(アプリケーションデータ永続化の実現、Tridentでダイナミックプロビジョニングを行い、永続化を確認) |
Level 3 | CI/CDパイプラインを構築(Jenkinsを使い、継続的デリバリーインテグレーションの実現) |
Level 4 | 運用編(アプリケーション、インフラの可用性・堅牢性の向上) |
Level 5 | マイクロサービス化 |
このステップは、仮想サーバ上で稼働しているアプリケーションをコンテナ化することをイメージしたものだ。同社で考案されたものだが、汎用性も高い。その根拠として渡邊氏は以下のように語る。
「フランスの大手金融機関が、2017年に開催されたDockerCon Europeで金融系アプリケーションをコンテナ化していった事例を発表[注]したのだが、当社のステップと概ね同様だった」
サンプルアプリケーションは用意されるが、もちろん、自身のアプリケーションを持ち込むこともできる。ちなみにサンプルアプリケーションは次の3つ。
- WordPressで生成したサンプルアプリケーション
- LightAdmin(Spring Bootベース)で生成したサンプルアプリケーション
- JHipsterで生成したサンプルアプリケーション
「1はKubernetesのオペレーションを試したい人向け。3のサンプルアプリはフロント側もバックエンド側もスタックが多いという複雑なものなので、アプリケーションのコンテナ化を検討している人向け。2はその中間レベルの人向けに用意している」(近藤氏)
初回のワークショップの参加者は、エンタープライズIT企業やWebサービス企業の、インフラ部門やサービスの共通基盤のエンジニアが多かったという。参加者の様子について、渡邊氏は以下のように振り返る。
「DockerやKubernetesという言葉知っているが、まだ触れたことのない人、YAMLの記述で悩んでいる人、すでにKubernetesを使ってサービス運用をしている人など本当にさまざま。半日のワークショップのため、すべてのステップをこなすことを想定していなかったが、レベル2のステートフルコンテナの実現まで完了した方が多かった」
ワークショップの参加者からは、次のような好意的なフィードバックが得られたという。
「名前を聞いたことしかなかったDockerについて、概要と、使い所について知ることができた貴重な機会だった。今後、本格的にコンテナ化を進めていきたいと感じた」
「Dockerに触ったことはあるが、Kubernetesは今回はじめて使った。インフラ系のコミュニティは少なく、なかなか自分にあった場があまりないと考えていた。このような機会はありがたい」
NDX Labは双方向のコミュニティを目指していく
まだまだ生まれたばかりのNDX Lab。先に記したステップも「これが正解というわけではない。参加者の意見やアイデアを取り入れて、ブラッシュアップしていきたい」と近藤氏は意気込みを語る。NDX Labの取り組みそのものについても同様だ。
「NDX Labは私たち主催者発信のコミュニティではない。さらに有意義なコミュニティになるよう、参加者と双方向のキャッチボールができるような仕組みを目指していきたい」(近藤氏)
扱うテーマも、コンテナやマイクロサービスに限るわけではない。最近はデータ分析や機械学習においてもデータ管理の必要性が高まっていることから、「機械学習エンジニアやデータサイエンティスト向けのシナリオも用意したい。これからはあらゆる企業が新しいテクノロジーを積極的に活用していかないと競争に勝てない時代。課題を持つ方の助けとなるようなコミュニティを形成したい」と近藤氏は展望を述べる。
ワークショップの開催頻度は2~3か月に1回を予定しているという。コンテナの導入に関心のある方、新しいテクノロジーでデジタルトランスフォーメーションを推進したいと考えている方はぜひ、参加してみてはいかがだろう。
[注] この事例については、以下のDocker Blogのポストにて詳細が確認できる。
お問い合わせ
ネットアップ・デジタルトランスフォーメーション・ラボにご興味のある方は、ご所属・お名前を添えて以下のメールアドレスまでお問い合わせください。
ng-japan-ndx-lab@netapp.com