クラウド開発:参加する前に知っておくべき9つの落とし穴

より多くの企業がパブリックおよびプライベートクラウドコンピューティングイニシアチブを開始するにつれて、クラウドでのアプリケーション開発とテストが人気を集めています。クラウド開発には通常、統合開発環境、アプリケーションライフサイクル管理コンポーネント(テストと品質管理、ソースコードと構成管理、継続的デリバリーツールなど)、およびアプリケーションセキュリティテストコンポーネントが含まれます。

クラウドベースの開発の経験を持つテクノロジーエグゼクティブや開発者は、これらの環境で開発することには、コストの節約や市場投入までのスピードの向上など、明らかなメリットがあると述べていますが、注意すべき課題や驚きがあることも警告しています。

[編集者の21ページのクラウドコンピューティングディープダイブPDF特別レポートで、クラウドコンピューティングを実際に活用するために必要な実用的な説明とアドバイスを入手してください。| のクラウドコンピューティングレポートニュースレターでクラウドを常に把握してください。]

クラウドでの一般的な開発がどの程度になる可能性があるかは明らかではありません。しかし、業界分析はそれが増加していることを示しています。2011年2月のリサーチノートで、Gartnerは、2010年に同社のシンポジウムに参加したクライアントが、既存のカスタムWebアプリケーションの開発と保守を強化するためのクラウドコンピューティングへの「大幅な関心の高まり」を表明したと述べました。

「プロトタイピングと並列ブランチ開発で最も多く見られますが、負荷テストとパフォーマンステストの分野でも大きな成長が見られます」とGartnerの主任研究アナリストであるEricKnipp氏は述べています。

初めてクラウド開発に挑戦することを検討している場合、ここでは、遭遇する可能性のある9種類のハードルと、実際に作業を行った開発者からそれらに対処する方法についての提案を示します。

クラウド開発の落とし穴1:クラウドは必ずしも「現実の世界」のように機能するとは限りません

開発者は、本番環境で使用する構成をクラウドサービスで複製するのが難しいことに気付くかもしれません。たとえば、ローカルで実行するために戻す前にクラウドで開発したアプリケーションでは、クラウドサービスに単純にコピーできないレガシーシステムに対してテストする必要がある場合があります。Knipp氏は次のように述べています。テストアプリを稼働させるために開発者がスタブアウトしなければならないものがもっとあります。」

Knipp氏によると、サービス仮想化テクノロジーが役立つ可能性があり、開発者は複数/並列のブランチ開発を可能にする市場提供を利用できます。企業がエンタープライズアプリケーションをクラウドに移行するのに役立つLisaと呼ばれるソフトウェアスイートを提供するiTKOを例にとってみましょう。

クラウド以外の開発に慣れている開発者は、クラウドでWebアプリケーションを構築する際にも驚きに直面する可能性があります。たとえば、オハイオ音楽教育協会のオンライン登録アプリケーションを作成したGreg Taylorは、データベース構造と、アプリケーションを作成したときにユーザーがデータベースをどのように操作するかについて、このような完全な理解が必要になるとは思っていませんでした。

州全体の音楽コンテンツへの学校の音楽パフォーマーの登録を処理するアプリは、バックエンドとしてMySQLデータベースを使用し、フロントエンドとしてAlphaSoftwareのAlphaFive10.5を使用します。 「私はFileMakerProのバックグラウンドから来ており、その製品はデータベース構造に関して非常に寛容です」とテイラーは言います。 「貧弱な設計でも、かなりの成功を収めて使用できます。」

しかし、MySQLを使用して開発すると、Webアプリが可能な限り最高のパフォーマンスを発揮するように、テイラーを非常に整理する必要がありました。テーブル構造に戻ってフィールドを追加するには、さまざまな開発ツール(MySQL用のNavicatと実際のWebページデザイン用のAlpha Five)の間でローテーションする必要があるため、時間がかかります。最初のツールはデータベース構造を作成し、2番目のツールはデータベースに情報を入力および編集するためにユーザーが操作するページを作成します。

「これは、すでに作成されているデータベースを活用する開発者にとっては問題ではないかもしれません」とテイラー氏は言います。「彼らは単にAlphaFiveを使用して、ユーザーがアクセスするWebページを開発していました。私の場合、データベースとWebページの両方を同時に開発していたため、計画していなかった場合は開発ツールを切り替える必要がありました。慎重に」

