2011年5月23日月曜日

インフラ構築におけるアジャイル開発とクラウドコンピューティング

前回のエントリーでは、ウォーターフォールモデルを経験して感じた問題点と
それらを改善しようと、最近注目を浴びているアジャイル開発について書きました。

今回も前回に便乗してアジャイル開発を取り上げたいと思います。
ただし、今回は、サーバ構築やネットワーク構築を行う、インフラ担当のエンジニアにとっての
アジャイル開発について書いていきます。

では、本題。
アジャイル開発は、主にソフトウェア開発を想定しているせいか、
インフラエンジニアにとっては非常に導入が難しい手法だと言えます。

というのもアジャイル開発の利点を考えた時、
  • 成果物は、実際のシステム
  • 小さな機能を一つずつ開発して、大きなシステムを構築するためクライアントの追加要求や変更要求にも柔軟に対応できる開発
などが挙げられますが、これを、インフラ構築で適用しようとした場合、大きな障害が発生するからです。

それは、サーバやストレージといった機器の調達作業です。

インフラ構築する際には、ウォーターフォールモデルでいう、基本設計や詳細設計の期間に機器の発注作業をし、
機器が導入されて初めて構築作業に移ります。

そのフローに、アジャイルのような柔軟な開発手法を取り入れた場合、機能追加の度に、発注が必要となったり、サーバ導入した際には、
ベンダーの保守も併せて導入しようとすると、サーバ毎に保守期間に差異が出たりで運用側に余計な作業も増やすことになります。

こう言った理由から、インフラエンジニアによって、アジャイル開発のような
システム開発中に柔軟に対応していく手法は、相性が悪いといえます。

じゃあ、インフラエンジニアは、今後未来永劫、ウォーターフォールモデルを
採用し続ける必要があるのかと言うと、そこで今流行りのクラウドコンピューティング(以下、クラウド)の登場です。

従来のコンピュータ利用は、ユーザー(企業、個人など)がコンピュータのハードウェアソフトウェア、データなどを、自分自身で保有・管理していたのに対し、クラウドコンピューティングでは「ユーザーはインターネットの向こう側からサービスを受け、サービス利用料金を払う」形になる。
クラウドコンピューティングより引用)

クラウドは、今や多種多様なサービスで用いられ、
猫も杓子もクラウドって言うくらい、IT業界では普及し始めています。

クラウドの特徴にみられる、「必要な機会に必要なリソースを提供する」を用いれば、
機能を追加する度に、機器発注する必要が無くなり、リソースを提供してもらうことで、
インフラ構築でもアジャイル開発ができちゃうってわけです。

インフラに引きづられて、アプリ開発でもアジャイルを
より導入しやすくなるので、なおいいですね。

そもそもクラウドコンピューティングが普及すれば、
インフラエンジニアの数は減るという意見をよく聞きますけど、
それは安易すぎると思います。

クラウドを利用するに当たって、
・どのくらいのリソースがシステムで適切なのか?
・クラウド上でインフラ環境を最適化するにはどうすればいいのか?
・クラウドコンピューティングサービスで順応しないミドルウェアはどうするのか?
といったように、まだまだインフラエンジニアの必要な場面はクラウドでもあります。

一見、アジャイル、クラウドコンピューティング
という単語だけを見ると、つながりは見えにくいですが、
使用の仕方だけでソリューションを提供できる幅が広がります。

というわけで、前回に引き続き、今回もアジャイル開発について書きました。
いつまでも同じような方法でシステム作って、デスマしてヒイヒイ言うのではなく、
多角的視点で柔軟なシステム開発を行っていきたいですね。

0 件のコメント:

コメントを投稿