SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート(AD)

VMwareの事例で学ぶ、ソフトウェア構成管理ツール「PERFORCE」とオールフラッシュアレイ「EMC XtremIO」による開発サイクル高速化

PERFORCEとEMC XtremIOの組み合わせによるクラウドファーストの開発事例

  • このエントリーをはてなブックマークに追加

 2015年4月22日、高速ソフトウェア構成管理ツール「PERFORCE」の日本初となるユーザカンファレンスが開催された。活用事例紹介としてVMware 上海 R&Dでジェネラルマネジャーを務めるStephen Hu氏が登壇。高いスピードとパフォーマンスが求められるVMware R&Dの開発環境を支えるEMCのオールフラッシュアレイ「XtremIO」と「PERFORCE」の有用性について自身の実感を織り込みながら紹介した。

  • このエントリーをはてなブックマークに追加
VMware Shanghai R&D General Manager Stephen Hu氏
VMware Shanghai R&D General Manager Stephen Hu氏

「Eat Your Own Dogfood」のもと、
インフラに求められるスピードと快適性を追求

 1998年の設立以来、仮想化ソフトウェアベンダーとして急成長を遂げるVMware。世界中に5000人以上のエンジニアを擁し、vSphereやvRealize Operationsなどの製品・ソリューションを数多く開発・提供してきた。その開発には「PERFORCE」が使用され、あらゆるタイムゾーンで日々1000万以上のオペレーション、1万以上のブランチ、日々100以上のマージが行われているという。

 VMwareの代表的なプロダクツとして、仮想化ソフトのパッケージ「vSphere」があるが、2015年3月に6.0が公開されたように約1年~1年半ごとのメジャーアップデート、そして、その半年先にはマイナーアップデートというサイクルで改定が行われている。開発においては、小さなインスタンスをウォーターフォールでスピーディに作り、それぞれにテストを行なう。そのためテストの回数が多く煩雑になる。

 そのvSphereを基盤として構築された、ハイブリッドクラウドプラットフォーム「vCloud Air」は、11のデータセンタで運用されており、ニーズに合わせた厳密な監視や最高のパフォーマンスが不可欠だ。また、ソフトバンクをはじめとするパートナーとの連携も重要事項であり、365日24時間の対応が欠かせない。

 こうしたVMwareの製品・サービスの開発環境を改革するにあたり、Hu氏は「自分が出したものはまず自分で味わえ! Eat Your Own Dogfood」という表現を用いて、自社内でも満足のいくパフォーマンスを追求してきたと強調する。

 「一貫したパフォーマンスの高さと安定性がVMware R&Dのインフラに求められていました。ディスクI/Oがボトルネックとなっていること、そして数名で何百ものサーバを担い、ストレージのエキスパートの育成時間もない。そうした状況下で快適な開発を可能にすることが求められていたのです」

 そうした状況のもと、高速ソフトウェア構成管理ツール「PERFORCE」と、オールフラッシュアレイ「EMC XtremIO」の活用により、スピーディかつ容易な開発が可能な環境が整ったというわけだ。

オールフラッシュアレイ「XtremIO」を使うことで広がった3つの可能性
(開発速度の敏捷性、インフラの敏捷性、総保有コストの最適化)
オールフラッシュアレイ「XtremIO」を使うことで広がった3つの可能性(開発速度の敏捷性、インフラの敏捷性、総保有コストの最適化)

自社とゲストのビジネススピード向上のために
~VMwareの開発環境における改革

 クラウド上に新しい仮想環境を展開するためには、ソースコードを作り、インストールし、その上にホストとしてゲストの仮想マシン、たとえばWindows Exchangeや、サーバなどを構築する。その後、End to Endでのテストが必要となり、ようやく開発者に渡して開発が行われ、デプロイ&テストとなる。かつてはクラウド上に新しい仮想環境を展開するために10分はかかっていた。それが現在の環境では数秒でできるようになったという。

 10分が数秒になったということは、小さな改善に思うかもしれない。しかし、当然ながら開発中にはテストも含め、このプロセスを幾度となく繰り返すことになるため、そこに時間がかかれば開発スケジュール全体に大きく影響する。つまり、この時間短縮は開発スピードに大きく貢献するというわけだ。

 なお、このスピード向上のためには、フラッシュストレージが有効であり、マルチノードで同時に80000ものVM上でノードを走らせ、さらに関係する複数名のオペレーションが簡単に管理できる必要があった。かつてはこれを担保するために100のサーバを用いていたが、拡張性に限界を感じていたという。現在約5000人のデベロッパー、さらにCIビルドが1日30000以上、また4箇所に開発拠点が設置されているが、どこも同じように快適に開発できる必要があった。各拠点によって待機時間がバラバラという状況は望ましくなかったというわけだ。

 Hu氏は、「XtremIOによって開発時はもちろん、テスト時も大きく時間を短縮することができました。さらに、バグレポートが迅速に開発側のもとに上がることで、いっそうの開発サイクルの短縮化に成功しました」とその成果について語る。そして、それはVMwareが提供する環境を利用するユーザにも大きな恩恵となることは違いない。

VMwareが実践したDevOps事例の課題と結果
VMwareが実践したDevOps事例の課題と結果

変化するQEの役割とテストの頻度

 VMwareが自社のため、そして製品を使うユーザのために開発環境を改革するために、2番目のアプローチとして掲げたのは「Dev Owns Quality(開発者が品質を所有する)」の考え方だ。

 これまでウォーターフォール型では、開発側がコードを完成させてからQE(クオリティエンジニア)のチェックを受けるという形だった。しかし、近年DevOpsが浸透し、開発側がクオリティを監視下におくようになったことで、コードに対する責任は開発側のものとなった。となれば、QEの役割として何をすればいいのか。Hu氏は「実にシンプルなこと」として、このように語る。

 「開発側が中期的なテスト、たとえばユニットテストや機能テストを行うとすれば、QEは長期的なテストを行います。たとえばパフォーマンスやストレステスト、また包括的なフレームワークを作ることなどが該当します」

 この開発側でのスピーディなテストとQEによる最適化により、QEから開発側への手戻りを削減するなど、効率化を図ることができる。その際、必要となるのが自動化だ。コードを自動的にチェックする仕組みにより、スピーディなテストが可能になるというわけである。なお、VMwareでは24時間サービスを提供しており、いつでも開発者をサポートする環境が整っている。開発スピードを担保することはもちろん、心理面でも安心を得られるというわけだ。

VMwareが取った、開発側が品質を担保する「Dev Owns Quality」というアプローチ
VMwareが取った、開発側が品質を担保する「Dev Owns Quality」というアプローチ

 そして最後、3番目のアプローチとして「Refactor Testing」が紹介された。ここでもテストのスピードについて言及。そして、その最適化のためにもバケタイズ(分類)テストが必要だという。VMwareの調査によると、開発の現場では長年同じテストを繰り返しており、それが普通であると考えられてきた。しかし、その中で有用だったもの、結果が得られなかったものを振り分けて効率化を図ることで、テスト回数を減らせたという。また、ハードウェアを限定することで、テストマトリックスを減らし、さらなるテストの効率性向上を実現した。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8699 2015/05/15 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング