SlideShare a Scribd company logo
2023 paild, Inc.
Developers Summit 2023
10-D-8
4年前にRustで新規プロダクトを?!
枯れてない技術の採択にまつわるエトセトラ
2023 paild, Inc.
誰ですか?
株式会社ペイルド
Chief Technology Officer
@IgnorantCoder
IgnorantCoder
2023 paild, Inc.
技術選定って、どのようにしてますか?
2023 paild, Inc.
技術選定とは
特定の目的や要件に対して、適切な技術を選択することを意味します。これは、
開発やプロジェクトにおいて重要な役割を果たします。適切な技術を選ぶこと
で、効率的かつ効果的な開発や実装が可能になります。
→ 開発や実装を効率的かつ効果的にするために適切な技術を選びたい
2023 paild, Inc.
技術選定とは(現実)
● C++で作られた既存のライブラリを使ってください
● 社内の事情により、Windows Serverで動くものじゃないと駄目です
● 開発ベンダーは変えられませんので、工数確保できる言語でお願いします
2023 paild, Inc.
技術選定とは(再掲)
特定の目的や要件に対して、適切な技術を選択することを意味します。これは、
開発やプロジェクトにおいて重要な役割を果たします。適切な技術を選ぶこと
で、効率的かつ効果的な開発や実装が可能になります。
→ 所与の条件を満たしつつ、開発を効率的にするために適切な技術を選びたい
2023 paild, Inc.
弊社の技術スタック
● 開発言語
○ (フロント)TypeScript + React
○ (サーバー)Rust + actix-web/axum
● インフラ
○ AWS
○ CircleCi / GitHub Actions
○ and so on …
2023 paild, Inc.
技術選定とは(現実その2)
● なぜRustを選びましたか?
● それって大丈夫なんですか?
2023 paild, Inc.
なぜRustを選んだのか?
高速な実行速度を実現することに対して伸びしろがあり、またオブジェクトのラ
イフタイムなどまで含めた、コンパイラによる高度な静的チェックが優秀である
ためバグを生みにくいからです。
また、traitや所有権などの現代的な機能がデフォルトで提供されており、cargo
も洗練されており、後発の言語ならではのよさがあります。
欧米のテックジャイアントと呼ばれる企業群も積極的に投資を始めており、今後
の成長性なども見込めるため…
2023 paild, Inc.
なぜRustを選んだのか?
高速な実行速度を実現することに対して伸びしろがあり、またオブジェクトのラ
イフタイムなどまで含めた、コンパイラによる高度な静的チェックが優秀である
ためバグを生みにくいからです。
また、traitや所有権などの現代的な機能がデフォルトで提供されており、cargo
も洗練されており、後発の言語ならではのよさがあります。
欧米のテックジャイアントと呼ばれる企業群も積極的に投資を始めており、今後
の成長性なども見込めるため…
適当です
2023 paild, Inc.
実際に困ったこと
● 非同期ランタイムが天下統一されるまでに、かなりの時間を要した
● 各種SDKにRustがない、または公式サポートなものがない
● IDLとの相性が悪い
● リリース3ヶ月前に、actix-webのリポジトリが消失
2023 paild, Inc.
実際に困ったこと 〜非同期ランタイム今昔〜
● Rustでは、永らく非同期周りのデファクトが定まっていなかった
○ tokio vs async-std vs smolだけならまだしもactix-rtなどの亜種も...
○ 今はtokioが天下統一した(はず)
● しかし、まだ非同期への道のりは長い
○ dieselは未だに非同期対応が進んでいない
○ asyncなtraitを作るためには外部crateが必要
2023 paild, Inc.
実際に困ったこと 〜SDK問題〜
● 当然のようにSDKのサポート言語にRustが含まれている状態ではない
○ Auth0 / SendGrid などなど、どうにかはなるができれば公式でサポートしてほしい…
○ 有志によるライブラリがない場合はAPIを直接叩きあれこれする必要があります
● AWS SDKの問題
○ 永らくRusotoという非公式なライブラリがデファクトだった
○ aws-sdk-rustの登場により公式SDK爆誕、しかし…
2023 paild, Inc.
実際に困ったこと 〜OpenAPI/Protocol Buffers〜
● OpenAPIからサーバーコードを吐き出したいがなかなかうまくいかない
○ サーバーコードにマクロをつけてOpenAPIを吐き出すというのが昨今の主流
○ サーバーサイドコードを触らないとインターフェースが決められないということになる
● Protocol Buffersでtonicのサーバーコードを吐き出せる!
○ over httpするにはgatewayが必要だがwritten by Rustなgatewayを吐き出すのは難しい...
2023 paild, Inc.
実際に困ったこと 〜actix-webのお家騒動〜
● actix-webのメンテナがリポジトリをアーカイブしてしまった
○ 色々と事情はあったみたいだけど、要するに使っていたフレームワークがいきなり消失した
○ OSSなので、当然のリスクではあるものの…相当震えました
○ 本件については、その後JohnTitorがメンテナーに就任することで解決した
2023 paild, Inc.
採用は?
2023 paild, Inc.
採用に関して
● 幸いなことにRustを書きたいというdeveloperは多い
○ 弊社もポジションオープンしてるので、是非ご応募ください♥
● ただ、会社のスケーリングに合うほどかどうかは会社による
○ 来月から10人Rustで本番コードの開発経験がある人を、予算内で調達!とかは多分厳しい
● オンボーディングについてはさほど問題にならない
○ プログラミン言語の難しさ <<< Webの本質的な難しさ
2023 paild, Inc.
まとめ
● 日頃から技術の特性・雰囲気について情報を収集しておくと、いざ選定の際
に選んでも大丈夫かどうかくらいの判断材料にはできる
● RustでのWebサービス開発は、しんどい部分も経験してきたが、それを補っ
て余りある良い部分があるし、それでも最近はかなり枯れてきた
● 採用に関しては、会社のフェーズや人的リソースの確保のやり方によっては
スケールしない
2023 paild, Inc.
Thank you for listening!!!

