サーバーレスが「ソフトウェア生産性の向上」に効く9つの理由

文●大塚昭彦/TECH.ASCII.jp

2017年11月07日 08時00分

11月3日、コミュニティ主導の技術カンファレンス「ServerlessConf Tokyo 2017」が東京・文京区で開催された。東京で2回目の開催となる今回も、サーバーレスアーキテクチャに関する技術解説セッションや導入事例セッション、ブース展示などが催され、多くの来場者で賑わった。

東京で2回目の「ServerlessConf」開催。朝から多くの来場者が詰めかけた

協賛各社の展示ブース。今年は昨年の1.5倍以上の規模で、会場も飯田橋に移動

冒頭、イベントオーガナイザーであるSection-9 CEOの吉田真吾氏が挨拶を行った。昨年5月、吉田氏がニューヨークで開催されたServerlessConfに参加し、ぜひ日本でも開催したい!と思って東京に持ってきた、という開催までのいきさつは昨年のレポート記事をご参照いただきたい。

東京で2回目となる今年のServerlessConf Tokyoは、事前参加登録だけで460名を超え、昨年参加者の1.5倍以上の規模となった。カンファレンストラックも2トラックに増え、それに伴って会場も移動した。吉田氏は「2回目だが結構大きくなってきた。皆さんもこの(サーバーレスの)盛り上がりにぜひジョインしてほしい」と来場者に呼びかけた。

ServerlessConf Tokyoのオーガナイザーを務める、Section-9の吉田真吾氏

ITがパワフルになっても生産性が向上しないパラドックスの理由

この日のイントロダクションとなるセッションでは、Serverless, inc.のニック・ゴットリーブ氏が登壇し、「サーバーレスとソフトウェアプロダクティビティ(ソフトウェア生産性)」と題したユニークな講演を行った。端的に言えば、“なぜサーバーレスがソフトウェアの生産性向上に効くのか?”を説明する内容だ。

Serverless, inc.のニック・ゴットリーブ(Nick Gottlieb)氏。サーバーレスインフラに対応するデベロッパーツールを開発する同社は米サンフランシスコにオフィスを構えるが、メンバーの半数は世界中に点在してリモートで仕事をしているという

ゴットリーブ氏はまず、ソフトウェア生産性を「開発者の生産性」と「ユーザーの生産性」の2つに分類した。前者は「そのソフトウェアの開発にどれだけ時間がかかったか」、後者は「ソフトウェアユーザーの業務がどれだけはかどったか」で計ることができる。

そして、いずれの側面においてもこの30年間、とくにインターネットの普及以後には数々のイノベーションが起きている。開発者においては「アジャイル」など開発プロセスの進化、DevOpsやデリバリの自動化、クラウドインフラの活用、そして小さな“部品”単位で開発が進められるマイクロサービスアーキテクチャの登場などが挙げられる。ユーザー側でも、インターネットによるソフトウェア配信、BPO(ビジネスプロセスアウトソーシング)、SaaSにおける従量課金モデル、専用端末不要でブラウザでもモバイルアプリでも利用できるプラットフォームといった、大きな変化が起きている。

ソフトウェアをめぐっては、開発者の側でもユーザーの側でも大きなイノベーションが起きている

こうしたイノベーションによって、生産性は飛躍的に伸びているはずだ――と思われるかもしれない。だが、業務生産性にまつわる現実の統計データを見てみると、80年代以降、IT/ソフトウェアの業務活用が一般化した後も生産性の伸び率には大きな変化は見られず、むしろ伸び率は鈍化している。これが「生産性パラドックス」と呼ばれる現象であり、経済学者の間では古くから議論されてきた問題だ。

「ソフトウェアやコンピューターはとてもパワフルなものになり、イノベーションも生まれた。なのに生産性は下がっている。不思議に思わないだろうか?」(ゴットリーブ氏)

「生産性パラドックス」。ビジネスにおけるIT活用が定着しても、生産性は大きく伸びておらず、近年はむしろ鈍化している(グラフは時間あたりの生産性伸び率、黒の点線が平均値)

ゴットリーブ氏は、その理由について「いまだにソフトウェア開発は複雑な作業であり、開発にコストがかかりすぎているからではないか」と、自身の見解を述べる。

「たとえば、ソフトウェアで実現したい機能は単純なのに抽象化が複雑すぎる。ソフトウェアを毎回ゼロから作り直すため、異なる開発チームが同じもの(機能部品)を作るのに時間をかけている。そして昔よりも豊富なデータが存在するのにアプリケーションでの利活用が進んでいない、それを実現しようとするとツールが複雑すぎてできない。そうした現状が背景にはある」(ゴットリーブ氏)

サーバーレスの進化と普及がソフトウェア生産性を向上させる理由

そして、サーバーレスこそがこうした課題の多くを解消し、生産性向上を実現しうるのだとゴットリーブ氏は説明し、そう考えうる「9つの理由」(=サーバーレスによって実現すること)を具体的に挙げた。中には現在ではなく将来的な予測も含まれるが、以下、同氏のコメントとともに紹介しよう。

「サーバーレスが生産性向上を助ける9つの方法」

