$30 off During Our Annual Pro Sale. View Details »

メルカリ、巨大モノリスにおける複雑性をリリース9年目にしてどう解決するか

 メルカリ、巨大モノリスにおける複雑性をリリース9年目にしてどう解決するか

巨大なPHP製モノリスアプリケーションにおいて、マイクロサービス化というアプローチでは上手く解決できなかった問題を、アプローチを変えて解こうとしています。何をどのように進めているのか、具体例を交えてお話します。

Yuta Adachi

April 10, 2022
Tweet

More Decks by Yuta Adachi

Other Decks in Programming

Transcript

  1. ̂
    䝯䝹䜹䝸䚸ᕧ኱䝰䝜䝸䝇䛻䛚䛡䜛」㞧ᛶ䜢
    䝸䝸䞊䝇̊ᖺ┠䛻䛧䛶䛹䛖ゎỴ䛩䜛䛛
    ãƹƱó͸ėóĐŁŇ
    ¤O¤Ğƛ͸góŇĹŇ͸̃́̃̃

    View Slide

  2. ̃
    㻿㼛㼒㼠㼣㼍㼞㼑㻌㻱㼚㼓㼕㼚㼑㼑㼞䈊
    㼀㼞㼍㼚㼟㼍㼏㼠㼕㼛㼚㻌㼀㼑㼍㼙㻘㻌㻹㼑㼞㼏㼍㼞㼕㻌㻶㻼䈊
    㼅㼡㼠㼍㻌㻭㼐㼍㼏㼔㼕䈊

    View Slide

  3. ̄
    ½ƛóŪƣóĐƱŇŵŪ͸½ĞóŨ䛾⤂௓
    䝖䝢䝑䜽
    ᕧ኱䝰䝜䝸䝇͸͔͸ྲྀᘬ䝗䝯䜲䞁䛾ㄢ㢟
    ㄢ㢟ゎỴ䛾䛯䜑䛾ྲྀ䜚⤌䜏
    䜎䛸䜑
    ́̃
    ́̄
    ́̅
    ́̂

    View Slide

  4. ̅
    ½ƛóŪƣóĐƱŇŵŪ͸½ĞóŨ䛾⤂௓

    View Slide

  5. ̆
    ½ƛóŪƣóĐƱŇŵŪ͸½ĞóŨ
    Ɣ 䛂ྲྀᘬ䛃䛾䝣䝻䞊
    Ɣ 䛂ྲྀᘬ䛃䜢䝃䝫䞊䝖䛩䜛ᶵ⬟
    ż ྲྀᘬ䝯䝑䝉䞊䝆
    ż 䜻䝱䞁䝉䝹⏦ㄳ
    ½ƛóŪƣóĐƱŇŵŪ䠄ྲྀᘬ䠅䝗䝯䜲䞁䛸䛿
    ၟရ㉎ධ Ⓨ㏦ ホ౯ ྲྀᘬ᏶஢

    View Slide

  6. ̇
    ½ƛóŪƣóĐƱŇŵŪ͸½ĞóŨ
    㛵㐃䛩䜛䝗䝯䜲䞁䠄䝏䞊䝮䠅
    ྲྀᘬ
    䠄Ỵ῭䠅 0HUSD\
    ၟရ
    㓄㏦
    ఍ィ
    ㏻▱
    䜽䞊䝫䞁

    View Slide

  7. ̈
    ½ƛóŪƣóĐƱŇŵŪ͸½ĞóŨ
    Ɣ ⌧ᅾ䛾䝏䞊䝮䛿̃́̃̂ᖺ̂́᭶Ⓨ㊊
    Ɣ ̊ྡయไ
    ż -ŪĹŇŪĞĞƛŇŪĹ͸tóŪóĹĞƛ
    ż ¤ƛŵėƹĐƱ͸tóŪóĹĞƛ͸͟͸̃ྡ
    ż ½ĞĐŁ͸jĞóė
    ż ¯ŵĸƱǒóƛĞ͸-ŪĹŇŪĞĞƛ͸͙óĐśĞŪė͚͸͟͸̆ྡ͸
    䝯䞁䝞䞊

    View Slide

  8. ̉
    䝗䝯䜲䞁▱㆑䛾㞟✚
    Ɣ ┠ⓗ
    ż 䝗䝯䜲䞁▱㆑䜔᪤Ꮡ䛾䝁䞊䝗䝧䞊䝇䛾⌮ゎ䜢῝䜑䜛
    ż 䝗䜻䝳䝯䞁䝖䜔㘓⏬䜢䜸䞁䝪䞊䝕䜱䞁䜾䛾䝁䞁䝔䞁䝒䛸䛧䛶฼⏝
    Ɣ ෆᐜ
    ż ฼⏝䝅䝘䝸䜸͸͔͸䜰䜴䝖䜹䝮
    ż ౫Ꮡ䛩䜛䝬䜲䜽䝻䝃䞊䝡䝇䜔䝔䞊䝤䝹䠄§Ä%䛾ศᯒ䠅
    ż 䝇䝹䞊䝥䝑䝖͸͔͸㞀ᐖ᫬䛾䝴䞊䝄䞊ᙳ㡪
    䜶䞁䝗䝫䜲䞁䝖㍯ㄞ఍

    View Slide

  9. ̊
    ᕧ኱䝰䝜䝸䝇͸͔͸ྲྀᘬ䝗䝯䜲䞁䛾ㄢ㢟

    View Slide

  10. ̂́
    ྲྀᘬ䝗䝯䜲䞁䛿」㞧䛺ᕧ኱䝰䝜䝸䝇䛾୰
    Ɣ 䝯䝹䜹䝸䛾๰ᴗᮇ䛛䜙౑䜟䜜䛶䛔䜛䝁䞊䝗䝧䞊䝇䚸༢୍䛾䝸䝫䝆䝖䝸
    Ɣ ࿘㎶䛾䝗䝯䜲䞁䛸䛾ቃ⏺䛜䛺䛟䚸‐↛୍య䛸䛧䛶䛔䜛
    䝁䞊䝗䝧䞊䝇
    ၟရ
    㓄㏦
    ྲྀᘬ
    Ỵ῭
    ྲྀᘬ
    ㏻▱
    䜽䞊䝫䞁
    ྲྀᘬ ఍ィ

    View Slide

  11. ̂̂
    ᕧ኱䝰䝜䝸䝇͸͔͸ྲྀᘬ䝗䝯䜲䞁䛾ㄢ㢟
    ㄢ㢟
    Ɣ ᑠ䛥䛺ኚ᭦䛷䜒䝸䝸䞊䝇䛻᫬㛫䛜䛛䛛䜛
    Ɣ ኚ᭦䛾ᙳ㡪⠊ᅖ䛾ㄪᰝ䛻䜒᫬㛫䛜䛛䛛䜛
    ζ͸䝡䝆䝛䝇䛾ኚ໬䜔せồ䛻᪩䛟ᑐᛂ䛩䜛䛯䜑䚸䝯䞁䝔䝘䞁䝇ᛶ䜔ᣑᙇᛶ䜢ྥୖ䛥䛫䛯

    View Slide

  12. ̂̃
    ྲྀᘬ䝗䝯䜲䞁䛾ㄢ㢟
    ͇̂ ቃ⏺䛾䛺䛔䝰䝜䝸䝇䛻䛚䛡䜛䝗䝯䜲䞁㛫䛾」㞧䛺౫Ꮡ㛵ಀ
    ͇̃ ྲྀᘬ䝗䝯䜲䞁⮬య䛾ᕧ኱䛥
    ཎᅉ
    䜶䞁䝗䝫䜲䞁䝖
    䠄O½½¤䠅
    ̆́
    䝔䞊䝤䝹
    䠄tǘ¯¦j䠅
    ̈́ࠥ

    View Slide

  13. ̂̄
    ㄢ㢟ゎỴ䛾䛯䜑䛾ྲྀ䜚⤌䜏
    ᡓ␎䛸ᡓ⾡

    View Slide

  14. ̂̅
    Ɣ 䝰䝆䝳䝷䞊䝰䝜䝸䝇䜈䛾⛣⾜
    ż ༢୍䛾䝕䝥䝻䜲䝴䝙䝑䝖䜢䜻䞊䝥
    ż 䝗䝯䜲䞁㛫䛾ቃ⏺䜢ᐃ⩏䛧䚸䝰䝆䝳䞊䝹䠄䝁䞁䝫䞊䝛䞁䝖䠅䛻ศ๭
    ㄢ㢟ゎỴ䛾䛯䜑䛾ྲྀ䜚⤌䜏
    ᡓ␎
    ၟရ
    㓄㏦
    ྲྀᘬ
    Ỵ῭


    ㏻▱
    䜽䞊䝫䞁




    ྲྀᘬ ၟရ
    ఍ィ 㓄㏦
    ㏻▱ 䜽䞊䝫䞁

    View Slide

  15. ̂̆
    䝰䝆䝳䝷䞊䝰䝜䝸䝇䛻⛣⾜䛩䜛ᡓ⾡
    䚉 䝁䞁䝫䞊䝛䞁䝖㛫䛾ቃ⏺䜢ᐃ⩏
    䚉 ୙ṇ䛺ቃ⏺㉺䛘䜢᳨ฟ䛩䜛䝒䞊䝹䠄౛ ͇͸%͸䛾┤᥋ཧ↷䠅
    ͇̂͸౫Ꮡ㛵ಀ䛾ศᯒ͸͔͸ᐃ㔞໬
    #,QWHUQDO
    7UDQVDFWLRQXSGDWH
    6KLSSLQJ&RQWUROOHU
    XSGDWH6WDWXV
    jŵĹŇƣƱŇĐƣ͸ŵŨƘŵŪĞŪƱ ½ƛóŪƣóĐƱŇŵŪ͸ŵŨƘŵŪĞŪƱ

    View Slide

  16. ̂̇
    ͇̂ ౫Ꮡ㛵ಀ䛾ศᯒ͸͔͸ᐃ㔞໬
    Ɣ ÝŁóƱ
    ż 䝁䞁䝫䞊䝛䞁䝖䛾ቃ⏺䜢䜎䛯䛠䝁䞊䝗䜢᳨▱䛩䜛䝒䞊䝹
    Ɣ Oŵǒ
    ż 䜽䝷䝇䛤䛸䛻䜰䝜䝔䞊䝅䝵䞁䛷ୗグ䛾஧䛴䜢ᣦᐃ䛧䚸ቃ⏺䜢ᐃ⩏
    Ŷ ᡤᒓ䛩䜛䝁䞁䝫䞊䝛䞁䝖͸͙ϋƘóĐśóĹĞ͸½ƛóŪƣóĐƱŇŵŪ͚
    Ŷ 䜰䜽䝉䝇ಟ㣭͸͙ϋóƘŇ͸ŵƛ͸ϋŇŪƱĞƛŪóş͚
    %ŵŨóŇŪ͸ŵƹŪėóƛǘ͸ÜŇŵşóƱŇŵŪ͸%ĞƱĞĐƱŇŵŪ

    View Slide

  17. ̂̈
    ͇̂ ౛͸͟͸౫Ꮡ㛵ಀ䛾ศᯒ

    View Slide

  18. ̂̉
    ͇̂ ౫Ꮡ㛵ಀ䛾ศᯒ͸͔͸ᐃ㔞໬
    Ɣ §ĞĸĞƛĞŪĐĞ
    ż ¯ŁŵƘŇĸǘ͸䛾͸ÝĞėĹĞ͸䜢ཧ⪃䛻ᐇ⿦
    Ɣ Oŵǒ
    ż 㟼ⓗゎᯒ
    Ŷ ėĞƘŁƘĞŪė͉͸ŁƱƱƘƣ͉͔͔ĹŇƱŁƹď͇ĐŵŨ͔ŨŇŁóĞƹ͔ėĞƘŁƘĞŪė͸
    Ŷ ¤O¤͟¤óƛƣĞƛ͉͸ŁƱƱƘƣ͉͔͔ĹŇƱŁƹď͇ĐŵŨ͔ŪŇśŇĐ͔¤O¤͟¤óƛƣĞƛ͸
    ཧ⪃᝟ሗ

    View Slide

  19. ̂̊
    䝰䝆䝳䝷䞊䝰䝜䝸䝇䛻⛣⾜䛩䜛ᡓ⾡
    䚉 %➼䛾௦䜟䜚䛻¤U䜢ᐇ⿦䛧䚸䝁䞁䝫䞊䝛䞁䝖እ䛛䜙䛾┤᥋ཧ↷䜢ᅇ㑊
    䚉 ༢୍䛾䝕䝥䝻䜲䝴䝙䝑䝖䛺䛾䛷䚸 ¤U䝞䞊䝆䝵䞁䜔஫᥮ᛶ䜢Ẽ䛻䛩䜛ᚲせ䛜䛺䛔
    ͇̃͸䝁䞁䝫䞊䝛䞁䝖㛫䛾䜔䜚䛸䜚䛻౑⏝䛩䜛¤U䛾ᥦ౪
    #$3,
    8SGDWH7UDQVDFWLRQ6WDWXV
    6KLSSLQJ&RQWUROOHU
    XSGDWH6WDWXV
    ½ƛóŪƣóĐƱŇŵŪ͸ŵŨƘŵŪĞŪƱ
    #,QWHUQDO
    7UDQVDFWLRQXSGDWH
    jŵĹŇƣƱŇĐƣ͸ŵŨƘŵŪĞŪƱ

    View Slide

  20. ̃́
    ͇̃͸䝁䞁䝫䞊䝛䞁䝖㛫䛾䜔䜚䛸䜚䛻౑⏝䛩䜛¤U
    Ɣ ᐇ⿦᪉ἲ
    ż ¤O¤䛾䝯䝋䝑䝗䛸䛧䛶ᐇ⿦
    ż ¦¯䠄ŵŨŨóŪė͸¦ƹĞƛǘ͸¯ĞƘóƛóƱŇŵŪ䠅䝇䝍䜲䝹
    Ɣ 䜲䞁䝍䞊䝣䜵䞊䝇
    ż %½䠄%óƱó͸½ƛóŪƣĸĞƛ͸ďŘĞĐƱ䠅
    Ŷ እ㒊䝁䞁䝫䞊䝛䞁䝖䛛䜙䜸䝤䝆䜵䜽䝖䛾≧ែ䜢ኚ᭦䛷䛝䛺䛔䜘䛖䛻
    Ŷ ྲྀᘬ䝗䝯䜲䞁ෆ䛾䝻䝆䝑䜽䜢እ㒊䛻᫹䛥䛺䛔䜘䛖䛻
    ᪉㔪

    View Slide

  21. ̃̂
    ͇̃͸䝁䞁䝫䞊䝛䞁䝖㛫䛾䜔䜚䛸䜚䛻౑⏝䛩䜛¤U
    ྡ๓✵㛫
    7UDQVDFWLRQ $3, 6KLSSLQJ
    &RPPDQG
    3URFHVVRU
    &RPPDQG
    4XHU\
    4XHU\
    3URFHVVRU
    5HDG0RGHO
    &KHFNRXW
    0HVVDJH

    View Slide

  22. ̃̃
    䝰䝆䝳䝷䞊䝰䝜䝸䝇䛻⛣⾜䛩䜛ᡓ⾡
    䚉 ྲྀᘬ䜢ᢅ䛖䝁䞁䝫䞊䝛䞁䝖䛿ᕧ኱䚸䝃䝤䝁䞁䝫䞊䝛䞁䝖༢఩䛷䝏䞊䝮䜢ᵓᡂ䛷䛝䜛䜘䛖䛻
    ͇̄͸䝃䝤䝁䞁䝫䞊䝛䞁䝖䛻ศ๭
    ½ƛóŪƣóĐƱŇŵŪ͸ŵŨƘŵŪĞŪƱ
    /LIHF\FOH
    0DQDJHPHQW
    6KLSSLQJ $FFRXQWLQJ
    &KHFNRXW 0HVVDJH 5HYLHZ

    View Slide

  23. ̃̄
    䝰䝆䝳䝷䞊䝰䝜䝸䝇䛻⛣⾜䛩䜛ᡓ⾡
    /RJLVWLFV
    &RPSRQHQW
    ½ƛóŪƣóĐƱŇŵŪ͸ŵŨƘŵŪĞŪƱ
    /LIHF\FOH
    0DQDJHPHQW
    6KLSSLQJ
    $3,
    $FFRXQWLQJ
    $FFRXQWLQJ
    &RPSRQHQW
    $3,
    &KHFNRXW
    +773
    &OLHQW
    $SS
    0HUSD\

    View Slide

  24. ̃̅
    ౫Ꮡ㛵ಀ䛾ศᯒ͸͔͸ᐃ㔞໬
    ྛྲྀ䜚⤌䜏䛾≧ἣ
    䝁䞁䝫䞊䝛䞁䝖㛫䛾䜔䜚䛸䜚䛻౑⏝䛩䜛¤U
    䝃䝤䝁䞁䝫䞊䝛䞁䝖ศ๭
    ́̃
    ́̄
    ́̂ ᏶஢
    㐍⾜୰
    㐍⾜୰

    View Slide

  25. ̃̆
    ྛྲྀ䜚⤌䜏䛾≧ἣ
    Ɣ ෆ〇䝒䞊䝹䜢฼⏝䛧䛯౫Ꮡ㛵ಀ䛾᳨▱͸ό͸ᐃ㔞໬
    ż ౫Ꮡ㛵ಀ䛾ศ㞳䛜䛹䜜䛟䜙䛔㐍ᤖ䛧䛶䛔䜛䛛ศ䛛䜛
    ż ᆅ㐨䛺సᴗ䜢⥆䛡䜛䝰䝏䝧䞊䝅䝵䞁䜢ಖ䛶䛶䛔䜛
    Ɣ ౫Ꮡ㛵ಀ䛾ศ㞳䛸䝃䝤䝁䞁䝫䞊䝛䞁䝖ศ๭タィ䛾ྠ᫬㐍⾜
    ż ⌮᝿ⓗ䛺≧ែ䜢䜲䝯䞊䝆䛧䛺䛜䜙䝸䝣䜯䜽䝍䝸䞁䜾䛷䛝䜛
    䛖䜎䛟䛔䛳䛶䛔䜛䛣䛸

    View Slide

  26. ̃̇
    ྛྲྀ䜚⤌䜏䛾≧ἣ
    Ɣ 䝍䝇䜽䛾౫Ꮡ㛵ಀ䜢ᩚ⌮䛫䛪䛻䝸䝣䜯䜽䝍䝸䞁䜾䜢㐍䜑䛶䛧䜎䛳䛯
    ż 䝁䞊䝗䛾ὶ䜜䜔ᚠ⎔ⓗ䛺౫Ꮡ䜢⢭ᰝ䛧䛺䛔䜎䜎䝍䝇䜽䛻╔ᡭ䛧䚸ኚ᭦సᴗ
    䛾䝁䞁䝣䝸䜽䝖䜔䝤䝻䝑䜽䛜㢖Ⓨ
    䛖䜎䛟䛔䛛䛺䛛䛳䛯䛣䛸

    View Slide

  27. ̃̈
    䜎䛸䜑

    View Slide

  28. ̃̉
    Ɣ ᕧ኱䛺¤O¤䛾䝰䝜䝸䝇䜢䛂䝰䝆䝳䝷䞊䝰䝜䝸䝇䛃䛻⛣⾜䛥䛫䛶䛔䜛
    ż ౫Ꮡ㛵ಀ䛾ศᯒ͸͔͸ᐃ㔞໬
    ż 䝁䞁䝫䞊䝛䞁䝖ศ๭
    ż 䛂ྲྀᘬ䛃䛿䛥䜙䛻䝃䝤䝁䞁䝫䞊䝛䞁䝖䛻ศ๭
    Ɣ 䛂§ŵďƹƣƱ͸FŵƹŪėóƱŇŵŪ͸ĸŵƛ͸¯ƘĞĞė䛃䛸䛔䛖䝥䝻䝆䜵䜽䝖䛾୰䛾ྲྀ䜚⤌䜏
    ż 䝥䝻䝆䜵䜽䝖≉タ䝨䞊䝆
    䜎䛸䜑

    View Slide