á
ááºáááºáᬠáá áá±á¬áºá
ááá¯
ááááºáááºáá±ážááŒááºáž
NB- áá®áá®ááá¯ááŸáá·áº áááºááŒáá»ááºáá»á¬ážááᯠá€ááá¯á·á
áºáá¡áá¯á¶ážááœáẠáááá¯ááºáááºá
áááá«ááºáž
áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº áá¬ááºáááºážáá±á¬ááºážáá áºáá¯ááœáẠá¡á á á¡ááááá¬ááºááœááºááŸáá·áº ááŒááºáá¬ážááŸá¯ááŸááááºá á€á¡á á®áááºáá¶á á¬ááẠááŸá±á·áááá¯ážáá¬ááá¬ááŸáá·áº ááá¯áááºážáááºážááœááºáá±á¬ááºážáááºá áááºážááẠááŒááºáá០microservices áá»á¬ážá¡áá±á«áº á¡ááŒááºááᯠáá¶á·ááá¯ážáá±ážááŒá±á¬ááºážááá¯áááºáž áááááŒá¯ááẠá¡áá±ážááŒá®ážáá«áááºá áá±á«ááºážáá¯á¶ááŒááºá¡ááŒááºáá¯ááºááŒááºáž.
(2015) ááœáẠáá±ážáá¬ážáá° á€ááááºááŒáá·áº á
áááºáá«áááºá
áááºááŸááºáá¬ážáá±á¬áááºááá¯ážááá¯á·áá±á¬ááºááŸááá±á¬ monolithic á¡ááá®áá±ážááŸááºážáá
áºáá¯ááœááºá áá¯ááºáá¯ááºá
áœááºážá¡á¬ážáá»áááºážáá¬áá¯á¶ááá¯ááŒááááºá Microservices áá»á¬ážááẠáááºážááá¯á·ááŸáá·áº áááŠážáá¯ááºáá¯ááºá
áœááºážá¡á¬áž áááá·áºáá»áá±á¬áºáááºáž ááŸá¯ááºááœá±ážááŸá¯áá»á¬áž ááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ á
áœááºážáá±á¬ááºáááºáá»áááºážááŸá¯ááẠáááºážááá¯á·á¡ááœáẠáááá¬áááºááŸá¬ážááŒááºážáááŸááá±á
Kubernetes á¡áá¯á¶ážááŒá¯ááŒááºážááá á¹á á¡ááœáẠá€ááááºááœáẠáá»áœááºá¯ááºááá·áºááá¯ááºáá«áááºá
ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬ážáá«ááá·áº á¡ááºááºáá®áá±ážááŸááºážááẠá¡áááºááŒá±á¬áá·áº ááá¯áá±á¬ááºážááááºážá ááá¯ááá¯á·áá±á¬áááá¯áá¬ááá¬ááẠKubernetes áá
áœááºážáááºáá»á¬ážááŒáá·áº á¡ááŒáá·áºá¡áááœáŸááºážááŒá¯á¶áá¬ážááá·áº áááá¯áá¬ááá¬á¡ááœáẠáá±ážáááºáá±á¬ááá¯á¡ááºáá»ááºáá»á¬ážááᯠááŒáá·áºáááºážáá±ážáá±á¬ááŒá±á¬áá·áºááŒá
áºáááºá á¡ááŒá¬ážáá
áºáááºááœááºá á€áá¯ááºáá±á¬ááºáá»ááºá¡áá»áá¯á·ááẠmonolith á¡ááœááºá¡áá¯á¶ážáááºáááá·áºáááºá á¡áá°ážáááŒáá·áº ááá±á·áá±áẠmonolith ááẠmonolith á¡ááá¡áá»ááá¯ááºáá±á¬ááŒá±á¬áá·áºááŒá
áºááẠ(á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáá±á¬ááºááá¯ááºážááœáẠá¡á
á®áááºáá¶á
á¬ááœááºáá±á¬áºááŒáá«áááº)á
áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá áá±á¬ááºáá¯á¶ážáááẠ(monolithic ááŸáá·áº microservice á¡ááá®áá±ážááŸááºážááŸá áºáá¯áá¯á¶áž Kubernetes áá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááœááºááŸááá±áá±á¬á¡áá«) áááºáá°áááŸáá·áºá¡ááœááºááœá¬ááŒá¬ážááŸá¯áááŸááá«á ááá¯á·áá±á¬áẠKubernetes ááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºáá±á¬ááºááá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáá«áááºá
á¡áá¯á¶ážáááºááŒá®áž á¡áá¹ááá¬ááºááŸááá±á¬ ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬áž
á€ááœáẠá¡ááá á¡áá°á¡áááŸá¬-
áá¬ááŒá
áºááá² áá¯á¶ááŸáẠááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áááá¯áᬠáááºážááẠááá·áºá¡ááœáẠá¡ááŸááºáááẠá¡áá»áá¯ážáá¶á
á¬ážááœáá·áºáá»á¬áž áá±á¬ááºááŒááºážáá±ážááá·áºááŒá®áž ááá·áºáá¯ááºáááºážá
áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá±ážáááºááŒá
áºáááºá ááááºááá¯á·ááŒááºááœá¬ážáá«áá á€áááºááŸá¬-
áá°áááá¯áá±á«áºááẠá¡áá¯á¶ážáááºáááºáááá¯á·áá±á¬áẠááááºá á¡ááŒá¬ážáá
áºáááºááœáẠááŸááááá·áºáááºá á¡áá¹ááá¬ááºááŸááá±á¬ ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬áž (á¡áá¯ááºááœááºá¡ááŸá±á¬áá·áºá¡ááŸááºááŒá
áºá
á±áááº)
"áááºáá
áááºáá°áž" ááá¯á· ááŒááºááœá¬ážáááº- áá»áœááºá¯ááºáá¡ááœá±á·á¡ááŒá¯á¶ááᯠáá¯á¶ážááá¯á¶ááŒááºááá·áºáá«ááá¬ážá áá®ááŸá
áºá¡á
ááááºážá áá«ááŒáá·áºáááºá á
á®áá¶ááááºáž áá
áá¯. áááºážááá¯á·á¡á¬ážáá¯á¶ážááẠááá¯ááºáááá¯áá¬ážáá
áºáá»á¬ážááá¯ááºáá« (áá°ááá¯á·á áá¯á¶ážáá¯á¶áá
áºáá¯á¶á០áá
áºáááºááá·áºááẠááá¯ááá¯á·áá±á¬áááá¯áá¬áááºáá¬áá»á¬ážáá«ááŸááááº)á ááá¯á·áá±á¬áº áááºážááŸá¬ á¡áá±á¡ááœááºáá»á¬ážá
áœá¬ááŸááá±áá²ááŒá
áºáááºá Outsourcers áá»á¬ážá¡áá±ááŒáá·áº áá»áœááºá¯ááºááá¯á· (Flant áá¯áá¹ááá®) ááẠáá¯áá¹ááá®áááºáá»á¬áž (áá±á¬á·ááºáá²áá±ážáá¬ážáá° 5 áŠážááŸá) ááŸáá·áº áá¯áá¹ááá®ááŒá®ážáá»á¬ážááœáẠ(~ 500 developer) ááŸá
áºáá¯áá¯á¶ážááœáẠáá®ááœááºáá¬ážááá·áº application á¡áá»á¬ážá¡ááŒá¬ážááᯠá¡áá»á¬ážá¡ááŒá¬ážááœá±á·ááŒááºááá¯ááºáááºááŒá
áºáááºá áááºáá±á¬ááºážá¡áá»áá¯ážáá»á±ážáá°ážáá
áºáá¯ááá±á¬á· áá®á¡ááºááºáá®áá±ážááŸááºážááœá±á ááŸá
áºááœá±ááŒá¬áá¬áá¬áá²á·á¡áá»áŸ ááá¯ážáááºááŒá±á¬ááºážáá²áá¬áá¬ááᯠááŒááºááœá±á·ááá¬áá«á
á¡áááºááŒá±á¬áá·áº á¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá»á¬áž
microservices ááœá±áá²á· á¡áá»áá¯ážáá»á±ážáá°ážááœá±áá²á· áááºáááºááŒá®áž áá±ážá
áá¬ááŸááá«áááºá
- modularity áááŸááºážáááºážáá±á¬áááºááááááºáá»á¬áž;
- ááœááºáááºáá±á¬ááŒáá·áºáá»ááºááŸá¯;
- áááºážááá¬áá»á¬ážááᯠááœááºáááºá áœá¬ ááœá±ážáá»ááºááœáá·áºááŸááááºá
áá±á¬á·ááºáá²ááºáááá¯áá¬ááá¬ááŸááºáá»á¬ážááŸáá·áº áá±á¬á·ááºáá²áá±ážááœá²áá°áá»á¬ážááŸáá·áº á áá¬ážáá»á¬ážá áœá¬ááŒá±á¬áá²á·ááŒá®áž á¡áááºááŒá±á¬áá·áº áááºážááá¯á·ááẠááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬áž ááá¯á¡ááºááááºážáᯠáá±ážáá²á·áááºá ááŒá®ážáá±á¬á· áá°ááá¯á·áá²á· áá»áŸá±á¬áºááŸááºážáá»ááºá á¬áááºážááᯠáá«áá¯ááºáá²á·áááºá á€ááœááºááŒá áºáá»ááºáá²á·áááº-
á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá»áá¯á·áá±á¬á¡áá»ááºáá»á¬ážááᯠâáá¶á
á¬ážáá»ááºááŒáá·áºâ áá±á¬áºááŒáá«áá
- modules áá»á¬ážááááºááááááºáá»á¬ážááá¯ááŸááºážááŸááºážáááºážáááºáž: á€áá±áá¬ááœááºáá»áœááºá¯ááºááá¯á·áááŒá±á¬ááºáááºááœááºáá±á¬ááºážáá±á¬ monolith ááŸáááŒá®ážááá¯á¡áá¬á¡á¬ážáá¯á¶áž "á ááºáá±á«áºá" ááŸáááá·áº Git repositories ááœááºá¡áá¬á¡á¬ážáá¯á¶ážááá¯áá±áááºá áœá¬á á®á ááºáá¬ážáááºááŒá áºááŒá®ážá ááœá±ážááœá±ážááŸá¯ááŸáá·áºáá»á±á¬á·áá»á±á¬ááºážáááºááá±á¬ááœá±ážáá«á
- ááŒáá·áºáá»ááºááœááºáááºááŸá¯- áá»áœááºá¯ááºááá¯á·ááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááá¯ááá¯ááŒááºáááºá á±áááºá¡ááœáẠáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáá®ážááŒá¬ážááœááºáááºá áœá¬ ááŒáá·áºáá»ááºááá¯ááºáá«ááẠ(á¡ááºá¹áá«áááºá¡áá áºáá»á¬ážááᯠááŒáá¯ááºáá°áá¯ááºáá±áá«);
- ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááœááºáááºááŸá¯- áá»áœááºá¯ááºááá¯á·ááẠá€á¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯ááᯠá¡ááœá²á·/ developer áá áºáá¯á¡á¬áž áá±ážáá±á¬ááºááá¯ááºááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠááá¯ááá¯ááŒááºáááºá áœá¬ ááœá¶á·ááŒáá¯ážááá¯ážáááºááá¯ááºáá±á¬ááŒá±á¬áá·áº áá áºáá¯ááŸáá·áºáá áºáá¯á
- бПááá¯ááá¯áá¯á¶ááŒááºá áááºáá»áááŸá¯- áá áºá áááºáá áºááá¯ááºážááŒáá¯ááœá²ááŸá¯ááŒá áºáá±á«áºáá«á (20 ááœáẠmicroservice áá áºáᯠááŒá¯ááºáá»áááº)á ááá¯á·áá±á¬áẠááá¯ááºáá áºáá¯áᬠá¡áá¯ááºááá¯ááºáá±á¬á·áá² á áá áºáá áºáá¯áá¯á¶áž áááºáááºáááºáááºáá±áááºááŒá áºáááºá
ááá¯ážááá¯áž (á¡áá¹ááá¬ááºááŸááá±á¬) microservice áááºáá±á¬ááºáá¯á¶
áá¬ááŒá±á¬áá·áº á¡ááŒá áºááŸááºá áá»áœááºáá±á¬áºááá¯á· áá»áŸá±á¬áºááá·áºáá¬ážáááᯠááá¯ááºáá°ážááá¯áá¬ááᯠááŸááºážááŒááá¯á· áá»áœááºáá±á¬áº áááºááŒáá«áááºá á á¯áá±á«ááºáž ááá°áá®áá±á¬ ááá±á¬áá»ááºáá»á¬ážá áœá¬á០á¡ááœá±á·á¡ááŒá¯á¶áá»á¬ážááᯠá¡ááŒá±áá¶á ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áááá¯áá¬áá¯á¶á
á¥ááá¬áá áºáá¯ááẠAmazon ááá¯á·ááá¯áẠá¡áááºážáá¯á¶áž OZON ááŸáá·áºááŸááºááŒáá¯ááºááá·áº á ááá¹ááá¡áœááºááá¯ááºážá ááá¯ážáá áºáá¯ááŒá áºáááºá áááºážá ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯ áááá¯áá¬áááºáá¬ááẠá€áá²á·ááá¯á· ááŒá áºáááº-
á¡ááŒá±á¬ááºážá¡áá»áá¯ážáá»áá¯ážááŒá±á¬áá·áº á€á¡áá±ážá
á¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠááá°áá®áá±á¬ááááºáá±á¬ááºážáá»á¬ážááœáẠáá±ážáá¬ážáá¬ážáá«áááºá
ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá
áºáá¯á
á®ááœáẠááá¯ááºááá¯ááºá¡á¯ááºáá»á¯ááºááœáá·áºááŸáááááºááŒá
áºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·á¡áá»á¬ážá
á¯ááẠáááºážááá¯á·áááá¯ááºááá¯ááºáá±áá¬áá±á·á
áºááŸáá·áº áááºááŸáºáá»á¬áž ááá¯á¡ááºáááºá áá±á¬ááºáá¯á¶ážáááºáá±á¬ááºáá¯á¶ááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá
áºáááºá
áááºážáá¡áá»áá¯ážáááºáá»á¬ážáá¬áž á¡áááºáááºážá
Fowler áááºáž áá®ááá¯áá«
ááŒá®ážáá±á¬á· áá»áœááºáá±á¬áºááá¯á·áá²á· áá»áŸá±á¬áºááŸááºážáá»ááºááœá±ááᯠááá¯ááºáá»á±á¬áá®ááœá±ááŒá
áºá¡á±á¬áẠáá¯ááºááŒáá·áºáááºá
áá±á¬áºáá»á°ážáá»á¬ážá áááºááááááºáá»á¬ážááᯠááŸááºážáááºážáááº...
áá«áá±áá²á· áá»áœááºá¯ááºááá¯á· á¡ááŸááºáááẠááŒá¯ááŒááºááẠmicroservice áááºáá»áŸááá¯á¡ááºááááºážáá¡ááŒá±á¬ááºážá¡áá²ááᯠáá¯ááºááá¯á·áá¬ážá ááŒáá·áºáá±áá¬ážáá±á¬ ááŒá±áá¬áá¶ááá«áá² á¡áá¬á¡á¬ážáá¯á¶áž áááºááá¯á·á¡áá¯ááºáá¯ááºáááºááá¯ááẠáá»áœááºá¯ááºááá¯á· á¡ááŒá±ááŸá¬ááá¯ááºááá¬ážá
áá¯á¶á
á¶ááŸááá«áááº"
ááŒáá·áºáá»ááºááœááºáááºáá±áž...
áááºážááá¬á¡áá áááºážááᯠá¡á±á¬ááºááŒááºááŒá®ážáá«ááŒá®- áá»áœááºá¯ááºááá¯á·ááẠááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá áºáá¯á á®ááᯠáá®ážááŒá¬ážááœá²áá¯ááºááá¯ááºáááºá áá«áá±ááá·áº áááºááœá±á·ááŸá¬ á¡ááŒá²áááºáž ááœááºáá±á«áºáá¬áá¬ááᯠááá·áºááœááºážá ááºážá á¬ážááá¯á· ááá¯áá«áááºá ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬ážá áœá¬, áá«ááá¯á·á¡áá±á¬áá·áºááá¯á·áá°ááá¯á·ááá¯á¡ááºáá«áááºá áááºážááá¯á·á ááŒáá·áºáá»áááŸá¯ á¡á á®á¡á ááº. áá±á¬ááºážáá±á¬áááºážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠááŸááºáááºáá±á¬á¡á á®á¡á ááºááŒáá·áº áá¯ááºááœáŸááºááŒááºážááŸááááŸá áá®ážááŒá¬áž circuit áá áºáá¯ááœáẠá ááºážáááºááẠááá¯á¡ááºáá«áááºá
áááºážááá¬ááᯠááœááºáááºá áœá¬ááœá±ážáá»ááºááœáá·áº...
áá°áááŸá¬á ááœááºáááºááŸá¯áᬠááá¬ážáá²á·ááŸá¯ááŸá¬ áááŒá¬áá ááœáŸááºážááá¯ážáá±áááºááá¯áᬠáááááá«á áááºážááá¯á·ááŸáá·áº âáá á¬ážâ ááẠáááºážááá¬áá»á¬ážááᯠáááœá±ážáá»ááºááẠá€áá±áá¬ááœáẠá¡ááœááºá¡áá±ážááŒá®ážáá«áááºá
ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±áž ááœááºáááºáá±áž...
á¡ááá®áá±ážááŸááºážáá áºáá¯áá¯á¶ážá¡ááœáẠ(á¡á áááºá¡ááá¯ááºážáá»á¬ážá áœá¬áá«ááŸááá±á¬) á ááºážáááºááœááºážááᯠáááºááá¯á·ááŒá¯áá¯ááºááááºáááºážá áá«áá±ááá·áº áá±ááºáá®á¡á±á¬áẠááááºážáá¬ážááá¯á· ááá¯áá«áá±ážáááºá á€á¡áá¬á¡á¬ážáá¯á¶ážáááºá¡áá»ááºááá¯ááŒá áºáá±á«áºá á±áááºá á ááºážáááºáááºáááºážáá»á¬ážáá¡ááŸááºááááºá¡áá±á¡ááœááºáá°á¡áá á¡áááºážáááºáá»áŸáá¬ááœááºáááºá.
á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠá ááºááœááºážááœáẠááŒáá·áºáá»ááºá¡áá¯á¶ážááŒá¯ááŒááºážááŸá¬ áááºááá¯á·áááºážá á áá±á¬á·ááºáá²áá±á¬á·ááºáá²ááºááẠáááºážááá¯ááºáááºážááᯠá¡ááŸá®á¡ááá¯áááºážá áœá¬ áá¯ááºáá±á¬ááºáá±á·ááŸááá±á¬áºáááºáž "áá»áááºáž" áá¯ááºáá±á·ááŸááá±á¬ááŒá±á¬áá·áº áááºáááºážá ááºážáááºááẠá¡ááá²á·áááºá¡áá á á±á¬áá·áºááá¯ááºážáá±á¬ááŒá±á¬áá·áº ááŒá áºáááºá
áá®ážááŒá¬áž á¡ááá¯ááºážá¡áá¬...
áá¯ááºáá²á·á áá«áá±ááá·áº á¡áá¯á¶ážááŒá¯áá²á· DBMS á§áááá¬ááŸá¬ á¡ááá·áºá¡áááºááŸááá«áááºá áá±ážáá¬ážáá±á¬áááá¯áá¬ááá°áá¬ááœáẠCassandra ááẠááŒá¿áá¬ááŸááááºááá¯ááºáá±á¬áºáááºáž MySQL ááŸáá·áº PostgreSQL ááẠááŒá¿áá¬ááŸááááá·áºááẠá
ÐПááá¯ááá¯áá¯á¶ááŒááºá áááºáá»ááá±á¬ ...
áááºááœá±á·ááœáẠmicroservice áá áºáá¯á áá»ááºááœááºááŸá¯ááẠá áá áºáá áºáá¯áá¯á¶ážá ááŸááºáááºáá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááŒá¬áá áá»áá¯ážáá»ááºááá¯ááºáá¯á¶áá¬áá ááŒá¿áá¬á¡áá áºáá áºáá¯áááºáž ááŸááá«áááºá microservice ááá¯ááºážááœáẠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠáá¶ááá¯ááºáááºááŸáá¡á±á¬áẠááŒá¯áá¯ááºááŒááºážááẠá¡ááœááºáááºáá²áááºá. á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº microservices áá»á¬ážááẠááá°áá®áá±á¬áááºážááá¬áá»á¬áž (memcacheá Redis á áááº) ááá¯á¡áá¯á¶ážááŒá¯áá±á¬ááŒá±á¬áá·áº áááºáá áºáŠážá á®ááá¯ááºážá¡ááœáẠá¡áá¬á¡á¬ážáá¯á¶ážááᯠááœá±ážáá±á¬á ááºážá á¬ážááŒá®áž áááºážááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááẠááá¯á¡ááºáá±á¬áºáááºážá ááŒá áºááá¯ááºáá±á¬áºáááºáž á¡áááºážá¡ááŒá áºáá»á¬ážá áœá¬ááá¯á¡ááºáá«áááºá
Load ááá¯ááºážáá¬ááŸá¯...
áá«á ááááºáá±á¬ááºážáá«áááºá
á¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážá "áá±á«á·áá«ážááŸá¯" ...
áá«ááá¯á·ááŸá¬ á¡ááŒá®ážááŒá®ážáá² ááá¯ááºáá¬ážá ááœááºáááºáá±á«áºááá± (DNS á¡ááœáẠáá±á¬ááºážááá¯ááŸá¯áá»á¬áž áá»á¬ážááŒá¬ážáá±áááºá á áááº)á ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á· á áááºáá²á·ááá·áº áá»á¬ážááŒá¬ážááŸáá±á¬ á á¯á¶á ááºážáá±ážááŒááºážááŸá¯áá»á¬ážááŒá±á¬áá·áº ááŒá áºáááºá á¡áá»ááºá¡áááºááᯠáá¯á¶áá°áá°ážáá«á (store caches) ááẠáá»á¬ážááŒá¬ážááŸáá±á¬ ááá¯ááŸá±á¬ááºááŸá¯ááá¬áááᯠááŒá áºá á±áááºá
á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááá»áŸá±á¬áºááá·áºáá»ááºáá»á¬ážááᯠááŒáá·áºáá®ááŒááºážáááááºááŒá áºáááºá
áá«ááá±áá»á·á
áá¬ááŒá áºááá¯á·áá²ááá¯áá±á¬á·:
- ááŒá áºááá¯ááºáá»á±áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á·áá»áºáááºá áºáá áºáᯠááá¯á¡ááºáá«áááá·áºáááºá
- á¡áá»áááºááŸáá·áºáááŒá±ážáá® áááááºáááºáž á¡áááºáá°ážáá°áááºážá áá áºáá¯áááºáž á¡á á áºá¡ááŸáẠáááºážá¡ááœáẠá¡ááœá¬ážá¡áá¬ááᯠááááºááẠááœá±ážáá»ááºááŸá¯ááŒá áºáááºá áá«áá±ááá·áº á¡á²áá«ááᯠáá¯ááºáá¯ááºááŸá¯ááŸá¬ áááºááᯠáá¯ááºááá²á
- áá±áá¡áá»á¬ážá¡ááŒá¬ážááᯠáá¶á·ááá¯ážáá°áá®ááŒááºážá¡ááŒá±á¬ááºáž ááŒá±á¬áá±áá»áŸáẠáááºážááá¯á·áá áºáá¯á á®ááœáẠáá±ááŸááºáááºáá¶á·ááá¯ááºááŒá²áá±áž á ááºážáá¯á¶ážáá±ážááẠá¡ááœááºáá¯ááºá¡á¬áž áá»á¬ážáá±á¬ á¡áá¯ááºááŒá áºáááºá
- áááá¯áá»á¯ááºááá¯ááºááŸá¯ ááŒá¯ááŒááºááŒá±á¬ááºážáá²áá±áž ááŒá¿áᬠáá±á«áºáá±á«ááºáá¬áááºá á¥ááá¬á¡á¬ážááŒáá·áºá PHP áá¬ážááŸááºážááᯠá¡ááºááááºáá¯ááºááẠááá¯á¡ááºáá«áá repository áá áºáá¯á á®ááá¯á· á¡ááºááŸá¶ááẠááá¯á¡ááºááẠ(áááºážááá¯á·áá²á០áá«áááºáá»á¬ážá áœá¬ááŸááááº)á
- áá¯ááºáááºážáááºáááºááŸá¯ááá¯ááºáᬠááŸá¯ááºááœá±ážááŸá¯ááœáẠááá¯ážáááºááŸá¯ááẠáááºáá»ááºááá®á ááááºážááááºážááŒá áºáááºá
áá«ááœá±á¡á¬ážáá¯á¶ážáá²á· áá¬áá¯ááºáááá²á
monolithic application ááŒáá·áºá
áááºáá«á. Fowler áá²á· á¡ááœá±á·á¡ááŒá¯á¶
áá±á¬ááºááẠá¡ááá¯ážáááºáá±á¬ á¡ááœá±ážáá áºáá¯ááŸá¬ ááá¯ááºáááá¯áá¬ážáá áºáááá¯áá¬áá«ááŸááá±á¬ ááá±á¬áá»ááºáá áºáᯠá¡á±á¬ááºááŒááºáááºá¡ááœáẠáááºááẠáá±á¬ááºážá áœá¬ áááá¬ážáááẠááŒá áºáááºá áá¬áá¬áááºáááºáááºááŸáá·áº microservices ááŒá¯áá¯ááºáááºáž. áá¬áá¬áááºáá áºáá¯ááᯠáá±á·áá¬ááẠá¡áá±á¬ááºážáá¯á¶ážáááºážáááºážááŸá¬ monolith áá áºáá¯ááŒá¯áá¯ááºáááºááŒá áºáááºá
áá«áá±ááá·áº áá«ááá¯á· áá®á¡ááŒá±á¡áá±áá±á¬ááºáá±ááŒá® ááá¯áááºáá±á¬á
ááŒá¿áá¬áá áºáá¯áá¯ááᯠááŒá±ááŸááºážááá¯á· áááá¡ááá·áºá á¡á²áá«ááᯠááá±á¬áá°ááŒá®áž ááŒá¿áá¬áá áºáá¯ááá¯á· áá¬ážáááºáá¬ážáááºá áá«ááá¯á· áááºááŒá®ážáá¯áá¹áááá±ážáá»ááºáá±á¬á·áá°ážá
á¡áááºá ááŒá®ážááœá¬ážáá±áá±á¬ ááá¯áá®áá¯á¶ážáá áºáᯠ(áááºážá¡ááœáẠá¡ááá¯á¡áááºážá¡ááŒá áºáá»á¬áž áááºáá°ááẠá¡ááœáá·áºá¡áááºáž áá¯ááºáá¯á¶ážááœá¬ážáá±á¬á¡áá«) ááŒááºáá±á¬ááºááá¯ááºáá»áŸáẠááá·áºáá»ááºáááºáá¬ááºáááºáž áá±á«áºáá¬áááº- á¡ááœááºá¡áá»áœá¶ microservices áá»á¬ážá ááá°áá®ááá¯ááºáá±á¬á·áá² á¡ááá·áºá¡áá¬áž ááŒá áºáá±áá±á¬á¡áá«á ááá¯áá»áŸá¶áá¬ááœá±ááᯠááŒááºááŒá®áž áá»á²á·ááá¯ááºáá«á!
á¥ááá¬á¡á¬ážááŒáá·áº á¡áááºáá±á¬áºááŒáá« á á¯áá±á«ááºážáá¯á¶ááááºá¡ááœáẠ...
áá±ážááœááºážáá¯ááºá áá¬á¡áá±á¬ááºážáá¯á¶áž á¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáááºááŸá¬ážááá¯ááºáá«-
ááŸá±á·áááºážáá»áá¯ážáááºá¡ááœáẠáá¬áááºááŸááá±á¬ ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠáá±á«ááºážá
ááºáá«-
... áááºááá¯ááºááá¯ááºáááºááá·áºá¡ááá¯ááºáž (áá±ááºááŸáá·áºáá¯á¶ááŸááºá áá
áºáá¯áááºážááŒáá·áºáá±ážáá¬ážáá¬ážáá±á¬ microservice áá
áºáá¯áá²ááá¯á·) áá¬áá¬á
áá¬áž/áá±á¬ááº-
áááºážááœáẠORM áá
áºáᯠ(DBMS áá
áºáá¯) ááŸáá·áº ááááá¯á¶áž application ááŸá
áºáá¯áá«ááŸááááºá
... ááá¯á·áá±á¬áº áá±áá°áá»á¡á¬ážááŒáá·áº áááºááẠá¡á±á¬ááºáá«ááááºááᯠáááŸáááŒá®áž ááá¯áá±áá¬ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááá¯ááºáááº-
ááá¯á·á¡ááŒááºá Kubernetes ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá€á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá®ážááŒá¬ážá¥ááá¬áá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºáááºá ááá¯ááá¯áááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠáááºááᯠááá¯ááºážáá¬ááá¯ááºááŒá®áž áááºážááá¯á·ááᯠáá®ážááŒá¬ážá
á®á
áá±ážááá¯ááºáá²ááŒá
áºáááºá
á¡ááŸá áºáá»á¯ááºáááº
ááá¯ááŒá®ážáá²á·áá¯á¶ááá¯ááŒáá·áºáá«á áááŒá¬ááááá¯áááá¯á áá áºá á¯á¶áá áºáá±á¬ááºááẠáááºážááá¯á·ááá¬áááºááᯠáá°áá²á·áá±á¬áºáááºáž "ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áá á¬ážáááº" áá¯ááºáá»ááºáá±á¬ááŒá±á¬áá·áº áááŒá¬ááááá¯áááᯠáá±á«áºáá±á«ááºáá¬áá«áááºá
"á¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá»á¬áž" áá°áá±á¬á áá¬ážáá¯á¶ážááœáẠ"ááá¯ááºáááá¯" á¡ááá¯ááºážááẠáááá¯á¡ááºáá±á¬á·áá«á. áááºážááá¯á·ááẠááŒá®ážáá¬ážáá±á¬ monolith áááºáá±ážáááºáá±á¬ááŒá±á¬áá·áºáᬠáááºážááá¯á·ááẠ"ááá¯ááºáááá¯" ááŒá áºáááºá áá«áá±ááá·áº á¡á²áá«ááœá±ááᯠá¡áá±ážá¡ááœáŸá¬ážááá¯á· ááá°ááá«áá²á·á
áá±á¬ááºáá¯á¶áž á¡ááœá±ážáá áºáá¯á¡ááœááºá áá°áááºážááá¬ážááá¯á· ááŒááºááœá¬ážááŒáá«á áá¯á·á
á¡á²áá®á¡áá±á«áºááŸá¬ áá±ážáá¬ážáá²á· ááŸááºá
ᯠ(áá¬áááºá¡áá±á«áº) ááœááºááœááºáá°á
á±áá±á¬á¡áá»áẠááá·áºááá±á¬áá»ááºááᯠáááºáá®ážáá±ážááá·áºá¡ááœá²á·á áá»áœááºážáá»ááºááŸá¯ááẠá¡ááŒá²áááºáž á¡áááááŒá
áºáááºá - áááºážááá¯á·ááẠááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áá±á¬áºáá®áá¬áá»á¬ážááŒá¬ážááœáẠáááºáááœá±ážáá»ááºááŸá¯ááœáẠá¡áááá¡áááºážááá¹áá០áá«áááºáááºááŒá
áºáááºá á¡ááœá²á·ááœáẠáá¯á¶áá±á¬ááºáá±á¬ áá»áœááºážáá»ááºááŸá¯ áááŸááá±á¬áºáááºáž áááºážááẠááá¯ááºáááá¯áá±á¬á·ááºáá²áá»á¬ážááᯠá
áááºáá¯ááºáá±á¬ááºáá«áá áá¬ááºáááºážááẠáá»áááºážáá±áá±ááœá¬ážáááºááŒá
áºáááºá
áá®áá®ááá¯áá»á¬ážááŸáá·áº áááá¯ááºáá»á¬áž
áááá·áºááœááºážá០áá®áá®ááᯠ(~50 áááá áºá áá¶ááá±á¬ááºážá áœá¬ááŒáá·áºá áááºážááẠá¡á á®áááºáá¶á á¬á áá¶á á¬ážáá»ááºááᯠááŒá®ážáá¬ážá áœá¬ áá¯á¶ážááŒááºáá¬ážááá·áº á§áá·áºáááºáá»á¬ážá ááŒá±á¬ááºááŒá¬ážá áœá¬áá±á¬ á áááºáá¶á á¬ážááŸá¯áá»á¬ážááᯠááá±á¬áºááŒáá²á ááá¯á·áá±á¬áº áááºážááẠá€á¡ááá¯ááºážááŒá áºáááº)á
á¡á á®áááºáá¶á á¬áááºááŒáá»ááº-
PS
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááŸá á¡ááŒá¬ážá¡á á®áááºáá¶á á¬áá»á¬áž-
- «
á á±á¬áá·áºááŒáá·áºááŒááºážááŸáá·áº Kubernetes » (Dmitry Stolyarov; áá±á 28 áááºá 2018 ááœáẠRootConf); - «
Kubernetes ááŸáá·áº GitLab ááŒáá·áº á¡áá±á¬ááºážáá¯á¶áž á¡áá±á·á¡áá»áá·áºáá»á¬áž CI/CD » (Dmitry Stolyarov; ááá¯áááºáᬠ7á 2017 ááœáẠHighLoad++); - «
ááá±á¬áá»ááºáááºáá»á¬ážááœáẠKubernetes ááŸáá·áº áá»áœááºá¯ááºááá¯á·áá¡ááœá±á·á¡ááŒá¯á¶ » (Dmitry Stolyarov; ááœááºá 6á 2017 ááœáẠRootConf); - «
áá»áœááºá¯ááºááá¯á·ááẠdapp ááŒáá·áº CI/CD á¡ááœáẠDocker áá¯á¶áá»á¬ážááᯠáá»ááºááŒááºá áœá¬ á¡áááºááŒá±á áœá¬ áááºáá±á¬ááºáá«áááºá » (Dmitry Stolyarov; ááá¯áááºáᬠ8á 2016 ááœáẠHighLoad++); - «
Docker ááŒáá·áº á ááºáááºáááŒáẠáá±ážááá¯á·ááŒááºážá¡áá±á·á¡áá»áá·áºáá»á¬áž » (Dmitry Stolyarov; áá±á 31 áááºá 2016 ááœáẠRootConf).
á¡á±á¬ááºáá±á¬áºááŒáá« á á¬á á±á¬ááºáá»á¬ážááᯠáááºáááºáž á áááºáááºá á¬ážááá¯ááºáááº-
- «
2018 ááœáẠmicroservice áá°ážááœááºááŸá¯ááŒá±á¬áá·áº áá±áá¯á¶ážáá²á·áááºá "; - «
Google á¡á ááœááºááááºáá¬á¡áá¯á¶ážááŒá¯ááŒááºážá¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážá¡áá±á·á¡áá»áá·áº 7 áᯠ"; - «
Kubernetes ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠá áááºáá±á«áºááŸá¯áá»á¬ážááá¯ááºáᬠThe New Stack á០ááááºážááááºážáá»á¬áž "á
source: www.habr.com