デンソーのFactory‐IoT室の歩み
矢ヶ部弾氏(以下、矢ヶ部):クロストークということで、これまでのプロジェクトの年表を作ってみました。
縦軸がプロジェクトのテンションと勢いで、横軸が年度になります。私が軽く説明して進めますね。
及川卓也氏(以下、及川):どんどんつっこんだ質問をしますね(笑)。
矢ヶ部:まず、デンソーががFactory-IoTの組織を立ち上げて、半年後に社長がFactory-IoTを世界130工場全てに導入すると「①発表」しました。年表はそこから始まっています。
及川:まずつっこみたいところなんですけど。
なぜこれを発表するのかがよく分からないんですよね。
矢ヶ部:社長はきっと公言することで社員を奮い立たせようとしているのだと思いますね。
及川:こうやって打ち上げられたことで、内部的にポジティブな効果はありましたか?「進めるぞ!」「イエーイ!」という感じになった?
矢ヶ部:もちろんです。工場に導入しようとすると、日々のラインの運用が忙しい製造部からはさまざまな意見がたくさん出たんですけど、そのときに「デンソーがFactory-IoTを世界130工場全てに導入する」と新聞に記事が出たんです。みんなやらなければという気になりますよね。
黒田雄大氏(以下、黒田):そうですね。2020年はすぐそこに来ているので、成果を示さなければいけない時期に来ていますね。
システム開発を外注、しかし…
矢ヶ部:発足当初「システムは買ってくるもんだ」みたいな考えがありましたので、いろいろなSI'erさんを巻き込んで「②PoC(Proof of Concept)」をやりました。
及川:そもそも、PoCという言葉が独り歩きする傾向もあるなか、ここで言っているPoCとは何だったんでしょうか? 実際の定義はProof of Conceptなので、そのProofしたかったConceptはいったい何だったのかを教えてください。
矢ヶ部:当時のPoCというのは、「製造現場のデータをデータベースに入れれば勝ちだ」という考えがあって、デンソーの現場に存在するさまざまな設備のデータをパッケージ製品に無理矢理突っ込もうとしたんですよ。
澤田:ちょうど私はこの時期に入社したんですが急に基盤を任されて。現場に行ってみると、パッケージじゃなくてほとんどスクラッチ開発をしている状況でしたね。
及川:それって「使えると言っていたパッケージはどこへ行ったの?」って感じなわけですよね。
澤田:そうですね。
危機的な状況から、ボトムアップで復活へ
及川:データが入っているだけじゃダメだというところにも気づき、やっぱりコンセプトが変わったかたちになるんですよね。それはどの段階だったんですか?
矢ヶ部:そこはまさにこの「⑤若手が内製化を上申」とした時期です。
及川:なるほど。
黒田:私と澤田は同時にジョインしたのですが、入った瞬間から、ザワザワしているなと感じていました。離れたところから見ても、やりにくそうだなと思っていました。
実際、中で中心的にやってるメンバーに聞いても「かなりつらい」という話があって。「これは変えなきゃならんよね」という話があり、若手が中心になって打ち上げていきました。
デンソーはボトムアップの文化が強く、若手が中心になって「プロジェクトはこうあるべし」みたいなところから、人がどうだという話もあれば、パッケージそのものの評価も議論して上申していました。
このままではやりたいこと、やるべきことをやれずにプロジェクトが終わっちゃうんじゃないかという危機感を持って、ぶちあげたのがこの頃ですね。
及川:そして若手が声をあげて、次に行くんですね。
矢ヶ部:はい、オープンソースを使って手の内化したプラットフォーム構想の青写真を作ったのが「⑥OSSベースの内製PF構想完」のところです。
なぜオープンソースを採用したのか?
矢ヶ部:オープンソースとの付き合い方はやはり難しかったです。とくに大量のデータを保持するデータベース関連で、開発者がなかなかおらず、内製ならではの苦悩を抱えていたのが「⑦OSSの付き合い方わからん」のところです。
及川:ここでオープンソースを活用しようと思ったきっかけは何ですか?
外から見ていた人間からすると、工場って一番保守的であり、それゆえに「しっかりしたベンダーさんのパッケージを入れようか」という最初の意思決定になっていると思います。そこからOSSというのは、端から端に大きく幅跳びしたかのようにガラッと変わったと思うのですがその背景にはどういった理由がありましたか?
澤田:入社したときは、結構すごい状況でした。とはいえ、要件定義をいろいろ見ていると、別に内製できるんじゃないかなと思いました。
これが走っているのと同時に、私が、OSSで当初の基盤にはなかった機能を2ヶ月ぐらいで作っていたんですね。それでたぶんメンバーは、OSSでも結構いけるんじゃないかと感じたのかなと思っています。そこをベースに青写真を作っていきました。
及川:澤田さん自身は、OSSで作った経験があったので、これはいけるという目論見がある程度あったのでしょうか?
澤田:そうですね。前の会社だと基本的に内製だったんですよ。全部内製で進めていて、部分的にオープンソースを使っていました。その経験もあって、パッケージを利用したプロジェクトの下降気味の状況を見ているのがつらくてつらくて。50人ぐらい開発者が来てましたよね。
黒田:もっといました。
澤田:例えば50人の内訳が、10人ずつの5チームだったとすると、最初のチームが「こういうことをしたい」と言ったら、デンソーの社員は次のチームに「こういうことをしたいらしいよ」と伝達していかなければならず、毎日打ち合わせばかりでした。
及川:その50人は委託していたある1社のところの人たちの話?
澤田:いや、いろいろです。
矢ヶ部:パートナーさんが数社入っていて、〇〇アプリ担当や〇〇基盤担当、〇〇設備担当など、10チームくらいあったと思います。
及川:聞いただけで気が遠くなりそうですね(笑)。
矢ヶ部:何か1個のアプリをテストをしようとすると、そのチームを全部動かさないとテストが全くできない状態でした。
及川:なるほど、理解しました。
「OSSでいける」と感じた瞬間
及川:例えば作ってみてうまくいったことがあったり、前提としてそこそこいける自信があったとしても、やはり製造業で工場だと保守的なところがありますよね。オープンソースは責任の主体がないように思われることもあるんですが、実際にそこは誰かが覚悟を決めなきゃいけない部分はあります。
そういった現場などを含めて「OSSでいける」という雰囲気になったのはいつからだったんでしょうか? また、そのための苦労があったのかを聞きたいです。
澤田:「⑦」のところで、いろいろ開発しようとしたんですけれど、結局、手を動かせるのが私とあと2人ぐらいしかいなくて、開発が全然追いつかない状況でした。
そのとき、会社の社内報で、デンソーがクリエーションラインという会社に出資していることを知りました。「クリエーションラインって何?」と思って、いろいろ調べると、KubernetesのCNCF(Cloud Native Computing Foundation)のメンバーがいらっしゃったんですよ。MongoDBの商用サポートやっているとか。
澤田:そういうことがあって、クラウドネイティブな人材がデンソーにジョインしたんですよね。Kubernetes大好きな人やデータベースをいじめるマニアなど、いろいろな人がジョインしたんですよ。
その人たちとオープンソースの障害試験や性能試験を実施して、「このデータベースは、こういう癖があるな」「Kafkaはこういうふうにやると、こういうふうになっちゃうな」などいろいろと分かってきて、そこさえ押さえておけば運用できると思ったのが「⑨」のところですね。
そこで、最初はCassandraを使ってデータベース構築を進めていたんですけれど、オンプレで130工場のさまざまなデータを刈谷のデータセンターで管理していくのは結構運用的に重いことが身に染みて分かりました。
「そこはマネージドに頼ろうかな」という心が芽生えて、クラウドを利用しようかという話になっていきました。OSSの運用は障害試験を通して、自信を高めてきていました。なおかつ、クリエーションラインさんの中に、各OSSで運用経験がある方がたくさんいらっしゃって、その方の意見も聞きながら、「このOSSだったらやっていけるな」と自信が確信に変わっていきました。
黒田:作り手側としてはそういうところが確信に変わったと思います。現場の受け入れる側としても、もともと設備を自分たちで作る文化があり、誰かが面倒見てくれるものではなくて、自分たちが作っているものだったので、比較的抵抗感が小さかったと感じています。
「自分たちで作っているんだったら、腹をくくれる」みたいな覚悟が文化としてあるのかなとは思います。
及川:ということは、もともとOSSに対しての拒否反応などがそんなになかったんですね。自分たちで腹くくって作れるんだったら、その1個1個の素材を含めて、自分でいいものを選べる感じだったんですかね?
黒田:あまり直接的にOSSの批判を聞いたことはないですね。
及川:おお、それは良い組織ですね。そもそも工場が守りの文化だと聞いていました。先ほど楽屋で工場のラインの話をしていただきましたが、ラインの入り口と出口の部分は工場でその場で作っちゃうんですよね。
矢ヶ部:そうですね。おっしゃるとおりです。
求めていた専門家集団がジョイン
及川:ほかの会社の方が参考になるとしたら、痛い目に1回遭わないとわからないのが最初のフェーズ。そのあとに痛い目に遭ったけど、そういったところに対してちゃんと異議を唱えられる、提案ができる若手がたくさんいて、その意見を集約し、作ってみる方向に舵を切れたんですね。
幸いなことに、手を動かせる人間が少なからずいたので、小さいところで試し、実際にいけると踏んで、OSSに戦略を変更した。そのあとの苦しみがあるんですが、そこでいいパートナーと巡り会えたのが次の段階ですよね。
矢ヶ部:おっしゃるとおりです。
及川:クリエーションラインさんとデンソーが資本提携をしていて、まさに使おうと思っている技術の専門家集団だったところと、社内でも尖った人たちがいて、彼らと巡り会えたということですね。
黒田:すごくびっくりしたんですが、私はこの時期に子どもが生まれて1ヶ月育休を取っていて、「この忙しいなか休んでいいのかな」と思いつつ休んで帰ってきたら、「みんな東京にいるよ」って言われて。
(一同笑)
「えっ!」ってなって。全然違う世界に来た感じですよね。
及川:なるほど。私がこのプロジェクトに関わったのはたぶんその後ぐらいなんですよね。
及川:「ヤバい連中」と一緒にやることを知って、モチベーションカーブ的なものが下がってるじゃないですか。これは何があったんですか?
矢ヶ部:先ほど澤田が話したんですが、要はデータベースであるCassandraの運用が激ムズだったんですね。
及川:クラウドのマネージドのほうに舵を切ったんですよね。
矢ヶ部:そうですね。
澤田:Kubernetes自体も3ヶ月に1回アップデートが来るので、Kubernetes大好きな人も普通に「アップデートしていくのは大変だ」と言って。
矢ヶ部:そこはマネージドに任せる。
澤田:はい。マネージドでやりたい気持ちになりましたね。
130工場の現場で主体的に導入してもらう難しさ
及川:なるほど。そのあとにカーブがまた下がっていますね。
矢ヶ部:そうですね。この下がっている部分の説明の前に、うれしいところを言っていいですか?
及川:もちろん。うれしいところをぜひ言ってください。
矢ヶ部:今までパッケージに頼っていたところに対して、澤田や黒田をはじめ、仲間たちが作った内製のプラットフォームに、デンソーの工場のデータが上がったときは、非常にうれしかったですね。
喜びもつかの間、世界には130〜150の工場があります。設備でいうと数万あります。設備が1秒に1個製品を作るとしたら、数万設備から1秒間に数メッセージのデータがプラットフォームに上がることになります。ネットワークの帯域や、扱うデータ量も半端ないです。
プラットフォームのスケールアップ・スケールアウトや障害ポイント、バックアップなど、「これってどうすればいいんだろ?」と本当に思いました。
もう1個は、システム監視・運用をどうするのか。130工場の現場の人に、安心して利用していただくために、どうしていくのか?
そういうことをパッケージベンダーにまるっと任せると楽なんでしょうけど、そこは自分の手でやらないといけないので、内製で難しかったことの1つなのかなと考えています。