ZOZOテクノロジーズのMLOpsチーム

新野淳一氏(以下、新野):Publickeyの新野と言います。ここから私が司会をさせていただいてCloud Native Talk Night vol.3を始めていきたいと思います。

パネリストの紹介をさせていただきます。私の一番近くにいらっしゃるのが、ZOZOテクノロジーズの太田さんです。簡単に自己紹介をお願いします。

太田航平氏(以下、太田):ZOZOテクノロジーズの太田と申します。よろしくお願いします。ZOZOテクノロジーズでは、インフラのMLOpsという組織にいます。

MLOpsというのは、機械学習の基盤などを作っているチームです。Kubernetesを使って、ZOZOTOWNで使っているAIと言われるものの一部を提供したり、それを本番で運用するためにいろいろな施策を行ったりしているチームですね。あと、最近は兼任でID基盤という認証の部分を新しく作り替えてモダンな技術スタックで作り替えるみたいなインフラ部分も担っています。よろしくお願いします。

新野:ZOZOテクノロジーズってZOZOの技術開発部門だと思えばいいんですか?

太田:そうですね。ZOZOの100パーセント子会社という立ち位置で、主にエンジニアやデザイナーが所属している組織になります。

新野:なるほど。そこでECサイトなどをより良くするためのMLOpsを担当していらっしゃる?

太田:そうですね。いろいろ部署がある中で、私はそちらの基盤の部署にいます。

新野:なるほど。主に基盤の運用保守をやっている感じなんですか? 開発にも関わっていらっしゃるんですか?

太田:うちのチームは比較的開発からインフラの運用まで幅広くできるチームのメンバーがそろっているので、ときとして開発のコードに手を入れることもあります。

新野:なるほど。ちょっとDevOpsっぽいにおいがしますね。SREっぽいというか。

太田:そうですね。SREの要素はかなり意識してやっています。

新野:またのちほど詳しくお話をお伺いします。よろしくお願いします。

太田:ありがとうございます。よろしくお願いします。

組み込みの技術者から新事業の開発担当へ

新野:そのお隣りがグローリーの起塚さんです。よろしくお願いします。起塚さんも自己紹介をお願いできますか?

起塚宏道氏(以下、起塚):兵庫県にありますグローリー株式会社から来ました起塚と言います。

グローリーという会社自体について、みなさんよく見るところでいくと、駅のコインロッカーですとか、スーパーにあるレジの釣り銭機を開発しているメーカーです。

完全なメーカーなので、ほとんど組み込みの技術者ばかりです。私はそこで、クラウドなどの新しい技術を使った新事業を何か開発しなさいというところで、新事業の開発の部分を担当させてもらっています。

新野:ありがとうございます。今日はわざわざ兵庫県から来ていただいたんですよね。

起塚:そうです。ありがとうございます。

新野:ということは、起塚さんも昔は組み込み機器のプログラマーみたいなのが本職だったということなんですか?

起塚:そうですね。僕はもういい歳になっているんですけど、入社23年かな。最初は遊技関連、パチンコ関連の組み込みをやっていました。

新野:なるほど。ということは、どちらかと言うと、高級言語というよりは低レベル言語を扱っていらっしゃった?

起塚:そうですね。入ったときはアセンブラとC言語でバリバリ組んでいましたね。

新野:あとで関わりについては詳しくお話しいただくんですけど、どういう経緯で新事業の……開発担当ですか?

起塚:そうですね、今は開発マネージャーとして開発に携わっていますけれども、数年前までは普通にコードを書いていました。

新野:なるほど。それはもう社長から「起塚さんやってくれないか!」という感じですか?

起塚:そんなこともないんですが(笑)。やっぱりパチンコというのは浮き沈みが激しいところなので、ちょうど沈んだところに「お前ならたぶんできるだろう」というようなことで。

新野:社運がかかってる感じなんですか(笑)。

起塚:そこまでじゃないです(笑)。

新野:その中でクラウドネイティブに足を突っ込み始めているという感じですか?

起塚:そうですね。

新野:そのあたりの関わりはのちほど詳しくお伺いしたいと思います。よろしくお願いします。