1)スケーリングをアプリケーション開発から切り離せる:「アプリケーション開発者は、ロジックを作る、ユーザーエクスペリエンスを作る、顧客の問題を解決するといったことに専念すべき。インフラのスケーリングは開発と完全に切り離され、開発者がそれを気にしないで仕事ができなければならない」
2)アプリケーションをグローバルにデリバリしやすい:「今やアプリケーションを利用する顧客は世界中に分散している。世界中の顧客にアプリを届けるための労力も、アプリケーション開発とは切り離したい。サーバーレスならばそれが実現可能だし、デフォルトでそうでなければならないと考えている」
3)低コストで実験ができる:「アジャイル開発に限らず、ソフトウェア開発において機能セットのテスト、バリデーションは必須だ。しかし、それにはコストもかかり複雑になりがちだ。モックアップを作るならソフトウェアは再利用したい」

サーバーの存在を考慮しなくてよいためグローバルなデリバリも容易に

4)製品とともにテクノロジーもスケールアップできる:「これもサーバーレスに大きなチャンスを生む。製品のスケールは、製品開発やバリデーションの段階、マーケティングの段階、そして大規模展開の段階と、段階を踏んで徐々に拡大し、各段階でさまざまなテクニカルニーズが生まれる。ここで、コードスタックに手を入れずにスケールアップできれば、大幅な開発生産性の向上になる」
5)最新のテクノロジーにもアクセスしやすくなる:「たとえば機械学習やAI、ビッグデータ分析などでも、パワフルでイノベーティブなツールが、オープンソース(OSS)として誰でも無償で使えるようになっている。ただし、開発者がそれを使いたいと考えても、自ら管理するならば複雑なオペレーションや設定の問題が生じる。サーバーレスの未来がやって来れば、ボタンをクリックするだけでその機能が使えるようになる。これまで使ったことがない人でも、詳細を知る必要もなく、ファンクションを書くだけでそのテクノロジーにアクセスできる」
6)ビジネスツールのカスタマイズが楽にできる:「ビジネスツールとしてすでに数多くのSaaSが提供されているが、SaaSには作成者側の『意図』も付いてくる。つまり、自分の業務プロセスをSaaSに合わせなければならない。サーバーレスやFaaS(Function-as-a-Service)は、こうしたツールのカスタマイズを楽にしてくれるだろう。カスタマイズコードを1行書くだけで、(ユーザーとしての)業務生産性が簡単に向上する。FaaSを介してSaaSへの機能追加を行う取り組みは始まっており、将来的にそうした考え方が普及するだろう」

先進的な機能も、深く理解することなく「部品」として使えるようになる

7)データのアクセシビリティが高まる:「サーバーレスアーキテクチャは、基本的にはイベントドリブンアーキテクチャであり、データへのアクセスを容易にする。ほとんどすべてのデータがイベントとして、単一フォーマットで表示されるということになれば、データアクセスが非常に楽になり、可搬性や移植性の問題もなくなってしまうはずだ。Serverless, Inc.では現在、マイクロソフト、グーグル、AWSとともに『OpenEvents』というデータフォーマットの標準仕様策定に取り組んでいる」
8)コードの再利用が促進される:「マイクロサービスのファンクションがOSSとして開発、共有されれば、これを再利用することができる。同じコードを何度も開発するのはもうやめよう。すでに、こうしたファンクションを共有する“プール”を作ろうという動きがあり、今後もその動きは拡大していくだろう。開発者が、自社独自のビジネスロジックだけ書けばよいという世界に近づいていけば、ソフトウェア産業全体の生産性も上がっていくはずだ」
9)ローコード、ノーコード(Low/No-Code)の開発を可能にする:「コードを書かずにソフトウェア開発ができるようにしよう、という議論すらある。現状ではまだ価値のあるソフトウェアは開発できていないが、サーバーレスによって最終的にはこれが可能になると思う。具体的にいつ実現するのかは予言できないが、そうした進化の兆しは見えている」

コードが小さな“部品”として共有されるようになれば、再利用も大幅に進むだろう

上述した「9つの理由」のうち、特に後半は将来的な予測にすぎないものの、いずれもすでにその目標を目指した取り組みがスタートしているという。サーバーレスやマイクロサービスの特性を考えると、一概に「楽観的すぎる」と否定できるものでもないはずだ。当初は否定する声も多かったOSSムーブメントが大成功を収めたように、むしろ、そう変化していく可能性は十分にある。

「(ここに紹介したような)サーバーレスの未来は、それほど遠い未来ではないと思っている。コードが書ける書けないにかかわらず、誰でも価値のあるソフトウェアを開発できるようになる。そして、価値のあるソフトウェアが増える。つまりサーバーレスによって、開発者の生産性も、ユーザーの生産性も向上が期待できるのではないだろうか」(ゴットリーブ氏)

ゴットリーブ氏は最後に、サーバーレスはまだ2年前に生まれたばかりのとても新しいコンセプトであり、「ぜひとも今現在なにが起きているのかを理解して、サーバーレスの未来に向けたムーブメントをプッシュする一員になってほしい」と聴講者に訴え、講演を締めくくった。

■関連サイト

■関連記事