学生としてYAPC::Kyoto 2023に参加した話

1. この記事について

著者、Yoshisaurが参加したYAPC::Kyoto 2023に関するブログです。

ブログを書くまでがYAPC

ということで、自分がYAPCで体験したことを皆さん共有できればと思います。

2. ブログの著者、Yoshisaurについて

https://pbs.twimg.com/profile_images/1243175796685983745/efRnTYKv_400x400.jpg

沖縄の琉球大学情報工学を学んでいる大学生です。 好きなエディタはVim、好きな言語はGolang、Web、機械学習、低レイヤーあたりの技術に関心が高いです。

Twitterアカウントです。是非、フォローしてくださいませ。

以降がブログ記事のメインのコンテンツとなります。

3. YAPC::Kyoto 2023とは

3.1. そもそもYAPCとは

YAPCとは...

YAPCはYet Another Perl Conferenceの略で、Perlを軸としたITに関わる全ての人のためのカンファレンスです。 Perlだけにとどまらない技術者たちが、好きな技術の話をし交流するカンファレンスで、技術者であれば誰でも楽しめるお祭りです!」(YAPC:: Kyoto 2023. https://yapcjapan.org/2023kyoto/ )

とのことです。

技術者であれば誰でも楽しめるお祭り」というのは本当にそうで、自分はPerlが全然わからない人だけどかなり楽しめました。

基本的な流れとしては、登壇者orゲストが20分から40分までくらいの時間で好きな技術やトピックについて話をして参加者と交流をするというものです。

同じ時刻に3人の登壇者が別々の部屋で発表、交流が行われていました。

ちなみにYAPCの読み方は...

↓リプライ

このYAPCのコミュニケーションが軽い空気感、素晴らしいな...。

3.2. 2023年のYAPCの開催地(京都)、会場について

2023年のYAPCの開催地は京都でした。

歴史的な建造物や美しい街並みに圧倒されました。

京都はYAPC開催日(3月19日])早朝は摂氏4.9度、昼で17.5度と沖縄に住んでいる学生からするとかなり寒い気温でした。

↓京都駅

京都駅

会場は京都リサーチパークです。

京都駅から徒歩で30分ほどの距離でした。実は最寄りの駅が、京都駅から嵯峨野線に乗って2駅のJR丹波口駅だったのですが、歩きました。

↓会場、京都リサーチパークの中の様子

ワイワイした雰囲気で包まれて、そこにいるだけで楽しかったです。

3.3. 学生旅費支援制度について

YAPCは、学生に対して参加ハードルを下げるために、「学生用の無料参加チケットの販売」や「旅費支援(5万まで)」などの支援制度が設けられています。

blog.yapcjapan.org

自分はこの制度を使って、YAPCに参加させていただきました。金銭面の他に、学生限定でスポンサー企業の方々とのランチという贅沢なイベントも用意されていました。(後述)

4. YAPC参加応募のきっかけから、YAPC終了まで

4.1. 大学の先輩から「もし良かったらYAPCに来てね」と宣伝が来る

僕がB1の頃、大変お世話になった同じ学科の先輩のアナグラさんに「YAPCの学生旅費支援制度の申し込みフォームが開かれたので応募してみては?」とまたっくさん(以下またゆー)と一緒に声をかけていただきました。

2人とも応募フォームを入力して採択結果を待ちました。応募フォームの入力は真面目に記入したといえど、ささっと軽くスムーズに終わらせた感じでした。

ちなみに、学生旅費支援制度の応募フォームの入力締め切りは「2023年1月27日(金)23:59 (JST)」でした。

4.2. 学生旅費支援の採択結果メールを受け取る

学生旅費支援制度の応募フォームの入力締め切りからちょうど一週間後の2023年2月3日に学生旅費支援の採択結果が書かれてるメールが運営から届きました。

結果合格でウキウキになっていました。 YAPC開催日(2023年3月19日)まで6週間強くらいある期間があったので余裕をもって準備を進めることができました

4.3. YAPC開催前日(3月18日)、沖縄から関西に移動、プチ観光