起塚:よろしくお願いします。

職業「戸倉彩」とクラウドネイティブ

新野:私の一番遠い側にいるのが戸倉さんです。よろしくお願いします。

戸倉彩氏(以下、戸倉):IBMのデベロッパーアドボケイトをしております。戸倉彩と申します。私は2018年5月からアイ・ビー・エムでIBM CloudだったりWatsonというようなテクノロジーを開発者の方々に広めたり、あるいは一緒に使っていくことを考えながら、実際にプロジェクトで使っていただけるような支援をしています。

新野:戸倉さんのTwitterページとか見ると自己紹介のところに職業「戸倉彩」って書いてあるんですよね。

戸倉:はい、そうですね。これ実はクラウドネイティブともすごく関係があるかなと今回改めて考えました。私の中では、自分はどの場所にいても自分らしさというのを……残りのエンジニア人生をかけて、今できることを今やりたいという気持ちがあり、クラウドネイティブもまさにそんな感じで。

今だからこそ、クラウドネイティブというのが生まれていて。とくに自分がすごく苦労したことなどをテクノロジーで解決できた部分、よかった部分をみんなにシェアしながら、もっとステップアップできるようにという意味で、すごく親和性を感じながら取り組んでいるテクノロジーです。

新野:それが職業「戸倉彩」の心っていう感じですかね。

戸倉:そうですね。

新野:ありがとうございます。こういう方と今日はパネルディスカッションをしていきたいと思います。最後、簡単に私も自己紹介をさせてください。Publickeyというブログをやっております。肩書きとしてはITジャーナリストをやっています。新野と言います。

Publickeyというところで、いろいろなIT系のニュースなどを毎日書いているのが仕事なんですけれども、最近どんなクラウドネイティブの記事を書いたかというのを少しピックアップしてきました。

GoogleがCloud Runというのを出したりですね。GitHubがActionsというGitHubの中だけでCI/CDができる機能を出したり。それからCloud Native Computing Foundationというクラウドネイティブの言い出しっぺというか親分みたいな独立団体があるんですけど、そこがCloudEventsという標準仕様を出して。これまでサーバレスはベンダー間で互換性がなかったんですけど、イベントの発起するタイミングだけは揃えようという標準仕様が出てきて、サーバレスも少しずつ互換性が高まっていくかな、というような記事を書いたりしています。

そういったかたちで、今日はみなさんとディスカッションをしていくわけですけれども、これから5つのアジェンダをみなさんとお話していきたいと思います。

1つは、やっぱりまずクラウドネイティブという用語をそれぞれのみなさんがどう解釈していらっしゃるのか、どう取り組んでいるのかといったあたりをまず話の前提として揃えて。というか、まあ揃わないと思うんですよ。なので、それぞれどういう立場でクラウドネイティブを考え、取り組んでいるのか。それに対してどういうメリットを感じているかということをアジェンダの1番2番でディスカッションしていきたいと思います。

2つ目にクラウドネイティブのメリットといったものをひと通り話していただいたうえで、3つ目にクラウドネイティブの技術的な要素であるマイクロサービスのアーキテクチャについて。たぶん実際にみなさん取り組んでいらっしゃる、あるいは足を突っ込んでいらっしゃると思うので。

クラウドネイティブ的なマイクロサービスアーキテクチャに取り組むうえでメリット・デメリット、経験上の苦労、あるいはこんなハードルがあったというお話をしていただこうと思います。

4つ目のアジェンダでは、そういうクラウドネイティブ的な開発をする中で、開発スタイルとして取り組んでらっしゃるCI/CDだったり、DevOpsだったり、テストの自動化だったり、開発のライフサイクルそのものの自動化だったりをどう実現されてらっしゃるのか。あるいは、それにどういうメリットがあるかといったお話をしていただきます。この3番4番のアジェンダが今日のお話の中心になると思います。

最後に、これからクラウドネイティブに取り組むという方々のために、すでに先行して取り組んでいらっしゃったりお客様にアドバイスされていらっしゃる立場からアドバイスをいただこうというのが今日の話の趣旨になります。

