一昔前、と言っても10から15年くらいまでですが、まだ、クラウドサービスが十分ではなかった頃では、Webサービスを展開する場合には、自前でデータセンターにラックを借りて、サーバやその他スイッチなど諸々購入しサーバを構築していたものです。

まあ、当時でも又貸し的なレンタルサーバというものがあったりしたのですが、単なる箱貸し、まだ、仮想環境もそれほど充実していませんでいたので、サーバ一台丸ごと借りるか、共用のサーバでユーザを切ってもらって借りるか。そんな感じで、全く現在のクラウドとは違ったものでした。

そのため、何かサービスを作る際には、データベース+アプリケーションサーバという構成が一般的でした。まあ、Webと言ってもPCブラウザくらいしかなかったのでこれで十分だったのですが、スマホが出てきてからは一変。PCでもスマホでもタブレットでも同じサービスを使いたいと思うのは人の常。

開発する側から言えば、それぞれ別々に作るのは手間ばっかりかかって本意ではない。とうことからレスポンシブルという考え方になってきました。今やWebのアクセスの半分くらいはスマホ経由だったりするのでPCばかりに固執するようなWebの作りでは、全く時代にあっていません。

以前ですとアプリケーションサーバでJavaEEでがっつり作っていけばよかったのですが、スマホなどに全部対応しようとすると、いろいろとそれぞれのために画面を作るのではなく、APIという考え方でモデル部分とView部分は分けるというのが現在の主流ではないでしょうか?

そのAPIを作るためにはそこそこ考えて作らないといけないのですが(ログインとかセキュリティとか、アクセス制御とか。。)、最近ではクラウドサービスとこの辺りが簡単に作れるものもできてきており、これを使わない手は全くありません。

自前で作ろうとすると結構面倒なのですが、すでにあるものにビジネスロジックだけ載せればいいのでこれほど簡単なものもありません。たぶん、工数比較でも10分の一以上短縮されるでしょう。

ただ、まだまだこれらの利用はそれほど進んでいないのが現状です。既存のものを移行するのか?とかそういう議論が発生するのは間違いなし。移してしまえば、まあ、クラウドベンダーにロックインされてしまうというデメリットはありますが、それ以上にメリットも多く、上手く使いこなす能力が今後必要になります。

今までは、アプリケーションエンジニアは、ミドルウエアとかに精通している人がもてはやされてきていましたが、これからはクラウドサービスに精通する人に重点が移っていくことでしょう。