SlideShare a Scribd company logo
1 of 18
Download to read offline
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
PHP Conference Japan 2022 スポンサーLT
@tadamatu (タダマツ)
10年後のBASEとリアーキテクチャ
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
自己紹介
BASE株式会社 2021年12月入社
2
tadamatu(松田 伊司/Matsuda Tadashi)
【所属】Product Dev / Platform Group (Group Manager)
新設したばかりのGroupで、「オーナーやカスタマーの良い体験、エンジニ
アの開発体験をプラットフォームで守る」というビジョンのもと活動中
【生きがい】プログラムで人を今よりもちょっとだけ幸せにする
今日はLTなのでプログラムの話は一切しません!!
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
今日お話しすること
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
今日お話しすること
1
2
3
リアーキテクチャ開始前にしたこと
取り組み中のリアーキテクチャ
10年後のBASE
4
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
リアーキテクチャ開始前に
実施したこと
(課題確認や準備)
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
まずはグループワーク
そもそも、我々はなぜ
リアーキテクチャしようと
しているのだろう?
6
🤔
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
まずはグループワーク
7
有志を募りグループワーク!
【お題】 リアーキテクチャによって、
みんなが期待することや
モチベーションは何?
整理して分析!
出てきた「意見・問題」から
「課題」を抽出し、
「解決手段」として整理
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
まずはグループワーク
8
たとえば、こんな意見・問題が出ました
古いテクノロジー
から離脱したい
コード全体像が把
握がしづらい
影響範囲が分かり
づらい
好きなときにデプ
ロイしたい
開発組織のスケール
に対して仕組みがお
いついていないよう
に感じる
コスト削減したい
採用面談で古いテク
ノロジーの話を言及
されるとつらい
人数増加によって[ア
ウトプット量/人]の
減少が気になる
生のEC2触りたく
ない
ほんの一部だけ紹介󰡅
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
まずはグループワーク
9
結果、リアーキテクチャだけでは全てを解決できない
ということがわかりスコープを再認識
以下の炙り出しにも成功!
(思いもよらぬ副産物)
● 認識できていなかった課題
● エンジニアがやりたいと感
じていること
※残りは課題として認識し、別で解決する方針とした
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
他にも実施したこと(紹介のみ)
イベントストーミング
10
DBスキーマからの分析
ドメイン(境界づけられたコンテキスト)
を見つけ出すことを期待して実施
900近くある全テーブルをドメインに当てはめてみる
想定ドメインが概ね正確か、想定漏れはな
いか、などの確認目的で実施
(一部抜粋)
(一部抜粋)
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
取り組み中の
リアーキテクチャ
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
結局どのアーキテクチャでいく?
12
数ヶ月の時間を費やした後に、
現在のBASEの状況
● プロダクトの性質
● 現在のアーキテクチャ・規模
● 開発組織
を加味し、複数のアーキテクチャで
シミュレーションをした結果...
左上が<現在>、右上が<採用アーキテクチャ>
下が<ボツ案>
(詳細は載せれないため雰囲気だけ🙇)
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
結局どのアーキテクチャでいく?
『モジュラモノリス』を採用!
13
● 開発スケーラビリティを確保
○ 様々なサービスがあるがECコア部分はワンプロダクトである
モジュールという単位に分け、開発組織との関係性を適切な状態にしたい
● マイクロサービスと比べて技術的コストも適当
○ 関数で呼び出せるので修正が容易、影響範囲も見えやすい
○ マイクロサービスにすると、『DB分離』、『分散トランザクションの組み込み』、
『ネットワーク通信によるパフォーマンス問題』や『エラーハンドリングの難しさ』
など、様々な課題をクリアしなければならない
○ 現段階でマイクロサービス採用すると「分散モノリス」を産みかねない
● 最近は採用事例もよく目にするように https://fortee.jp/phperkaigi-2022/proposal/95bc
3631-7683-4201-9f82-d7e7feeb7bab
もっと具体的な内
容を知りたい方は
こちら
��🏻♂
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
作業中の内容
● モジュラモノリス認証基盤の調整
● ECコア機能のモジュラモノリス化(順次切替中)
● FrontendとBackendの分離(順次分離中)
14
リアーキテクチャ文脈で目下作業中の内容
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
10年後のBASE
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
10年後のBASE
16
10年後BASEがどんな事業展開をしているか...
そんなことは
誰にも分かりません!!!󰤅
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
10年後のBASE
17
現時点の判断として「モジュラモノリス」を採用しましたが、
ドメインの分離が進めば、比較的柔軟な対応ができることを
期待しています
リアーキテクチャすることで、不確実性の
高い未来に備え、柔軟に進化し続け、考え
続けていく!!
「そもそも、我々はなぜ リアーキテクチャしようとしているのだろう?🤔」のアンサー
© 2012-2019 BASE, Inc.
© 2012-2022 BASE, Inc.
#phpcon2022 #track1
@tadamatu
https://herp.careers/v1/base
We are hiring!
ご清聴ありがとうございました!

More Related Content

What's hot

NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
toshi_pp
 
Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介
Hiroshi Tokumaru
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
Yahoo!デベロッパーネットワーク
 

What's hot (20)

最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
 
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
 
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム SakashoについてDeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
 
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
 
Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
 
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
 
M3の医療webサービス群を支える基盤技術
M3の医療webサービス群を支える基盤技術M3の医療webサービス群を支える基盤技術
M3の医療webサービス群を支える基盤技術
 
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea 急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
 
