áááºá¹ááá¬áá« Habr áá®áá±á·áá±á¬á· áááºáááºážá¡áá
áºáá
áºáá¯á
ááá¯á· á¡áá°ážááááºáá±ážáá¬ážáá²á· á
á¬á¡á¯ááºá
á¬áááºážááœá±ááᯠáááºááá¯ááºáá¯ááºáá±áá«áááºá
áááá«ááºáž
áááá¯áá¬á ááá¯ááºáẠááœá±ážáá»ááºááŸá¯ááẠá¡áá»ááºá¡áááºá áá áºáá áºáᯠáááºáá±á¬ááºáá¬ááœáẠá¡ááŒá±áá¶áá»áá±á¬ áááºážááá¬ááá¯ááºáᬠáá¯á¶ážááŒááºáá»ááºáá»á¬ážáá²á០áá áºáá¯ááŒá áºáááºá á€áá±á¬ááºážáá«ážá¡ááœá²ááá¯ááºááœááºá áá±á¬ááºáá¯ááºáá±ážáá¯ááºáááºážáá¯á¶ážá¡ááœáẠáá±áááºážá¡á á¬ážáá¯á¶áž áááá¯áá¬áá¯á¶á á¶áá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒá®áž áááºááá·áºáááá¯áá¬á ááá¯ááºááᯠááá¯ááŸá áºáááºááááºážáá°áá±á¬ áá±ážááœááºážááᯠááŒá±ááẠá¡ááá¯ááŒá¯áá«áááºá áááºáááºááŸá¯áá¯ááºáááºážá ááºááœááºá monoliths á០microservices á¡áá áááá¯áá¬áá¯á¶á á¶áá»á¬áž ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠááŸááºážááŒááá·áº áá¯áá¹ááááœááºážáááºáá áºáá¯ááœá²ááẠááŒáá¯ážá á¬ážáá«áááºá
áá±á¬ááºáá¯á¶ážá¡ááŒáááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠááá°áá®áá±á¬ monoliths á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááŸáá·áº áááºážááá¯á·ááá¯áááºáá±á¬ááºáááºá¡ááœáẠá¡á áááºá¡ááá¯ááºážáá»á¬ážá¡áá¯á¶ážááŒá¯ááŒááºážá¡ááŒá±á¬ááºážááŒá±á¬áá²á·ááŒá®ážá áááºáá±á¬ááºááá·áºá¡á áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áº ááŒáá·áºáá»ááºááŸá¯á¡á áááºá¡ááá¯ááºážáá»á¬áž ááŸá áºáá¯áá¯á¶ážá¡á¬áž áááºážááá¯á·ááá¯áááºáá±á¬ááºáááºá¡ááœáẠá¡á áááºá¡ááá¯ááºážáá»á¬ážá¡áá¯á¶ážááŒá¯ááŒááºážá¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáá²á·áá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯ááᯠáŠážáááºáá±á¬ áááá¯áá¬ááá¬ááᯠáá¬ážáááºáá«áááºá
ááᯠáá±á¬ááºáá¯á¶ážááœáẠáá»áœááºá¯ááºááá¯á·ááẠááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áááá¯áá¬á á¡áááááá¹ááá¬áá»á¬ážááᯠáááºááŸááºáá±á¬áºááŒáá«áááºá
áááá¯áá¬ááá¬ááááºáá¶áá±áž
ááááºáá±á¬ááºážáá«ážáá»á¬ážááœááºáá±á¬áºááŒáá¬ážáá±á¬ á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á áááºááá·áºáááºáá±á¬ááºááŸá¯ááẠá¡á áááºá¡ááá¯ááºážáá áºáá¯ááŒá áºáá±á¬áºáááºáž áááºáá±á¬ááºááŸá¯ááá¯ááºážááẠááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯ááá¯ááºááŒá±á¬ááºáž áá¬ážáááºáááºááá¯á¡ááºáá«áááºá
Microservice Architecture á á¡ááºá¹áá«áááºáá»á¬áž
ááá¯ááºáááá¯áá¬ážáá áºáááá¯áá¬á á¡áááááá¹ááá¬áá»á¬ážááŸá¬-
- Business Capabilities áá»á¬ážááᯠá á¯á ááºážáá¬ážáááºá
- ááá±á¬áá»ááºáá»á¬ážááá¯ááºáá±á¬ áá¯ááºáá¯ááºáá»á¬áž
- á ááẠá¡áá¯á¶ážááŸááºáá»á¬ážááŸáá·áº á¡áá¯á¶ážááá»áá±á¬ ááá¯ááºáá»á¬áž
- áááá¯áá»á¯ááºááá¯ááºááŸá¯ááŸááá±á¬ á¡á¯ááºáá»á¯ááºáá±áž
- áááá¯áá»á¯ááºááá¯ááºááŸá¯ááŸááá±á¬ áá±áá¬á á®áá¶ááá·áºááœá²ááŸá¯
- á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠ á¡ááá¯á¡áá»á±á¬ááºá áá áº
- ááŸá¯á¶ážáááá·áºááŸá¯á¡ááœááºáá®ááá¯ááºáž
- ááá·áºáá²ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸáá·áºá¡áá° áááá¯áá¬ááᬠ(Evolutionary Design)á
áááá¡áá»ááºááŸá¬ ááá¯ááºáááá¯áá¬ážáá áºáá»á¬ážááẠáááºáá±á¬ááºááŸá¯á á¡áá°ážááá á¹á áááºááŒá áºáá±á¬ááŒá±á¬áá·áº áááºáá±á¬ááºááŸá¯ááᯠáŠážáááºáá±á¬ áááá¯áá¬áááºáá¬á០áá¬áá«áááºá á¡ááŒá¬ážá¡áá»ááºáá»á¬ážááẠáá®ážááŒá¬ážááá·áºááœááºážá ááºážá á¬ážááẠááá¯ááºáááºáá«áááºá
Business Capabilities áá»á¬ážááᯠá á¯á ááºážáá¬ážáááºá
ááᯠConway áá¥ááá±ááᯠááŸááºáá¬ážáá¬ážááẠááá¯á¡ááºáááº- áááºážááááá¯áá¬áááºáá¬áá»á¬ážááᯠá á¯á ááºážáá¬á á€á¡ááœá²á·á¡á ááºážáá»á¬ážá¡ááœááºáž á¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááœá²á·á ááºážáá¯á¶ááᯠáá°ážáá°ááá·áºá áá áºáá»á¬ážááᯠáááºáá®ážááá·áºá¡ááœá²á·á¡á ááºážáá»á¬ážá á¥ááá¬áá áºáá¯á¡áá±ááŸáá·áºá compiler áá áºáá¯áááºáá®ážááŒááºážáááŒá áºáááºááá¯áá»áœááºá¯ááºááá¯á·ááááááá¯ááºáááº- áá°áá¯áá áºáá±á¬ááºáá«áá±á¬á¡ááœá²á·áá áºááœá²á·áááºáá¯áá áºááá·áºááœááºááá®áá¬ááá¯áá®ááœááºáá²á·ááŒá®ážáá«ážáá±á¬ááºáá«áá áºááœá²á·áááºáá«ážááá·áºááœááºááá®áá¬ááá¯áá®ááœááºáá²á·áááºá
áá»áœááºá¯ááºááá¯á·ááẠmonoliths ááŸáá·áº microservices áá»á¬ážá¡ááŒá±á¬ááºážááŒá±á¬áá±áá«áá functional departments (backendá frontendá database administrators) á០ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠá á®áá¶áá±á¬ááºááœááºáá«á classic monolith ááá¯áááŸááááºááŒá áºáááºá
á¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážááá°áááºá á¡ááœá²á·áá»á¬ážá¡á¬áž áá¯ááºáááºážá áœááºážáá±á¬ááºááẠ(á¡ááŸá¬á á¬áá»á¬ážá ááá¯á·áá±á¬ááºááŸá¯áá»á¬ážá áááºááá±á¬ááºá¡ááœá²á·) ááŒáá·áº ááœá²á·á ááºážááá«áááºá á€á¡ááœá²á·á¡á ááºážááẠá¡ááœá²á·áá»á¬ážá¡á¬áž á¡ááá®áá±ážááŸááºážá áá®ážááŒá¬ážá¡á áááºá¡ááá¯ááºážáá»á¬áž áááºáá±á¬ááºááŒááºážá¡áá±á«áº á¡á¬áá¯á¶á áá¯ááºááá¯ááºá á±áááºááŒá áºáááºá
ááá±á¬áá»ááºáá»á¬ážááá¯ááºáá±á¬ áá¯ááºáá¯ááºáá»á¬áž
á¡ááœá²á·áá áºááœá²á·á០áá®ááœááºáá¬ážáá±á¬ áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠá¡ááŒá¬ážá¡ááœá²á·áá»á¬ážááá¯á· ááœáŸá²ááŒá±á¬ááºážáá±ážááá·áº ááá±á¬áá»ááºáá»ááºážáááºááŸá¯áá áºáá¯ááẠááá¯ááºáááá¯áá¬ážáá áºáááá¯áá¬áá áºáá¯á¡ááœáẠáá¯á¶ážáá¡áááºáááŒá±áá«á á¡ááœá²á·ááẠáááºážáááá ááºáááºážáá áºáá»áŸá±á¬áẠá áá áºá¡á¬áž áá¶á·ááá¯ážáá±ážááááºááŒá áºáááºá ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠáá±á«ááºážáá±á¬ááºáá áºáŠážááŒá áºááá·áº Amazon á âáááºáááºáá±á¬ááºáááºá áááºáá¯ááºáá±á¬ááºáááºâ áá¯ááŒá±á¬áááºá áá¯ááºáá¯ááºáá»ááºážáááºááŸá¯ááẠá¡ááœá²á·á¡á¬áž áá¯ááºáááºážáááá¯á¡ááºáá»ááºáá»á¬ážááᯠáá¶á á¬ážááá¯ááºá á±áá«áááºá
á ááẠá¡áá¯á¶ážááŸááºáá»á¬ážááŸáá·áº á¡áá¯á¶ážááá»áá±á¬ ááá¯ááºáá»á¬áž
SOA áááá¯áá¬ááẠáááºááœááºáá±ážáááºážááŒá±á¬ááºážáá»á¬áž á¡áá°ážáááŒáá·áº Enterprise Service Bus áá»á¬ážááᯠá¡á¬áá¯á¶á áá¯ááºáá²á·áááºá ááŸá¬ážááœááºážáá±á¬ Spaghetti Box áá®ááá¯á· áááŒá¬áá áŠážáááºááœá¬ážáá±á·ááŸááááºá ááá¯ááá¯áááºááŸá¬ ááá¯áá®áá¯á¶ážá ááŸá¯ááºááœá±ážááŸá¯ááẠáááºáá±á¬ááºááŸá¯áá»á¬ážááŒá¬áž áá»áááºáááºááŸá¯áá»á¬ážá ááŸá¯ááºááœá±ážááŸá¯á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážáááºá Microservice áááá¯áá¬áááºáá¬ááẠááá¯ážááŸááºážáá±á¬ áááºááœááºáá±ážáááºážáááºážáá»á¬ážááá¯áᬠá¡áá¯á¶ážááŒá¯áááºá
áááá¯áá»á¯ááºááá¯ááºááŸá¯ááŸááá±á¬ á¡á¯ááºáá»á¯ááºáá±áž
ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áááºáááºá á¡ááá áá¯á¶ážááŒááºáá»ááºáá»á¬ážááᯠááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá¡ááŸááºáááẠáá®ááœááºáá±áá°áá»á¬ážá០ááŒá¯áá¯ááºááá·áºáááºá á€ááœááºá á¡ááááá¯á¶ážááŒááºáá»ááºáá»á¬ážááẠááœá±ážáá»ááºááŸá¯áá»á¬ážááᯠááá¯ááá¯áááºá
áááá¯ááááºážáááºážáá¬áá¬á
áá¬ážáá»á¬ážá á¡áá¯á¶ážáá»ááŸá¯áááºážá
áá
áºáá»á¬ážá á¡áá»á¬ážáá°ááŸá¬ ááŒá¬ážáá¶á
á¬áá»á¯ááºáá»á¬áž á
áááºááá¯á·á
áááá¯áá»á¯ááºááá¯ááºááŸá¯ááŸááá±á¬ áá±áá¬á á®áá¶ááá·áºááœá²ááŸá¯
á¡ááá®áá±ážááŸááºážááẠáá±áá¬áá±á·á áºáá áºáá¯áááºážáá±á«áºááœáẠááŸá®ááá¯áá±áááá·áº á á¶áá»ááºážáááºáááºážááẠáá®ážááá·áºáááºáá±á¬ááºááŸá¯áá áºáá¯á á®á áá®ážááŒá¬ážá¡áá»ááºáá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážááááá«á MSA ááœáẠáááºážááá¬á¡áá»áá¯ážáá»áá¯ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá¡áá«á¡ááẠáááá¯áá»á¯ááºááá¯ááºááŸá¯áá»áŸá±á¬á·áá»áá¬ážáá±á¬ áá±áá¬á á®áá¶ááá·áºááœá²ááŸá¯ááœáẠáá«áááºáá«áááºá
á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠ á¡ááá¯á¡áá»á±á¬ááºá áá áº
MSA ááẠá ááºáááºáááŒáẠááŒáá·áºáá»ááºááŒááºážááŸáá·áº áá±ážááá¯á·ááŒááºážáá¯ááºáááºážá ááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºá á¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááŒáá·áºáᬠáááºážááᯠá¡á±á¬ááºááŒááºááá¯ááºáááºá áá áºáá»áááºáááºážááŸá¬áááºá áááºáá±á¬ááºááŸá¯á¡áá»á¬ážá¡ááŒá¬ážááᯠááŒáá·áºáá»ááºáá»áá¬ážááŒááºážááẠááŒá±á¬ááºá áá¬áá±á¬ááºážááá·áºá¡áá¬áá áºáá¯ááá¯ááºáá±á¬á·áá«á ááŒáá·áºáá»ááºááŒááºážáá¯ááºáááºážá ááºááẠááŒá®ážááœá±á·ááœááºááŒá áºáá¬ááá·áºáááºá áá¯áááááŸá¯áá±á¬áá·áºááẠáá¯ááºáá¯ááºáááºáááºážáá»ááºááŸá áááºáá±á¬ááºááŸá¯á á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº áááºááá¯ááºáááºá á¡ááá¯á¡áá»á±á¬ááºá áá áºáááŸááá²á ááá°áá®áá±á¬áááºáááºááŸá¯áááºáááºážáá»ááºááœááºáááºáááºáá±áá±á¬áá¯ááºáááºážá ááºáá»á¬ážááá¯á á®áá¶ááá·áºááœá²áááºáááŒá áºááá¯ááºáá«á
ááŸá¯á¶ážáááá·áºááŸá¯á¡ááœááºáá®ááá¯ááºáž
áá»á¬ážááŒá¬ážááŸáá±á¬ MSA áááºáá±á¬ááºááŸá¯áá»á¬ážááẠáá»ááŸá¯á¶ážááẠá¡áá¬ážá¡áá¬áá»á¬ážáááºá áá áºáá»áááºáááºážááŸá¬áááºá ááŒáá·áºáá±ááŸá¯á áá áºááœáẠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠááá¯ááºááœááºááŒááºážááẠá¡áá±ážá¡ááœá²á¡áá¯ááºááá¯ááºáá«á á¡ááá®áá±ážááŸááºážáááºáá±á¬ááºáá¯á¶ááẠááá¯ááá¯á·áá±á¬áá¡á±á¬ááºááŒááºááŸá¯áá»á¬ážááᯠáá¶ááá¯ááºáááºááŸáááá«áááºá Rebecca Parsons á áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯áá»á¬ážááŒá¬ážááœáẠáá¯ááºáááºážá ááºá¡ááœááºáž áááºááœááºááŸá¯ááá¯ááẠááá¯á¶ážáá±á¬á·áá² á¡ááœááºá¡áá±ážááŒá®ážáááºáᯠáááºáááºá áááºážá¡á á¬áž áá»áœááºá¯ááºááá¯á·ááẠáááºááœááºáá±ážá¡ááœáẠHTTP ááᯠââá¡á¬ážááá¯ážáá¬áá±á¬ááºááŒá®áž áá¯á¶ááŒááºááá±á¬ááºáááºááá¯ááºáá±á
ááá·áºáá²ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸáá·áºá¡áá° áááá¯áá¬ááᬠ(Evolutionary Design)á
MSA á
áá
áºá áááá¯áá¬áááºáá¬ááẠáááœá±á·ááœá±á·ááŒá±á¬ááºážáá²áá¬ááá·áºáááºá áááºáá±á¬ááºááŸá¯áá
áºáá¯á áááºááááááºáá»á¬ážááœáẠááá¯á¡ááºáá±á¬ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠááá·áºáááºááẠá¡ááŒá¶ááŒá¯ááá¯áá«áááºá á¡ááŒá¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážá¡áá±á«áº áááºáá±á¬ááºááŸá¯ááá¯áááºáž ááá·áºááœááºážá
ááºážá
á¬ážááááºááŒá
áºáááºá ááá¬ážááá¯ážáá»áá»ááºážáááºáááºážááŸá¬ á€ááŒá¿áá¬ááᯠáá¬ážááŸááºážáááºááŒááºážááŒáá·áº ááŒá±ááŸááºážááẠááŒáá¯ážá
á¬ážáá±á¬áºáááºáž MSA á áá¬ážááŸááºážááá·áºááœááºážááŒááºážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯áá¬ážáááºá
áá±á¬ááºáá¯á¶ážá¡á¬ážááá¯ážáá¬á¡ááŒá
áºá
áá±á¬ááºáá»ááº
á¡áááºáá±á¬áºááŒáá«á¡á¬ážáá¯á¶ážááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠmicroservices áá»á¬ážááŒá
áºáááºááᯠáá¯á¶áá±á¬áºááá¯ááºáááºá Microservice áááá¯áá¬ááẠáá±ážáááºáá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážá
á¯á
ááºážááŸá¯á¡ááŒá
Ạá¡ááá®áá±ážááŸááºážáá
áºáá¯á
á®ááᯠáááºáá®ážááẠáá»ááºážáááºááŸá¯áá
áºáá¯ááŒá
áºááŒá®áž áá
áºáá¯á
á®ááẠáááºážáááá¯ááºááá¯ááºáá¯ááºáááºážá
ááºááœáẠáá¯ááºáá±á¬ááºáá±ááŒá®áž áá±á«á·áá«ážáá±á¬ááá¹ááá¬ážáá»á¬ážááŸáá
áºááá·áº á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážááŒá¯ááá·áº HTTP á¡áááºážá¡ááŒá
ẠAPI áá
áºáá¯ááŒá
áºáááºá á€áááºáá±á¬ááºááŸá¯áá»á¬ážááẠáá¯ááºáááºážá
áœááºážáá±á¬ááºáááºáá»á¬ážá¡áá±á«áºááœáẠáááºáá±á¬ááºáá¬ážááŒá®áž á¡ááŒáá·áºá¡áá¡áá¯á¶ážááŒá¯á ááœááºáááºá
áœá¬á¡áá¯á¶ážáá»ááá¯ááºáááºá
á¡ááá¯á¡áá»á±á¬áẠááŒáá·áºáá»ááºááŸá¯ ááá¹ááá¬ážá ááœá²ááŒá¬ážáá±á¬ áááá¯ááááºážáááºážáá¬áá¬á
áá¬ážáá»á¬ážááŒáá·áº áá±ážáá¬ážááá¯ááºááŒá®áž áá±áá¬ááá¯ááŸá±á¬ááºááŸá¯áááºážááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á€áááºáá±á¬ááºááŸá¯áá»á¬ážá áááá¯áá»á¯ááºááá¯ááºááŸá¯ á¡áááºážáá¯á¶ážá¡ááá·áºááŸááááºá
source: www.habr.com