インフラのクラウド化が進むと、これまで手作業で行なっていたこと、知識をつけて取り組まなければならなかったことが簡単に、そして短時間できるようになります。クラウドインフラを制御するAPIがその顕著な例で、たとえAPIの裏側を知らずとも、クラウドの機能を使うことができるようになります。
しかし、それでエンジニアの仕事がなくなったり減ったりするわけではありません。むしろ、みずから仕組みを学び、クラウドを前提として新しいものを作り続けなければなりません。翔泳社が2月18日に刊行した『絵で見てわかるクラウドインフラとAPIの仕組み』では、6人のクラウドインフラ専門家がAPIという切り口でクラウドインフラを解説。これからの時代、エンジニアに欠かせなくなる知識を学ぶことができます。
今回は著者6人のうち4人、平山毅さん、中島倫明さん、矢口悟志さん、元木顕弘さんに、本書について、そしてこれからのエンジニアの仕事についてお話をうかがいました。
クラウドインフラをAPIという切り口で解説する
――最初に、本書がどういったきっかけで生まれたのか、また皆さんがどういう意識をもって執筆されたのか教えてください。
平山:もともとクラウドの中身を知るための本を作るということでお声がけいただきました。従来の環境とクラウドで異なるのは、クラウドがAPIで操作できることですが、利用者はAPIそのものを理解できていないことが多いんです。ですから、そもそものAPIの原理から説明し、そのうえでクラウドでインフラをどう整備するかを全体の流れとして書きました。中盤にクラウドファーストにおいて全体統制が必要になってくる3点セットのネットワーク、オーケストレーション、認証、後半にクラウドネイティブにおいて必要な知識になるオブジェクトストレージ、マルチクラウド、イミュータブル、と読者が段階的に進めるように配慮しています。
中島:クラウドインフラの選択肢としてAWSとOpenStackが出てきました。どちらも自分ではハードを持たず、APIで機能を追加したり管理したりするわけです。本書はAPIがなかったときはどうだったのか、APIが登場したことで何が変わったのかなど、クラウドインフラをAPIという観点で解説しています。
読者は二つのグループを想定しています。一方は、ずっとITに携わってきて物理的なものに親しんできた人たち。そういう人にはクラウドによって何が本質的に変わってきたのかということを、それがAPIだという切り口で説明しています。もう一方は初めからクラウドが当たり前の世界の若いエンジニアで、彼らに対してはAPIの裏側、考え方を提示しています。
クラウド以前とAPIが登場したあとだと、システムの組み方に対する考え方が根本的に違っているので、そこを分かりやすく伝えるのがたいへんだったと思います。
元木:いままでは積み重ねでどんどん更新していくイメージですが、クラウドで新しくシステムを構築するときは別の環境を作ってしまって、切り替えてしまうという考え方が当たり前です。まだクラウドを導入していない方には、そういうことを知ってもらいたいなと思います。
クラウドインフラを制御するAPIを勉強する価値とは?
――わざわざ勉強しなくても使えるのがクラウドインフラとAPIの特徴だと思いますが、その裏側を勉強する必要はあるのでしょうか。
平山:普通のシステム管理には勉強しなくても使えます。ですが、クラウドがどうやって動いているのかについては、これをより発展的に使っていくためには知っておいて損のない知識です。クラウドそのものを作れたり、最適化できたりするエンジニアになれるでしょうね。
もともとクラウドはAPIだけからスタートしていて、そのあとコマンドラインやコンソールが出てきました。コアなエンジニアはAPIしか使っていなかった時代があります。いまこれだけ普及してくると、中身が分からない人が増えてきているでしょう。中身を触れることで応用が利きますので、本書ではそういったメリットを書いています。
元木:極端な例だと、APIを使って何かをするだけであれば、APIの裏側を知る必要はありません。それに、もっと高性能にしたければリソースを増やせばいいだけです。ですが、仕組みを理解すると、非効率な構成やボトルネックを推測しやすくなり、性能をより効率的にできるようになります。
中島:それと、APIリファレンスを見ることでサービスを作った人の思想が見えるようになりますね。そういう面白さもあります。
平山:いびつなものや、きれいなものが分かってきますよね。なんでこのコンポーネントがここにあるのか、といったことが分かると、「もっとこうすればいい」と考えられるようになりますから、エンジニアとしてステップアップできます。
――技術は進歩すればするほど下層部分が隠蔽されていきますが、エンジニアとしてステップアップするならそのヴェールをはがしていく必要があるということでしょうか。
元木:おおざっぱであれ、普通に利用するうえでは意識しないような裏側の部分がどうなっているかは意識しておいたほうが、システム全体を設計できる人になるかなと思います。
中島:クラウドのデザインは世界中の人が試行錯誤して生み出したベストプラクティスなので、その考え方を学ぶのは新しいものを作るうえでいいトレーニングになりますよね。
矢口:昔のプログラミング言語もそうでしたよね。どういう思想で書いてあるか分からないと、設計しても正しく動かないことがありました。いまのAPIでも同じで、裏側を分かっていないと正しく使えません。
元木:いまはAPIで一層下のシステムを隠しています。でも、そのうえにアプリケーションなりシステムを作ると、結局APIと同じようなことを上のレイヤーでやっていることになります。つまり、下層のレイヤーを知れば上層でも応用できますから、いろんなところを見ると勉強になるわけです。
APIはアプリケーションとインフラの垣根を縮めた
――クラウドインフラがAPIで制御できるようになったこと、これは具体的にどう画期的だったのでしょうか。
平山:APIはアプリケーション寄りの技術ですが、これをインフラに対応させたのが大きいです。要するに、いままで担当が完全に分かれていたアプリケーションエンジニアとインフラエンジニアの垣根を縮めました。
矢口:もともとオンプレミスだと、ハードを調達してきてデータセンターに持ってきてOSをインストールする、というのはアプリケーションエンジニアがやることではなかったんですが、これをクラウドAPIによってできるようになったんです。
元木:APIはアプリケーションプログラミングインターフェース、もともとアプリケーション同士が連携したりほかの機能を使ったりするためのものです。クラウドがこのAPIを持っているということは、アプリケーションからインフラ(リソース)を増やせるようになるのが面白いところです。そうすると、性能が足りないからサーバーを増やそうということが自分でできてしまいます。システムが上から下まで全部、自分のコントロールで動かせるんですよ。
平山:とはいえ、アプリケーションとインフラの両方ができる人はまだまだ少ないです。アプリケーションに詳しい人はインフラに詳しくないですし、インフラに詳しい人はAPIに詳しくない。今回はそれらをミックスして、両方を学べるようにしたのがポイントです。タイトルを見るとインフラ本に見えますが、けっこうアプリケーション寄りの内容も含まれています。
クラウド時代、エンジニアはより価値のある仕事を
――今後、インフラの構築がより手軽になることでエンジニアの仕事はどう変化していくのでしょうか。
平山:最近、クラウドが普及するとエンジニアの仕事がなくなっていくのではと言われています。しかし、クラウドやシステムを作るエンジニアは必要ですから、活躍する場所が変わるだけになるでしょうね。
一般企業でも、自分の会社でしか作れないシステムを作っているならエンジニアが必要です。ただ、ファイルサーバーなど、どの会社でも同じようなものを作っているエンジニアは淘汰されるでしょうね。
元木:そのとおりで、どのエンジニアでもやるような仕事はどんどん減っていきますが、自分の会社で有益な機能を提供しようというなら必要です。
平山:差別化を図るなら絶対に必要ですね。
矢口:抽象化のレイヤーが上がっていっても、エンジニアは抽象化したものをいかにお客さんに提供するかを考えていかないといけませんよね。
元木:便利なものが増えてくると、それに対応して求められるものが別の方向に増えていきますね。技術が発展するなら、それにともなってエンジニアの仕事も発展的に変わっていくべきで、いままでやってきたことをやり続けていくのではダメでしょう。
中島:日本の企業にはそんなふうになってほしいですね。クラウド上でリソースを使って新しいシステムを作って、いいものを提供してほしいです。クラウドになって仕事がなくなることを喜んでいてはいけません。
元木:技術が発達してできることが増えたとしても、働く人口は変わらないので、どんどん効率化していかないと全然人が足りませんよね。
平山:クラウドを導入するとインフラ管理者を削減してアプリケーション開発に集中できるようになります。すると、アプリケーションで差別化しなくてはいけなくなるので、エンジニアにはより発展的な仕事が増えていくのではないでしょうか。外国のエンジニアはそういう意識が高く、単純な作業は削減して、競争に勝つためのところにはリソースを投入するというスタンスです。
中島:いままで10人でインフラを担当していたとして、クラウドで1人できるようになれば、残りの9人は新しいサービスを作れるようになるという発想が必要です。
平山:そのためにはクラウドが必須となるので、本書で理解していただきたいですね。
――最後に、皆さんがお仕事をするうえでの目標を教えてください。
中島:日本の企業やエンジニアに、もっとクラウドを活用してほしいと思っています。みんながもっとITを使うようになって、日本がいま以上に豊かになればいいですね。
矢口:私は上流のコンサルティングに手を出していますが、お客さんはいままでできていなかったことをどんどんやりたいと思うようになっています。そこに訴求して自分の仕事を作っていかないといけないと考えています。
元木:いまクラウドプラットフォームを作っていますが、例えばAPIのような、本質は何かということを考えることが多いんです。本質を捉えることで、新しいレイヤーをうまくモデリングして、もっと楽ができる世界を作っていきたいですね。
平山:クラウドを使うとシステム構築が簡単になり期間も短くなるのでメリットがあります。ただ、変化も早いので大規模になると人間が管理するのはたいへんです。ですが、クラウドはAPIやJSONなどで扱えるので、コンピュータ(AI)でシステムを作って運用できるのではと考えています。そのために、なるべくインフラ情報はメタデータ化して、それをもとにコンピュータにやらせることで、よりシステム構築や運用を簡単にしていきたいと思っています。