Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Copyright ©Unique Vision Company, All Rights Reserved. 14

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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