オープンロジを代表してPHPerKaigi 2023に登壇してきました
こんにちは、オープンロジ技術開発部 SREチームのたけてぃ(@takeokunn ヾ(〃><)ノ゙)です。
先日、会社を代表してPHPerKaigi 2023に登壇してきましたので、
その模様をレポートしたいと思います。
イベントの概要
2023/03/23(木) ~ 2023/03/25(土) の3日間にわたって PHPerKaigi 2023 が開催されました。
今年もオンラインとオフラインのハイブリット開催になります。
PHPerKaigi(ペチパーカイギ)は、現在PHPを使用している、過去にPHPを使用していた、そしてこれからPHPを使いたいと思っているエンジニアが、技術的なノウハウを共有するためのイベントです。
オープンロジはゴールドスポンサーとして協賛しており、今回はスポンサースピーカー枠で登壇してきました!
登壇をすることになったきっかけ
私は元々仕事以外でも技術力を向上させる為、過去のPHPerKaigi 2021やPHPerKaigi 2022でも個人的な活動の延長で当日スタッフをしたり登壇をしたりしていたのですが、今回はオープンロジが会社としてスポンサードすることが決まり、「たけてぃやらない?」と声をかけてもらったことがきっかけです。
オープンロジには今年の1月に入社したばかりでしたが、そんな私でも機会をもらえるんだ!?と驚くと同時にとても嬉しかったので、二つ返事で引き受けさせてもらいました。
ちなみに、個人的にパンフレット記事も寄稿しているので是非ご覧ください。
振り返り
元々人前で話すのが得意ではなく、事前収録では噛みまくりで酷い出来だったのですが、当日は会場も和気藹々とした雰囲気でリラックスして登壇できました。
登壇内容
今回は「約10年もののPHPアプリケーションとの付き合い方と、今後10年改善し続けるための取り組みについて」というテーマで登壇をしました。
10年続いているプロダクトを普段から触っている人なら共感してもらえる内容だったのではと思います
※スライド下部のオプションメニューから全画面表示が可能です
ざっくりとしたアジェンダはこんな感じです。
会社概要
システム概要
データ量が億単位であるのでDBやJob/Queue周りが詰まってしまう
SREチームを発足
監視体制を整え、パフォーマンス劣化の原因を可視化できるようにした
Job/Queue周りのリアーキテクチャをしている
外部連携や通知基盤のような基盤を切り出している
他にも自動化、仕組み化、高速化できる部分を順次対応している
オープンロジのシステムは物流という社会インフラを支えるシステムであり、「EC事業者」「倉庫」「配送キャリア」など様々な立場の方にご利用頂いている関係上、高いレベルでシステムを安定的に運用することが求められます。ですが、それに比例して扱っているデータ量は膨大かつ日々増え続けるので、DBが詰まったりJob/Queueが詰まったり、(長く続いているサービスではありがちなものですが)色々なところで問題が日々頻発していました。
オープンロジでは2022年4月にSREチームが発足されて以来、監視体制の整備や、ボトルネックの解消に力を入れ始めました。
発足から1年経って解消すべき問題が明確化し、チーム全体で解決に向って一丸となって取り組んでいます。
これは実際のdatadogのダッシュボードです。
「推測をするな、計測をせよ」という格言の通り、datadogを活用し計測指標を増やして問題を特定し、計画的に解決していくという手順を繰り返すことこそ大事なんだなと登壇資料を作りながらあらためて感じました。
ちなみにSREチームの取り組みは同じチームのMr.さだまさしこと大平さんも言及しているので気になる方はこちらもご覧ください。
質疑応答
質問された内容は以下の2点でした。
サービスを分割する時に辛いこと
dependabotのメリットをどうチームメンバーに説いていくか
「サービスを分割する時に辛いこと」に関しては、どうしてもdeployタイミングを一致させなくてはいけないところや、関心事が増えるのが大変、という回答をしました。
まず、弊社のWMSシステムは平日の日中に実際の倉庫で使われていることから、本番リリース時の事故防止の為、第2第4火曜日夜にしかリリースしない運用にしています。
このリリース頻度を考えると、サービスを分割する際にやり辛い部分が出てきたり、ログ設計が複雑になったり、不具合調査にコストがかかるなどの関心事が増えていきます。
とはいえ、サービスを分割するとコードベースが小さくなり当然開発体験は上がるので、トレードオフかなと考えています。
関心事も考慮しつつ、リアルなオペレーションにも配慮しなければならないのが、オープンロジのシステム開発の難しい部分でもあり面白い部分でもあります。
「dependabotのメリットをどうチームメンバーに説いていくか」に関しては、SREチームではバージョンアップ戦略をkey conceptに入れており、技術開発部全体で力を入れるという意思決定がされています。
幸いなことに自分が入社してから一度も異論反論を唱えている方を見たことがないのですが、もしされたらきちんとメリットデメリットを丁寧に説いて納得してもらうフローをとると思う、と解答しました。
php-cs-fixerの適用など全体に関わる変更に関しても、全体周知をしてフィードバックを貰い、適切なタイミングで反映をするという手順をきちんと踏めば基本的に反対する人はいないのがやりやすいです。
オープンロジは、「○○さんに確認してからじゃないといけない」といった根回しが必要ないのが非常に良いですね。
他にもtwitterでphpunitの高速化について言及されていた方もいらっしゃったので、次回はphpunitの高速化というテーマで登壇しようと思っています。
ちなみに・・・
PHPerKaigiの登壇と当日スタッフは当然お仕事としてやらせていただきました!
登壇資料は仕事中に書いていますし、当日スタッフも仕事扱いです。
私が登壇したDay2(土)も出勤扱いです。
今まで個人として参加してたので、こういう社内制度があることは本当にありがたい限りです。また、この他に資格補助制度もあるので(過去にはデータベーススペシャリスト試験に合格したメンバーへ補助金がでていました)、どんどん活用していきたいと思っています。
オープンロジは今後、PHP conferenceなどにもスポンサーを検討していますので、応援宜しくお願いします!
エンジニアを募集中です!
私自身、ここまで長期的に運用されているプロダクトを触った経験はなかったので、勉強になることが多く毎日楽しく業務をさせてもらっています。
というわけで、一緒にプロダクトを良くしてくれるエンジニアを積極募集中です!
興味をもってくださった方は是非、カジュアル面談に申し込んでもらえたら嬉しいです。
関連リンク
CTOの尾藤さんが組織マネジメントについて話しています。
オープンロジではエンジニアチームで集まってLT会をやったりしてます。
社内外のエンジニアを集めたもくもく会も実施中です!
次回は4/22(土)に実施予定です。
その他
登壇するにあたって、オープンロジCTOの尾藤さん(@bto)とVPoEの坂井さん(@saka0ken)、人事の薄波さん(@7naaaaami3)が応援に来てくれました!!