進行中のラウンドトリップを回避するために、テイラーはデータベース開発アプローチを変更する必要がありました。「最初に必要なすべてのフィールドを使用して明確なERD [エンティティ関係図]を開発することにより、Webアプリが効率的になり、全体的な開発時間が大幅に短縮されます。」

場合によっては、クラウド開発ツールは現実世界のように機能します。少なくとも、昨日のバージョンの現実世界のように機能します。腎臓透析を専門とするヘルスケア企業であるDaVitaのHRISシニアアナリストであるJeffHensleyは、クラウドで作業する開発者がコマンドラインツール、XML、SQLを使用する必要があることに驚いていました。彼は、採用が増えるにつれて、昔ながらのアプローチが時間とともに変化することを期待しています。

DaVitaは、クラウドベースのアプリケーション配信プラットフォームとホスト型サーバーの両方を使用して、人事データウェアハウスとビジネスインテリジェンスアプリケーションを開発および配信しています。

クラウド開発の落とし穴2:一部のアプリはクラウドでの開発には理想的ではありません

たとえば、Faith EducationalMinistriesのIT担当副社長であるDanStueckは、極端なデータセキュリティや規制上の制限があるクラウドでのハイエンドアプリケーションの開発を避けたり、Cobolなどのレガシーコーディングプロジェクトに依存したりしています。「これら2つはおそらく社内で保管するのが最善です。1つ目は明らかなセキュリティ上の懸念のため、2つ目は「死語」の問題のためです」と彼は言います。

Stueckがクラウドを使用したのは、Amazon.comのパブリッククラウドサービスで開発サーバーを実行し、クラウドで学生情報システム、学生の成績証明書アーカイブ、および家庭用教科書販売アプリケーションを構築することです。

クラウド開発の落とし穴3:開発者は、なじみのないクラウド領域を嫌うことがよくあります

「おそらく最も予想外だったのは、[クラウド開発]プロジェクト全体が管理チームと営業チーム、およびシステムを使用するすべての人にどれだけ受け入れられたか、そして[そして] IT組織、特に開発者にどれほど受け入れられなかったかでした。 「20/20のチーフアーキテクトであるマークウォーレンは言います。

ウォーレン氏によると、IT担当者は、Microsoft .Net、SQL Server、Java、およびその他の従来の開発プラットフォームでの作業に慣れていて、Force.comはまったく異なるモデルでした。「SQLとJavaを知っているなら、それがあなたのツールボックスであり、入ってくるこの完全に異質なプラットフォームに行きたくないでしょう」とウォーレンは言います。

その結果、販売アプリケーションは、IT開発者ではなく、主にビジネススタッフによって開発されました。ウォーレン氏によると、それは独自の一連の課題をもたらしました。その最大の課題は、変更管理とITガバナンスに関するビジネスマンの理解の欠如でした。 「ITには、ビジネスマンが彼らに強制することに慣れていないレベルの規律があります」とウォーレンは言います。 「変更管理の問題について、彼らをスピードアップする必要がありました。」

テクノロジー担当者がクラウド環境で開発することに抵抗があることに対処することに関しては、ITがクラウドコンピューティングを社内で採用するのを支援するために実装できるプログラムがあります、とウォーレンは言います。「トレーニングは確かに促進するための良い方法です」と彼は言います。「しかし、ITの文化が新しい方法やテクノロジーに開かれているのでない限り、組織の変更[新しい開発者の獲得]が唯一の選択肢かもしれません。」

クラウド開発の落とし穴4:ドキュメントの欠如がクラウド開発者の妨げ

「需要が増加し、ますます多くの企業がクラウドの概念を採用し始めるにつれて、変化することを間違いなく期待しています」とヘンズリー氏は言います。「私たちはコンサルティング会社と提携することでそれと戦うことができました。」

クラウド開発の落とし穴5:ネットワークの問題がプライベートクラウド環境を悩ます可能性がある

Embarcaderoは、仮想化されたデータセンターをアプリケーションの構築とテストに使用しています。「内部プライベートクラウドの場合、スケジュールされた日時を選択することと、特定の順序で実行されるサーバーをステージングすることの2つのオプションがあります」とIntersimone氏は言います。「メインのプライベートクラウドと地域の開発オフィスで常に実行されている自動ビルドプロセスと自動スモークテストプロセスがあります。」

