Engineering 2024.01.11

【開発合宿 BEE-Tech Campレポート】第二回B-ISUCON開催!Webエンジニアとしての総合力を高める!

BEENOSグループでは、2023年10月にエンジニアチーム主催の開発合宿「BEE-Tech Camp」を開催しました!「BEE-Tech Camp」は2018年の初開催以来、今回で6回目となります。

今回の開発合宿では、昨年に引き続き、「B-ISUCON(BEENOS株式会社 社内ISUCON)」を開催し、Webパフォーマンスチューニングに取り組みました。

(昨年の記事: [【開発合宿 BEE-Tech Campレポート】社内ISUCON*を通してWebパフォーマンスチューニングの技術を身に着ける!])

ISUCONとは、「Iikanjini Speed Up Contest」の略で、LINEヤフー株式会社が運営するWebエンジニア向けのコンテストです。詳しい説明は他記事に譲りますが、1チーム最大3名で参加し、与えられたサーバーリソースの範囲でお題となるWebサービスをチューニングし、限界まで高速化を図ることで競います。
ISUCONを社内で実施し、技術研鑽に用いることを特に社内ISUCONと呼びますが、これをBEENOSグループ内のエンジニアで開催しました。本日は、そんなエンジニアの、エンジニアによる、エンジニアのための開発合宿「BEE-Tech Camp2023」の様子をご紹介します!

*商標について
「ISUCON」は、LINEヤフー株式会社の商標または登録商標です。

合宿の内容


BEE-Tech Camp 2023はマホロバ・マインズ三浦にて開催となりました。
三浦海岸を一望できる会議室が社内ISUCONの会場です。


それでは早速、合宿の内容について見ていきましょう。
タイムスケジュールはこちらです。
 

社内ISUCONではそれぞれが持てる力の限りを尽くし、
昼食や夕食では三浦海岸のマグロを食べ尽くしました。

競技中の様子


目玉となる社内ISUCONについて見ていきましょう。
題材はISUCON12本戦の問題で、今回はEC2インスタンス3台が与えられました。
今年は競技者が19名で、3人チームが5チームと2人チームが2チームの計7チームでの戦いとなりました。
去年に引き続きの社内ISUCONであったことから、シェルスクリプトなどを準備してきた方も多くいました。教え合いながら進めるチームや、分担して作業するチームなど、作戦も様々です。

今年も各チームの点数がモニターに映し出されており、initializeの不安定さからも伸び悩む人が多いなか、ひとつのチームが一気に首位に躍り出た時には、大いに盛り上がりました。


終了後、自分たちの行った改善について発表する場があり、そこでは多くの感想や反省が行き交いました。
 

優勝チームの感想



ちゅ。可用性チームの瀧野です!

私はISUCON合宿への参加が2回目なのですが、今回の合宿は前回にも増して、どのチームも気合が入っているなという印象でした!
事前準備にかなり時間をかけているチームもあり、合宿の数日前から既に盛り上がっていたと思います。

私たちのチームもできるだけの事前準備をして当日に挑みました。
そのおかげか、お昼頃には一気にスコアを上げることができ、ものすごく興奮しました!
私たちのチームの良かったところは、事前に役割分担できていたところと、競技時間内に改善できそうなものと出来なさそうなものを見極めて着手できたところかなと思います。
逆に、改善策を試してみてもスコアが上がらなかったりなぜか下がってしまったりして、効果のある改善策を見つけるのに時間がかかってしまったのは苦労した点かなと思います。
次の合宿ではしっかりボトルネックを狙って倒せるように頑張りたいと思っています!

個人的には前回の合宿よりも、チューニングする際に着目する箇所が分かるようになったかなと思いました。
合宿で自分の成長を実感できるのはとても嬉しいですし、このような機会を与えてくださってる事にとても感謝しています!
この合宿で得た経験を業務にも役立てていきたいと思います!

講評


ここからは、前年に引き続きB-ISUCONの運営を担当していた三上が筆を執ります。

昨年から始めたB-ISUCONですが、今年は7チーム19名の方々に参加して頂きました。
2年連続して参加頂いた方もいらっしゃいましたし、新しい顔ぶれも見えて嬉しい限りです。

今年はISUCON12本戦の問題を使用させて頂きました。
ISUCON12本戦の問題は、ISUCON公式の解説の講評通り、データベースの水平分割が肝となる問題です。
昨今、社内でもデータベースのパフォーマンスが問題となる瞬間が多いです。
これに対してインデックス構築だけではない、幅広いパフォーマンス改善の志向を感じてもらえればと思い、この問題を使用させて頂きました。

実際のB-ISUCON競技時間内では、インデックス構築やデータベースの分離、N+1問題の改善など基本となる改善は遂行できているチームが多かったのではと思います。
一方でID発行の改善など、一歩進んだ改善についてはチーム間で差が出ており、それが最終結果につながっていました。
一部のメンバーはB-ISUCON競技当日にはできなかった改善の振り返りとして、後日データベースの水平分割を含むひととおりの改善を試してくれていて、嬉しい限りです。


今回は、スコアボードをCloudflare Workers上にHonoを用いて構築しました。
こちらの詳細については、弊社Tech blogの記事をご参照ください。

ちなみに、今年のLINEヤフー社主催のISUCON13には、弊社からは9名ものメンバーが参加しており、昨年から大きく増加しました。
社内でISUCONの啓蒙活動を行っている身としてはこれ程嬉しいことはありません。

公式のISUCON参加経験者も増えたことで、次回B-ISUCONでは社内で作問して開催することも視野に入りそうです。
これらの経験が普段の業務、さらには各人のエンジニアキャリアに良い影響をもたらすことを願ってやみません。
引き続きB-ISUCONおよびISUCON関連の活動を頑張っていきましょう、わいわい!
 

まとめ


今回のエンジニア合宿は、パフォーマンスチューニングの基礎を学ぶきっかけになっただけでなく、新卒から中途まで様々な部署のメンバーが集まり、交流を深めることができた点でもよかったです。


以上、第二回B-ISUCONの開催レポートでした。

今後もBEENOSグループではWebアプリケーションに関する知識の学習を継続し、身につけた技術を持って、世界の課題解決を果たすプラットフォームを創っていきます。
その様な環境にご興味のある方は是非[採用サイト]からご応募ください!

本記事は以上となります、ありがとうございました!