Serverlessconf Tokyo 2018に登壇しました
秋本 大樹
こんにちは。分析基盤エンジニアの秋本です。
先日9月29日に行われたServerlessconf Tokyo 2018(以下、サーバレスカンファ)に登壇し、弊社の サーバレスETL(Extract Transform Load)基盤 に関して発表を行いました。
また、サーバレスカンファに出展した弊社ブースでは、 サーバレスとビッグデータに関するクイズ大会 を開き、多くの方に参加して頂きました。
本エントリでは、発表したサーバレスETL基盤の内容と、弊社ブースの内容をお伝えしたいと思います。
サーバレスETL基盤の概要
背景
私たちは2013年から分析基盤を運用し続けており、社内からの分析要望に応える形で、現在までシステムのアップデートを重ねてきました。しかし直近、下記のような問題が顕在化するようになりました。
- シェルスクリプトで書かれたレガシーなコードの開発および保守が困難
- 複数システムを連携させるスケジュール実行ではテーブル単位でのロードができず非効率
- オンプレサーバが複雑化しすぎて開発に必要なパッケージを導入できない
このようなシステム上の困難を解消するために、私たちはサーバレスを用いたETL基盤を構築することに決めました。
アーキテクチャ設計思想
今回のサーバレスETL基盤を設計するにあたり、私たちは下記の5つを目標としました。
- サーバー管理が極力少ないパイプラインと実行環境
- イベントドリブン & 疎結合なアーキテクチャ
- スケーラビリティと処理の並列数の管理
- イベント(データ)のステータス管理と活用
- 運用が楽になるロギング・モニタリング
また全体のアーキテクチャ構成は下図のようになっております。
サーバレスでの設計は、スケーラブルで疎結合なアーキテクチャが作りやすいという利点がありますが、一方でそれをETL基盤に適用する際には、DWH(Data Warehouse)といった スケールが困難なコンポーネントに対する並列数をしっかりと制御する必要があります。
また、サーバレスではログがそれぞれのコンポーネントに分散しますので、本番での運用につなげるためには、 ログを一元的に管理するDatadogのような仕組みが必要となります。
その他設計の詳細は上記のスライドに記載しておりますので、ぜひご覧ください。
発表の様子
数百人の参加があったサーバレスカンファですが、その会場は大きく、 48:9のスライドサイズでの発表 となりました。このスライドサイズでの発表は、全員にとって初めてのことでしたが、良い経験となりました。
実際の発表では、分析基盤の概要に関するパートは山田、そして設計に関する部分は白鳥と秋本が担当しました。
二人の発表では、いわゆる「漫談形式」で既存システムの悩みや、サーバレスな設計・実装ポイントを紹介しました。途中笑いが起きながらも、悩みの部分では「うんうん」と頷いて頂くことが多く、同じ問題を抱えていることが共有できたかと思います。また、サーバレスな設計・実装ポイントに関しても、発表後に同じような悩みを抱える方から「とても参考になった」との感想を頂き、我々としても良い発表ができたのではないかと感じています。
出展ブースの紹介
登壇と同日に行われたブースでの出展では、サーバレスとビッグデータに関するクイズ大会を開きました。
来場者にはスマートフォンからクイズ用のURLにアクセスしてもらい、全8問の四択クイズに参加してもらいました。
実はこちらのクイズアプリ、分析基盤チーム内のハッカソンで作成したものとなります。 下図のようにサーバレスで構成されており、またランキングの集計機能も実装しました。
多くの参加者が、少しでも上の順位を目指すため、熱心に問題に取り組んでおりました。
最後に
今回サーバレスカンファに参加していて気づいたのは「サーバレスを使ってみた」ではなく 「どのようにサーバレスを使うか」に焦点が当たった発表が多かったことです。
例えば、サーバレスを用いた場合の構成管理やログ管理に関する発表が多く、 サーバレスに取り組んでいる私たちのチームにとって、非常に参考になる内容でした。
このような素晴らしい機会を与えてくださったサーバレスカンファのスタッフの皆様には 改めて御礼を申し上げます。
来年も機会があれば、ぜひ参加したいと思います。
一緒に分析基盤を作りませんか?
私たちのチームでは一緒に分析基盤を作る仲間を募集しています。
この記事を読んでご興味を持った方は、下記のWantedly、フッターから飛べる中途採用ページのいずれかからご連絡ください。お待ちしております。