クラウドを上手く使わないと競争に勝てない
吉羽 そうすると、片山さんの中では、クラウドがある今は使える道具が増えたため、そのいい道具を使うと今まで以上に速く開発できるようになる。クラウドのなかった過去とある現在ではそれが一番の違いで、ツールセットがとにかく増えて、AWSでいうところのビルディングブロック(パーツとしてのサービス)を組み合わせやすくなったという感じでしょうか。
片山 そうですね。今まで組み合わせられなかった大きなパーツがいっぱい揃ってきて、それらも合わせて、アプリケーションにガツンと組み合わさるイメージが一番近いですね。だから僕は、インフラとアプリを区別することは、あまり意味がないと思っています。僕の中では、サービスをどのレイヤーで結合させて、運用するかということが重要だと思っています。例えばDynamoDBはクラウドサービスですが、アプリケーションから見ると、NoSQLのライブラリを呼び出しているのかサービスを呼び出しているのかってあんまり関係ないんですね。
吉羽 まあ、どうせラップしちゃうしね。インターフェイスだけでしょって話になる。
片山 そうそう。アプリレベルで、クラウドだからどうだを意識しなくても色々なものを組み合わせられればすごく強いと思うんですよね。だから僕も、例えばGoogleのサービスは知らないものも多いから、もっと勉強したいなと思うし、Azureもそうですね。使えるものは使っていきたい。まあでもAWSがやっぱり好きなので、よく使っちゃいますけど。
吉羽 なぜクラウドを勉強しなくてはいけないのかというより、クラウドで提供されてるようなパーツを上手く使わないと生産性に大きな影響が与えるので。昔のやり方のままだと競争に勝てない。
片山 WebフレームワークのStrutsが出てきた時も、Strutsを知らないと勝てないという状況が一時期あったんです。要は生産性を上げるっていう目的でStrutsをみんな使ってたんですよ。逆にいうと、フレームワークなしで一から作る場合、明らかに生産性が劣るとみなされ、案件が取れなかったという時期もあります。それが真理かどうかはわからないけど、実際問題としてはあったんですよね。
自分たちでサービスを作る場合も、フレームワークを前提にしたほうが効率は高いし。そういう、効率を上げるためのセットを増やしておいたほうが、競争には勝てそうだという気はしていますね。
吉羽 自社サービスの開発だと、今までのやり方では時間も金もかかってやってらんないっていう文脈がある。一方、SIの文脈で見ると、その力ってどの程度働くものなのでしょうか?
片山 SIを一概には言い切れないですけども。難しいですよね。競合がもしいなくて、仕事が取れるんだったらそれはそれでいいのかもしれないですけど。
吉羽 でもエンジニアとしてはリスクありそうですよね。
片山 考え方次第、どこに賭けるかですね。僕は、外からもっと生産性が高いものを持ち込まれたとしたら負けるなっていう気がすごくあるので、生産性が高くなる仕組みを自分で使えるような環境に身を置きたいなと思います。
吉羽 インタビューの冒頭で聞いた話ですけど、片山さんがはじめ製造業に就職したとき「この会社で一生はいないだろうな」と思うのか、ずっといれそうだと思うのかによって、自分にどのように投資するかは変わってくるでしょうね。
片山 反面、業務でやってなくても別に構わない。例えば個人でクラウドを使って何かできますし。
吉羽 100円、200円で試せるしね。一瞬で。
片山 だからいち開発者としてSI案件をどう捉えるか、もちろん仕事でクラウドを触れたらいいんですけど、仕事が別にクラウドじゃなくても、学ぶことっていっぱいあると思うんですよ。仕事の進め方とか、要件定義の仕方とか、運用管理の仕方とか、不具合の管理とかって。
吉羽 それって、あんまりクラウドに関係がなく、汎用的なスキルセットってやつね。
片山 そうそう。それはすごい汎用的で役に立つセットだし、まあクラウドがもし必要だと思うんだったら、それ以外のところで十分学べばいい。勉強会に行ってもいいし、自分で何かサービスを作ってみるでもいいし。後は、自分が何かモチベーションが湧きそうなものを作ってみるとか。
吉羽 Bot作ったりね。
片山 それで十分勉強はできるんじゃないかなと思うので、あんまりそのSIの案件がどうこうではない。
吉羽 自分のためとして、品揃えを増やしておく。
片山 こういうのは、どこの業界でも一緒だと思うんですけどね。特にIT業界はどんどん新しいことが増えていくので、それを増やしておくのは投資としては別に悪くないと思いますね。
クラウドネイティブ化は明確なメリットがあるか見極めて
吉羽 片山さんは、インフラとアプリの境界があんまりないって仰ってましたけど、一方で、僕らがAWS時代に導入支援した際にも、オンプレミスの構成そのままにクラウドに移行する「単純移行」も多かったじゃないですか。でも今だと、データベースからクラウドに最適化するような、クラウドネイティブに移行しようという話もあります。
箱としてクラウドを触るのと、クラウドネイティブ化するって、それなりに高い壁があって、とはいえ、開発者でクラウドネイティブなアーキテクチャを知っている人も多くない。片山さんは、クラウドネイティブについてどう思いますか? そもそもそれって学習したほうがいいのか、学習しなきゃいけないとしたらそれはなぜなのかについて聞いてみたいです。
片山 クラウドネイティブについてはいくつか視点があると思うんですが、例えばクラウドネイティブなアプリケーションを作ることでコストが安くなるのが一つ。耐障害性が高くなるというのもありますよね。そのようなメリットが明確だったらもちろんやったほうがいいと思うんですね。ほか、AWSに固めるメリットもあるじゃないですか。例えばボリュームディスカウントも利くし。
吉羽 グローバル展開も簡単。
片山 そういうメリットがあるんだったらやったほうがいい。ただ、1日2時間ぐらいしか処理をしないサーバーがあったとして、クラウドネイティブ化して明確なメリットが得られないとしたら、アプリケーションや運用を変えてまであえてやる必要はないですよね。
吉羽 目的をちゃんと設定しないと、クラウドネイティブもへったくれもない。
片山 ただ、一から作るとか改修するんだったら、さっきのライブラリと一緒ですね。より高性能なライブラリがあるんだったらそっちに切り替えたほうがいい。そんな感じで、クラウドサービスに乗り換えてみるとか使ってみるのは、ありだと思いますね。
