Josh Evans ááẠá¡ááŒá±áá¶á¡áá»ááºáá»á¬áž - á¡áá±ážá
á¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážá ááá¹áá¬áá±áá ááŒáá·áºáá±ááŸá¯á
áá
áºáá»á¬ážááŸáá·áº áááºááá¯ááºááá·áº á
áááºáá±á«áºááŸá¯áá»á¬ážááŸáá·áº áááºážááá¯á·á á¡áá»áá¯ážáá»á±ážáá°ážáá»á¬ážááᯠá
áááºááŒááºážááŒáá·áº Netflix microservices á áááá¯ááá²ááŸáá·áº á¡áá±á¬ááºá¡ááœá±ážá
á¯á¶áááºáá±á¬ ááá¹áá¬á¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáááºá á€á¡ááŒá±áá¶á¡á¯ááºááŒá
áºááᯠáááºáá±á¬ááºááŒááºážááŒáá·áº á¡áá±ážá
á¬ážáááºáá±á¬ááºááŸá¯ááᯠáá»áœááºážáá»ááºááá¯ááºááá¯ááºá
áœá¬ áŠážáá±á¬ááºááá¯ááºá
á±ááá·áº áááºáá»á±ážááŸá¯á áááá¯áá¬ááŸáá·áº áá¯ááºáááºážáááºáááºááŸá¯ááá¯ááºáᬠá¡áá±á·á¡áá»áá·áºáá»á¬ážááᯠá
á°ážá
ááºážáá±á·áá¬áááºá
áá¯ááºáááºážáááºáááºááŸá¯ áá»á¶á·ááœáá·áºááŒááºážááŸáá·áºááá°áá²á áááºáá±á¬ááºááŸá¯ááá¯ááºáᬠááá¯ááºáá¶ááá¬á¡ááœááºáá°ážááŒá±á¬ááºážááŸá¯á¡ááœáẠáá¬áá¬á áá¬ážá¡áá áºáá»á¬ážááŸáá·áº ááœááºááááºáá¬áá»á¬ážáá²á·ááá¯á·áá±á¬ áááºážááá¬á¡áá áºáá»á¬ážááᯠááááºáááºááŒááºážááẠáááºáááºážáá»ááºá¡ááœáẠááŸá¯ááºááœá±ážááŸá¯á¡áá áºáá»á¬ážááᯠáá±á«ááºážááá·áºááẠáááááŸáááŸá áá¯á¶ážááŒááºáá»ááºáá»á¬ážááŒá áºáááºá Java ááŸáá·áº EC2 ááá¯á¡ááŒá±áá¶á ááŒáá¯áááºáááºááŸááºáá¬ážáá±á¬ á¡áá±á¬ááºážáá¯á¶ážá¡áá±á·á¡áá»áá·áºáá»á¬ážá¡ááŒá ẠNetflix á¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážáááºážááá¬áááºážááŒááŒá±áá¯á¶ááœáẠáá»áœááºá¯ááºááá¯ááºáááºážáá±á¬ááºááœááºááŸá¯á¡ááœá²á·ááẠá á¶ááŒá¯áááºááŸááºáá¬ážáá±á¬áºáááºáž áá¯ááºáááºážááŒá®ážááœá¬ážáá¬áááºááŸáá·áºá¡áá»áŸ developer áá»á¬ážááẠPythoná Rubyá Node-JS ááŸáá·áº Docker áá²á·ááá¯á·áá±á¬ á¡á áááºá¡ááá¯ááºážá¡áá áºáá»á¬ážááᯠá áááºááá·áºááœááºážáá¬ááŒáááºá
áá±á¬ááºáááºáá»á¬ážá ááá¯ááºááŒá¬ážáá»ááºáá»á¬ážááᯠáá
á±á¬áá·áºáá² áá»áœááºá¯ááºááá¯á·ááá¯ááºáá¯ááºááᯠáá±á¬ááºážááœááºá
áœá¬áá¯ááºáá±á¬ááºááá¯ááºá
á±áááºá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠááááá¯á¶áž áá±á¬ááºáá¶á¡á¬ážáá±ážáá²á·ááŒááºážá¡ááœáẠá¡ááœááºáá¯ááºáá°áááºážááŒá±á¬ááºáááá«áááºá á¡á¬ážáá¯á¶ážá ááá¯ážááŸááºážáá±á¬ááºáá«ááŒá® - áá»áœááºá¯ááºááá¯á·ááœáẠPython ááŸáá·áº Ruby ááœáẠback-office application á¡áá»áá¯á·ááŸááá«áááºá ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·ááááºáá±á¬á·ááºáá²áá±ážáá¬ážáá°áá»á¬ážááẠJVM ááᯠá
áœáá·áºáá
áºááŒá®áž áááºááᯠááœáŸá±á·áá±á¬á·áááºáᯠááŒá±áá¬áá±á¬á¡áá«ááœáẠááá¯ááá¯á
áááºáááºá
á¬ážá
áá¬áá±á¬ááºážáá¬áááºá Node áá±á¬á·ááºáá²ááºááááºáá±á¬ááºážááá¯á· á¡ááá®áá±ážááŸááºážá js. Docker ááᯠááááºáááºááŒá®ážáá±á¬ááºá á¡áá¬áá»á¬ážááẠááá¯ááá¯ááŸá¯ááºááœá±ážáá¬áááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯áá¹áááá±áááᯠááá¯ááºáá¬ááŒááŒá®áž áááºážááá¯á·ááẠáá±á¬ááºáááºáá»á¬ážá¡ááœáẠá¡áááá¹áá¬ááºáá»á¬ážá
áœá¬ááŸááá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááᯠáá±á¬ááºáááºáá»á¬ážá¡ááœáẠá¡áá±á¬ááºá¡áááºáá±á¬áºáá±á¬á¡áá«ááœáẠáá»áœááºá¯ááºááá¯á·áááŸááá¬áá±á¬ áááºážááá¬áá»á¬ážááẠáááºááœá±á·ááŒá
áºáá¬áá«áááºá áá¬ááŒá±á¬áá·áºáá®ááá¯ááŒá
áºáá¬áá² ááŒá±á¬ááŒáááºá
API Gateway ááẠUI developer áá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŸááºáá»á¬ážá¡ááŒá Ạáá¯ááºáá±á¬ááºááá¯ááºááá·áº áá±á¬ááºážááœááºáá±á¬ script áá»á¬ážááᯠáá±á«ááºážá ááºááá¯ááºá áœááºážááŸááááºá áááºážááá¯á·ááẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááŒá¯áá¯ááºááŒá®ážáá±á¬áẠáááºážááá¯á·ááᯠáá¯ááºáá¯ááºááŒá®ážáá±á¬áẠá¡áá¯á¶ážááŒá¯áá°á ááºáá á¹á ááºážáá»á¬ážááá¯á· á¡áá¯á¶ážáá»ááá¯ááºá á±ááẠá€áá²á·ááá¯á·áá±á¬áááºážááŒáá·áº á€á ááá áºáá áºáá¯á á®ááᯠááŒá±á¬ááºážáá²á·ááŒá®ážá á€ááŒá±á¬ááºážáá²ááŸá¯á¡á¬ážáá¯á¶ážááᯠAPI ááááºáááœáẠáá¯ááºáá±á¬ááºááá·áº á¡áá¯á¶ážááŸááºáá»á¬ážááŸáá·áº áááºáá°ááŒá¯áá«áááºá
ááá¯á·áá±á¬áºá áááºážááẠá¡áá»áá¯ážáá»áá¯ážáá±á¬ áá»áá¯á·ááœááºážááŸá¯á¡ááŒá±á¡áá±áá»á¬áž ááŒá áºááœá¬ážááá·áºáá¯á¶á á¶ááŒáá·áº API áááºáá±á¬ááºááŸá¯ááᯠáá¯ááºáá»á¬ážááŒáá·áº ááŒáá·áºáá»áŸá¶áá±áá±á¬ monolith á¡áá áºááᯠáááºáá®ážááŒááºážá ááŒá¿áá¬ááᯠáááºáá«ááá²áá² ááŒá áºá á±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá»áá¯á·áá±á¬ á¡áá¯á¶ážááŸááºáá»á¬ážááᯠáááºááŸá¬ážááŒááºáž ááá¯á·ááá¯áẠScript áá»á¬ážááẠAPI áááºáá±á¬ááºááŸá¯á áááŸáááá¯ááºáá±á¬ ááŸááºáá¬ááºá¡á¬ážáá¯á¶ážááᯠáá°áá±á¬ááºááœá¬ážááá·áº áá¬ážááŸááºážáá»á¬ážá áœá¬ááᯠáá¬ážááŸááºážáá»á¬ážá áœá¬ááᯠáá»áááºážáá¯ááºáá±ážáá«áááºá
á€á¡áá¯á¶ážááŸááºáá»á¬ážááᯠAPI áááºáá±á¬ááºááŸá¯á០ááœá²áá¯ááºááŒááºážááẠáá¯áá¹áááááºáá«áááºá áá«ááá¯áá¯ááºááá¯á·á Docker containers ááŸá¬ áá±ážáááºáá²á· á¡ááá®áá±ážááŸááºážááœá±á¡ááŒá Ạá¡áá¯ááºáá¯ááºáá²á· Node.js á¡á áááºá¡ááá¯ááºážááœá±ááᯠáááºáá®ážáá²á·áá«áááºá áááºážááẠဠnode á¡ááá®áá±ážááŸááºážáá»á¬ážááŒá±á¬áá·áº ááŒá áºáá±á«áºáá¬áá±á¬ ááŒá¿áá¬áá»á¬ážááŸáá·áº áá»ááºá á®ážááŸá¯áá»á¬ážááᯠááœá²áá¯ááºááá¯ááºá á±áá²á·áááºá
á€ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá áá¯ááºáá»á ááááºááẠá¡ááœááºááŒá®ážáá¬ážááŒá®áž á¡á±á¬ááºáá«á¡áá»ááºáá»á¬áž áá«áááºáá«áááºá
- áá¯ááºáá¯ááºáááááá¬áá»á¬ážá áááºážááá¬á¡áá
áºáá»á¬ážááᯠá
á®áá¶ááá·áºááœá²áá¬ááœáẠUI á¡ááœá²á·ááẠáááá±á¬ááºáá±á¬áá¯á¶á
á¶áá
áºáá¯áááºáá®ážááẠá¡ááœááºáá±á¬ááºážááœááºáá±á¬ scripts áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áᬠá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááᯠá
á®áá¶ááá·áºááœá²ááẠá¡áá»áááºáá»á¬ážá
áœá¬áááá¯á¡ááºáá² scripts áá»á¬ážáá±ážáá¬ážááŒá®áž áááºážááá¯á·ááá¯ááºáá±á¬ááºááá¯ááºá
áœááºážááᯠá
á
áºáá±ážáááºáá¬ááŸááá±á¬ááŒá±á¬áá·áº áááºážááá¬á¡áá
áºáá»á¬ážááᯠá
á®áá¶ááá·áºááœá²áá¬ááœáẠáááááá¬á¡áá
áºáá»á¬ážááá¯á¡ááºáá«áááºá
Opportunity Insight and Sorting - á¡áááá¥ááá¬áá áºáá¯ááŸá¬ á áœááºážáá±á¬ááºáááºáá¬ááºáá±á¬ááºážá¡áá»ááºá¡áááºááᯠáá±á¬áºáá¯ááºááẠááá¯á¡ááºáá±á¬ áááááá¬á¡áá áºáá»á¬ážááŒá áºáááºá áááá¯áááºáá¬ááᯠáááºáá»áŸááááºážááá¯ááºáá¬ážááááºážá áááºááá¯áá®ááá¯á¡áá¯á¶ážááŒá¯áá¯á¶ááŸáá·áº á€á¡áá»ááºá¡áááºáá»á¬ážááᯠá á¯áá±á¬ááºážáá¬ááœáẠááá°áá®áá±á¬áááááá¬áá»á¬áž ááá¯á¡ááºááŒá±á¬ááºáž ááááẠááá¯á¡ááºáááºá - á¡ááŒá±áá¶áá¯á¶áá»á¬ážááᯠá¡ááá¯ááºážááá¯ááºážááœá²ááŒááºáž - ááá¯ážááŸááºážáá±á¬ á¡ááŒá±áᶠAMI ááẠááá¯ááá¯ááœá²ááœá²ááŒá®áž á¡áá°ážááŒá¯áá¬áááºá
- Node á á®áá¶ááá·áºááœá²ááŸá¯á cloud ááŸá node áá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááẠááœáá·áºááŒá¯ááá·áº ááŒááºááááá¯áᬠááá¯á·ááá¯áẠáááºážááá¬áá»á¬áž ááááŸáááá¯ááºáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡ááá¯ááºážá¡áá¬ááŸáá·áº áá¯á¶ááŒááºá áááºáá»ááá±á¬ ááœááºááááºáá¬á¡áá¯á¶ážááŒá¯ááŸá¯ááŸáá·áº Amazon AWS ááŸáá·áº cloud áá±á«ááºážá ááºááŸá¯ááᯠáá¶á·ááá¯ážáá±ážááá·áº Titus ááᯠáááºáá±á¬ááºáá²á·áááºá
- á á¬ááŒáá·áºááá¯áẠááá¯á·ááá¯áẠááááºáá±á¬ááºážáá áºáá¯á áááá¹áá°á ááááºáá±á¬ááºážá áá°áá®áá±á¬ á¡ááááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŒáá·áº áááºážááá¬á¡áá áºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááŒááºážááŒáá·áº áááºážááᯠcloud-based Node.js developer tools áá»á¬ážá¡ááŒá Ạááœá¬ážáááºááá¯á¡ááºáááºá
- áááºáá°ááŸá¯áá»ááºážááœá±ážááŸáá·áº á ááºááŸá¯á¡ááœá±á·á¡ááŒá¯á¶á áááºážááá¬á¡áá áºáá»á¬ážááᯠááááºáááºááŒááºážááẠáá»á±á¬áºááœáŸá¬ážáááá·áº á áááºáá±á«áºááŸá¯á¡áá áºáá»á¬ážááᯠáááœá²áááœá± áááºáá®ážáá±ážáá«áááºá
ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠâáááºážáá¬ážáá±á¬áááºážâ áá áºáá¯áááºážááᯠááá·áºáááºááá¬ážááá¯ááºáá² áá»áœááºá¯ááºááá¯á·ááááºážááá¬áá»á¬ážááᯠááá¯ážáááºá á±ááá·áº áááºážáááºážáá áºáá»á¬ážááᯠá¡áááºáááŒááºáááºáá±á¬ááºáá±ááááºááŒá áºáááºá áá¯ááºáá»á ááááºáá»á¬ážááᯠáá»áŸá±á¬á·áá»áááºá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáááá¯ááŸáá¶á·ááá¯ážááŸá¯ááᯠááá·áºáááºáá¬ážááŒá®áž JVMá node á¡áá áºáá»á¬ážááŸáá·áº Docker ááá¯á·ááᯠá¡á¬áá¯á¶á áá¯ááºáá¬ážáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáááá±á¬ááºáá±á¬á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááᯠáŠážá á¬ážáá±ážáá¯ááºáá±á¬ááºááŒá®ážá áááºážááá¯á·ááá¯á¶ážááŒááºáá»ááºáá»á¬ážá¡ááœáẠáá¯ááºáá»á ááááºáá»á¬ážá¡ááŒá±á¬ááºáž á¡ááœá²á·áá»á¬ážá¡á¬áž á¡áááá±ážáá¬ážááŒá®ážá áááºážááá¯á·áá¯ááºáá¯ááºáá¬ážááŒá®ážááŒá áºááá·áº á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááŒáá·áºáá¬ážáá±á¬ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯ááẠáááºážáááºážáá»á¬ážááᯠááŸá¬ááœá±ááẠáááºážááá¯á·á¡á¬áž ááá¯ááºááœááºážáá¬ážáááºá áá¯ááºáá¯ááºááᯠááá¯ááºáá¶ááá¬áá±á¬ááºáááºáá»á¬ážáᶠá¡áá±á¬ááºááá¯á·áá±ážááẠáááºáá±á¬ááºááŸá¯ááᯠááá¯ááºáá¶ááŒá¬ážáá¬áá¬á áá¬ážááá¯á· áá¬áá¬ááŒááºáá±á¬á¡áá«ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá€áá»ááºážáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá á¥ááá¬áá»á¬ážááœáẠPython áá¬ážááŸááºážá Ruby áá¬ážááŸááºážá Java áá¬ážááŸááºáž á áááºááŒáá·áº áááºáá®ážááẠá¡ááœááºááœááºáá°á á±áááºá¡ááœáẠááá¯ážááŸááºážáá±á¬ áááá¯ááºážááá·áºá á¬ááŒáá·áºááá¯ááºáá»á¬áž áá«áááºáá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠáá áºáá±áá¬áááºážááŸáá·áº á¡ááŒá¬ážá¡áá¬ážáá°á¡ááŒá±á¡áá±áá»á¬ážááœáẠáááºáá±ááŒáá²á·áá±á¬ áááºáá±ááŒáááºážááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááœáá·áºá¡áá±ážáá»á¬ážááᯠá¡áááºáááŒááºááŸá¬ááœá±áá±áá«áááºá
áá±á¬ááºáá¯á¶ážá¡áá»áẠ- á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá ááá¯á·ááá¯áẠááœá²ááŒá¬ážááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž ááŒá±á¬ááŒáá«á áá¯á·á áá»áœááºá¯ááºááá¯á·ááá¯ááºáá¯ááºá á¬ážáá¯á¶ážááŸá¯ááẠáááºááá¹ááááºááá±á·ááŸáá·áºáá áºáá±á·áá¬áá¬áá®á¡ááá¯áẠááá®ááá¬ááœá²ááŒá¬ážáá¯á¶ááá¯ááŒáá·áºáá«á á áá áºááœáẠload ááẠáááºážáá¡ááŒáá·áºáá¯á¶ážááá¯á·áá±á¬ááºááŸááá±á¬á¡áá« áá¶ááẠ9 áá¬áá®ááẠNetflix á¡ááœáẠá¡áááºáá²áá¯á¶ážá¡áá»áááºááŒá áºáááºáᯠáááºááŒá±á¬ááá¯ááºáááºá
áá±á¬á·ááºáá²ááºáá®ááœááºáááºážáá
áºááŸá¯áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠá¡ááŸáááºá¡áá¯ááºááŒáá·áºáá¬ážá
áœá¬áááŸáá
á±áááºá ááá¯ááá¯áááºááŸá¬ áááºáá±á¬ááºááŸá¯áá±ážááá¯á·áá¬ááœáẠá¡ááŸá±á¬áá·áºá¡ááŸááºáááŒá
áºá
á±áá²á áá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬ážá¡ááœáẠá¡áááºáááŒá±ááŸá¯áááŒá
áºá
á±áá² á
áá
áºááá¯á· á¡ááŒá±á¬ááºážá¡áá²á¡áá
áºáá»á¬ážááᯠá¡áááºáááŒááºááŒá¯áá¯ááºááŒááºážááá¯á·ááᯠáááºááá¯á·á¡á±á¬ááºááŒááºááá¯ááºáááºáááºážá Netflix ááẠááá¹áá¬áá¯á¶ážááá¯ááºáᬠcloud-based á
á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº á
ááºáááºáááŒáẠáá±ážááá¯á·ááŒááºáž (CD) ááááºáá±á¬ááºážá¡áá
áºááŒá
áºáá±á¬ Spinnaker ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áááºážááá¯á¡á±á¬ááºááŒááºáá²á·áááºá
á¡áá±ážááŒá®ážáááºááŸá¬á Spinnaker ááẠáá»áœááºá¯ááºááá¯á·áá¡á
áááºá¡ááá¯ááºážáá»á¬ážááᯠáá¯ááºáá¯ááºááŸá¯ááœáẠá¡áá¯á¶ážáá»áááºááŸáá·áº áá»áœááºá¯ááºááá¯á·áá¡áá±á¬ááºážáá¯á¶ážá¡áá±á·á¡áá»áá·áºáá»á¬ážááᯠáá±á«ááºážá
ááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáá¯ááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á·ááá®áá®áá¬áá±ážááá¯á·ááŸá¯áááºážááá¬ááá¯á· ááá¯ááºááá¯ááºáá±á«ááºážá
ááºááá¯ááºáááºá
áá»áœááºá¯ááºááá¯á· á¡ááœááºáááºááá¯ážáá¬ážáá±á¬ áá»áœááºá¯ááºááá¯á·á áá±ážááá¯á·ááŸá¯ááá¯ááºááá¯ááºážááœáẠáááºážááá¬ááŸá
áºáá¯ááᯠááá·áºááœááºážááá¯ááºáá«áááº- á¡ááá¯á¡áá»á±á¬áẠáááá¹ááá®ááœá²ááŒááºážá
áááºááŒá¬ááŒááºážááŸáá·áº á¡ááá·áºááá¯áẠááŒáá·áºáá»ááºááŒááºážááá¯á·ááᯠáá¯ááºáá±á¬ááºááá¯ááºáá²á·áááºá Canary ááœá²ááŒááºážá
áááºááŒá¬ááŒááºážááá¯áááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáá¬ážááŸááºážá¡áá
áºááá¯á· áááºážááŒá±á¬ááºážááŒá±á¬ááºážááœá¬ážá
á±ááẠááœáŸááºááŒá¬ážááŒá®áž áá»ááºáá¯ááºáá¯ááºááŸá¯áááºážááŒá±á¬ááºážááᯠáá¬ážááŸááºážáá±á¬ááºážááŸáá
áºááá·áº ááŒááºáááºážááœá¬ážááŒááºážááŒá
áºáááºá ááá¯á·áá±á¬áẠáá¯ááºáá±á¬ááºá
áá¬ááᯠáá¯ááºá¡áá
áºá áááºááá¯á·ááá¯ááºááœááºááŒá±ááŸááºážáááºááᯠá
á
áºáá±ážáá« - ááŸáááŒá®ážáá¬ážáá
áºáá¯ááẠááá¯áá±á¬ááºážááẠááá¯á·ááá¯áẠááá¯ááá¯ážááẠá
áá¯ááºááŸá¯ááºáá»á±á¬ááºáá»á¬ážá áœá¬ ááŒáá·áºáá»áááŒááºážááá¯áááºááŸá¬ áá±ááá áºáá¯ááœáẠááŒáá·áºáá»áááŸá¯áá áºáá¯ááœáẠááŒá¿áá¬áá»á¬ážááŸááá«áá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá¬ážáá±ááá áºáá¯ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºážááᯠááá¯ááá¯áá«áááºá á€ááá á¹á ááœááºá á¡áááºáá±á¬áºááŒáá« á á áºáá±ážá á¬áááºážááᯠáá¯ááºáá¯ááºááŸá¯ááá¯ááºááá¯ááºážááœáẠááá·áºááœááºážááá«áááºá áá« áááºážááᯠá¡áá»áááºáááºážáááºáž áááºáá¬á á±ááŒá®áž áá®á¡ááŒá±á¬ááºážá¡áá¬ááᯠáááºáááºáá²áá² áááºáááºáá²áá² ááœá±ážááŒáá·áºáá»ááºáááºááá¯ááẠáá«á·áá²á· ááááºáá±á¬ááŒá±á¬áá»ááºááŒá áºáá²á· Engineering Global Netflix Operations in the Cloud ááᯠááŒáá·áºááá¯á· á¡ááŒá¶ááŒá¯ááá¯áá«áááºá áááá·áºááœááºážá áá®áá®ááá¯ááá¯ááºáá°ážááŸá¯ááᯠáááá¯ááºá¡á±á¬ááºááŒá±ááŸá ááá·áºááºááᯠááá¯ááºáá¬ááŒááºážááŒáá·áº ááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
áá±á¬ááŒá±á¬áá»ááºá¡áá¯á¶ážááœááºá Netflix áá¡ááœá²á·á¡á
ááºážááŸáá·áº áááºáá±á¬ááºáá¯á¶á¡ááŒá±á¬ááºáž á¡ááá¯áá»á¯ááºááŒá±á¬áá«áááºá á¡á
ááá¯ááºážááœáẠáá»áœááºá¯ááºááá¯á·ááœáẠNRDP 1.x media streaming á ááááá¯á¶ážáá¬ážááŸááºážááŒá
áºááá·áº Electronic Delivery áá¯áá±á«áºáá±á¬ á¡á
á®á¡á
ááºáá
áºáá¯ááŸááááºá á¡áá¯á¶ážááŒá¯áá°ááẠáá±á¬ááºááá¯ááºážááœáẠá
ááºáá±á«áºááœáẠááŒááºááœáá·áºáááºá¡ááœááºáᬠá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáá±á¬ááŒá±á¬áá·áº "backstream" áá°áá±á¬ á¡áá¯á¶ážá¡ááŸá¯ááºážááᯠá€áá±áá¬ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá Netflix á ááááá¯á¶áž áá
áºáá»á
áºááẠááá¯á·áá±á¬ááºááŸá¯ ááááºáá±á¬ááºážááẠ2009 áá¯ááŸá
ẠááœáẠá€áá²á·ááá¯á· ááŒá
áºááẠá
á¡áá¯á¶ážááŒá¯áá°á
ááºáá
á¹á
ááºážááœáẠNRDP ááááºáá±á¬ááºáž - Netflix Ready Device Platform ááá¯á¡ááŒá±áá¶á UI á¡ááºáá¬áá±á·á
áºá áá¯á¶ááŒá¯á¶áá±ážáá±á¬áºáá»á°ážáá»á¬ážá áááºáá±á¬ááºááŸá¯á¡áááºááœááºážááŒááºážááŸáá·áº ááŒááºááœáá·áºááŒááºážááá¯á·áá«ááŸááá±á¬ Netflix á¡ááá®áá±ážááŸááºážáá«ááŸááááºá
ááá¯á¡áá»áááºá user interface ááẠá¡ááœááºááá¯ážááŸááºážáá«áááºá áááºážááœáẠQueque Reader áá¯áá±á«áºááá·áºá¡áá¬áá«áááºááŒá®áž á¡áá¯á¶ážááŒá¯áá°ááẠQueque ááœáẠáá áºáá¯áá¯ááá·áºááŒá®ážáá±á¬áẠáááºážááá¯á·áá ááºáá±á«áºááŸá áá±á«ááºážááá·áºáá¬ážááá·áºá¡ááŒá±á¬ááºážá¡áá¬ááᯠááŒáá·áºááŸá¯ááẠáááºááá¯ááºááá¯á·ááœá¬ážáááºááŒá áºáááºá á¡ááŒá¯ááá±á¬áá±á¬ááºááá·áºá¡áá»ááºááŸá¬ ááŸá±á·áá¯á¶ážá¡áááºážááŸáá·áº áá±á¬ááºáááºážá¡ááœá²á·ááẠáá°áá®áá±á¬ á¡á®áááºáááœááºážáá Ạááá¯á·áá±á¬ááºáá±ážá¡ááœá²á·á¡á ááºážááŸáá·áº áááºážááŸá®ážá áœá¬ á¡áá¯ááºáá¯ááºáá±á¬ áááºáá¶áá±ážááŸáááŒááºážááŒá±á¬áá·áºááŒá áºáááºá áá±ážáá±á¬ááºááŸá¯á¡á¬áž XML ááᯠá¡ááŒá±áá¶á áááºáá®ážáá¬ážáááºá áá áºáá»áááºáááºážááŸá¬áááºá DVD áá¯ááºáááºážá¡ááœáẠNetflix API ááᯠáááºáá®ážáá²á·ááŒá®ážá áá»áœááºá¯ááºááá¯á·ááááºáá±á¬ááºááŸá¯ááá¯á· ááŒááºáá¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáááºážááŒá±á¬ááºážááŒááẠááœááºážá¡á¬ážáá±ážáá²á·áááºá
ááá¯á·áá±á¬áºá Netflix API ááẠá¡ááŒá±á¬ááºážá¡áá¬á¡á¬ážáá¯á¶ážá áááºáá¬áá±áá¬á áááŸáááá¯ááºááá·áºáá¯ááºááŸááºáá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážáá«ááŸááá±á¬ áááºážáá áºáá±á¬á¡áá¯á¶ážááŒá¯áá°áá»ááºááŸá¬ááŒááºááᯠáá°áá®áá±ážáááºá¡ááœáẠáá±á¬ááºážááœááºá áœá¬ááŒááºáááºáá¬ážááŒá®áž ááŒáá·áºááŸá¯á á¬áááºážáá»á¬ážááᯠáááºáá®ážááá¯ááºá á±áá«áááºá áááºážááœáẠJSON schemaá HTTP Response Codeá áá±ááºáá®áááá¯áá¬ááœááºá¡áá¯á¶ážááŒá¯ááá·áºáá°áá®áá±á¬áá¯á¶á á¶ááŸáá·áº Front-end á¡ááá®áá±ážááŸááºážá¡ááœáẠááá¯á¡áá»áááºá ááá¯á¡ááºááá·áºá¡áá¬ááŒá áºááá·áº OAuth áá¯á¶ááŒá¯á¶áá±ážá á¶ááá°áá¬ááᯠá¡ááŒá±áá¶á áááºážááœáẠáá±áá°áá» REST API áá áºáá¯ááŸááááºá áááºážááẠá¡áá»á¬ážáá°ááŸá¬ ááá¯ááºááá¯ááºáá¯ááºááœáŸáá·áºááá·áº á¡ááŒá±á¬ááºážá¡áᬠáá±ážááá¯á·ááŸá¯áá¯á¶á á¶á០áá®ážááá·áºáá áºáá¯ááá¯á· ááœáŸá±á·ááẠááŒá áºááá¯ááºáá»á±ááŸááááºá
á¡ááœááºáá°ážááŒá±á¬ááºážááŸá¯áááŒá¿áá¬ááŸá¬ á¡ááœá²ááœá²á¡ááŒá¬ážááŒá¬ážááŒá
áºáá±ááŒááºážááŒá
áºáááºá ááᯠáá»áœááºá¯ááºááá¯á·áá
áá
áºááẠáá¯á¶ážáááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬áááºáááºááŸá¯ááá¯ááºáá¬áá°áá»á¬ážááá¯á¡ááŒá±áá¶á áááºáá±á¬ááºááŸá¯ááŸá
áºáá¯ááá¯áá¯ááºáá±á¬ááºáá²á·ááẠ- áá
áºáá¯ááŸá¬ Restá JSON ááŸáá·áº OAuth ááœááºá áá±á¬ááºáá
áºáá¯ááẠRPCá XML ááŸáá·áº NTBA ááá¯áááºá
áá
áºááá¯á¡ááŒá±áá¶ááá·áºá¡áá¯á¶ážááŒá¯áá°áá¯á¶ááŒá¯á¶áá±ážááá¹ááá¬ážáá
áºáá¯ááá¯á·ááŒá
áºáááºá áááºážááẠááááá¯á¶áž áá±á«ááºážá
ááºáááºáá±á¬ááºááŸá¯ááŒá
áºáááºá
API ááẠáááŠážááœáẠNCCP ááŸáá·áº áá±á¬ááºážá áœá¬ á¡ááá¯ááºážá¡áá¬áááŸááá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·áá¡ááœá²á·ááŸá áºááœá²á·ááŒá¬ážááœáẠfirewall áá áºáá¯ááŸáá áááºážááẠá¡ááœá²á·áá»á¬ážááŒá¬ážááœáẠááœá²ááœá²ááŸá¯áá»á¬ážááŒá áºá á±áááºá ááŒá¬ážáá¬ážáá»ááºáá»á¬ážááŸá¬ áááºáá±á¬ááºááŸá¯áá»á¬ážá áááá¯ááá¯áá±á¬áá»á¬ážá áá¬ážáá áºáá»á¬ážá áá¯á¶ááŒá¯á¶áá±áž áá±á¬áºáá»á°ážáá»á¬ážááŸáá·áº áá±á¬á·ááºáá²áá±ážááœá²áá°áá»á¬ážááẠáá¯á¶ážáááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááŒá¬ážááœáẠáááŒá¬áá ááŒá±á¬ááºážááá±á·ááŸááááºá
áá®ááá
á¹á
áá²á· áááºáááºááŒá®ážáá±á¬á· áá¯áá¹ááá®áá²á· á¡ááŒá®ážáááºáž á¡ááºáá»ááºáá®áá¬áá
áºáá±á¬ááºáá²á· á
áá¬ážá
ááŒááºááŒá±á¬áá²á·ááŒá®ážá âááŸááºáááºáá²á· áá±ááŸááºáááºáá±á¬ááºááŸá¯áá¯á¶á
á¶á áá¬ááŒá
áºááá·áºááá²â ááá¯á· áá±ážáá²á· áá±ážááœááºážááᯠáá°á áááºááŒááºáá±ážááœááºážááᯠáá±ážáá²á·áááº- âáááºáž ááá¯á
áá¯ážááááºáᬠááŒá
áºááá¯ááºáááºá á¡ááœá²á·á¡á
ááºážááá¯ááºáᬠá¡áá»áá¯ážáááºáá»á¬ážá¡ááŒá±á¬ááºáž - áá»áœááºá¯ááºááá¯á·ááẠá€á¡áá¬áá»á¬ážááᯠáá±á«ááºážá
ááºážááŒá®áž áá»áœááºá¯ááºááá¯á· áá±á¬ááºážá
áœá¬áá¯ááºáá±á¬ááºááẠáááºáá°áá¬ážááá·áºá¡áá¬áá»á¬ážááᯠáá»áá¯ážáá»ááºáá«á áááºááá¯á·ááŒá
áºáááºáááºážá á€áá»ááºážáááºááŸá¯ááẠConway's Law ááŸáá·áº á¡ááœááºáááºááá¯ááºáááº- "á¡ááœá²á·á¡á
ááºážá áááºááœááºáá±ážááœá²á·á
ááºážáá¯á¶ááᯠáá¯á¶áá°áá°ážáá¬ážááá·áº áá®ááá¯ááºážáá¯á¶á
á¶ááŒáá·áº áá®ááá¯ááºážá
áá
áºáá»á¬ážááᯠááá·áºáááºáá¬ážáááºá" á€áááºááŸá¬ á¡ááœááºáááºáá²áá±á¬ á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºááŒá
áºáááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááẠááá¯ááá¯áááá»áá±á¬áá
áºáá¯ááᯠááŸá
áºáááºáá«áááº- "áá±á¬á·ááºáá²ááºá áááºááá·áºá¡ááá¯ááºážáááᯠáááºážááᯠáááºáá®ážáá¬ážááá·áº á¡ááœá²á·á¡á
ááºážááœá²á·á
ááºážáá¯á¶ááᯠáááºáááºá
á±áá«áááºá" á€áááºááŸá¬ Eric Raymond á á¡ááŒáá¯ááºáá¯á¶ážááá¯ážáá¬ážáá»ááºááŒá
áºáááº- "ááá·áºááœáẠcompiler áá
áºáá¯ááœáẠdeveloper áá±ážáá±á¬ááºááŸááá»áŸááºá áááºááẠfour-pass compiler ááŒáá·áºá¡áá¯á¶ážáááºáááºááŒá
áºáááºá" áá±á¬ááºážááŒá®á Netflix ááœáẠfour-pass compiler ááŸáááŒá®ážá áááºážáááºáá»áœááºá¯ááºááá¯á·á¡áá¯ááºáá¯ááºáá¯á¶ááŒá
áºáááºá
á€ááá á¹á ááœáẠá¡ááŒá®ážááẠááœá±ážááᯠááŸá¯ááºáááºážáá±áááºáᯠááá¯ááá¯ááºáááºá áá»áœááºá¯ááºááá¯á·á ááááŠážá á¬ážáá±ážááẠááŒá±ááŸááºážáá»ááºááá¯ááºáá² á¡ááœá²á·á¡á ááºážááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááœááºááŸááá±á¬ áááá¯áá¬áááºáá¬ááᯠááœááºážá¡á¬ážáá±ážááá·áº á¡ááœá²á·á¡á ááºážááŒá áºáááºá áááŒááºážááŒááºážá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯áá»á¬ážáá²á០Blade Runner áá¯áá±á«áºáá±á¬ áááá¯áá¬áá áºáá¯ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááœá¬ážáááºá á¡ááŒá±á¬ááºážááŸá¬ á€áá±áá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááẠedge services ááŸáá·áº NCCP áá áœááºážáááºáá»á¬ážááᯠZuul proxyá API gateway ááŸáá·áº áááºááá¯ááºáᬠfunctional ááá¯á· ááá¯ááºááá¯ááºáá±á«ááºážá ááºážááá¯ááºááá·áºá áœááºážáááºá¡ááŒá±á¬ááºážááŒá±á¬áá±áá±á¬ááŒá±á¬áá·áºááŒá áºáááºá âá¡ááá¯ááºážá¡á áá»á¬ážâ ááᯠááá¯ááá¯á¡ááá·áºááŒáá·áºáá±á¬ áá¯á¶ááŒá¯á¶áá±ážá ááŒááºááœáá·áºááŒááºážá áá±áá¬á á®ááŒááºáž á áááºááá¯á·áá«ááŸááá±á¬ áááºáá±á¬ááºááŸá¯á¡áá áºáá»á¬ážá¡ááŒá ẠááŒá±á¬ááºážáá²áá¬ážáá«áááºá
ááá¯á·ááŒá±á¬áá·áº áá¬áááá¯ááºáá¬ááœá²á·á ááºážáá¯á¶áá»á¬ážááŸáá·áº áá¯áá¹ááá®á ááá¯ááºážááá áºáá»á¬ážááẠá áá áºáá®ááá¯ááºážáá¯á¶áá±á¬áºáá¬ááœáẠá¡áá±ážáá«áá±á¬á¡áááºážááá¹áá០áá«áááºáá±ááŒá®áž á¡ááŒá±á¬ááºážá¡áá²ááᯠá¡á¬ážáá±ážá¡á¬ážááŒáŸá±á¬ááºááŒá¯ááŒááºáž ááá¯á·ááá¯áẠááá·áºáá¬ážááá·áºá¡áá»ááºááŒá áºáááºáᯠááá¯ááá¯ááºáá«áááºá Microservices áááá¯áá¬áááºáá¬ááẠááŸá¯ááºááœá±ážááŒá®áž á¡á±á¬áºáá²áá áºááŒá áºááŒá®áž áááºážááá»ááºážáá¬áá±ážááẠá ááºážáááºážááŸáá·áº ááááºážááá¬ááááºáááºááŸá¯á¡áá±á«áº á¡ááŒá±áá¶áá¬ážáááºá
ááŒá±á¬áºááŒá¬áááºážáááºáž
áá»áœááºá¯ááºááá¯á·ááŸáá·áºá¡áá°ááŸááá±ááá·áºá¡ááœáẠáá»á±ážáá°ážáááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááá±á¬ááºážáá«ážáá»á¬ážááᯠáááºááŸá
áºáááºáá«ááá¬ážá ááá¯á
áááºáááºá
á¬ážá
áá¬áá±á¬ááºážáá²á· á¡ááŒá±á¬ááºážá¡áá¬ááœá±ááᯠááŒáá·áºáá»ááºáá«ááá¬ážá ááŸá¬áá°ááŸá¯áá
áºáá¯ááŒá¯áá¯ááºááŒááºáž ááá¯á·ááá¯áẠáá°áááºáá»ááºážáá»á¬ážááᯠá¡ááŒá¶ááŒá¯ááŒááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·á¡á¬áž áá¶á·ááá¯ážáá°áá®áá«á
á¡ááºá
áá¬áááºááŸá Equinix Tier IV áá±áá¬á
ááºáá¬ááœáẠDell R730xd ááẠá á á
á»á±ážáááºáá¬áááºá áá®ááŸá¬áá¬
source: www.habr.com