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

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

Kazumasa Yamamoto
November 24, 2023
230

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

Kazumasa Yamamoto

November 24, 2023
Tweet

Transcript

  1. ユニークビジョンの Rust 活用事例と
    導入検討の勘どころ
    Rustエンジニア勉強会 ~最新情報・活用事例LT~
    ユニークビジョン株式会社 テックリード 山本 一将

    View full-size slide

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

    View full-size slide

  3. 本日の内容
    1. ユニークビジョンの Rust 活用の紹介
    2. Rust 採用のメリット・デメリット
    3. Rust を検討している方へ
    Copyright ©Unique Vision Company, All Rights Reserved. 3

    View full-size slide

  4. Copyright ©Unique Vision Company, All Rights Reserved. 4
    ユニークビジョンの
    Rust 活用の紹介

    View full-size slide

  5. 会社概要
    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%以上がエンジニアの
    テクノロジー企業です。

    View full-size slide

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

    View full-size slide

  7. フルファネルでブランド体験を作る
    Copyright ©Unique Vision Company, All Rights Reserved. 7

    View full-size slide

  8. X Marketing Partners
    Copyright ©Unique Vision Company, All Rights Reserved. 8
    広告をリッチな体験を伴う
    楽しいキャンペーンに変える!
    国内7社

    View full-size slide

  9. LINEで応募 OMO Technology Partner
    Copyright ©Unique Vision Company, All Rights Reserved. 9
    国内4社

    View full-size slide

  10. Rust.Tokyo 2023 ゴールドスポンサー
    Copyright ©Unique Vision Company, All Rights Reserved. 10

    View full-size slide

  11. ユニークビジョンの技術スタック
    Copyright ©Unique Vision Company, All Rights Reserved. 11
    Beluga
    キャンペーン
    Beluga
    キャンペーンfor LINE
    フロントエンド
    Belugaスタジオ
    API
    バックグラウンド
    ワーカー
    バッチ
    その他
    その他

    View full-size slide

  12. 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利用
    • 暗号処理

    View full-size slide

  13. 13
    とにかくたくさん
    使っている!

    View full-size slide

  14. Copyright ©Unique Vision Company, All Rights Reserved. 14

    View full-size slide

  15. CTO が Rust.Tokyo で語った理由
    1. パフォーマンスが重要なシステム
    2. コンパイラとエコシステムが優秀
    3. 面白そうな言語!
    Copyright ©Unique Vision Company, All Rights Reserved. 15

    View full-size slide

  16. ユーザーグループによる
    ノウハウの共有
    コードレビュー、ペアプロを通して
    教育する体制
    クレートが無ければ
    作って公開
    LT 会を主催して
    アウトプットの場を作る
    ユニークビジョン
    年 の

    View full-size slide

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

    View full-size slide

  18. ユーザーグループの発足
    Copyright ©Unique Vision Company, All Rights Reserved. 18
    チームA
    チームB
    チームC
    • 理想の実装について議論
    • ペアプロなどで教育
    • 必要なら crate 作る
    Rust
    得意な人

    View full-size slide

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

    View full-size slide

  20. クレートを作って公開する
    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作
    使われているものもある
    ユーザーグループが問題解決のために作成したものも!

    View full-size slide

  21. LT 会を主催してアウトプットの場作り
    Copyright ©Unique Vision Company, All Rights Reserved. 21

    View full-size slide

  22. Copyright ©Unique Vision Company, All Rights Reserved. 22
    Rust のメリット・デメリット

    View full-size slide

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

    View full-size slide

  24. メリット : とにかくメモリ消費量が少ない
    Copyright ©Unique Vision Company, All Rights Reserved. 24
    AWS Fargate の構成表
    小さいインスタンスを並べた方が効果的
    0.25 vCPU 0.5GBメモリ
    1 vCPU 2GBメモリ

    View full-size slide

  25. デメリット : ライブラリの整備状況
    Copyright ©Unique Vision Company, All Rights Reserved. 25
    画像を取り扱うデファクトスタンダードな crate が EXIF に対応していない

    View full-size slide

  26. Copyright ©Unique Vision Company, All Rights Reserved. 26
    検討中の方へ!!

    View full-size slide

  27. Copyright ©Unique Vision Company, All Rights Reserved. 27
    少し生産性は落ちるけど
    基本的には何とかなる!!

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  30. 意外と Rust は愛されている!
    Copyright ©Unique Vision Company, All Rights Reserved. 30
    • エンジニア採用への効果は期待以上だった!
    ⇒ Rust を使っている企業を探している人がいる
    • Rust に対する熱量は高い
    ⇒ 多少の苦労は厭わないパワーがある
    • 「やってみたい」だけでも案外悪くないのかも…

    View full-size slide

  31. Copyright ©Unique Vision Company, All Rights Reserved. 31
    まとめ

    View full-size slide

  32. まとめ
    • Rust 採用からの6年の取り組みを紹介
    • 諸々のコスト面のメリットが大きい
    • 意欲があるなら Rust は選択肢の一つになる
    Copyright ©Unique Vision Company, All Rights Reserved. 32

    View full-size slide

  33. 手っ取り早く Rust を業務で使いたい方へ
    Copyright ©Unique Vision Company, All Rights Reserved. 33
    エンジニア募集中!
    Rust 書けるかも

    View full-size slide

  34. ありがとうございました
    2023/10/11 Rust、何もわからない... #10 34
    皆さんとお話したい 採用してます Xのフォローお願いします
    • 今日の発表について
    • ユニークビジョン
    • Rustについて
    • コードレビューの工夫
    • 開発リーダーのお悩み
    • 東京ヤクルトスワローズ
    etc…

    View full-size slide