CLOSE

トヨタの車はソフトウェアエンジニアが作る 〜Why Simple is So Complex〜(全4記事)

大量のデータをどのように安心安全に扱うのか トヨタの車はソフトウェアエンジニアが作る part.3

TECH PLAY主催のイベント「トヨタの車はソフトウェアエンジニアが作る 〜Why Simple is So Complex〜」で、トヨタ自動車の村田賢一氏が、変革期を迎えるクルマ業界におけるソフトウェア技術の研究・開発に関する取り組みについて共有しました。part.3は「大量なデータの扱い」について。前回の記事はこちら。

データから新しい価値を生み出すソフトウェア

村田賢一氏(以下、村田):さあ、2番目がデータから新しい価値を生み出すソフトウェアという点になります。先ほど見ていただいた図で言うと上のほうですね。データ分析の基盤とか活用、あとIaaS、PaaS、クラウドネイティブとかですね。そういったところになります。

クラウドのデータ基盤って何かということなのですが、その前にデータ量について少しお話しします。まず1台あたりに転送しなきゃいけないデータの転送量がだんだんと増えてきます。これは、機能が進化していくとデータをもっと使っていきたいよねというデマンドが増えてきます。

もちろんコネクティッドカーもトヨタ自動車としては3年前にCESでアナウンスしました。通信機をすべての車に付けていくということですよね。すべてと言っても、実際はすべてじゃなくて、官公庁で使う車とかはさすがに付けられないんですけどね。

お客様が運転する車にはしっかりと通信機を付けて見守っていくことをやり始めていますので、そういったものがどんどん増えてきてほぼ100パーセント付くとゆっくり増えていくようになると思っています。

これ掛け算で効いてくるんですね。計算するとものすごい量のデータ量になります。エクサバイト……、なかなか聞いたことないかもしれませんが、みなさんよく「スマホの転送量今年もいっぱいになっちゃった~。転送スピード落ちちゃった~」って、うちの娘なんかも月末の今日あたり「ヒィ~」って言っていると思います。それは「ギガバイト」っていう単位でよく数えますね。

その1,000倍がテラバイト、そのさらに1,000倍がペタバイト、そのさらに1,000倍がエクサバイトです。たぶん想像がつかないと思うんですけども。ちなみにエクサバイトの1,000倍はゼタバイト。1ゼタバイトってどのくらいかと言うと、地球上の砂粒を全部数えると1ゼタバイトになるっていうような予想を出している人もいるくらいです。その1,000分の1くらい。十分大きいですよね。

そんなデータが毎月あがってくるようになっちゃうんです。こんなものは全部送っていたら大変なので、途中でどっかで処理をするとかして減らさなきゃいけない。こういった膨大なデータを適切なタイミングで適切なところで適切に処理をし続ける。そういったことが今後重要になってきます。

クラウド分析のこれまでの取り組み

これまではそういったデータをまずはオンプレミスというコンピュータで自前のサーバーからパブリッククラウドを使って、よくIaaSと言いますが、賃借りをしながら進めるかたちに変化をさせてきました。

そこでいろいろとわかってきたのは、ただ単にオンプレミスの独自の自前サーバーで動いているのを、ソフトウェアをそのままIaaSの上で動かしただけではやっぱりダメなんですね。進化の早い通信を含めて活用していこうとすると、オープンソースを使っていかないとソフトウェアのメンテナンスができないよねっていうことで、オープンソース化を進めてきました。

最終的に今やっているところっていうのはもっとアジャイル開発で、もっともっとサーバーの負荷を下げたりとか、どんどんソフトウェアを作っていけるようなそういった環境に取り組んでいます。

このアジャイル開発とサーバーレス化っていうのはどう関係してくるのかっていうことですが。サーバーレス化っていうのは、パブリッククラウドを使ってらっしゃる方はわかると思いますが、必要なときに必要な分だけコンピュータが動くっていうのがサーバーレス化ということです。

実はこれで車って、昼間に使われるのがほとんどなんです。なので、必要なデータ転送量も昼間が多いんですね。

夜ってあんまり使われないので、ずっとサーバーを動かし続けるのは無駄です。必要なときだけサーバーが起動するような仕組みでやることで、この無駄の部分を省くことができました。実際、運用コスト約50パーセント減を達成しています。

こうやって運用の監視をしたり、運用の管理をしたりする人員も減らすことができまして、その減らせた人員をどこに振り分けたかと言うとソフトウェアの開発のほうに振り分けることができました。

開発者が増やせたことによって新しい機能、新しいサービスを次々と投入する。1ヶ月でなんと624個の新しい機能をデプロイしたようなこともあります。ということで非常に開発力を付けることができました。

今そういったものを作っていく中で、ちょっと紹介しろと言われたので書いときましたが。プロジェクトオーナーですね、そういったチームのオーナーが引っ張るのですが、実際、4年目の社員の浦山がやっています。

チームは本当にフラットで、アジャイルにみんなスクラムを組んで、いいやつはすぐに出そうということで、少しずつガーっと回しながら状況に合わせて柔軟に人を選んで組織を作ってチームを作って新しい機能を入れていく。もちろんローカライズが必要になってきて、各国のチームとも連携しながら作っていくことで、どんどんグルグル回るチームを作っています。