More Related Content

PDF
【Unity】より良い表現のためのライティング戦略
PDF
それはYAGNIか? それとも思考停止か?
PPTX
世界一わかりやすいClean Architecture
PDF
ソーシャルゲームのためのデータベース設計
PDF
Oss貢献超入門
PDF
すごい constexpr たのしくレイトレ!
PPTX
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
PPTX
C#や.NET Frameworkがやっていること
【Unity】より良い表現のためのライティング戦略
それはYAGNIか? それとも思考停止か?
世界一わかりやすいClean Architecture
ソーシャルゲームのためのデータベース設計
Oss貢献超入門
すごい constexpr たのしくレイトレ!
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
C#や.NET Frameworkがやっていること

What's hot (20)

PPTX
トランクベース開発を活用して爆速に開発した話
PDF
.NET 7期待の新機能
PDF
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
PDF
アジャイルジャーニー
PPTX
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
PDF
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
PPTX
C#メタプログラミング概略 in 2021
PDF
モジュールの凝集度・結合度・インタフェース
PDF
tf,tf2完全理解
PDF
Dockerからcontainerdへの移行
PPTX
並列化による高速化
PDF
いまさら聞けないselectあれこれ
PDF
GitHubで雑誌・書籍を作る
PDF
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
PPTX
PyCUDAの紹介
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PDF
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
PDF
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
PPTX
ぼくとJenkinsおじさんの360日戦争
PDF
ブルックスのいう銀の弾丸とは何か?
トランクベース開発を活用して爆速に開発した話
.NET 7期待の新機能
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
アジャイルジャーニー
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
C#メタプログラミング概略 in 2021
モジュールの凝集度・結合度・インタフェース
tf,tf2完全理解
Dockerからcontainerdへの移行
並列化による高速化
いまさら聞けないselectあれこれ
GitHubで雑誌・書籍を作る
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
PyCUDAの紹介
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
ぼくとJenkinsおじさんの360日戦争
ブルックスのいう銀の弾丸とは何か?
Ad

Similar to 4年前にRustで新規プロダクトを?!枯れてない技術の採択にまつわるエトセトラ:developers summit 2023 10-d-8 (20)

PDF
チーム開発で徐々にコード品質をあげていく取り組み
PPTX
20141010 マイクロソフト技術と共に目指すフルスタックエンジニアへの道
PPTX
20190117 teamup
PPTX
ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術
PPTX
デジタルトランスフォーメーション時代を生き抜くためのビジネス力 ~ AI、Advanced Analytics の使いどころ ~
PDF
【de:code 2020】 25 年 1,300 社以上の実績をベースにした「リシテア/就業管理クラウドサービス」とそれを支える「デジタルソリューション...
PDF
ISID IIoT Forum_180628
PDF
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
PDF
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
PDF
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
PDF
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
PDF
デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会
PDF
Smart Store Map
PDF
13_B_5 Who is a architect?
PDF
ビー・テクノロジーの創業時の会社案内
PDF
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
PDF
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
PDF
RHF2021_ポイントは業務視点.pdf
PPTX
GitLab好きのAzureユーザーに朗報!あなたのAzure OpenAIをつかって、GitLabでAIを使う方法とメリットをご紹介.pptx
PPTX
Developers Summit 2022 プロダクト開発速度とデータの組織的価値をセットで飛躍的に高める開発戦略
チーム開発で徐々にコード品質をあげていく取り組み
20141010 マイクロソフト技術と共に目指すフルスタックエンジニアへの道
20190117 teamup
ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術
デジタルトランスフォーメーション時代を生き抜くためのビジネス力 ~ AI、Advanced Analytics の使いどころ ~
【de:code 2020】 25 年 1,300 社以上の実績をベースにした「リシテア/就業管理クラウドサービス」とそれを支える「デジタルソリューション...
ISID IIoT Forum_180628
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会
Smart Store Map
13_B_5 Who is a architect?
ビー・テクノロジーの創業時の会社案内
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
RHF2021_ポイントは業務視点.pdf
GitLab好きのAzureユーザーに朗報!あなたのAzure OpenAIをつかって、GitLabでAIを使う方法とメリットをご紹介.pptx
Developers Summit 2022 プロダクト開発速度とデータの組織的価値をセットで飛躍的に高める開発戦略
Ad

More from Yusuke Mori (7)

PDF
Rust、何もわからない...#7 VecDeque再訪
PPTX
Handii スタートアップエンジニア開発課題LT day2
PDF
Rusotoからaws-sdk-rustへ
PDF
Startup react lt
PDF
Startup shikujiri LT
PPTX
useful library in rust@shitamachi.rs #2
PDF
プログラミングLT 2019 Summer
Rust、何もわからない...#7 VecDeque再訪
Handii スタートアップエンジニア開発課題LT day2
Rusotoからaws-sdk-rustへ
Startup react lt
Startup shikujiri LT
useful library in rust@shitamachi.rs #2
プログラミングLT 2019 Summer

4年前にRustで新規プロダクトを?!枯れてない技術の採択にまつわるエトセトラ:developers summit 2023 10-d-8