ウォーターフォールとのハイブリッド――手法にとらわれない“ニフティのDevOps”特集:DevOpsで変わる情シスの未来(6)(2/3 ページ)

» 2014年02月25日 18時00分 公開
[唐沢正和@IT]

DevOpsとウォーターフォールのハイブリッド

 一方で、前述のように「目的に応じてDevOpsとウォーターフォールを使い分ける」理由も、リリース後の安定運用やサービス品質への配慮にあるという。

 「特にニフティクラウドは法人向けのサービスである以上、常に高品質かつ安定したサービスを提供することが求められます。実際、大手プロバイダーとしての安心感・信頼感は、ニフティクラウドの大きな付加価値になっています。市場競争が激しくスピードが重要とはいえ、この価値を損ねてまでDevOpsに取り組む意味はありません。従って、クラウド事業のうち、重要度が高い部分についてはウォーターフォール型で開発を行っています」(高野氏)

 具体的には、「新機能のリリース」や「エンハンス項目」など、サービスの柱となる重要度の高い開発案件についてはウォーターフォールで行い、「画面の文言修正」や「エラーメッセージの対応」「緊急対応」などについてはDevOpsで迅速に開発・リリースを行っている。

ALT 図1 DevOpsとウォーターフォールのハイブリッドで開発を行うニフティクラウドのプロジェクト体制イメージ

 「クラウドサービスは提供開始後も、ユーザーニーズに応えてスピーディに機能改良や新機能追加などを行っていく必要があります。そこで、まずは『安定したサービス基盤の構築』という目標に向かって、開発と運用が共通意識を持ってウォーターフォールで開発を進め、サービスの土台ができた後は、ユーザーニーズの変化に迅速に対応できるよう、DevOpsでスピーディにサービスを改善しています。DevOpsによって、ほぼ毎週、機能改善のリリースを行っています」(高野氏)

 昨年9月にリリースしたスマートフォンアプリ開発向けのクラウドサービス「ニフティクラウド mobile backend」も、こうしたウォーターフォール型とDevOpsのハイブリッドによって開発・提供しているサービスの一つだという。「安定・安全」を最重視するウォーターフォール型開発と、「スピードと品質」を重視するDevOpsによる開発を、ビジネスゴールにひも付いた開発要件に応じて使い分ける――それがニフティのサービス開発における基本方針となっているのである。また、ウォーターフォール、DevOpsのいずれの手法を採るにしても、「開発部門と運用部門が共通のゴールを見据えて連携する」という点は決してブレないことが、ニフティの大きな特徴といえるだろう。

OSSを使った自動化を積極的に導入

 開発・運用作業の自動化にも積極的に取り組んでいる。プロジェクト管理ソフトウェア「Redmine」、分散型バージョン管理システム「Git」、継続的インテグレーションツール「Jenkins」、インフラストラクチャ自動化フレームワーク「Chef」、デプロイツール「Capistrano」、統合監視ソフトウェア「Zabbix」といったオープンソースのツールを活用しているという。

 具体的には、Webサービス開発部とクラウド事業部の両方において、Chefを利用したサーバー構築の自動化、Zabbixを利用した監視の自動化を実施。クラウド事業部では、これに加えてJenkinsとCapistranoを利用したサーバーへのアプリケーションデプロイも自動化している。また、ビルドに関しては、開発環境や検証環境など全ての環境がGitトリガで動くように設計。一方、本番環境へのデプロイについては、品質やガバナンスを担保するために、Gitトリガで自動的に動作するのではなく、Redmineを使って一連のフローを分離。人による承認処理を挟んだ上で、本番環境にデプロイする仕組みとしている。

ALT 図2 ニフティクラウド mobile backendの自動化ツール導入イメージ

 「定常作業の自動化による効率化には積極的に取り組んでいます。例えばWebサービス部では、昨年中ごろにZabbixと電話APIを組み合わせた『電話によるアラート通知の自動化』も実現しました。従来はシステム監視室に常時スタッフがいて、問題が発生したときに電話をかけて運用担当者にアラートを通知していましたが、自動音声でアラートを通知する仕組みに変えたことで、大幅なコスト削減を見込んでいます」(江草氏)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。