結果的には、YAPC開催前日は移動日に終わりましたが、合間合間の時間でプチ観光を楽しみました。関西空港に到着したのが、午後1時35分でした。空港でまたゆーと合流後に移動がてらプチ観光しました。自由時間(移動時間+観光)の時間は10時間くらいでした。

4.4. YAPC開催当日

4.4.1. 入場+参加景品を貰う

入場と同時にスタッフから参加景品をもらいました。全部ブログに載せきれないほどたくさん貰いました。文字だけで表現すると、トートバック、水筒、スマホ立て、お菓子、正論パンチグローブ、etc.。

中でも気に入っているのは「正論パンチグローブ」です。パワーを感じます。

4.4.2. 沖縄で以前お世話になった方々と感動の再開

入場時に沖縄で以前お世話になったgomaさんとjogoに会えました。

YAPC当日は、運営側に2人、参加者側に2人、僕と面識がある方がいたので、入場後すぐに緊張がほぐれて居心地が良かったです。YAPCに参加する際は色々身の回りの人達を誘って巻き込んでいくといいのかなと思います。

4.4.3. 登壇者、ゲストのトークを聞く

YAPCのメインイベントです。当日のタイムテーブルはこちらです。一度に3人が別々の部屋で登壇するので頑張って一番興味のある話を選びます。

自分の当日のスケジュール

話のタイトル 登壇の時刻 / 長さ 登壇者 スライドURL
春のエンジニア ぶつかり稽古 2023 9:50 / 45分 kan / kenchan スライドなし
ジョブキューシステムFireworqのアーキテクチャ設計と運用時のベストプラクティス 10:40 / 20分 伊奈 林太郎 https://speakerdeck.com/tarao/fireworq
my$talk=qr{\b((?:ir)?reg(?:ular )?exp(?:ressions?)?)\b}ig; 11:10 / 20分 Dan Kogai https://speakerdeck.com/dankogai/my-talk-equals-qr-ir-reg-ular-exp-ressions-ig
あの日ハッカーに憧れた自分が、「ハッカーの呪縛」から解き放たれるまで 12:25 / 40分 あらたま https://speakerdeck.com/ar_tama/anori-hatukanichong-retazi-fen-ga-hatukanozhou-fu-karajie-kifang-tarerumade
【学生限定】スポンサー企業の方々とのランチ 13:10 / 60分 Yasuhiro Onishi(株式会社はてな) / Tatsuro Hisamori(合同会社もりたつ技商) / わいとん (合同会社 Y.pm) スライドなし
ソフトウェアエンジニアリングサバイバルガイド: 廃墟を直す、廃墟を出る、廃墟を壊す、あるいは廃墟に暮らす、廃墟に死す 14:10 / 40分 川上 大喜 https://docs.google.com/presentation/d/1hDY2pb-nYVSLr0HrtQ4EVyrDU4QGgwp4-VRG-Rf26DA/edit
4PB(ペタバイト)を超えるオブジェクトストレージをハードウェアからアプリケーションにかけて運用するノウハウ 15:00 / 40分 三上 烈史(みかみ つよし) https://speakerdeck.com/rsym1290/4petabaitowochao-eruobuziekutosutoreziwo-hadoueakaraapurikesiyonnikakete-yun-yong-surunouhau
法と技術の交差点 16:05 / 50分 上原 哲太郎 / 宮脇 正晴 スライドなし

全て面白いトーク/イベントでした。1日の密度ではなかったです。

4.4.3.1. 個人的に特に面白いと思ったトーク/イベント

4.4.3.1.1. ジョブキューシステムFireworqのアーキテクチャ設計と運用時のベストプラクティス

Go製で、ストレージがMySQLで、at-least-onceなジョブキューシステム、「Fireworq」についてのトークでした。

従来のジョブキューソリューションはTheSchwartz + WorkerManagerだったのですが、困りどころの一つに「ワーカー並列数を増やすと詰まる」がありました。

TheSchwartz + WorkerManagerだと、複数のワーカーが一斉にジョブにUPDATEをかけてしまうので詰まるらしいですが、Fireworqはアーキテクチャーに複数のAPIハンドラと単一ディスパッチャを導入してこの問題を解決しているらしいです。(スライド13ページ参照)