「クラウドネイティブ」とは何か?

新野:というわけで、さっそく1つ目のアジェンダからいこうと思います。ちょうど戸倉さんにマイクを持っていただいているので、戸倉さんにとってクラウドネイティブと聞いたときに「こういうものだ」という戸倉さんなりの説明と、それに対して立場上どう関わっていらっしゃるのか教えていただけませんか?

戸倉:クラウドネイティブというと、「クラウド」という単語が出てくるわけです。実は、前職でMicrosoftに2011年に入社したときは、クラウドファーストと言われ始め、まさにクラウドと言うプラットフォームをみんなで活用していくというところに誰もがすごく期待していました。ビジネスメリットも含めて、とにかくクラウドに注力している時期に、クラウドのエバンジェリストということでやってきました。

やはりクラウドを導入するところはどんどん増えていったんですけれども、クラウドの中でもいろいろなサービスがある中で、とくに利点が活かせるようなかたちで、クラウドを前提にした世界観でクラウドネイティブの環境を作り、それを実際に回していくことで、もっとスピーディーにいろいろなものを世に送り出していくことができるアプローチかなと思っています。

「クラウドネイティブって何?」と聞かれたときには、だいたいそのようにお話をしています。

新野:今、戸倉さんのお話の中で「クラウドファースト」という言葉がありましたが、確かに一時期ずいぶん言われていました。今はクラウドファーストはあまり聞かなくなって、「クラウドネイティブ」をよく聞くようになったじゃないですか。クラウドファーストとクラウドネイティブの違いって何だと思います?

戸倉:私は、クラウドファーストというのはあくまでもクラウドが選択肢の1つになっているけれども、クラウドを優先するというか、ファーストですね。クラウドの駆け出しというフェーズだったかなと思います。

新野:なるほど。クラウドネイティブは、選択肢ではなくてクラウドだけということですか?

戸倉:クラウドだけというより、IBMに入ってすごく感じているのが、クラウドというとやはりパブリッククラウドをイメージされる方が多いかなと思うんですけれども。

新野:確かに。

戸倉:クラウドネイティブを実現するためのテクノロジーがいろいろありますが、IBMではこれをオンプレで使うIBM Cloud Paksというソリューションも展開しています。

クラウドネイティブというのはアプローチの1つであり、それを人々が正しく回していくということによって生きてくるのかなと思います。

新野:なるほど。戸倉さんは仕事でそれとどう関わっていらっしゃるんですか?

戸倉:仕事では、本業ではデベロッパーアドボケイト……アドボケイトという単語自体が日本語に直訳しにくいので伝わりにくいんですけれども。

前職では、エバンジェリストとしてテクノロジーを広めることにフォーカスしてました。アドボカシーというのは、各社の方々と伴走しながら一緒に手を動かしたり、問題を一緒に素早く解決していく手助けをするということです。

例えば、ハンズオンでIBM Developer Dojoというコミュニティを作りまして、週に1回、実際に社員や社外の人も一緒に集まって、みんなで新しいクラウドネイティブを実現するためのテクノロジーに触れるということを行ったり、そのあとにいろいろ情報交換したりということもやっています。

また、プライベートで、実は去年Developer Relationsに関する書籍「DevRel エンジニアフレンドリーになるための3C」を書かせていただいたんですけども、IBMでは3つのCということで、1つが「そういったコミュニティを形成した中でみなさんをスキルアップに導く」というところ。

DevRel エンジニアフレンドリーになるための3C

そして2つ目がコンテンツということで、IBMの本業でCode Patterns(コードパターン)というクラウドネイティブを実現するためのサンプルになるようないろいろなパターンをコンテンツとして提供しています。

3つ目がコードということで、実際に開発者の方々が使うソースコードですね。そういったものをオープンソースというかたちで出していまして、デベロッパーアドボケイト、私を含めてチームメンバーみんなでそのコードを書くということをして。そういった活動をしています。

新野:ありがとうございます。やはりクラウドネイティブにお客さんを導くような、一緒に伴走してうまくクラウドネイティブ的な開発スタイルやアーキテクチャに到達するような支援をされているという理解でいいですかね?

