巨大なPHP製モノリスアプリケーションにおいて、マイクロサービス化というアプローチでは上手く解決できなかった問題を、アプローチを変えて解こうとしています。何をどのように進めているのか、具体例を交えてお話します。
̂䝯䝹䜹䝸䚸ᕧ䝰䝜䝸䝇䛻䛚䛡䜛」㞧ᛶ䜢䝸䝸䞊䝇̊ᖺ┠䛻䛧䛶䛹䛖ゎỴ䛩䜛䛛ãƹƱóėóУҤO¤ĞƛgóŇĹŇ̃́̃̃
View Slide
̃㻿㼛㼒㼠㼣㼍㼞㼑㻌㻱㼚㼓㼕㼚㼑㼑㼞䈊㼀㼞㼍㼚㼟㼍㼏㼠㼕㼛㼚㻌㼀㼑㼍㼙㻘㻌㻹㼑㼞㼏㼍㼞㼕㻌㻶㻼䈊㼅㼡㼠㼍㻌㻭㼐㼍㼏㼔㼕䈊
̄½ƛóŪƣóĐƱŇŵŪ½ĞóŨ䛾⤂䝖䝢䝑䜽ᕧ䝰䝜䝸䝇͔ྲྀᘬ䝗䝯䜲䞁䛾ㄢ㢟ㄢ㢟ゎỴ䛾䛯䜑䛾ྲྀ䜚⤌䜏䜎䛸䜑́̃́̄́̅́̂
̅½ƛóŪƣóĐƱŇŵŪ½ĞóŨ䛾⤂
̆½ƛóŪƣóĐƱŇŵŪ½ĞóŨƔ 䛂ྲྀᘬ䛃䛾䝣䝻䞊Ɣ 䛂ྲྀᘬ䛃䜢䝃䝫䞊䝖䛩䜛ᶵ⬟ż ྲྀᘬ䝯䝑䝉䞊䝆ż 䜻䝱䞁䝉䝹⏦ㄳ½ƛóŪƣóĐƱŇŵŪ䠄ྲྀᘬ䠅䝗䝯䜲䞁䛸䛿ၟရ㉎ධ Ⓨ㏦ ホ౯ ྲྀᘬ
̇½ƛóŪƣóĐƱŇŵŪ½ĞóŨ㛵㐃䛩䜛䝗䝯䜲䞁䠄䝏䞊䝮䠅ྲྀᘬ䠄Ỵ῭䠅 0HUSD\ၟရ㓄㏦ィ㏻▱䜽䞊䝫䞁
̈½ƛóŪƣóĐƱŇŵŪ½ĞóŨƔ ⌧ᅾ䛾䝏䞊䝮䛿̃́̃̂ᖺ̂́᭶Ⓨ㊊Ɣ ̊ྡయไż -ŪĹŇŪĞĞƛŇŪĹtóŪóĹĞƛż ¤ƛŵėƹĐƱtóŪóĹĞƛ̃͟ྡż ½ĞĐŁjĞóėż ¯ŵĸƱǒóƛĞ-ŪĹŇŪĞĞƛ͙óĐśĞŪė͚̆͟ྡ䝯䞁䝞䞊
̉䝗䝯䜲䞁▱㆑䛾㞟✚Ɣ ┠ⓗż 䝗䝯䜲䞁▱㆑䜔᪤Ꮡ䛾䝁䞊䝗䝧䞊䝇䛾⌮ゎ䜢῝䜑䜛ż 䝗䜻䝳䝯䞁䝖䜔㘓⏬䜢䜸䞁䝪䞊䝕䜱䞁䜾䛾䝁䞁䝔䞁䝒䛸䛧䛶⏝Ɣ ෆᐜż ⏝䝅䝘䝸䜸͔䜰䜴䝖䜹䝮ż ౫Ꮡ䛩䜛䝬䜲䜽䝻䝃䞊䝡䝇䜔䝔䞊䝤䝹䠄§Ä%䛾ศᯒ䠅ż 䝇䝹䞊䝥䝑䝖͔㞀ᐖ䛾䝴䞊䝄䞊ᙳ㡪䜶䞁䝗䝫䜲䞁䝖㍯ㄞ
̊ᕧ䝰䝜䝸䝇͔ྲྀᘬ䝗䝯䜲䞁䛾ㄢ㢟
̂́ྲྀᘬ䝗䝯䜲䞁䛿」㞧䛺ᕧ䝰䝜䝸䝇䛾୰Ɣ 䝯䝹䜹䝸䛾ᴗᮇ䛛䜙䜟䜜䛶䛔䜛䝁䞊䝗䝧䞊䝇䚸༢୍䛾䝸䝫䝆䝖䝸Ɣ ࿘㎶䛾䝗䝯䜲䞁䛸䛾ቃ⏺䛜䛺䛟䚸‐↛୍య䛸䛧䛶䛔䜛䝁䞊䝗䝧䞊䝇ၟရ㓄㏦ྲྀᘬỴ῭ྲྀᘬ㏻▱䜽䞊䝫䞁ྲྀᘬ ィ
̂̂ᕧ䝰䝜䝸䝇͔ྲྀᘬ䝗䝯䜲䞁䛾ㄢ㢟ㄢ㢟Ɣ ᑠ䛥䛺ኚ᭦䛷䜒䝸䝸䞊䝇䛻㛫䛜䛛䛛䜛Ɣ ኚ᭦䛾ᙳ㡪⠊ᅖ䛾ㄪᰝ䛻䜒㛫䛜䛛䛛䜛ζ䝡䝆䝛䝇䛾ኚ䜔せồ䛻᪩䛟ᑐᛂ䛩䜛䛯䜑䚸䝯䞁䝔䝘䞁䝇ᛶ䜔ᣑᙇᛶ䜢ྥୖ䛥䛫䛯䛔
̂̃ྲྀᘬ䝗䝯䜲䞁䛾ㄢ㢟͇̂ ቃ⏺䛾䛺䛔䝰䝜䝸䝇䛻䛚䛡䜛䝗䝯䜲䞁㛫䛾」㞧䛺౫Ꮡ㛵ಀ͇̃ ྲྀᘬ䝗䝯䜲䞁⮬య䛾ᕧ䛥ཎᅉ䜶䞁䝗䝫䜲䞁䝖䠄O½½¤䠅̆́䝔䞊䝤䝹䠄tǘ¯¦j䠅̈́ࠥ
̂̄ㄢ㢟ゎỴ䛾䛯䜑䛾ྲྀ䜚⤌䜏ᡓ␎䛸ᡓ⾡
̂̅Ɣ 䝰䝆䝳䝷䞊䝰䝜䝸䝇䜈䛾⛣⾜ż ༢୍䛾䝕䝥䝻䜲䝴䝙䝑䝖䜢䜻䞊䝥ż 䝗䝯䜲䞁㛫䛾ቃ⏺䜢ᐃ⩏䛧䚸䝰䝆䝳䞊䝹䠄䝁䞁䝫䞊䝛䞁䝖䠅䛻ศㄢ㢟ゎỴ䛾䛯䜑䛾ྲྀ䜚⤌䜏ᡓ␎ၟရ㓄㏦ྲྀᘬỴ῭ྲྀᘬ㏻▱䜽䞊䝫䞁ྲྀᘬィྲྀᘬ ၟရィ 㓄㏦㏻▱ 䜽䞊䝫䞁
̂̆䝰䝆䝳䝷䞊䝰䝜䝸䝇䛻⛣⾜䛩䜛ᡓ⾡䚉 䝁䞁䝫䞊䝛䞁䝖㛫䛾ቃ⏺䜢ᐃ⩏䚉 ṇ䛺ቃ⏺㉺䛘䜢᳨ฟ䛩䜛䝒䞊䝹䠄 ͇%䛾┤᥋ཧ↷䠅͇̂౫Ꮡ㛵ಀ䛾ศᯒ͔ᐃ㔞#,QWHUQDO7UDQVDFWLRQXSGDWH6KLSSLQJ&RQWUROOHUXSGDWH6WDWXVjŵĹŇƣƱŇĐƣŵŨƘŵŪĞŪƱ ½ƛóŪƣóĐƱŇŵŪŵŨƘŵŪĞŪƱ
͇̂̇̂ ౫Ꮡ㛵ಀ䛾ศᯒ͔ᐃ㔞Ɣ ÝŁóƱż 䝁䞁䝫䞊䝛䞁䝖䛾ቃ⏺䜢䜎䛯䛠䝁䞊䝗䜢᳨▱䛩䜛䝒䞊䝹Ɣ Oŵǒż 䜽䝷䝇䛤䛸䛻䜰䝜䝔䞊䝅䝵䞁䛷ୗグ䛾䛴䜢ᣦᐃ䛧䚸ቃ⏺䜢ᐃ⩏Ŷ ᡤᒓ䛩䜛䝁䞁䝫䞊䝛䞁䝖͙ϋƘóĐśóĹнƛóŪƣóĐƱŇŵŪ͚Ŷ 䜰䜽䝉䝇ಟ㣭͙ϋóƘŇŵƛϋŇŪƱĞƛŪóş͚%ŵŨóŇŪŵƹŪėóƛǘÜŇŵşóƱŇŵŪ%ĞƱĞĐƱŇŵŪ
͇̂̈̂ ͟౫Ꮡ㛵ಀ䛾ศᯒ
͇̂̉̂ ౫Ꮡ㛵ಀ䛾ศᯒ͔ᐃ㔞Ɣ §ĞĸĞƛĞŪĐĞż ¯ŁŵƘŇĸǘ䛾ÝĞėĹĞ䜢ཧ⪃䛻ᐇƔ Oŵǒż 㟼ⓗゎᯒŶ ėĞƘŁƘĞŪė͉ŁƱƱƘƣ͉͔͔ĹŇƱŁƹď͇ĐŵŨ͔ŨŇŁóĞƹ͔ėĞƘŁƘĞŪėŶ ¤O¤͟¤óƛƣĞƛ͉ŁƱƱƘƣ͉͔͔ĹŇƱŁƹď͇ĐŵŨ͔ŪŇśŇĐ͔¤O¤͟¤óƛƣĞƛཧ⪃ሗ
̂̊䝰䝆䝳䝷䞊䝰䝜䝸䝇䛻⛣⾜䛩䜛ᡓ⾡䚉 %➼䛾௦䜟䜚䛻¤U䜢ᐇ䛧䚸䝁䞁䝫䞊䝛䞁䝖እ䛛䜙䛾┤᥋ཧ↷䜢ᅇ㑊䚉 ༢୍䛾䝕䝥䝻䜲䝴䝙䝑䝖䛺䛾䛷䚸 ¤U䝞䞊䝆䝵䞁䜔ᛶ䜢Ẽ䛻䛩䜛ᚲせ䛜䛺䛔͇̃䝁䞁䝫䞊䝛䞁䝖㛫䛾䜔䜚䛸䜚䛻⏝䛩䜛¤U䛾ᥦ౪#$3,8SGDWH7UDQVDFWLRQ6WDWXV6KLSSLQJ&RQWUROOHUXSGDWH6WDWXV½ƛóŪƣóĐƱŇŵŪŵŨƘŵŪĞŪƱ#,QWHUQDO7UDQVDFWLRQXSGDWHjŵĹŇƣƱŇĐƣŵŨƘŵŪĞŪƱ
͇̃́̃䝁䞁䝫䞊䝛䞁䝖㛫䛾䜔䜚䛸䜚䛻⏝䛩䜛¤UƔ ᐇ᪉ἲż ¤O¤䛾䝯䝋䝑䝗䛸䛧䛶ᐇż ¦¯䠄ŵŨŨóŪė¦ƹĞƛǘ¯ĞƘóƛóƱŇŵŪ䠅䝇䝍䜲䝹Ɣ 䜲䞁䝍䞊䝣䜵䞊䝇ż %½䠄%óƱó½ƛóŪƣĸĞƛďŘĞĐƱ䠅Ŷ እ㒊䝁䞁䝫䞊䝛䞁䝖䛛䜙䜸䝤䝆䜵䜽䝖䛾≧ែ䜢ኚ᭦䛷䛝䛺䛔䜘䛖䛻Ŷ ྲྀᘬ䝗䝯䜲䞁ෆ䛾䝻䝆䝑䜽䜢እ㒊䛻䛥䛺䛔䜘䛖䛻᪉㔪
͇̃̂̃䝁䞁䝫䞊䝛䞁䝖㛫䛾䜔䜚䛸䜚䛻⏝䛩䜛¤Uྡ๓✵㛫7UDQVDFWLRQ $3, 6KLSSLQJ&RPPDQG3URFHVVRU&RPPDQG4XHU\4XHU\3URFHVVRU5HDG0RGHO&KHFNRXW0HVVDJH
̃̃䝰䝆䝳䝷䞊䝰䝜䝸䝇䛻⛣⾜䛩䜛ᡓ⾡䚉 ྲྀᘬ䜢ᢅ䛖䝁䞁䝫䞊䝛䞁䝖䛿ᕧ䚸䝃䝤䝁䞁䝫䞊䝛䞁䝖༢䛷䝏䞊䝮䜢ᵓᡂ䛷䛝䜛䜘䛖䛻͇̄䝃䝤䝁䞁䝫䞊䝛䞁䝖䛻ศ½ƛóŪƣóĐƱŇŵŪŵŨƘŵŪĞŪƱ/LIHF\FOH0DQDJHPHQW6KLSSLQJ $FFRXQWLQJ&KHFNRXW 0HVVDJH 5HYLHZ
̃̄䝰䝆䝳䝷䞊䝰䝜䝸䝇䛻⛣⾜䛩䜛ᡓ⾡/RJLVWLFV&RPSRQHQW½ƛóŪƣóĐƱŇŵŪŵŨƘŵŪĞŪƱ/LIHF\FOH0DQDJHPHQW6KLSSLQJ$3,$FFRXQWLQJ$FFRXQWLQJ&RPSRQHQW$3,&KHFNRXW+773&OLHQW$SS0HUSD\
̃̅౫Ꮡ㛵ಀ䛾ศᯒ͔ᐃ㔞ྛྲྀ䜚⤌䜏䛾≧ἣ䝁䞁䝫䞊䝛䞁䝖㛫䛾䜔䜚䛸䜚䛻⏝䛩䜛¤U䝃䝤䝁䞁䝫䞊䝛䞁䝖ศ́̃́̄́̂ 㐍⾜୰㐍⾜୰
̃̆ྛྲྀ䜚⤌䜏䛾≧ἣƔ ෆ〇䝒䞊䝹䜢⏝䛧䛯౫Ꮡ㛵ಀ䛾᳨▱όᐃ㔞ż ౫Ꮡ㛵ಀ䛾ศ㞳䛜䛹䜜䛟䜙䛔㐍ᤖ䛧䛶䛔䜛䛛ศ䛛䜛ż ᆅ㐨䛺సᴗ䜢⥆䛡䜛䝰䝏䝧䞊䝅䝵䞁䜢ಖ䛶䛶䛔䜛Ɣ ౫Ꮡ㛵ಀ䛾ศ㞳䛸䝃䝤䝁䞁䝫䞊䝛䞁䝖ศタィ䛾ྠ㐍⾜ż ⌮ⓗ䛺≧ែ䜢䜲䝯䞊䝆䛧䛺䛜䜙䝸䝣䜯䜽䝍䝸䞁䜾䛷䛝䜛䛖䜎䛟䛔䛳䛶䛔䜛䛣䛸
̃̇ྛྲྀ䜚⤌䜏䛾≧ἣƔ 䝍䝇䜽䛾౫Ꮡ㛵ಀ䜢ᩚ⌮䛫䛪䛻䝸䝣䜯䜽䝍䝸䞁䜾䜢㐍䜑䛶䛧䜎䛳䛯ż 䝁䞊䝗䛾ὶ䜜䜔ᚠ⎔ⓗ䛺౫Ꮡ䜢⢭ᰝ䛧䛺䛔䜎䜎䝍䝇䜽䛻╔ᡭ䛧䚸ኚ᭦సᴗ䛾䝁䞁䝣䝸䜽䝖䜔䝤䝻䝑䜽䛜㢖Ⓨ䛖䜎䛟䛔䛛䛺䛛䛳䛯䛣䛸
̃̈䜎䛸䜑
̃̉Ɣ ᕧ䛺¤O¤䛾䝰䝜䝸䝇䜢䛂䝰䝆䝳䝷䞊䝰䝜䝸䝇䛃䛻⛣⾜䛥䛫䛶䛔䜛ż ౫Ꮡ㛵ಀ䛾ศᯒ͔ᐃ㔞ż 䝁䞁䝫䞊䝛䞁䝖ศż 䛂ྲྀᘬ䛃䛿䛥䜙䛻䝃䝤䝁䞁䝫䞊䝛䞁䝖䛻ศƔ 䛂§ŵďƹƣƱFŵƹŪėóƱŇŵŪĸŵƛ¯ƘĞĞė䛃䛸䛔䛖䝥䝻䝆䜵䜽䝖䛾୰䛾ྲྀ䜚⤌䜏ż 䝥䝻䝆䜵䜽䝖≉タ䝨䞊䝆䜎䛸䜑