インターフェースもTheSchwartz + WorkerManagerだとPerlのみでしか扱えなかったのですが、FireworqだとインターフェースがHTTPとなって言語の依存性がなくなったのこと。

Fireworqのスロッティングの前提として「ジョブは冪等にしておく」というのがあり、これは完全にアプリ層の責任になります。(スライド22ページ参照)

トークの内容としては、以上になるのですが、自分はこのトークを聞いてくまぎさんの「分散キューという名の苦しみ」という記事を思い出しました。

「Exactly OnceとかAtleast Once対応なんて喧伝されていることはよくあるが、仮にそのような信頼性をミドルウェアのレイヤーだけで解決しているとしたら、そのミドルウェア自体がSPoF(単一障害点)となるだろう。」(Software Transactional Memo. "分散キューという名の苦しみ". https://kumagi.hatenablog.com/entry/queue_struggle . 2023年3月22日)


「Exactly Onceな実行というのは何か特定のミドルウェアを使えば魔法のようにいつのまにか解決されるものではなく、アプリ層まで深く食い込んで設計されて初めてなし得る物である。」(Software Transactional Memo. "分散キューという名の苦しみ". https://kumagi.hatenablog.com/entry/queue_struggle . 2023年3月22日)

イージーな設計に逃げず、シンプルに全てのレイヤーで責任を持ってベストプラクティスを追い求めるのがエンジニアリング」なのだとこのトークで再認識しました。


4.4.3.1.2. 4PB(ペタバイト)を超えるオブジェクトストレージをハードウェアからアプリケーションにかけて運用するノウハウ

GMOペパボ株式会社が保有する独自のオブジェクトストレージ、Bayt(ベイト)の設計、実装、運用を通して得た知見をハードウェアからアプリケーションのレイヤーにかけて広く紹介していました。

2023/3/16時点でBaytの総容量は4.58ペタバイトらしいです。

MogileFS(Perlで実装されたスケーラブル分散ストレージを構築できるOSS)を用いたオブジェクトストレージのアーキテクチャハードウェアの運用S3 REST API互換のAPIの実装BaytからS3に移設するにいたったきっかけまで非常に面白い内容となっていました。

ハードウェアの運用についてはざっくばらんに説明します。

ハードウェアの運用にあたって、「ハード(サーバ、HDD)がいつか必ず壊れるし、壊れてからでは対応が遅い」+ 「サーバラック代は1ラック月額(20-30万円)と高いのでハードを単純増加的に増やせない」という2つの問題があります。

この2つの問題の解決策として「古いハードは破棄してラックスペースを確保し、確保したスペースに性能のいいHDD、サーバを投入する」ということをしているらしいです。サーバに関しては、流れとともに高性能なものが出現するし、HDDも年々記録密度が増え続けているらしく、空間あたりのハードの性能がスケールアップするので、「空間を増やすよりかは、空間あたりの性能を増やす」という運用がいいという話を聞きました。かなり面白かったです。

あと、ハード面の面白い話として、Baytの要件的に回転数: 7200rpm(1/120秒で一回転)の一般的なHDDの回転数で足りる、Disk I/Oがそんなにボトルネックになっていないなどの面白い話が聞けました。

オブジェクオストレージAPIの実装と、GETリクエストが来たときの処理の流れの説明なども非常に興味深かったです。

ちなみに現在、BaytはS3に移設されたとのことですが、理由としては開発当初はコスト重視をしてBaytを利用していたが、サービスの成長に伴って機能面を重視するようになったとのことでした。

移設にあたっての課題があったらしいのですが、今回のトークでは割愛されていて、ブログを参照してくださいとのことでした。

tech.pepabo.com


4.4.3.1.3. 【学生限定】スポンサー企業の方々とのランチ

学生限定のランチイベントがあったのですが、中身としてはランチを食べながらスポンサー企業の方々と軽く談笑するという内容でした。

当日無料で配布されていた弁当がこちら

開くとこのような感じ

豪華ですね...、美味しかった...。

学生と談笑する「スポンサー企業の方々」なのですが、「株式会社はてな」様からYasuhiro Onishiさん、「合同会社もりたつ技商」様からTatsuro Hisamoriさん、「合同会社 Y.pm」様からわいとんという学生相手には豪華すぎる談笑相手でした...。

談笑の内容は、事前に学生がアンケートで記入した、スポンサー企業の方々に向けた質問(趣味は?程度の軽い質問でも、技術的な真面目な質問なんでもOK)に企業の人達に答えてもらうといったものです。

また、質問は番号付きのくじになっていて、その質問を引いた人に答えてもらう + 質問の番号を使ってビンゴ大会をするといった楽しくなる工夫がされていました。

ビンゴ大会開始前

ビンゴ大会終了後

ビンゴの景品はAmazonギフトカード1000円分!! 楽しいなぁ...。

ちなみに、僕が用意した質問をわいとんさんが引いてくれて、質問の内容が「新人時代にあった失敗はどのようなものですか」というものでした。

わいとんさん 「あまりないかなぁ...。」

Yoshisaur「インシデントとか起こさなかったのでしょうか」

わいとんさん「インシデントはたくさん起こしましたよ、でも失敗とは違います」

Yoshisaur「なるほど...」

という感じの会話をしてました。僕の中でインシデント=失敗みたいな臆病な認識があったので、失敗のボーダーラインが高いエンジニアが第一線で活躍するんだろうなぁ...。という教訓を得ました。


4.4.3.1.4. ブース見学

ブースも開催されていて、自分が覚えている範囲でいうとブースを開いていた企業は「SAKURA internet」、「Mobile Factory」、「DeNA」、「HelpFeel」、「Money Forward」、「面白法人カヤック」などがありました。

中でも自分が面白いなとおもったブースはDeNAと面白法人カヤックのブースでした。

DeNAは大量のコップを無料で数無制限で配布していて、自分は6個貰いました。

DeNAのブース

DeNAのコップ

面白法人カヤックはおみくじを開催していました。嘘か真か、大吉がもらえると面白法人カヤックの書類選考が免除になるファストパスが貰えるらしいです。

面白法人カヤックのブース

Yoshisaurのおみくじの結果

4.4.4. YAPC終了後の懇親会

4.4.4.1 学生だけで集まって懇親会

TwitterのDMで学生だけで懇親会をしようとなり、焼き肉を食べました。画像は取り忘れました。苦笑

色々、勉強や就活の話をしました。

YAPCに参加する学生は、軒並みレベルの高さのレベルが異次元だったということがその懇親会でわかりました。

4.4.4.2 はてなのオフィスで集まって懇親会

学生だけの懇親会のあとはYAPC運営スタッフと一般参加者と学生参加者の懇親会が開かれました。

はてなオフィスの写真

左からかがみもちまたっくYoshisaurうーたん

はてなの詳しい話だったり、一般参加者と技術的な話ができてとても楽しかった。

Yoshisaur「ISUCONこの前出た時、チームでSQLiteからMySQLには移行しないという決断をして...」

一般参加者A 「そうだね、それも正解だね」

Yoshisaur 「MySQLに移行するとしたら、そのメリットは...」

一般参加者A 「まず、SQLiteだとネットワーク越しに他のホストのデータベースを参照できないからスケールアウトしなくて...(即答)」

Yoshisaur 「ちなみに、初参加だったのですが、ISUCON本めっちゃ良かったので少し点数稼げました。」

一般参加者B 「あーその本書くの僕手伝ったよ」

Yoshisaur 「え」

みたいな世界線でした。

いい刺激になったなぁ...。

5. YAPCの感想

「参加して本当に良かった...。」に尽きます。

楽しい、面白い、ワイワイ。

6. 謝辞

YAPC開催を支援してくださった企業様、個人スポンサー、運営スタッフの皆様、YAPCのお誘いをしてくれたアナグラ先輩、このような機会を設けていただき、本当にありがとうございました。

そして、学生支援制度を支援してくださった、株式会社はてな様、合同会社もりたつ技商様、合同会社 Y.pm様に感謝申し上げます。

学生支援制度がなければ今回YAPCに参加することはできませんでした。

7. 次のYAPC

次のYAPCYAPC::Hiroshimaになるらしい。学生のうちに行く機会があれば絶対に行きたいと思います。