戸倉:はい。

クラウドネイティブとの出会いはPaaSから

新野:ありがとうございます。起塚さんにも同じ質問なんですけど、クラウドネイティブと言ったときに、起塚さん的には何を思い浮かべて、それと今どういう関わりを持っていらっしゃるのか。少し教えていただけませんか?

起塚:私は新事業を開発しているので、やはり動きがいいというところでPaaSのサービスをよく使っていたんですね。

新野:Platform as a Serviceですね。

起塚:PaaSでは、最初はやはりTwelve-Factorですね。Twelve-Factorをやっていればクラウドネイティブと言えるんじゃないかという時代から始まっていたので。

当然、今のCloud Native Computing Foundationの話もあるので、そこから拡張していったというかたちで僕たちは捉えています。

なので、PaaSでもクラウドネイティブをやりたいと思いますし、今後お話しするマイクロサービスやKubernetesでもクラウドネイティブでやりたいという感じですね。

新野:比較的アプリケーションのアーキテクチャに注目して考えているという理解でいいですかね?

起塚:そうですね。僕がもともとプログラマー出身でコードも組んでいて、アーキテクトもしていたということもあるんですけど。アプリケーション、インフラストラクチャー含めてアーキテクチャをどうするのかというのが僕たちのチームのミッションなので。

そこで、クラウドネイティブをアプリケーションを動かすためにどう使っていくかというところにフォーカスを当てて考えていっています。

新野:ということは、関わりとしては、クラウドネイティブ的なアプリケーションを作るチームの親分をやっていらっしゃるという理解でいいですね。

起塚:そうですね。親分?(笑)。

新野:ちょっと踏み込むと、PaaSを選んだのはなぜですか?

起塚:最初はやはりPaaSでやるというのは……。

新野:ちなみにどちらのPaaSか聞いてもいいんですかね?

起塚:IBM CloudのCloud Foundryですね。最初に日本IBMのセールスの方からいろいろ教えていただいて、そこから始めたんですけども。僕たちはずっと組み込みをやっているので、とくにIaaS、インフラストラクチャーに関する知識がないんですね。インフラ周りの知識がないというところからすると、PaaSというのはすごく魅力的なんですね。

新野:コードを書けば動くということですからね。

起塚:それと、最初は僕を含めて3人からスタートしているんです。3人でできることと言ったら、もうPaaSしかないんですね(笑)。そういったこともあってPaaSから入りました。

新野:ということは、起塚さん的には、クラウドネイティブとの出会いは最初からクラウドネイティブをやろうというよりはPaaSから入った、あるいはプログラマーにとっていい環境とは何だろうと考えて、その切り口から入ったという感じですか?

起塚:最初はクラウドが何かわからない。作れるのはこれだ。これを作るためにどうしたらいいのか。Twelve-Factorがあるんだ。クラウドネイティブだ。っていう感じですね。

新野:なるほど。じゃあ到達したい目標があって、その目標に到達するために手段を選んでいったら、クラウドネイティブ的な手段に導かれていったという感じですね。

その経過がどうなっているのかはのちほど詳しくお伺いしたいと思うので(笑)。太田さんにも「クラウドネイティブって何?」ということと、太田さん的なクラウドネイティブとの関わりについてお伺いしたいと思います。

クラウドネイティブ=変化に強い仕組みを作る

太田:クラウドネイティブって人によっていろいろ定義が異なる部分があると思っていて、先ほど新野さんがおっしゃっていたようにCNCF、Cloud Native Computing Foundationがそれぞれ定義している定義もあると思うんですけど。

僕はその中でもクラウドネイティブが持つ、いわゆる拡張性だったり、耐障害性みたいなところに着目しています。すごく柔軟にインフラストラクチャーをスケールしたり、アプリケーションの更新をかけるときも完全無停止でできるとか。

そういうがんばらなくてもいい感じにしてくれるみたいなところが、クラウドネイティブというものの中で僕がすごく良いと思っている部分です。

