Mais conteúdo relacionado
Semelhante a 4年前にRustで新規プロダクトを?!枯れてない技術の採択にまつわるエトセトラ:developers summit 2023 10-d-8 (20)
4年前にRustで新規プロダクトを?!枯れてない技術の採択にまつわるエトセトラ:developers summit 2023 10-d-8
- 7. 2023 paild, Inc.
弊社の技術スタック
● 開発言語
○ (フロント)TypeScript + React
○ (サーバー)Rust + actix-web/axum
● インフラ
○ AWS
○ CircleCi / GitHub Actions
○ and so on …
- 11. 2023 paild, Inc.
実際に困ったこと
● 非同期ランタイムが天下統一されるまでに、かなりの時間を要した
● 各種SDKにRustがない、または公式サポートなものがない
● IDLとの相性が悪い
● リリース3ヶ月前に、actix-webのリポジトリが消失
- 12. 2023 paild, Inc.
実際に困ったこと 〜非同期ランタイム今昔〜
● Rustでは、永らく非同期周りのデファクトが定まっていなかった
○ tokio vs async-std vs smolだけならまだしもactix-rtなどの亜種も...
○ 今はtokioが天下統一した(はず)
● しかし、まだ非同期への道のりは長い
○ dieselは未だに非同期対応が進んでいない
○ asyncなtraitを作るためには外部crateが必要
- 13. 2023 paild, Inc.
実際に困ったこと 〜SDK問題〜
● 当然のようにSDKのサポート言語にRustが含まれている状態ではない
○ Auth0 / SendGrid などなど、どうにかはなるができれば公式でサポートしてほしい…
○ 有志によるライブラリがない場合はAPIを直接叩きあれこれする必要があります
● AWS SDKの問題
○ 永らくRusotoという非公式なライブラリがデファクトだった
○ aws-sdk-rustの登場により公式SDK爆誕、しかし…
- 14. 2023 paild, Inc.
実際に困ったこと 〜OpenAPI/Protocol Buffers〜
● OpenAPIからサーバーコードを吐き出したいがなかなかうまくいかない
○ サーバーコードにマクロをつけてOpenAPIを吐き出すというのが昨今の主流
○ サーバーサイドコードを触らないとインターフェースが決められないということになる
● Protocol Buffersでtonicのサーバーコードを吐き出せる!
○ over httpするにはgatewayが必要だがwritten by Rustなgatewayを吐き出すのは難しい...
- 15. 2023 paild, Inc.
実際に困ったこと 〜actix-webのお家騒動〜
● actix-webのメンテナがリポジトリをアーカイブしてしまった
○ 色々と事情はあったみたいだけど、要するに使っていたフレームワークがいきなり消失した
○ OSSなので、当然のリスクではあるものの…相当震えました
○ 本件については、その後JohnTitorがメンテナーに就任することで解決した
- 17. 2023 paild, Inc.
採用に関して
● 幸いなことにRustを書きたいというdeveloperは多い
○ 弊社もポジションオープンしてるので、是非ご応募ください♥
● ただ、会社のスケーリングに合うほどかどうかは会社による
○ 来月から10人Rustで本番コードの開発経験がある人を、予算内で調達!とかは多分厳しい
● オンボーディングについてはさほど問題にならない
○ プログラミン言語の難しさ <<< Webの本質的な難しさ
- 18. 2023 paild, Inc.
まとめ
● 日頃から技術の特性・雰囲気について情報を収集しておくと、いざ選定の際
に選んでも大丈夫かどうかくらいの判断材料にはできる
● RustでのWebサービス開発は、しんどい部分も経験してきたが、それを補っ
て余りある良い部分があるし、それでも最近はかなり枯れてきた
● 採用に関しては、会社のフェーズや人的リソースの確保のやり方によっては
スケールしない