見出し画像

REALITYのサーバ勉強会近況報告

こんにちは。今年の3月にREALITYのチームに入りましたサーバエンジニアのまつだです。
サーバエンジニアチームでは「サーバの仕組みを知ろう!」という名前の勉強会を毎週開催しています。この勉強会は毎週1人担当の人がサーバに関する自分が今気になっているテーマを持ち込み、それについてみんなでワイワイ勉強しようという趣旨の会です。各人が持ち込むテーマにはそれぞれの趣味・趣向が表れており、これまで様々な内容で勉強会をしてきました。
今回は「サーバの仕組みを知ろう!」で扱ったテーマを紹介します。REALITYの勉強会ではこんなことをやっているんだという雰囲気を知っていただければ幸いです。

Rust

REALITYのサーバ チームは開発の際はGolangとTypeScriptを使っているので、業務でRustに触れる機会は全くないのですが、とはいえ高いパフォーマンスを出すことができるRustはエンジニアからすると気になるところです。
Rustは多くの資料がWeb上に公開されていますが、サーバ勉強会ではThe Rust Programming Language 日本語版を用いてRustについて学習しています。
次回の勉強会ではRust製のGUIフレームワークである「Tauri」について取り扱う予定になっています。

Rustたのしい

Protocol Buffers/gRPC

過去の記事でも取り上げられましたが、現在REALITYでは通信速度改善などのためにProtocol Buffers(以下protobuf)を扱うよう改修を徐々に行なっています。

protobuf導入当初は全員がprotobufのことを知っているわけではなかったので、protobufとはそもそも何なのか、protobufを使ったAPIの開発フローはどのようなものになるのかを先ほどの記事の執筆者であるうすぎぬさんがレクチャーしてくれました。
また、REALITYのサーバはマイクロサービスアーキテクチャを採用しているのですが、マイクロサービス上でprotobufを扱うのならgRPCも導入したいよねということでまだ本格導入はされていませんがgRPCの勉強会も行われました。
このように新しく業務に導入しようと思っている技術などについてメンバーの知識レベルを揃えるためにもこの勉強会は使われています。

トランザクション技術

REALITYは一部のデータの管理をGCPのCloud Spannerを用いて行なっています。ただCloud Spannerの裏側ってMySQLのような一般のRDBと何が違うんだろうということが気になりkumagiさんの「一人トランザクション技術 Advent Calendar 2016」の記事を読んで勉強しました。

Cloud Spannerを高度に抽象化した図

このアドベントカレンダーの最終日の記事はCloud Spannerについてのものなのですが、最終日までの記事の中で「そもそもトランザクションって何なんだっけ」というレベルの話から丁寧にデータベースの裏側の技術について説明してくださっています。いきなりCloud Spannerの論文を読もうとすると前提知識が足りなくて辛いのですが、こちらのアドベントカレンダーだと順を追って理解できるので非常に助かっています。

go1.18

今年の3月にGolangの1.18がリリースされ、待望のジェネリクスやWorkspacesモードなど大きな機能追加が行われました。


REALITYではGolangを使っているため、もちろんサーバ チームの中ではホットトピックになり、1.18のリリースノートを見てどんな機能が追加されたのかをみんなで共有しました。

他にも

画像認識のハンズオンだったり、Amazon WorkspacesにおけるDockerを使った開発環境の構築だったりまだまだいろいろなことをやっています。

また、サーバエンジニアチーム以外でもREALITYでは多くの勉強会をしています。詳しくはこちらをご覧ください。

REALITYではいろいろなことを学ぶことが好きなエンジニアの方を募集しています。
カジュアル面談応募フォーム