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

Mais conteúdo relacionado

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

デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択Shingo Kitayama
 
sitTokyo 2021 SAPのチャットボット SAP Conversational AI を使ってみよう!
sitTokyo 2021 SAPのチャットボット SAP Conversational AI を使ってみよう!sitTokyo 2021 SAPのチャットボット SAP Conversational AI を使ってみよう!
sitTokyo 2021 SAPのチャットボット SAP Conversational AI を使ってみよう!Akihiro Saito
 
ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術
ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術
ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術Knowledge & Experience
 
No codecamp weekly_output adalo database_20201112
No codecamp weekly_output adalo database_20201112No codecamp weekly_output adalo database_20201112
No codecamp weekly_output adalo database_20201112翼 宮崎
 
Behalf of panalists: SAP Inside Track Tokyo 2021 - TechEd
Behalf of panalists: SAP Inside Track Tokyo 2021 - TechEdBehalf of panalists: SAP Inside Track Tokyo 2021 - TechEd
Behalf of panalists: SAP Inside Track Tokyo 2021 - TechEdRyo Asai
 
ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)伸夫 森本
 
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~Hitachi, Ltd. OSS Solution Center.
 
220203 sit2022 sap murata
220203 sit2022 sap murata220203 sit2022 sap murata
220203 sit2022 sap murataSoichiro Murata
 
.NET 7期待の新機能
.NET 7期待の新機能.NET 7期待の新機能
.NET 7期待の新機能TomomitsuKusaba
 
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発Mao Ohnishi
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発Developers Summit
 
TAが歩くGDC2014
TAが歩くGDC2014TAが歩くGDC2014
TAが歩くGDC2014IGDA JAPAN
 
沖テクNight by sirobako
沖テクNight by sirobako沖テクNight by sirobako
沖テクNight by sirobako佐久本正太
 
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由Yuji Otani
 
Another works_採用資料_リードエンジニア.pdf
Another works_採用資料_リードエンジニア.pdfAnother works_採用資料_リードエンジニア.pdf
Another works_採用資料_リードエンジニア.pdfssuseree1665
 
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017Yuki Okada
 
Introduction and sharing of experiences with sac planning functions
Introduction and sharing of experiences with sac planning functionsIntroduction and sharing of experiences with sac planning functions
Introduction and sharing of experiences with sac planning functionsFumiya Imazeki
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
BasculeSlide2022_11.pdf
BasculeSlide2022_11.pdfBasculeSlide2022_11.pdf
BasculeSlide2022_11.pdfBascule Inc.
 

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

デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
 
sitTokyo 2021 SAPのチャットボット SAP Conversational AI を使ってみよう!
sitTokyo 2021 SAPのチャットボット SAP Conversational AI を使ってみよう!sitTokyo 2021 SAPのチャットボット SAP Conversational AI を使ってみよう!
sitTokyo 2021 SAPのチャットボット SAP Conversational AI を使ってみよう!
 
ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術
ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術
ソフトウェア技術者のキャリアパスを考える ~ 技術者になるための戦略・戦術・作戦術
 
No codecamp weekly_output adalo database_20201112
No codecamp weekly_output adalo database_20201112No codecamp weekly_output adalo database_20201112
No codecamp weekly_output adalo database_20201112
 
20220628_TECHPLAY.pdf
20220628_TECHPLAY.pdf20220628_TECHPLAY.pdf
20220628_TECHPLAY.pdf
 
Behalf of panalists: SAP Inside Track Tokyo 2021 - TechEd
Behalf of panalists: SAP Inside Track Tokyo 2021 - TechEdBehalf of panalists: SAP Inside Track Tokyo 2021 - TechEd
Behalf of panalists: SAP Inside Track Tokyo 2021 - TechEd
 
ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)
 
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
 
220203 sit2022 sap murata
220203 sit2022 sap murata220203 sit2022 sap murata
220203 sit2022 sap murata
 
.NET 7期待の新機能
.NET 7期待の新機能.NET 7期待の新機能
.NET 7期待の新機能
 
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
 
TAが歩くGDC2014
TAが歩くGDC2014TAが歩くGDC2014
TAが歩くGDC2014
 
沖テクNight by sirobako
沖テクNight by sirobako沖テクNight by sirobako
沖テクNight by sirobako
 
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由
 
Another works_採用資料_リードエンジニア.pdf
Another works_採用資料_リードエンジニア.pdfAnother works_採用資料_リードエンジニア.pdf
Another works_採用資料_リードエンジニア.pdf
 
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
 
Introduction and sharing of experiences with sac planning functions
Introduction and sharing of experiences with sac planning functionsIntroduction and sharing of experiences with sac planning functions
Introduction and sharing of experiences with sac planning functions
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
BasculeSlide2022_11.pdf
BasculeSlide2022_11.pdfBasculeSlide2022_11.pdf
BasculeSlide2022_11.pdf
 

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