銀座Rails#24@リンクアンドモチベーション 勉強会の感想

こんにちは!株式会社 PREVENT の開発部門、バックエンドエンジニアチームの松原と申します。

厳しい残暑がようやく和らぎ始めましたが、いかがお過ごしでしょうか?

今回は、8月28日(金)に銀座 Rails に参加した感想と、イベント中に登場した技術、特に詳しく知らない点を学習も兼ねてまとめたいと思います!

ginza-rails.connpass.com

銀座 Rails のイベントに初めて参加したのですが、今回は Devise 、 Rails で行う Distributed Tracing 、 Rails で作る serverless CMS などを学びました。

業務で Rails を扱うようになり八ヶ月が経過しましたが、イベントでテーマとして取り上げられている技術は知らないものばかりで、 Rails に変換して考える段階まで至ることができませんでした。

Rails 的に考察できるととても面白そうなので、 Distributed Tracing について学習し直したいと思います。

Distributed Tracing (分散トレーシング)とは?

分散トレーシングとは、分散されたシステムで処理されるリクエストを追跡するためのものです。

分散トレーシングには主に二つの要素があり、その要素を Span と Trace と呼びます。

Span: 1サービス内の処理を表す。

Trace: Requestのstart-endを含むSpanの集合をあらわす。

イメージは以下のようになります。

f:id:syrengr:20200909190708p:plain

<出典: 分散トレーシングシステムのZipkinを使ってみた話>

分散トレーシングでは、 Span と Trace を可視化し、問題点と処理に時間がかかっている点を確認することができます。また、解決するための手助けをするシステムを分散トレーシングシステムといいます。

Open Tracing について

Open Tracing とは、開発者にシステムトレーサーの追加、またはトレーサーの切り替えを行う仕組みを提供する、分散トレーシングの実装です。

Open Tracing 仕様を実装したトレーサーとして、 Twitter 社が開発した Zipkin や、 Uber 社の Jaeger などがあり、詳しくは以下の資料が大変参考になりました! :)

www.slideshare.net

Distributed Tracing を Rails で行う方法

ネット上の資料を調べた結果、分散トレーシングを Rails で行うには以下の記事が参考になりそうだと思いましたが、翻訳しつつ拝読しても難易度は高く感じたため、今後まとまった時間が取れたらトライしてみたいです。

medium.com

OpenCensus (分散トレーシングを行うためのライブラリ集)を使用すると、 Rails で分散トレースを簡単に採用できるというお言葉が心強いです :)

イベントに参加させていただき、ありがとうございました!

以下でも同様の記事を書いておりますので、ご紹介させていただきます。

銀座Rails#24@リンクアンドモチベーション 勉強会の感想|Sayuri Matsubara|note

季節の変わり目、くれぐれもご自愛ください。それでは、失礼致します。