新野:どちらかと言うと、それは運用やアプリケーション自体の変化があるというふうに聞こえますけれども。

太田:どんな製品でも変わっていくというか、例えば機能を追加したり、これはもう要らなくなったから消そうということってあると思うんですけど、やはりそこを手作業でやるリスクはみなさんご経験されたことがあるのかなと思っていて、そこを自動化するというか。そこは自分たちが背負いたいリスクじゃないよねっていう。

そこから得られたものに対して継続的に改善を続けていくというところが、やはりビジネスインパクト的にも大きいのかなと思うので、自分たちがやりたくないことを全部機械にやらせるみたいな取り組みが、やはり本質的な問題解決の軸にあるんじゃないかなと思います。

新野:なるほど。それをクラウドネイティブと呼んでいるという感じですね。

太田:そうですね。一言で言ってしまえば、変化に強い基盤というか、仕組みを作るというところだと思います。

新野:それに対して太田さんの関わりは、先ほどの自己紹介だとMLOpsのチームをやっていらっしゃるというお話もありましたけれども。それとどう関わっているのか教えていただけませんか?

太田:機械学習の基盤もですが、そもそも機械学習自体も難しいというところはあると思うんですけど。機械学習の場合、登場人物が複雑です。例えば、機械学習のモデルと呼ばれるロジックの抽象化みたいなものを作る研究者がいて、それをもとにプロトタイプというか、実際にアプリケーションを書いてくれるアプリケーションデベロッパーがいて。

それを実際に本番でどう活用していくかを考えるビジネス層もいて、さらに僕たちみたいなインフラ事業者がいる、みたいな。登場人物が一般的なWebアプリよりもさらに複雑に増えてきます。

それぞれがやりたいことのライフサイクルもぜんぜん違うので、それをいい感じにまとめあげるための基盤が必要で。それをやるのに、変化に対して強い仕組みを作るというところで自分たちが今回選んだのがKubernetesでした。

新野:なるほど。先ほど起塚さんが、自分がやりたい目的を達するために選んで行った道は最終的にクラウドネイティブっぽいものだったというお話がありました。太田さんの場合はどうですか? 

社内で「クラウドネイティブかっこいいからやろうぜ」という話になったのか、やっぱり起塚さんみたいに自分たちにとっていい選択肢を選んでいったら最後にクラウドネイティブと呼ばれるものに辿りついたのか。どちらが近いですか?

太田:クラウドネイティブの存在は、当然技術選定の段階から知っていましたけど、別にそれを実現したくてそういった技術スタックを選んだというわけではありません。やはり自分たちが抱えていた課題があって、それを実現するために、いわゆるパーツを選んで、それをもとにピタゴラスイッチを作っていくみたいな作業をしました。そういうひと通りの仕組みができあがった結果、クラウドネイティブと呼べるものと似たような仕組みができたんじゃないかなと思っています。

Kubernetesを選ぶメリット

新野:ありがとうございます。そのまま2番目のメリットの話につながりそうなので、次のアジェンダに移ります。先ほど拡張性がある、柔軟性があるというお話がありましたけど、クラウドネイティブのどのようなメリットを感じて選んだのか。

太田:僕たちがKubernetesの上でアプリケーションを作っているのでKubernetesの話になりますけど、基本的にアプリケーションをコンテナに閉じ込めた状態で開発をします。Kubernetesの場合、あるアプリケーションに対してどのくらいリソースを割り当てたいかは開発者の裁量というか……実際もちろん継続して「これがいい、あれがいい」という議論はするんですけど、開発者も運用者も両方が簡単に定義できる。

実際には、YAMLファイルの中に書くんですけど、マニフェストの中にそれを書くことができるので、例えば従来のVM型の開発だと、「こういう要件を満たすVMをください」と言ってから、それをもらってSSHの鍵を渡して、「入れるようにしてください」「ユーザー作ってください」「はい、できました」「じゃあデプロイをやっていきましょう」みたいな感じでコミュニケーションがいっぱいありました。