AWS Outposts/LocalZones/Wavelength勉強会
AWS Outposts/LocalZones/Wavelength勉強会AWS Outposts/LocalZones/Wavelength勉強会
AWS Outposts/LocalZones/Wavelength勉強会
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
 
Vue入門
Vue入門Vue入門
Vue入門
 
DataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組みDataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組み
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
 

10年後のBASEとリアーキテクチャ - PHP Conference Japan 2022

  • 1. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu PHP Conference Japan 2022 スポンサーLT @tadamatu (タダマツ) 10年後のBASEとリアーキテクチャ
  • 2. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 自己紹介 BASE株式会社 2021年12月入社 2 tadamatu(松田 伊司/Matsuda Tadashi) 【所属】Product Dev / Platform Group (Group Manager) 新設したばかりのGroupで、「オーナーやカスタマーの良い体験、エンジニ アの開発体験をプラットフォームで守る」というビジョンのもと活動中 【生きがい】プログラムで人を今よりもちょっとだけ幸せにする 今日はLTなのでプログラムの話は一切しません!!
  • 3. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 今日お話しすること
  • 4. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 今日お話しすること 1 2 3 リアーキテクチャ開始前にしたこと 取り組み中のリアーキテクチャ 10年後のBASE 4
  • 5. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu リアーキテクチャ開始前に 実施したこと (課題確認や準備)
  • 6. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu まずはグループワーク そもそも、我々はなぜ リアーキテクチャしようと しているのだろう? 6 🤔
  • 7. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu まずはグループワーク 7 有志を募りグループワーク! 【お題】 リアーキテクチャによって、 みんなが期待することや モチベーションは何? 整理して分析! 出てきた「意見・問題」から 「課題」を抽出し、 「解決手段」として整理
  • 8. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu まずはグループワーク 8 たとえば、こんな意見・問題が出ました 古いテクノロジー から離脱したい コード全体像が把 握がしづらい 影響範囲が分かり づらい 好きなときにデプ ロイしたい 開発組織のスケール に対して仕組みがお いついていないよう に感じる コスト削減したい 採用面談で古いテク ノロジーの話を言及 されるとつらい 人数増加によって[ア ウトプット量/人]の 減少が気になる 生のEC2触りたく ない ほんの一部だけ紹介󰡅
  • 9. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu まずはグループワーク 9 結果、リアーキテクチャだけでは全てを解決できない ということがわかりスコープを再認識 以下の炙り出しにも成功! (思いもよらぬ副産物) ● 認識できていなかった課題 ● エンジニアがやりたいと感 じていること ※残りは課題として認識し、別で解決する方針とした
  • 10. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 他にも実施したこと(紹介のみ) イベントストーミング 10 DBスキーマからの分析 ドメイン(境界づけられたコンテキスト) を見つけ出すことを期待して実施 900近くある全テーブルをドメインに当てはめてみる 想定ドメインが概ね正確か、想定漏れはな いか、などの確認目的で実施 (一部抜粋) (一部抜粋)
  • 11. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 取り組み中の リアーキテクチャ
  • 12. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 結局どのアーキテクチャでいく? 12 数ヶ月の時間を費やした後に、 現在のBASEの状況 ● プロダクトの性質 ● 現在のアーキテクチャ・規模 ● 開発組織 を加味し、複数のアーキテクチャで シミュレーションをした結果... 左上が<現在>、右上が<採用アーキテクチャ> 下が<ボツ案> (詳細は載せれないため雰囲気だけ🙇)
  • 13. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 結局どのアーキテクチャでいく? 『モジュラモノリス』を採用! 13 ● 開発スケーラビリティを確保 ○ 様々なサービスがあるがECコア部分はワンプロダクトである モジュールという単位に分け、開発組織との関係性を適切な状態にしたい ● マイクロサービスと比べて技術的コストも適当 ○ 関数で呼び出せるので修正が容易、影響範囲も見えやすい ○ マイクロサービスにすると、『DB分離』、『分散トランザクションの組み込み』、 『ネットワーク通信によるパフォーマンス問題』や『エラーハンドリングの難しさ』 など、様々な課題をクリアしなければならない ○ 現段階でマイクロサービス採用すると「分散モノリス」を産みかねない ● 最近は採用事例もよく目にするように https://fortee.jp/phperkaigi-2022/proposal/95bc 3631-7683-4201-9f82-d7e7feeb7bab もっと具体的な内 容を知りたい方は こちら ��🏻♂
  • 14. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 作業中の内容 ● モジュラモノリス認証基盤の調整 ● ECコア機能のモジュラモノリス化(順次切替中) ● FrontendとBackendの分離(順次分離中) 14 リアーキテクチャ文脈で目下作業中の内容
  • 15. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 10年後のBASE
  • 16. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 10年後のBASE 16 10年後BASEがどんな事業展開をしているか... そんなことは 誰にも分かりません!!!󰤅
  • 17. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu 10年後のBASE 17 現時点の判断として「モジュラモノリス」を採用しましたが、 ドメインの分離が進めば、比較的柔軟な対応ができることを 期待しています リアーキテクチャすることで、不確実性の 高い未来に備え、柔軟に進化し続け、考え 続けていく!! 「そもそも、我々はなぜ リアーキテクチャしようとしているのだろう?🤔」のアンサー
  • 18. © 2012-2019 BASE, Inc. © 2012-2022 BASE, Inc. #phpcon2022 #track1 @tadamatu https://herp.careers/v1/base We are hiring! ご清聴ありがとうございました!