Inside of LOVOT

GROOVE X 技術ブログ

Lovot Frameworkチーム座談会(後編):LFチームの技術とこれから

こんにちは、SWチームの Junya です。

LOVOT は様々な技術要素が組み合わさって作り上げられていますが、 LOVOT がどのように開発されているか、 なかなかイメージしにくいのではないかと思います。

その中でも特にイメージのしにくい、LOVOTの基盤部分の開発について、 Lovot Framework チーム (以下LFチーム)の皆さんにインタビューしました。

今回は3部構成の最終回です。

役に立つスキルや経験

司会

仕事の中で、どういうスキルを身につけてきましたか。

ato

仕事の中では色んなことに出会うのですが、一期一会のものが多いです。

例えば、セキュアブートやデバイス証明書といった実装は毎年ではなく、数年に一度だったりして、そういうものが多い気がします(笑)。 知識は蓄積されるにしても、深堀りしてやったことが、次にすぐに活かせないことが結構多いです。

司会

次にやるときには仕様も変わってしまいますしね。

ato

RTC や SSD やバッテリーもいろいろありました。 想定外のトラブルやハードウェア更新で、解決策を練りだすのに必要な知識や、新たなスキルが身につく感じです。

h1sakawa

ハードウェアの進化に合わせて、OSも常にそれを追従していく感じですね。

司会

ちなみに、過去にやっていた仕事で、今の仕事に役立っているスキルはありますか?

ato

Linux を使う仕事、という意味では、Linux で遊んでいた期間があるから、生きているんだろうな、と思います。

司会

Linux の深いところというか、あらゆる知識が役に立つ感じありますね。自分はそんなに知識ないのですが。

bucchi

今までの仕事で得たものもありますけど、思いのほか、趣味で触ってたことが役に立っている感じがします。

Linux なんかもそうで、仕事では関わる部分が限られますけど、趣味だからこそ触れるところもあります。

司会

bucchi さんは、どういうところを趣味で触っていたのですか?

bucchi

大昔になりますが、Zaurus という Linux が搭載された PDA がありまして、 これはかなりいじくり倒していましたね。 組み込み Linux をこれで学んだ感じでした。

Linux kernel を自分でビルドしたものに入れ替えたり、非公式のOSイメージに載せ替えたり、 WiFiドライバをポーティングしてWPA対応したりして遊んでいました。

司会

なるほど。ato さんも IoT の自動出社Botなど作ってましたね。

ato

そうでしたね。仕事部屋の温度データとか湿度とか二酸化炭素濃度とかを取って grafana のダッシュボードに表示して遊んだりもしています。 組み込みは Arduino 上での開発レベルですけど、デバイスをちょっと触って、組み込みっぽい開発を遊んでみたりとか、 そういうところでやったことが、多少は役にたっているかもしれません。

司会

なにか共通点がありそうですね。

bucchi

興味を持てるかどうかじゃないでしょうか。 仕事じゃないと触らないっていうのではなくて、仕事じゃなくても気になったらところは調べてみる、とか。

司会

仕事でもそういう経験を積めたりしますか?

bucchi

もちろん仕事でも良いと思います。 不具合解析等で深い所を調べたり、高価な開発機材を使ったりするのは、仕事じゃないとできない経験ですよね。

ただ、必ずしも自分が興味を持っているところに仕事で関われるとは限らないですし、 振り返ってみると、仕事以外で得た知識や経験がエンジニアとしての引き出しを増やしてくれたと思ってます。

なので興味を持つことが大切かなと思います。

司会

Zaurus の件では、どういうところに興味をもったのですか?

bucchi

たとえば WiFi ドライバの件だと、Zaurus に対応している WiFi カードはそこそこ高価だったのですが、 その1/3位の値段で Windows用のWiFiカードが売られていたんです。

これが Zaurus で使えたらいいなーと思って調べてみると、Intel 系の PC 上ではありますが Linuxでの動作報告を見つけたんです。

Zaurus も Linux なので、移植できれば動くんじゃないかと思ったのがきっかけでしたね。

困ったことや、こうだったらいいなーと思ったことが興味の元になっていたかもしれません。

司会

