クラウド時代のソフトウエア開発
ソフトウエア開発を変える3つの自動化
ソフトウエア開発の視点に立つと、クラウドには、以下の3つの自動化機能が求められます。
- セルフ・サービスによるインフラ調達(プロビジョニング)の自動化
- アプリケーション配備(デプロイメント)の自動化
- 監視/更新/修復の自動化
株式会社モーフ・ラボでは、これら3つの自動化を達成したクラウド環境を利用することで、クラウドのメリットが何倍にも高まると考えています。逆に言えば、生産性向上、効率向上、利益拡大などのメリットを現実的に得るためには、これら3つの自動化が必須であると考えています。
セルフ・サービスによるインフラ調達
ソフトウエア開発者から見たクラウドの最大のメリットは、必要に応じて、自分自身の操作によって、アプリケーションのテスト環境や本番環境を構築できることです。
これらの作業は通常、セルフ・サービス型のポータル・サイトが提供しているデザイン・ツールを介して、マウス操作によって実施します。
Webサーバー、アプリケーション・サーバー、データベース・サーバーなどは、テンプレートとして可視化/共通化/共有化されています。アプリケーション開発時には、これらのインフラを活用するかたちで構築します。こうすることで、一貫したインフラ設計方針の下で、アプリケーションを開発できます。
テンプレートは繰り返し利用できるため、開発や運用の多方面にわたって効率が高まります。
アプリケーション配備(デプロイメント)
デザイン・ツールや各種テンプレート並にソフトウエア開発に貢献するクラウド関連技術が、アプリケーションのデプロイメント(配備)です。
セルフ・サービスでインフラを整備する裏で、ロード・バランサの設定やパッケージのインストール、各サーバー間の通信設定などが自動的に実施されること。これによって初めて、運用コストの削減につながります。
こうした作業をソフトウエア開発者が手作業で実施していたら、逆に管理コストの増大につながりかねません。
監視/更新/修復
アプリケーション稼働後のメンテナンス作業も、自動的に実施される必要があります。
例えば、バグ、セキュリティ・ホール、ランタイム・エラーなどは、自動的かつ速やかに解決/修復される必要があります。
逆に言えば、自動設定、自動監視、自動修復などの自動化機能が無かったら、クラウドの導入によって、かえってTCO(Total Cost of Ownership)が増えることにもなりかねません。
まとめ
現在、システム構築の手段として、クラウドが世間の注目を集めています。各種の機能拡張により、ミッション・クリティカルな業務に必要な環境でさえ、容易に構築/運用できる時代が近付いてきました。
しかし、ソフトウエア開発者がインフラ関連の作業から完全に解放されるには、まだまだ時間がかかります。例えば、現実には、HA(高可用性)環境を手作業で構築しなければならない場合が多く、環境が拡大する中で、こうした作業が複雑化していきます。
ただ、こうしたインフラ設定作業の大半は、モーフ・ラボのmCloudシリーズなどのツールを導入することで、自動化できます。自動化の先には、本来の開発業務に集中し、業務上の各種の問題をITで解決する、質の高いソフトウエア開発者の時代がやってくるのではないでしょうか。