クラウドやツール・フレームワークによる生産性向上
次に、フルスタックWebエンジニアが登場した背景です。図1のサーバサイド、クライアントの領域におけるツールとフレームワークの発展や、クラウド、特にIaaS(注8)の登場によりエンジニア1人がカバーできる範囲が大きく広がったことが挙げられます。つまり、具体的には次のようなことが現在進行形で起こっているのです。
- 開発ツール、クライアント、サーバサイドで利用できる各種フレームワークが、Webアプリケーションの開発生産性を押し上げ、日々さらに便利なものが登場し続けている
- IaaSによりインフラの構築が容易になった。IaaS登場以前は、回線契約からデータセンタ選定、サーバやネットワークの購入と構築をWebサービス提供前に実施する必要があったが、現在はIaaS業者と契約して、早ければ数時間でインフラ構築作業を完了できる
- IaaS、PaaS(注9)には、サービス開始後もWebサービスの成長に応じたスケールアウトを補助する仕組みが用意されている
- 開発環境がWebサービス(SaaS(注10))として提供され始め、Webブラウザ上でコードが書けるようになった。さらに、書いたコードのバージョン管理やサーバへのアプリケーションの配備まで面倒を見てくれるWebサービスも登場している
注8:Infrastructure as a Serviceの略。IaaSでは、コンピュータシステムを構築および稼動させるための基盤(仮想マシンやネットワークなどのインフラ)そのものを、インターネット経由のサービスとして提供する。(Wikipediaより引用)
注9:Platform as a Serviceの略。具体的には、インフラ、RDBMS、ユーザインタフェースなどのシステム開発手段となるツールや、開発したシステムを運用するための環境がWebを通じて使えるようになるサービス。(Wikipediaより引用)
注10:Software as a Serviceの略。必要な機能を必要な分だけサービスとして利用できるようにしたソフトウェア(主にアプリケーションソフトウェア)もしくはその提供の形態のこと。(Wikipediaより引用)
図2は、図1に対してクラウドが支援してくれるようになった領域に色を付けたものです。ほとんどの領域をクラウドがカバーするようになっていることが分かります。
もう一つ覚えておきたいのは、このような状況を後押しする事実として、クラウドやツール、フレームワークを学習するコストが著しく下がっていることです。つまり、こういうことです。
- 「できる人」の知識やノウハウが開発者のブログやCodeZineなど商業のWebページやコミュニティの勉強会等を通じて伝わりやすくなった
- オープンソースあるいは無償で利用できるツールやフレームワークが増え、Webから手軽にダウンロードして簡単に試せるようになった
- サーバが、IaaSなどによって無償あるいは非常に安価に利用可能になり、それらのサーバ上でツールやフレームワークを簡単に試せるようになった
少なくともWebの動きがこれほど活発ではなく、ツールやフレームワーク、実行環境が高価だった時代と比べると学習コストはぐっと下がったと言えるでしょう。
このように、クラウドの登場やツール、フレームワークの発展、学習コストの低減により、エンジニア1人がカバーできる範囲が大きく広がったことで、フルスタックWebエンジニアが登場できるようになったのです。