先ほどの、起動に時間がかかる件とかも、ある意味では似ているかもしれないですね。

h1sakawa

そういうことに興味を持てるか、ですよね。

司会

興味を持っていないとしんどいですもんね。

無理難題ではないけど、具体的には分からないけど、なんとなくできそう、みたいな課題を深掘って取り組むのが大事なのかな。

bucchi

たしかに、ダメ元でもやってみるという姿勢は大切かもしれないですね。

なんかできるかもと思って動ける人は強いと思います。

司会

なにか突破口があるはず、みたいな。

bucchi

例えば仕事でトラブルが発生したときには、どんな手段を使ってでもどうにかしなきゃいけないですよね。

完全に解決できなくても、何らかの形で妥協点や落とし所を見つけて、そこに持っていくことが必要になります。

それには、自分にはできないかも、と思って気後れするのではなくて、できるかもと思って手を動かすことが功を奏するような気がします。

司会

その対象が、新しい要望の場合もあるし、やりたいことの場合もあるし、トラブル対応の場合もある、って感じですね。

その主戦場が Linux ってことでしょうか。

ato

そうですね、Linux にある仕組みをつかって解決していくことが求められますね。

改善したいところ

司会

LFチームの取り組んでいる領域で、これから改善したいところなどありますか?

〜〜 開発のディープな話題が出てきたので中略 〜〜

ato

OSのビルドシステムがそろそろ老朽化しているので、技術をアップデートしていきたいです。

tech.groove-x.com

司会

なるほど。たしかにそうですけど、ビルドの仕組みに課題があるとはいえ、毎日自動でビルドされるのは良いですね。

ato

そうですね。ただ、毎日正しく動いてるがゆえに修正しにくいというか、インフラになってるから直しにくい、みたいなところがありますね。 定期的に式年遷宮したいです。

bucchi

直近では QA をもっと自動化したいです。QA やりたくないので(笑)。

最近 LOVOT3.0 が発売されたのですが、まだ自動テスト対応まで手が回っていなくて手動QAが多いんですよね。

ato

ハードウェアと密接なQA項目の見直しもしたいですね。

司会

あまり関係ないけど、 Rust も勉強したいです。
(社内の一部で Rust を使い始めています。記事はこちら)

tech.groove-x.com

bucchi

Linux の driver にも Rust を使うという流れもあって、私も興味はありますね。

全然勉強してないですけど・・

実はウェブの思想が取り込まれている話

bucchi

話がちょっとそれてしまうんですが、LFチームでは組み込み Linux 的なところだけじゃなくて、 Linux の中で動作するサービスもたくさん作ってます。

Go で書かれたサービスがいっぱいあるので、クラウドのバックエンド的なところに近い気がしています。

私が過去に関わってきた組み込みLinuxのプロジェクトは、古き良きソフトウェア開発的な感じが多かったんですけど、 LOVOTの場合はどちらかというと、クラウドのサービスとかAPIみたいなところをベースにシステムが構築されていて、 システムのアーキテクチャがクラウドとか Web 寄りの思想で作られてて面白いなと思いました。

なので、クラウドやバックエンド系の経験者が開発に参加したとしても、サービス周りのところは意外と取っ付きやすいんじゃないかなと思います。

司会

機体内の各サービスが粗結合してる感じですよね。

Redis, gRPC, HTTP など動作してますからね。

ato

この辺は元々ウェブをやってた人たちも参加して作り上げたものだから、そうなったって感じですね。

tech.groove-x.com

司会

シェルスクリプトや systemd もよく使いますね。

ato

systemd は未だにむずかしい(笑)


Lovot Frameworkチームの座談会、いかがでしたでしょうか?
次はまた、別のチームにインタビューして、ブログ記事をお届けしたいと思います。
お楽しみに。

Lovot Frameworkチーム座談会

GROOVE X では仲間を絶賛募集中!

LFチームでは、組み込みLinuxだけでなく、サーバの構成管理やサービス(デーモン)の開発経験、 Goを使ったバックエンド開発などのスキルを持っている方を探しています。

よかったら、一緒に LOVOT を作りませんか?

recruit.jobcan.jp recruit.jobcan.jp