クラウド時代のソフトウエア開発
ソフトウエア開発者にとってのクラウド
クラウドには、大きく3つのメリットがあります。
- 利便性と低コスト(仮想サーバーのリソースを自在に無駄なく利用できる)
- 拡張性と柔軟性(スモール・スタートで段階的に拡張できる)
- 運用の容易性(各種の自動化機能を活用できる)
図1: サーバー・リソースを調達する手間が要らなくなる |
(1)クラウドの代表的なメリットは、ITリソースへの投資が減ることと、ITリソースの調達が容易になることです。背景には、ITリソースを個々のユーザーが所有/占有するというモデルから、無駄なく利用するモデルへの変革があります。このパラダイム・シフトの下、クラウドに関する事象のすべてが、データ・センター業界を中心に、一気に注目を浴びています。
クラウドは、単なるブームではありません。カリフォルニア大学バークレー校の研究によると、「日々の運用を考慮すると、クラウドのような利用型モデルは、旧来型の所有型モデルに比べて経済的合理性が高い」とのことです。仮想サーバーの管理がポータルを介してマウス操作で簡単に実現できるという利便性も、高く評価されています。
(2)よく知られた、クラウドのもう1つの大きなメリットは、本番稼働前の検証作業を、最小限のコストで実施できることです。ハードウエアの調達というプロセスを割愛することにより、開発プロジェクトのリスクを極小化できます。これにより、早期にサービスを開始できるようになります。
Harvard Business School Publishingが掲載した2010年5月号の記事「Beating the Odds When You Launch a New Venture」でも、クラウドの利用がベンチャー企業の創業時のリスクを低減する点について言及しています。
(3)クラウドの3点目のメリットは、運用の容易性です。見逃されがちですが、決して無視はできません。
運用の容易性を無視できない理由は、仮想サーバー環境の利便性にあります。あまりにも簡単にリソースを確保できるため、無秩序にリソースが立ち上がり、運用コストが増大する可能性があるのです。これは、仮想環境には何らかの管理システムが必須とされる理由でもあります。前回紹介したようなクラウド運用基盤が無いと、クラウドのメリットは、逆にデメリットにもなり得ます。
では、上述した3つのメリットは、ソフトウエア開発者の視点に立つと、どのようなメリットにつながるのでしょうか。
もちろん、クラウドはソフトウエア開発者に対しても、数多くの恩恵をもたらします。中でも最大のメリットは、やらなければならない作業が減り、本来の業務に集中できるようになることです。インフラ関連の作業で開発者が担当しなければならないことは、仮想サーバーを立ち上げることだけです。これ以外の作業はすべて、クラウドが自動で実施してくれます。
具体的には、稟議処理の作業やハードウエア調達の作業など、多くの時間を費やす非常に面倒な作業から解放されます。これにより、ソフトウエア開発という、本来注力すべき作業にフォーカスできるようになります。この結果、開発期間が短縮され、サービスを早期に開始できるようになります。
つまり、クラウド時代においては、ソフトウエア開発者の役割に変化が生じます。よりクリエイティブな業務に従事することが求められるようになるのです。
プロビジョニングとデプロイメントの自動化
実際に、クラウドによってリソースの調達が容易となったことで、ソフトウエア開発を取り巻く環境は、刻々と変化してきています。
ソフトウエア開発者やテスト担当者は、自分の好きなタイミングで、テスト環境を構築して、テアプリケーションをデプロイメント(配備)できるようになります。本番環境への移行を見据えてリソースを拡張することも、逆に縮小することも、手間やコストをそれほど掛けずに実現可能になってきています。
今までのようにデプロイメント作業や周辺作業に無駄な時間を費やす必要が無くなくなります。これにより、開発者の生産性が向上します。インフラに対する依存性を除去することによって、ソフトウエア開発が未知の領域に入っていっているのです。
こうした新たなソフトウエア開発を可能にするには、世の中に出回る多くのツールを見極めて、適切に利用することが重要です。クラウドの恩恵を最大限に享受できるよう、ツールを組み合わせてチューニングすることが大切です。
図2: 運用が自動化されていない環境では、開発者は本来の仕事に集中できない |
図3: 仮想化環境の運用を自動化すれば、開発作業に集中できる |