Successfully reported this slideshow.
Your SlideShare is downloading. ×

BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 19 Ad

BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk

Download to read offline

BASEのアーキテクチャを育てる
BASE Tech Talk#2
〜2022年にBASEへ入社したエンジニアが語る技術的チャレンジ〜

BASEのアーキテクチャを育てる
BASE Tech Talk#2
〜2022年にBASEへ入社したエンジニアが語る技術的チャレンジ〜

Advertisement
Advertisement

More Related Content

Similar to BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk (20)

Recently uploaded (20)

Advertisement

BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk

  1. 1. #base_talk BASEのアーキテクチャを育てる 2022/12/13 BASE Tech Talk#2 〜2022年にBASEへ入社したエンジニアが語る技術的チャレンジ〜
  2. 2. #base_talk 自己紹介 BASE株式会社 2021年12月入社 2 tadamatu(松田 伊司/Matsuda Tadashi) 【所属】 Product Dev / Platform Group (Group Manager) 肩書はManagerだがPlayingもしてる 【生きがい】 プログラムで人を今よりもちょっとだけ幸せにする
  3. 3. 私が入社後取り組んだ 技術的なチャレンジは...
  4. 4. #base_talk 私の技術的チャレンジ Platformグループを立ち上げ アーキテクチャを選定した 4
  5. 5. BASEの歴史は10年
  6. 6. #base_talk BASEの歴史は10年 BASEは今年10周年を迎えました つまり10年積み重ね、いろいろなアイデアを積み重ねてきたコードがある ということ ● 追加する機能(BASE内ではApp)ごとにブランチ分けた方が良いんじゃない? ● Plugin化して管理したら便利じゃない? ● 世代的背景がありそうなディレクトリ構造 ● 様々な外部技術の影響 など 6
  7. 7. #base_talk 歴史により生まれたもの それらのアイデアは、今のBASEを作ってきた 7
  8. 8. #base_talk 歴史により生まれたもの しかし、開発の裏側では負債となってきたものもたくさん 技術的な負債 ● 古い技術を使い続けている部分がある ● あちらこちらに散らばったコード、コピーされたコード ● frontend/backendの境界、ドメインの境界などがあいまい など 開発体験の負債 ● 修正を加えるのに分散されたリポジトリのgrepをして影響調査が必要 ● 順番などを考慮した複雑なデプロイ ● 知らない機能がいっぱいある(「知らない機能」「知る必要のない機能」の判断が難しい) ● 誰の持ち物か分からないコードなので、誰に聞いたらいいかわからない など 8
  9. 9. #base_talk Plaformグループの立ち上げ この負債を解消しつつ、次の10年攻めの機能開発ができるよう立ち上げたのが Platformグループ 未来のBASEを作るために、リアーキテクチャをメインに活動中 「デプロイの高速化」 「ローカル及び開発環境の整備」 「CI/CDパイプラインによる効率化」 「パフォーマンス改善」 なども視野に入れ改善をしていく予定 9
  10. 10. グループの最初の仕事は アーキテクチャを考えること
  11. 11. #base_talk 非常に難しいアーキテクチャ選定 11 🤔 モノリシック アーキテクチャ モジュラー モノリス ミニサービス アーキテクチャ マイクロサービス アーキテクチャ 世間には様々なアーキテクチャが存在する 我々はシステム開発をしていく上でどうしてもどれか1つを選択する必要がある
  12. 12. #base_talk アーキテクチャを決める 正解や不正解があるものではない 組織や開発の規模、ビジネスのフェーズによって、適切なものを決める 私達は以下のようなことを加味して... ● プロダクトの性質 ● 現在のアーキテクチャや規模 ● 開発組織 12 『モジュラモノリス』を採用!
  13. 13. #base_talk なぜモジュラモノリスにしたの? 13 ● 開発スケーラビリティの確保 ○ 様々なサービスがあるがECコア部分はワンプロダクトである ○ モジュールという単位で、開発組織との関係性を適切な状態にしたい ● マイクロサービスと比べて技術的コストも適当 ○ 関数で呼び出せるので修正が容易、影響範囲も見えやすい ○ マイクロサービスにすると、『DB分離』、『分散トランザクションの組み込み』、『ネットワーク通信に よるパフォーマンス問題』や『エラーハンドリングの難しさ』など、様々な課題をクリアが必要 ● ピボットしやすさも採用理由の一つ ○ 10年後のBASEはどうなっているかわからない ○ 将来的にはマイクロサービス化している可能性もありうる ● 最近は採用事例もよく目にするように
  14. 14. #base_talk どうやってリアーキテクチャしている? 14 ● 実はモジュラモノリス化は2年前から始まっていた ○ まずは部分的にモジュラモノリスを採用(cartプロジェクト) ○ backend/frontendの分離も
  15. 15. #base_talk どうやってリアーキテクチャしている? 15 ● cartのモジュラモノリス化により、ナレッジもたまり、ワークしていること を受けて横展開するという決め、少しづつ移行中(★いまここ) ○ 新しい機能は基本モジュラモノリス上に実装
  16. 16. #base_talk リアーキテクチャは続く 16 リアーキテクチャをやり切るには周りを巻き込んで開発を 進めていく必要があるとても時間がかかる作業 これからが正念場 また機会をいただけるようであれば ナレッジ共有させていただきますmm
  17. 17. #base_talk ご興味あれば 17 本日の内容はかなり端折った内容になっていますので、ご興味あれば詳しく書かれているこちらの資料なども御覧ください https://www.slideshare.net/ssuserd29bb c/10base-php-conference-japan-2022 https://speakerdeck.com/roothybrid7/katorip uresupjfalsequan-ti-xiang-toji-shu-xuan-ding https://speakerdeck.com/nazonohito51/b ase-rearchitecturing
  18. 18. #base_talk https://herp.careers/v1/base We are hiring! ご清聴ありがとうございました!
  19. 19. #base_talk アーキテクチャを決めるのは難しい ● モノリシックアーキテクチャ ● モジュラーモノリス ● ミニサービスアーキテクチャ ● マイクロサービスアーキテクチャ 19 🤔

×