より利用可能な環境を取得するために、Intersimoneは、パブリッククラウドとプライベートクラウドにインストールしてオンデマンドのスケーリング、フェイルオーバー、ディザスタリカバリ、および災害対応を提供できるCohesiveFTのクラウドコンテナと仮想プライベートネットワークの提供を検討していると述べています。

開発とテストに影響を与える可能性のあるその他の問題には、特に世界の特定の地域でのネットワークの遅延と遅延、およびネットワークパイプのサイズが含まれます。エンバカデロは、カリフォルニア州スコッツバレー、カリフォルニア州モントレー、フロリダ州トロント、サンクトペテルブルク、ルーマニアのヤシに研究開発センターを持ち、世界中に小規模なチームや個人が散在しています。

Embarcaderoの地理的に多様な開発環境により、「チェックイン、ビルド、および自動テストの同期が困難になります」とIntersimone氏は言います。この問題のいくつかを解決するために、開発者は、すべてのユーザーが利用できる仮想サーバーで、ローカルビルドとリージョナルビルド、およびコードチェックインを実行します。開発者は、自分のマシンでローカルビルドも行います。 Embarcaderoは、ソースコード管理用のオープンソースツールであるSubversionを使用して、これらがプライベートクラウド上のマスターバージョンと同期しなくなることがないようにします。

「ビルドが発生すると、自動テストが実行されてビルドが検証されます」とIntersimone氏は言います。「その後、通知はすべての開発チームに送信され、ビルドは中国の壁を越えて、開発センターにある多数の自動テスト仮想マシンに自動的にプルされます。」結果のビルドに対して自動テストと手動テストが実行され、ステータスが確認されます。このプロセスが完了すると、他のチームメンバーにメールが送信されます。「これはすべて、プロジェクトの開発期間中継続的に発生します」と彼は言います。

クラウド開発の落とし穴6:メーターをクラウド上で不必要に実行させるのは簡単です

もう1つの潜在的な問題は、クラウド料金にお金を浪費することです。開発者は、使用していない仮想マシンをオフにすることを簡単に忘れたり、無視したりする可能性があります。「一部のクライアントから、開発者が仮想マシンリソースを使いこなすようになっていると聞いたことがあります。たとえば、週末に開発者が作業を続けてしまうこともあります」とGartnerのKnipp氏は言います。「社内の資本化されたサーバー上にあった場合、これは大したことではありませんでした。しかし、パブリッククラウドコンピューティングのように使用量が計測され、リースされたリソース上にある場合、これはお金の無駄です。」

Knipp氏は、プライベートクラウドイニシアチブを展開する企業にとって、これが新たな課題になると予想していると述べています。

プライベートクラウドでの開発者の仮想マシンの使用に対して予想外の大きな請求が発生するリスクはほとんどありませんが、「セルフサービスのプライベートIaaS環境では、開発者はVMを起動し、オフにすることはできません」とKnipp氏は言います。「これらは、効果的に利用されていないマシンからリソースを効果的に消費し、計画が歪曲されるため、組織が過剰な容量を購入する結果となる可能性があります。」

クラウド開発の落とし穴7:クラウドライセンスには、驚くべき展開制限が含まれる可能性があります

開発に影響を与える可能性のあるクラウドに関する非技術的な問題の中には、ライセンスの制限があります。2年前、全国的な人材派遣会社であるケリーサービスは、Salesforce.comのForce.comプラットフォームを配信手段として機能させ、自社開発のアプリケーションの多くにクラウドベースの開発を使用することを決定しました。

ケリーサービスのCIOであるJoeDrouin氏は、クラウド開発により、アプリ開発のターンアラウンドタイムが短縮され、コストが削減されるなどのメリットがもたらされたと述べています。しかし、同社はまた、ライセンスに関していくつかの予期しない問題に遭遇しました。具体的には、どのタイプのユーザーシートがあり、どのような制限があったかについてです。たとえば、座席には、ユーザーがアクセスできるオブジェクトの数が設定されている場合があります。その結果、開発に関して「ある時点で、私たちができること、できないことに驚いた」とDrouin氏は言います。

クラウド開発の落とし穴8:統合のトラブルシューティングが難しくなる可能性がある