この浦山は、デブサミで講演もしているので、それで検索していただけるといろいろと資料が出てきます。「トヨタ 浦山」でググれと言われていますので。それで調べると出てきて、もっと深いことを知りたければぜひそちらを参照していただければなと思います。

今こういったメンバーでやっていますが、こういったご時世ですので、リモートでもスクラムチームって回せるので、そういったところで一生懸命みなさん開発している状況です。

CloudNativの基盤が物理層でどのように動くかの理解が必要

そうやってソフトウェアをどんどん作っていきますが、実は次の課題があります。

クラウドネイティブな基盤を作っていますが、さすがにこれだけのデータをいっぱい読んだり書いたりするってなるといろいろな不都合というか、考えなきゃいけないことっていうのがあります。

例えば昔はハードディスクでハードドライブにいっぱいデータを書いたり読んだりがありました。スピードが遅いとか言われて最近はなくなって、フラッシュドライブという、スピードの速い半導体のストレージが使われるようになってきているわけです。

ただですね、半導体って読み書きしていくうちに、半導体フラッシュはだんだんヘタってくるんです。特に最近のようなフラッシュの容量がグッと増えているのは、1ビット、01を記録するのが1素子の中の電位の1本に過ぎなくなってきて。1素子の中で電圧の状態によって4値を表すっていう……、ちょっと深い難しい話しちゃいましたね。

マルチレベルのビットアサインみたいなことをして要領をかせぐようになってきているんですけど。こうすると、専門用語で言うとリードリテンションとかライドリテンションと言いますが、何回も書いているうちに実はヘタってくるんですよ。

みなさんもスマホにいっぱい動画とか音楽をダウンロードしてはやっぱり消してとかって繰り返していくと、だんだんと反応が鈍くなってきたり、エラーが起きたりしますよね。実はあれそういう原因なんです。

そういったように大量のデータを扱うっていうのは今までは想像してこなかったような難しいことが実は起きてきます。そういったものでソフトウェアだけではなくハードウェアも含めていろいろと考えていかなきゃいけないです。新しい技術への対応といったものがトラブルを未然に防いだり、あるいはトラブルが起きたときにも対応できることだと思っています。

そういう意味では我々、そういったシステムの今後の動向とか、あるいはさらに中で我々がソフトウェアを内部でちゃんと理解してシステムを、ソフトウェアだけじゃないですが、ハードウェアも含めて理解をするところまではちゃんとやらなきゃいかんよね、ということでいろいろなコンソーシアムなどにも参加しています。

ここに書いてあるのはCloud Native Computing Foundation、CNCFというところなんですが、それ以外にsoda、SoftwareのDefinedなStorageっていう、そういったようなところにも参画していたりします。

新しい価値を最小限の労力で頻繁かつ予定通りに提供するためにクラウドネイティブな開発を行う

クラウドネイティブな開発は、やっぱり新しい価値を最小限の労力で頻繁かつ予想どおりに提供することです。よく言われるのは、クラウドって信頼性が少ないよねとか言われることがよく言われることがあります。

新しい価値をどんどんどんどん提供していく意味だと、パブリッククラウドとか、クラウドサービス、あるいはクラウドネイティブなソフトウェアをしっかりとやっていく必要があります。

それを世界中に広げていったり、あるいはだんだん広がっていく車の機能を増やしていったりとか、サービスの多様性、永続化みたいなことを考えると、ソフトウェアの開発のサイクルとハードウェアであるサーバーのサイクルを切り離してやっていくことが今後重要になってくるという意味で取り組んでいます。

ただそれを闇雲に使うだけはなくて、中身をしっかり理解したうえでそういうのに取り組んでいきます。

クラウドネイティブ、アジャイル、DevOpsの源流はトヨタ生産方式に通ずる

クラウドネイティブ、アジャイル、DevOpsとかいろいろな言葉が最近あってですね。これは何かと言うと、なにかあったときには、あるいはなにか起きそうなものをちゃんと予見して少しずつ少しずつ直していくんだ、いいものにしていくんだということです。

これは実はトヨタで言うと、トヨタ生産方式、Toyota Production SystemでTPSと言いますが、これに通じるところがあります。トヨタの中では、TPSはDNAですね。

これをしっかり学んで理解して進めていくっていうのは、実はソフトウェアの世界でも同じことをやっていて、最近トヨタの中ではソフトウェアのTPS化とか言っています。そういったものをしっかり理解したうえでやり方を学べば、自然とDevOps、アジャイルみたいなところも理解できるということで、実は進めています。

(次回につづく)

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
著者フォローや記事の保存機能など、便利な機能がご利用いただけます。

無料会員登録

会員の方はこちら

関連タグ:

この記事のスピーカー

同じログの記事

コミュニティ情報

Brand Topics

Brand Topics

  • 今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは

人気の記事

新着イベント

ログミーBusinessに
記事掲載しませんか?

イベント・インタビュー・対談 etc.

“編集しない編集”で、
スピーカーの「意図をそのまま」お届け!