Kubernetesはそこの仕組みを全部見てくれるので、開発者がコンテナを作って、それを動かすためのマニフェストを書いて、Gitで反映しただけで、それが勝手に立ち上がってきて、コンテナが動き始めて、ロードバランサーが作られて、ユーザーに公開されるみたいなことが全部自動化できたところが嬉しかったですかね。

新野:なるほど。それは今まで人が手でやるためにコミュニケーションもとって手作業でやっていたものが、Kubernetesでやるとマニフェストに書いてアプライすれば自動化されると。

太田:そうですね。VMの払い出しとかも全部そういうフローの中で自動化されてできるようになったので、すごく嬉しいところだと思います。

新野:なるほど。今のはアプリケーションのパフォーマンスを最適化する話だったじゃないですか。障害とか開発スタイル……。ほかのメリットはどうですか?

太田:オートスケーリングの設定も書いておけば自律して勝手に動いてくれるので、例えば「このアプリケーションのこの負荷がこのくらいになったらスケールアウトしてください」とかロードバランサに「新しくできたもの(コンテナ)がいるよ」というのを伝えてロードバランスしてくれるようにしたり。

あとは逆に、それがもう要らなくなったらスケールインして、破棄するみたいな。そういうところで、オペレーションをやる中で、一般的に手で面倒を見なきゃいけなかったところが全部自動化できたことも大きいですかね。

新野:いろいろなところが自動化されているというお話は聞きますけど、ちょっと別の切り口でね。

例えば、ある会社では、マイクロサービス的なアーキテクチャにすると小さい組織がコンポーネントをみんな作れて、組織を細かく分割して組織がスケールしやすいから採用してるんだ、みたいな話を聞いたことがあるんですよ。ZOZOもそういうものに近いのかなっていうイメージなんですけど、組織論的に言うとどうですか?

太田:弊社の事例で言うと、まだ大きなレガシーなモノリスが動いている事実はあるので、必ずしもそうなっているかと言うと、そういうわけではないんです。少なくとも、新しく作られたアプリケーションに関しては、WebAPIで本体の大きなコードベースとは別に切り出されていて、いわゆるマイクロサービスのようなかたちで独立して動いています。

それに関する変更は、本体に対する大きな影響を一切考えずに、気軽に自分たちの裁量でデプロイすることができますし、今はそういうものを少しずつ増やしつつ、大きなコードベースを削って小さい単位で切り出していくということをやっています。そういう意味だと、先ほどおっしゃった会社と似た部分はあると思います。

クラウドネイティブに注目した理由は堅牢性

新野:ありがとうございます。じゃあ起塚さんにも。

起塚さん、まず目的を達するためにクラウドネイティブ的なものに到達していったという話をお伺いしたんですけど、それによって改めてどういうメリットがあったのか。もう少し詳しく教えてもらってもいいですか?

起塚:私たちの場合だと、新事業で、しかもファームウェアからの出身ということで、先ほどの太田さんのようなメリットを見出すことができないんですね。そもそも知らなかったり、当たり前の世界になってしまっているので。我々がクラウドネイティブに注目したのは、やっぱりその堅牢性ですね。

新野:なるほど。

起塚:グローリーは、お金を数える機械というのが一番なんですね。

新野:お札やコインを入れると機械がガーっと数えてくれて、おいくら万円入ってましたと。

起塚:はい。先ほどのコインロッカーや券売機もそうなんですけども、グローリーのメイン市場はリテールのバックだったり、あとは銀行ですね。そういったところに対してどういったものをBtoBで送るかということになるので、弊社の役員に「SLAどうしましょう?」と聞くとと「100パーセント以外にないやろ」みたいな。

新野:お~(笑)。

起塚:普通はジョークで言われるんですけど、僕たちの場合は銀行とかがお客様なので、ほんまにジョークなのかちょっとわからないくらい。

新野:今日はお金数えられませんっていうわけにはいかないですもんね。

起塚:「ちょっと間違えました」はないので。落とせないというところに関しては挑戦するに値するメリットなのかなと思ってます。

新野:なるほど。それはクラウドネイティブによってどのように達成できると考えていらっしゃいます?

