2020-12-28 2021-12-27
mixi Bug Shooting Challenge#5 に参加した
この記事は、僕の旧ブログ(はてなブログ)から移植した記事です!
エンジニアの中には CRE(Customer Reliability Engineering)という職種があります。意味はそのまま「お客さんからの信頼を上げる」エンジニアで、主に問い合わせに対応したりデータ分析をするらしいです。
今回は、デモアプリに届いた問い合わせを調査し、問題のあるものについては原因のバグを特定し、修正もするということを 二人チーム + メンターの方 という形で演習しました。あ、オンラインでした!
イベントページ → https://mixi.connpass.com/event/193415/
参加まで
選考課題のクイズが 2 問ありましたが、Rails をそこそこ知っている人ならサクッと答えられるものだと思います。僕は Rails 初心者だったため、たくさんググりながら回答しました。
当日
はじめましての @magcho くんとペアでした。(お互い個人エントリー)
やっていき#mixi_BSC
— magcho (@magcho0527) December 19, 2020
レクチャー
デモアプリの構成についてなどの説明があり、バックエンドが Rails で、ログ収集に GCP の BigQuery (デモ環境)という構成でした。
BigQuery は聞いたことあるくらいで初めて触ったのですが、使いやすさと速度に驚きました。
BigQuery は、ペタバイト単位のデータに対するスケーラブルな分析を可能にする、フルマネージドのサーバーレスデータウェアハウスです。
メンターの方が「何してもいいよ」と言っていたので色々クエリを入れてみたのですが、数百万件のデータを数秒で処理してきたので Google すごいなって思いました。 ちなみにこれはデモ用の環境を用意してくれていて、実際に運用している環境では一日にテラバイトオーダーでデータが貯まっていくとかいかないとか。
その後 Docker で手元に環境を作り、みんなでチュートリアル問題をやりました。
本番
大きく課題が 3 問出題されて順番に 出題 → 解説 の流れで進めていく形式でした。 ユーザーからの問い合わせメールだけが渡され、それ以降は二人で方針を決めて調査・修正してね!という形で出題されました。
最初は取っ掛かりが少なくポカーンとなりましたが、すこしばかりの情報からログを辿ったり実装を見に行ったりと、できることからやっていき原因にたどり着いていきました。エンジニアとして処理を実装できるだけでなく、あとから見た人に分かりやすく書いたり、コメントを残しておくことが大切だなあ~と実感しました。
実装自体はごりごりセキュリティとかではなく、Rails や DB について基本的なことを知っていれば気づくようなものでした。むしろ方針を考えたり、実装してるのはどこだ?と調べるのに時間がかかりました。
そんなこんなで magcho くんと協力して(Rails 関連はほとんどやってくれた) 3 問とも一応動くようにはできました。後で想定解の解説があったんですが、僕らが出した解決法よりもとてもスマートで本物だなと感じました。
(実際の問題が気になる方はこれに参加してみるか、こっそり僕に聞いてください。)
感想
エンジニアの仕事は開発だけではなく、保守運用も大きな役割を担っていて重要だなと思いました。バグが見つかった場合はその修正だけではなく、問い合わせ対応や SNS でのお知らせ、詫び石の配布などやることがたくさんでした。それを素早く行わなければならないので、大規模になるほど責任も大きいですね…
個人開発など、小規模なプロジェクトでは味わえない体験ばかりだったので、そういうものを知れて良かったです。
さいごに
たくさんメンターの方(実際に普段サービスに関わっているエンジニア!)と話せたり、豪華なノベルティ(お菓子セットなど)が送られてきたりと楽しいイベントに感謝です。
同じく参加していた方の記事を見つけたので、貼っておきます。
https://tkfjymt.hatenablog.com/entry/2020/12/20/104237
おわり!