$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Fairy DevicesがRustを採用して 5年が経ちました
Search
Satoshi Yoshikawa
November 30, 2024
Technology
0
58
Fairy DevicesがRustを採用して 5年が経ちました
Rust.Tokyo 2024 でのFairy Devicesのスポンサーセッションです。
https://rust.tokyo/lineup/7
Satoshi Yoshikawa
November 30, 2024
Tweet
Share
More Decks by Satoshi Yoshikawa
See All by Satoshi Yoshikawa
ONNX推論クレートの比較と実装奮闘記
emergent
0
270
フェアリーデバイセズがRustを 採用して3年が過ぎました
emergent
1
640
Other Decks in Technology
See All in Technology
Amazon Forecast亡き今、我々がマネージドサービスに頼らず時系列予測を実行する方法
sadynitro
0
220
iOS 18 から追加された SwiftUI の傾向について調べてみる
swiftty
2
110
GDGoC開発体験談 - Gemini生成AI活用ハッカソン / GASとFirebaseで挑むパン屋のフードロス解決 -
hotekagi
1
460
Hyperledger Fabric(再)入門
gakumura
3
6.7k
ポストモーテムレビューをブレームレスに運営し有効な改善アクションを引き出すために必要だったこと / What is needed to operate postmortem blamelessly and elicit improvement actions
yamaguchitk333
0
130
Entra ID の基礎(Japan Microsoft 365 コミュニティ カンファレンス 2024)
murachiakira
3
2.1k
クルマのサブスクを Next.jsで内製化した経験とその1年後
kintotechdev
2
440
もう一度、 事業を支えるシステムに。
leveragestech
6
3k
Kubernetesを知る
logica0419
17
4.4k
241130紅白ぺぱ合戦LT「編集の技術」
toya524287
5
570
sre本読んだ感想
pisakun
0
160
Nutanixにいらっしゃいませ。Moveと仮想マシン移行のポイント紹介
shadowhat
0
240
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
95
5.2k
Fireside Chat
paigeccino
34
3k
Site-Speed That Sticks
csswizardry
0
88
How to train your dragon (web standard)
notwaldorf
88
5.7k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
27
2.1k
The Cost Of JavaScript in 2023
addyosmani
45
6.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
150
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Building Your Own Lightsaber
phodgson
103
6.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
1
220
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Transcript
Rust.Tokyo 2024 スポンサーセッション Fairy DevicesがRustを採用して 5年が経ちました 2024−11−30 Fairy Devices株式会社
1
本日のトピック • Fairy Devicesの紹介 • Fairy DevicesでのRust利用状況の紹介 ◦ Rust採用経緯(Rust.Tokyo 2022振り返り)
◦ Rust開発環境の変化(2022 to 2024) • 入社1年の社員事例紹介(片岡) • まとめと宣伝 2
本日のトピック • Fairy Devicesの紹介 • Fairy DevicesでのRust利用状況の紹介 ◦ Rust採用経緯(Rust.Tokyo
2022振り返り) ◦ Rust開発環境の変化(2022 to 2024) • 入社1年の社員事例紹介(片岡) • まとめと宣伝 3
4
Fairy Devicesのミッション 5 業務支援AIの実現と普及 ヒトが「見ているもの」「聞いていること」「話していること」そして「ヒトの行動」それらを「機械が理解・ 学習・解析できるカタチ」に再設計することで、機械が自然に、そしてココロ優しくヒトを助けるため のテクノロジーを開発しています。
Fairy Devicesのミッション 6 業務支援AIの実現と普及 音声処理技術 遠隔業務支援サービス
7
8
日経トレンディ 2025年ヒット予測ベスト30 1位に当社のTHINKLETを含めたカテゴリが選出 9 https://xtrend.nikkei.com/atcl/contents/18/01086/00001/ 遠隔業務支援以外にも積極的に活用の場を広げています
Fairy Devicesの強み 10
本日のトピック • Fairy Devicesの紹介 • 当社プロダクトでのRustの採用状況紹介 ◦ Rust採用経緯(Rust.Tokyo 2022振り返り)
◦ Rust開発環境の変化(2022 to 2024) • 入社1年の社員事例紹介(片岡) • まとめと宣伝 11
本日のトピック • Fairy Devicesの紹介 • 当社プロダクトでのRustの採用状況紹介 ◦ Rust採用 の経緯(Rust.Tokyo 2022振り返り)
◦ Rust開発環境の変化(2022 to 2024) • 入社1年の社員事例紹介(片岡) • まとめと宣伝 12
Rust採用の経緯 Rust.Tokyo 2022スポンサーセッション フェアリーデバイセズがRustを 採用して3年が過ぎました 13
Rust採用の経緯 • 社内プロダクト(サーバー、クライアントライブラリ等)にはC++で実装されたもの が多くあった • 一方でC++プロダクトをメンテナンスできる社内リソースが不足していた • C++に劣らない性能 でより安全に開発できる プログラミング言語を探した結果、
Rustがフィットした 14
Rust採用のあゆみ(2019〜2022) 15 2019 2020 2021 2022 CATS Backend microservice (small
start) Nyaprus Speech Recognition API (replacement) LINKLET (new product) Product development Personal activity Publish Interviewed …and many trivial works in Rust Publish ※前述のスライドからの抜粋&一部修正
本日のトピック • 自己紹介 • Fairy Devicesの紹介 • Fairy DevicesでのRust利用状況の紹介 ◦
Rust採用経緯(Rust.Tokyo 2022振り返り) ◦ Rust開発環境の変化(2022 to 2024) • 入社1年の社員事例紹介(片岡) • まとめと宣伝 16
2022 → 2024のあゆみ • 業務でRustを扱うメンバーが2倍に • Webサービス(バックエンド)の新規開発はほぼRustで実装 • WebのフロントエンドでRustを採用した事例ができた 17
社内のGitリポジトリ数は 順調に増加中 Gitリポジトリ数(累計) Gitリポジトリ数は 5年で約15倍に
Webアプリ開発で使うクレートの変遷 18 2022年以前 2022〜2024年 Webフレームワーク actix-web, warp axum データベース接続 diesel(※)
sqlx ロガー env_logger, log tracing, tracing-subscriber エラー処理 failure(※) anyhow, thiserror シリアライズ/ デシリアライズ serde serde ※正確には2022年よりも以前から右側をメインに使ってはいる
AWSでRustを使いやすくなった • AWS SDK for Rust の正式リリース(2023-11) • cargo-lambdaでAWS Lambdaを簡単実装&デプロイ
◦ CDKからも扱えるようになっているようです(未使用) 19 https://aws.amazon.com/jp/about-aws/whats-new/2023/11/aws-sdk-rust/
Rust活用領域の拡大 • WebサービスのバックエンドやCLIツールだけでなく 社内ソフトウェアでの活用領域を拡大中 ◦ Webフロントエンド ◦ デバイスソフトウェアへの組み込み 20 Webサービス
デバイス、クライアント バック エンド フロントエ ンド デバイスソ フトウェア サービス 運用CLI ツール ※注:プロダクトのコードを全部Rustで置き換えるという話ではございません
21
• 一般的なプラクティスが少ない 課題に対する解決法が属人化・サイロ化してしまう懸念 • みんな「Rustを使っている」、でも… 技術領域が異なることで新たな壁ができてしまう懸念 活用領域の広がりによる新たな課題 22 社内外での情報発信・技術交流の強化 Rust以外での経験が豊富な人材の採用
本日のトピック • 自己紹介 • Fairy Devicesの紹介 • 当社プロダクトでのRustの採用状況紹介 ◦ Rust採用の経緯(Rust.Tokyo
2022振り返り) ◦ Rust開発環境の変化(2022 to 2024) • 入社1年の社員事例紹介(片岡) • まとめと宣伝 23
現場エンジニアによる開発体験記 自己紹介 - こそこそ個人開発 - 車輪の再開発もどきしたり - 友人のアプリケーション作ったり
- プロダクト開発部 ソフトウェアエンジニア - LINKLET(Webアプリケーション)のフロントエンド、バックエンドの開発 24 副題: 入社して1年が経ちました
Fairy Devices x Rust - Rust の採用歴が長く本番環境で運用している - いろんな知見が溜まっている
- Rust の本の執筆をされている方がいる - コア技術に理解はある - Rust の Slack チャンネルがある - 相談が簡単にできる - やったことの共有も盛んに行われている 25
日々の開発 Rust をたくさんかけて楽しい! けどそんなことばかりじゃない。運用していく中での課題感もある 26
課題感 part ① 依存クレートの定期的なアップデート - Breaking Change & 脆弱性対応 -
ロジックの修正が必要 - ドキュメントの充実させよう - 定常タスクでの対応 - 事前にテストしやすい形にしておこう 27
課題感 part ② 技術的負債の返却 - コードがどんどん古くなるし良い書き方が見つかる - 定期的な改善日の運用(改善 Day) -
どういうところがカバーできているか見えにくい - テスト結果分析(カバレッジ cargo-llvm-cov) 28
課題感 part ③ プロダクトの成長幅の大きさ - THINKLET でやりたいこと、できることがたくさんある - 流行りの
LLM と連携できたら、独自にカスタマイズしていきたいよね - 配信アプリケーションでYouTube とかも使えるから、独自の配信サー バー欲しいよね 29 THINKET x 〇〇 = 無限大
30 Rust 以外の Fairy Devices の面白さ - エンドユーザーとの接点が色々ある - 導入いただいているお客さんの現場同行、工場見学
- 直近滋賀にある工場に訪問させていただいて意見交換など - プロダクトに対して色んなレイヤーのエンジニアがいる - THINKLET 一つとっても - ハードウェア - ソフトウェア - サーバーサイド etc... 最後に
本日のトピック • 自己紹介 • Fairy Devicesの紹介 • 当社プロダクトでのRustの採用状況紹介 ◦ Rust採用の経緯(Rust.Tokyo
2022振り返り) ◦ Rust開発環境の変化(2022 to 2024) • 入社1年の社員事例紹介(片岡) • まとめと宣伝 31
まとめ • 当社でのRust採用事例や現場の声について紹介しました 32
Fairy Devicesでは一緒に働く仲間を募集中です • Webアプリケーション ◦ バックエンド ◦ フロントエンド • クラウドエンジニア
• デバイスソフトウェア • Androidアプリ • QA(品質保証) etc 33 採用ページのQRコード Rustにこだわらず、多様なご経験者を歓迎します
ご清聴ありがとうございました 34