起塚:まずは、Kubernetesを使っているとやはり堅牢性は高い。もちろんデプロイのところとかもあるんですけど、やはりこういった大手のリテーラーや銀行だとオンプレミスの話も出てくると思うんですよね。

そういったときに、PaaSの話は先ほどしたんですけど、PaaSだと選択肢がなくなってしまう。プライベートクラウドとかハイブリッドクラウドの時代と言われているので、そういったところで銀行独自のセキュリティの中で、こういったアプリケーションを提供していくというところでいくと、Kubernetesはかなり魅力的なプラットフォームだと考えています。

新野:そういうメリットを感じて今クラウドネイティブに取り組んでいらっしゃるという。ありがとうございます。

「Software Is Eating the World」

新野:戸倉さん、例えばお客さんやデベロッパーに「こういうメリットがあります」と説明をすると思うんですけど、どういう説明をふだんしていらっしゃいますか?

戸倉:私の場合は、クラウドネイティブに取り組むメリットを2つの視点でお話することがあります。エンジニアさんには、今までは例えばインフラ、開発するような環境づくり、あるいはそれを回していくときの人的ミス、あるいはそういうセキュリティ問題というところに対する非常に大きな負荷。そして軽量に動くようなものを求めたいと言ったときに、「コンテナというテクノロジーはすごく有用ですよ」という話をさせていただいたりします。

例えば決裁権をお持ちの方にお伝えするときは、ちょうどもう10年くらい経つと思うんですけど、「Software Is Eating the World」という言葉が出てきました。

新野:ありましたね。マーク・アンドリーセンさんの言葉ですね。

戸倉:彼が昔から言っているように、ソフトウェアという世界が私たちの生活に根付くということは、そこを軸にいろいろなものが非常にスピーディーに変わっていくということを予測しています。

その当時から、いかにうまく開発サイクルの一連の流れを回していけるかというところを考慮された環境を導入、あるいは着手できないとやはり淘汰されますよと言われていたように、まさに今はその時代が来ていて。

そういったときの選択肢としては、むしろクラウドネイティブ以外ないので、メリットというよりも必然性というところでまずはクラウドネイティブというものをご理解いただき、そして使っていただくための準備を今すぐ進めてくださいということでご紹介しています。

新野:今デベロッパー向けのメッセージと少しエグゼクティブ向けのメッセージと分かれていましたけど、少しデベロッパーのほうに話を戻すと、先ほどのお話にあった環境づくりが容易だとかミスが減るというメリットというのは、何から来るものなんですか?

戸倉:クラウドファーストという話を先ほどもお伝えしたように、多くの企業がまずIaaSというかたちで、すでに自分たちが持っている環境をクラウドにということでどんどん移動させました。

結局そうなったときに、責任分界点というのが発生する中で、IaaSの場合、インフラの部分として実際に上のサービスの部分、使う部分とオンプレで負荷がかかっていたところが、クラウドであればなんでも負荷が軽減できるというのをイメージしていた方も多かったです。

そうではなくて、クラウドネイティブをもっと突き詰めていってコンテナというサービスにシフトしていくことによって、責任分界点がさらにまた違うレイヤーになってくるんですね。

新野:IaaSの場合は、クラウドの責任は仮想マシンがちゃんと動くかどうか、そこから上はお客さんに責任を持ってくれ、というへんが責任分界点だったのが、コンテナになるともっと上に上がる?

戸倉:そうですね。例えばもともと私はセキュリティエンジニアからスタートしているので、セキュリティの視点からも……インフラに関して、クラウドを選択する・しないというときに、今は、いかにセキュアにやりたいことを達成するかというところは絶対条件になっているかなと思っています。

そのときに、できれば自動化だったりクラウドベンダーに任せられるところは任せるということで。

また、軽量化に関しても、コンテナというテクノロジーを使うとCPUの使い方などが普通のIaaSとはまた少し違って、もっと効率化されたかたちでのリソースの使い方というのができるので。

そういったところは、やはりクラウドの中でもクラウドネイティブと言われている考え方に基づいて、コンテナを活用していく大きなメリットがあるかなと思っています。