Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ユニークビジョンの Rust 活用事例

Kazumasa Yamamoto
November 24, 2023
480

ユニークビジョンの Rust 活用事例

Kazumasa Yamamoto

November 24, 2023
Tweet

Transcript

  1. 自己紹介 Copyright ©Unique Vision Company, All Rights Reserved. 2 kyamamoto9120

    山本 一将 ユニークビジョン株式会社 テックリード 業務でRust書きつつ、チームの生産性を向上させる改善をします 実績:2015年 世界コンピュータ将棋選手権 9位 趣味:スポーツ観戦、将棋、キャンプ、リアル脱出ゲーム コメント・質問など 頂けると嬉しいです! ハッシュタグ #テックストリート
  2. 本日の内容 1. ユニークビジョンの Rust 活用の紹介 2. Rust 採用のメリット・デメリット 3. Rust

    を検討している方へ Copyright ©Unique Vision Company, All Rights Reserved. 3
  3. 会社概要 Copyright ©Unique Vision Company, All Rights Reserved. 5 社名

    代表者 設立 所在地 従業員数 事業内容 ユニークビジョン株式会社 白圡 良之 2008年1月15日 東京都渋谷区千駄ケ谷5-34-7 NX新宿ビル2階 49名 ソーシャルメディアを活用して企業のファンを 増やすマーケティング事業 早い開発スピード・高い開発力へ投資: エンジニア(フルタイム)中心の企業 SNSマーケティングツールの提供: SNSキャンペーン、SNSアカウントの統合管理(Belugaシリーズ) SNSプラットフォームベンダーとの密な連携: 認定パートナーとしてキャンペーンメニューの共同開発 (Twitter社, LINE社)、迅速な情報共有 社員の50%以上がエンジニアの テクノロジー企業です。
  4. Beluga シリーズ Copyright ©Unique Vision Company, All Rights Reserved. 6

    ソーシャルメディアを活用して企業のファンを増やすマーケティングツールを提供
  5. X Marketing Partners Copyright ©Unique Vision Company, All Rights Reserved.

    8 広告をリッチな体験を伴う 楽しいキャンペーンに変える! 国内7社
  6. ユニークビジョンの技術スタック Copyright ©Unique Vision Company, All Rights Reserved. 11 Beluga

    キャンペーン Beluga キャンペーンfor LINE フロントエンド Belugaスタジオ API バックグラウンド ワーカー バッチ その他 その他
  7. Copyright ©Unique Vision Company, All Rights Reserved. 12 アプリケーションの種類 データベース

    連携しているSNS 何をしている? どこで動く? • Amazon Fargate • AWS Lambda • 開発マシン • API サーバー • バックグラウンドワーカー • バッチ • クローラー • CLI ツール • PostgreSQL • DynamoDB • Redis • BigQuery • S3 • X(旧Twitter) • LINE • Facebook • Instagram • 画像処理 • AI / ML • Tensorflow利用 • 暗号処理
  8. ユニークビジョンの開発体制 Copyright ©Unique Vision Company, All Rights Reserved. 17 フロントエンド強い

    エンジニア プロジェクト リーダー 開発 リーダー バックエンド強い エンジニア チームA チームB チームC • フィーチャーチーム • リリースまでの時間短縮 • ノウハウの共有が課題
  9. ユーザーグループの発足 Copyright ©Unique Vision Company, All Rights Reserved. 18 チームA

    チームB チームC • 理想の実装について議論 • ペアプロなどで教育 • 必要なら crate 作る Rust 得意な人
  10. 教育体制の構築 Copyright ©Unique Vision Company, All Rights Reserved. 19 チーム

    • 理想の実装について議論 • ペアプロなどで教育 • 必要なら crate 作る Rust 得意な人 ペアプロ!
  11. クレートを作って公開する Copyright ©Unique Vision Company, All Rights Reserved. 20 名前

    内容 DL数 twapi Twitter API v1 用のライブラリ 7,447 twapi-reqwest Twitter API v1 用のライブラリ 76,844 twapi-v2 Twitter API v2 用のライブラリ 1,796 actix-daemon-utils Actix を利用してデーモンを作る仕組み 80,325 csv-zip-maker CSV を作成して ZIP にする 1,680 dynamodb-mutex DynamoDB を使って排他制御を行う 515 redis-batches Redis を使って排他制御を行う 235 era-jp 明治以降の日本の元号を計算 77,538 actix-web-jsonschema ActixWeb で使えるバリデーター 993 ほとんどCTO作 使われているものもある ユーザーグループが問題解決のために作成したものも!
  12. Copyright ©Unique Vision Company, All Rights Reserved. 23 メリット デメリット

    1. メモリ効率が高く、安定 2. 保守性が高い 3. エンジニア採用 1. 学習コストが高い 2. コンパイル時間が長い 3. ライブラリが整っていない
  13. メリット : とにかくメモリ消費量が少ない Copyright ©Unique Vision Company, All Rights Reserved.

    24 AWS Fargate の構成表 小さいインスタンスを並べた方が効果的 0.25 vCPU 0.5GBメモリ 1 vCPU 2GBメモリ
  14. デメリット : ライブラリの整備状況 Copyright ©Unique Vision Company, All Rights Reserved.

    25 画像を取り扱うデファクトスタンダードな crate が EXIF に対応していない
  15. 中長期的なコストの視点ではメリットが大きい Copyright ©Unique Vision Company, All Rights Reserved. 28 1.

    メモリ効率が高く、安定 2. 保守性が高い 3. エンジニア採用 1. 学習コストが高い 2. 世の中に情報が少ない 3. ライブラリが整っていない メリット デメリット 短期的にはメリットは見えづらい 小さく始めても辛さだけが残る…
  16. Rust の導入検討時に検討したいポイント Copyright ©Unique Vision Company, All Rights Reserved. 29

    1. システムの寿命 メモリリークやバッファオーバーフローを気にしなくて良いので 安定・安全が求められる寿命の長いシステムだとメリットが大きい。 2. 改修の頻度 最初に動くものが出来るまでの時間は軽量プログラミング言語が勝るが、 変更を加えるたびに型安全のメリットが活きる! 3. 要求される性能 高スループットが要求される場合にはインフラ費用が削減できる可能性あり!
  17. 意外と Rust は愛されている! Copyright ©Unique Vision Company, All Rights Reserved.

    30 • エンジニア採用への効果は期待以上だった! ⇒ Rust を使っている企業を探している人がいる • Rust に対する熱量は高い ⇒ 多少の苦労は厭わないパワーがある • 「やってみたい」だけでも案外悪くないのかも…
  18. ありがとうございました 2023/10/11 Rust、何もわからない... #10 34 皆さんとお話したい 採用してます Xのフォローお願いします • 今日の発表について

    • ユニークビジョン • Rustについて • コードレビューの工夫 • 開発リーダーのお悩み • 東京ヤクルトスワローズ etc…