áá»áœááºá¯ááºááá¯á·ááẠDevOps ááᯠá¡áááºááá¯ááºáá¯á¶áž áá®ááœááºáá²á·áááºá áá»áœááºá¯ááºááá¯á·ááœáẠá áá±á¬ááºááŸáááŒá®áž Vasya ááẠWindows ááœáẠá¡ááá¯ááºáá¯á¶ážááŒá áºáááºá áá¯ááºáááẠVasya ááœááºááœá¬ážááŒá®áž Windows ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á០áá¶á·ááá¯ážáá±ážáá±á¬ ááá±á¬áá»ááºá¡áá áºáá áºáá¯ááᯠá áááºááẠáá»áœááºáá±á¬á·áºááŸá¬ áá¬áááºááŸááááºá á á¬ážááœá²áá±á«áº Windows development stack áá áºáá¯áá¯á¶ážááᯠááœáŸáá·áºáá áºááá¯ááºáá±á¬á· á¡ááŒá±á¡áá±á áá¬áá»ááºááŸááºáž ááááá¯ááºááááº...
áá¬ááºáááºážá áá®ááá¯áá«á Alexandra Sinchinova á¡áá±á«áº
TFS, Puppet, Linux .NET core ááᯠá¡áá¯á¶ážááŒá¯á ááá±á¬áá»ááºáá
áºáá¯ááᯠRPM ááá¯á· ááœááºáá°ááŒá®áž á¡á¬ážá
áá¯ááºáá¯ááºáááºážá ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážá¡ááœá²á·ááẠPostgres ááŸáá·áº Flyway áá°áá±á¬ á
áá¬ážáá¯á¶ážáá»á¬ážááᯠááááá¯á¶ážá¡ááŒáááºááŒá¬ážáááŒá®áž áá±á¬ááºáá¯á¶ážáááºááẠááááºáá«ááŒá
áºáá«á ááá±á¬áá»ááºáá±áá¬áá±á·á
áºáá¬ážááŸááºážááᯠáááºááá¯á·áá¶á·ááá¯ážáá°áá®áááºáááºážá Docker áá²á· áááºááá¯áá±á«ááºážá
ááºážáááá²á Puppet ááŸáá·áº Linux ááá¯áá»ááºááŸá¬áá¬áá±ážáááºá¡ááœáẠWindows ááŸáá·áº smoothies áá»á¬ážááá¯á
áœáá·áºáá
áºááẠ.NET developer áá»á¬ážá¡á¬áž áááºáá²á·ááá¯á·ááŸá¯á¶á·áá±á¬áºáááºáááºážá ááœááºá¡á¬ážá ááá¹áá áá¯ááºáá¯ááºááŸá¯ááœáẠWindows ááᯠááááºážááááºážáá¬ážááẠá¡áááºážá¡ááŒá
áºáá»á¬áž áááŸááá»áŸáẠá¡áá°áá«áááá¯ááºáᬠáááááá¹ááá»á¬ážááᯠáááºááá¯á·ááŒá±ááŸááºážáááºáááºážá á€á¡ááŒá±á¬ááºážá¡ááŒááºá Web Deployá á
ááºážáááºááŒááºážá CI á¡ááŒá±á¬ááºážá ááŸáááŒá®ážáá¬ážááá±á¬áá»ááºáá»á¬ážááœáẠTFS á¡áá¯á¶ážááŒá¯ááŒááºážá¡áá±á·á¡áá»áá·áºáá»á¬ážá¡ááŒá±á¬ááºážá áá»áá¯ážáá±áá±á¬ áá»áá¯ááºážáá±á¬ááºáá»á¬ážááŸáá·áº á¡áá¯ááºááŒá±ááŸááºážáááºážáá»á¬ážá¡ááŒá±á¬ááºáž Alexander á ááŸááºáááºážááŸááºáááºážááœáẠáá±á¬áºááŒáá¬ážáááºá
áá«áá²á· Vasya ááœááºááœá¬ážáááºá á¡áá¯ááºá áá«á·ááŸá¬ááŸááááºá developer ááœá±á áá±á¬ááºááœááœá±áá²á· á áááºáááŸááºá áœá¬ á á±á¬áá·áºáá±ááŒáááºá áá±á¬ááºáá¯á¶ážáá±á¬á· Vasya ááŒááºááááá¯ááºáá±á¬á·áá°ážááá¯áᬠááááá¯ááºááá±á¬á· á¡áá¯ááºáááºážááá¯ááºáááºá á á áá»ááºážá¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááẠáá»áœááºá¯ááºááá¯á·ááá±áá¬ááºá á¯ááŸá Win VM á áá¬ááá¯ááºááŸá¯ááºážááᯠá¡áá²ááŒááºáá«áááºá áááŸááºá Windows ááᯠáá»ááºááŸá¬áá¬ááá±ážáá²á·áá«áá°ážá
áá»áœááºá¯ááºááá¯á·ááẠDevOps ááᯠáááºááŒáœá
áœá¬ áá®ááœááºáá±áá±á¬ááŒá±á¬áá·áºá á¡ááºááá®áá±ážááŸááºážá¡áá
áºáá
áºáá¯áá±ážááá¯á·ááẠáá»ááºážáááºááŸá¯ááœáẠáá
áºá
á¯á¶áá
áºáᯠááŒá±á¬ááºážáá²áááºááá¯á¡ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá±á¬áá±á«ááºáá«áááºá ááŒá±ááŸááºážáá»ááºáá
áºáá¯áá¬ááŸáááẠ- ááŒá
áºááá¯ááºáá«á á¡áá¬á¡á¬ážáá¯á¶ážááᯠLinux ááá¯á· ááœáŸá²ááŒá±á¬ááºážáá«á Google á áá»áœááºáá±á¬á·áºááᯠáá°áá®áá²á·ááẠ- á¡á²áá®áá¯ááºážá .Net ááᯠLinux ááŸá¬ ááá¯á·áá¬ážááŒá®ážáá¬ážáá«á áá«á ááŒá±ááŸááºážáá»ááºááŒá
áºááŒá±á¬ááºáž áá»áœááºáá±á¬áº ááá±á¬áá±á«ááºáá«áááºá
Linux ááŸáá·áº á¡áááºááŒá±á¬áá·áº .NET core ááᯠááœá²áááºá¡áá¯á¶ážááŒá¯áááááºážá
áááºážá¡ááœáẠá¡ááŒá±á¬ááºážáááºážáá»á¬ážá áœá¬ ááŸááá²á·áááºá âáá±ážááœá±â ááŸáá·áº âááá±ážáá»á±â ááŒá¬ážááœáẠá¡áá»á¬ážá á¯ááẠáá»áœááºá¯ááºáá²á·ááá¯á· áá¯áááááᯠááœá±ážáá»ááºáááºááŒá áºáááºá MSDB á¡ááœáẠááá¯ááºá ááºáá áºáá¯ááẠ$1 ááá·áº áá¯ááºáá»ááŒá®áž Windows virtual machine áá»á¬ážááᯠááááºážááááºážáá¬ážááẠáá±á«áºáá¬áá¬ááŸáá·áºáá»á® áá¯ááºáá»áááºá áá¯áá¹ááá®ááŒá®ážáá áºáá¯á¡ááœáẠáá«á áá¯ááºáá»á ááááºááŒá®ážáá«áááºá á¡á²áá«ááŒá±á¬ááºá· áá»áœá±áá¬ááŒááºáž - áááá¡ááŒá±á¬ááºážááŒáá»ááº. á¡áá±ážá¡ááŒá®ážáá¯á¶ážááá¯ááºáá±ááá·áº á¡áá±ážá¡ááŒá®ážáá¯á¶ážááœá±áá²á áá áºáá¯áá«á
Windows virtual machines áá»á¬ážááẠáááºážááá¯á·á Linux áá®á¡á áºááá¯áá»á¬ážááẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠááá¯ááá¯ááá°ááẠ- áá°ááá¯á·á áá±ážáá¶áááºá. áá¯áá¹ááá®ááŒá®ážáá»á¬ážá á¡ááá¯ááºážá¡áá¬á¡á Linux ááᯠááœá±ážáá»ááºáá²á·áááºá
á áá áºááẠááŸáááŒá®ážáá¬áž CI ááœáẠááá¯ážááá¯ážááŸááºážááŸááºáž áá±á«ááºážá ááºáá¬ážáááºá. áá»áœááºá¯ááºááá¯á·ááẠááá¯ážáááºáá±á¬ááºážááœááºáá±á¬ DevOps ááŒá áºáááºáᯠáá»áœááºá¯ááºááá¯á·áá°ááááºá áá»áœááºá¯ááºááá¯á·ááẠBambooá Jenkins ááŸáá·áº GitLab CI ááá¯á¡áá¯á¶ážááŒá¯áááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·áá¡áá¯ááºá¡áá»á¬ážá á¯ááẠLinux áá±á«áºááœááºá¡áá¯ááºáá¯ááºáááºá
áá±á¬ááºáá¯á¶áž á¡ááŒá±á¬ááºážá¡áááºážááá±á¬á· á¡áááºááŒá±áá«á·á áááºážááá¬ááá¯ááºážááᯠáá¬ážáááºáá°áá»á¬ážá á¡ááŸá±á¬ááºá¡ááŸááºáááºážáááºážáá±á¬ áááºáá±á¬ááºááŸá¯ááᯠáá±áá»á¬á á±áááºááŸáá·áº áá¯áááááá¯ááºážá០áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠááááºážááááºážáá¬ážáá°áá»á¬ážââá¡á á±á¬áá·áºá¡ááŒááºâ á¡ááœáẠáááºáá±á«ááºá¡áá¬ážá¡áá®ážááᯠáá»áŸá±á¬á·áá»ááẠááá¯á¡ááºáá«áááºá áááºážááá¯á·ááẠLinux stack ááŸáá·áº áááºážááŸá®ážááŒá®ážáá¬ážááŒá áºáá±á¬ááŒá±á¬áá·áº Windows ááááºáá±á¬ááºážá¡ááœáẠáá±á¬á·ááºáá²ááºááá°áá®áá±á¬áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠáá¬ážáááºááẠá¡ááá¯áááºážááŒá áºáá»á¬ážááᯠáá¯á¶ážá áœá²ááŒááºážááẠáá¯ááºáá¯ááºá¡áá áºáá áºáá¯ááᯠáá¬ážáááºáááºá áá¶á·ááá¯ážáááºááŸáá·áº ááááºážááááºážááẠáááºážááá¯á·á¡ááœáẠááá¯ááá¯ááœááºáá°áááºá
ááá¯á¡ááºáá»ááº
áŠážá áœá¬áááá developer áá»á¬ážá¡ááœááºááŒá±ááŸááºážáá»ááºá¡áá áºáá¡áááºááŒá±. á¡áá°ážáááŒáá·áº Linux áá°áá±á¬ á áá¬ážáá¯á¶ážááᯠááŒá±á¬ááŒá®ážáá±á¬áẠáááºážááá¯á·á¡á¬ážáá¯á¶ážááẠá¡ááŒá±á¬ááºážá¡áá²á¡ááœáẠá¡áááºááá·áºáááŒá áºáá±ážáá«á áá±á¬á·ááºáá²áá±ážáá¬ážáá°áá»á¬ážááẠáááºážááá¯á·á á áááºááŒáá¯áẠVisual Studioá TFS ááŸáá·áº á ááºážáá±ážááœá²áá»á¬ážááŸáá·áº áá»á±á¬áºá ááºááŒááºážáá»á¬ážá¡ááœáẠá¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯áá»á¬áž ááŒá¯áá¯ááºááá¯ááŒáááºá áá¯ááºáá¯ááºááŸá¯ááá¯á· ááá¯á·áá±á¬ááºáá¯á¶ááẠáááºážááá¯á·á¡ááœáẠá¡áá±ážáááŒá®ážáá«á ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ááŸááºáá¯ááºáááºážá ááºááᯠáááŒá±á¬ááºážáá²áá² Windows ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠá¡áá¬á¡á¬ážáá¯á¶ážááᯠáááŒá±á¬ááºážáá²áá¬ážááẠáá¯á¶ážááŒááºáá²á·áááºá
ááá±á¬áá»ááºá¡áá Ạááá¯á¡ááºáááºá ááŸáááŒá®ážáá¬áž CI ááœáẠáá±á«ááºážá ááºáá«á. ááá¬ážáááºážáá»á¬ážááẠááá¯áá±áá¬ááœááºááŸááá±ááŒá®ááŒá áºááŒá®áž áá¯ááºáááºážá¡á¬ážáá¯á¶ážááᯠááœá²á·á ááºážááŸá¯á á®áá¶ááá·áºááœá²ááŸá¯á áá áºá ááá·áºáááºáá»ááºáá»á¬ážá áááºáá¶áá¬ážáá±á¬ áá±ážááá¯á·ááŸá¯á á¶ááŸá¯ááºážáá»á¬ážááŸáá·áº á á±á¬áá·áºááŒáá·áºáá±ážá áá áºáá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážááẠáá¯ááºáá±á¬ááºááááºááŒá áºáááºá
áá¶á·ááá¯ážááŸá¯ááŸáá·áº áááºáááºááŸá¯ááœááºáá°ááŒááºážáááá°áá®áá±á¬áá¬áááœá²áá»á¬ážááŸáá·áº áá¶á·ááá¯ážááŸá¯áá¬áá០áá«áááºáá°á¡áá áºáá»á¬ážá¡á¬ážáá¯á¶ážá¡ááœáẠá¡áááºážáá¯á¶ážáááºááœáá·áºá¡ááá·áºáááºááŸááºáá»ááºáá áºáá¯ááŒá áºáááºá
áá±á¬ááºáá¯á¶ážáá±á· - ááá±á·á.
Win Development Group á
á¡á²áá®áá¯ááºážá Windows team á áá¬á¡áá¯ááºáá¯ááºáá²á
á¡áᯠá
áááºáá»áááºáá» ááŒá±á¬ááá¯ááºááŒá®áá±á«á·á IdentityServer4 á¡áá¬ážáá°á
áœááºážáááºáá»á¬ážááŸááá±á¬ ADFS áá¡á±ážááŒáá±á¬á¡ááá²á·á¡ááŒá¬ážááœá±ážáá»ááºá
áá¬áá
áºáá¯ááŒá
áºáááºá Entity Framework Core - SQL scripts áá»á¬ážáá±ážáá¬ážááŒááºážááᯠáááºá¡ááŸá±á¬ááºá¡ááŸááºáááŸááá±á¬áºáááºáž OOP áá±á«áá¬ááá»á¬ážááŒáá·áº áá±áá¬áá±á·á
áºááŸá áá±ážááŒááºážáá»ááºáá»á¬ážááᯠáá±á¬áºááŒááá·áº áá±á¬á·ááºáá²á¡ááºáá»ááºáá®áá¬á¡ááœáẠáááááá¯áá
áºáá¯ááŒá
áºáááºá áá«áá±ááá·áº á¡á²áá®á·áá±á¬ááºá áá¯ááºáá±á¬ááºáá»ááºá¡á
á®á¡á
ááºááᯠááœá±ážááœá±ážá
ááºááŸá¬á PostgreSQL áá²á· Git ááá¯áá² á¡ááá¡ááŸááºááŒá¯áá²á· Sumerian cuneiform ááá¯áá»áá¯áž áá® stack ááᯠááŒáá·áºáá²á·áááºá
á¡á²áá®áá¯ááºážá áá»áœááºáá±á¬áºááá¯á· áááºááŒáœá áœá¬ áá¯á¶ážáááºá áá¯ááºáá±áž configuration á á®áá¶ááá·áºááœá²ááŸá¯á áá áºá¡ááŒá áºá áá»áœááºá¯ááºááá¯á·á ááá±á¬áá»ááºá¡áá»á¬ážá á¯ááœáẠáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯áááºá GitLab CI, elasticáá»áŸááá±á¬ááŒáá·áºáá¬ážáá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá HAProxy á¡áá¬á¡á¬ážáá¯á¶ážááᯠá á±á¬áá·áºááŒáá·áºáá²á·áááºá Zabbixáá¡ááœáẠGrafana О Prometheus, áá¯ááá¯ážá€á¡áá¬á¡á¬ážáá¯á¶ážááẠáá¶á¡ááá¯ááºážá¡á áá»á¬ážáá±á«áºááœáẠáááºáááºáá±áá«áááºá HP c ESXi á¡áá±á«áº VMware á. áá°ááá¯ááºážááááẠ- á¡áá»áá¯ážá¡á á¬ážáááá¹ááááºá
á€áááºáá±á¬ááºá
áœááºáááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá
áááºáá®ááœáẠááŒá
áºáá»ááºáá±ááá·áºá¡áá¬áá»á¬ážááᯠáá±á·áá¬ááŒáá·áºááŒáá«á
áá¯á·á
áá¬ááŒá áºáá¬áá²
TFS ááẠáá±á¬á·ááºáá²á¡ááºáá»ááºáá®áá¬á០áá¯ááºááᯠáá±á¬ááºáá¯á¶ážáá¯ááºáá¯ááºááá·áºá ááºáá®ááá¯á· ááá¯á·áá±á¬ááºáá±ážáá¯á¶áá¬áá áááºáá±á¬ááºááŸá¯á¡áá»áá¯ážáá»áá¯ážááŸáá·áº á¡ááœááºááá¯ááºáá»á±á¬áá®ááœá±ááŸááá±á¬ áá±á«ááºážá ááºááŸá¯á¡ááœáẠCI ááᯠááŒááºáá»á±á¬áºááŒá®áž ááááºáá±á¬ááºážá¡ááá·áºááœáẠáá¶á·ááá¯ážáá±ážááá·áº áá»áŸááá±á¬á¡á¬ážáá±á¬ááºážááá·áºá áá áºáá áºáá¯ááŒá áºáááºá
ááááºá á€á¡áá¬áá»á¬ážááẠááá¯ááºáá¬áá±á¬ ááŒáááºážáá±á«ááºáá»á¬ážááŒá
áºáááºá TFS ááẠááá±á¬áá»ááºáá»á¬ážá
áœá¬ááᯠá
á¯á
ááºážáááºá¡ááœáẠBuild agent á¡áá»á¬ážá¡ááŒá¬ážááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá á¡á±ážáá»áá·áºáá
áºáá¯á
á®ááœáẠá¡áá¯ááºáá»á¬ážááᯠá¡ááŒáá¯ááºáá¯ááºáá±á¬ááºáááºááŸáá·áº áá¯ááºáááºážá
ááºááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá
áºá¡á±á¬ááºáá¯ááºááẠá¡áá¯ááºááá¬áž á-á áŠážááŸááááºá ááá¯á·áá±á¬áẠááŒáá·áºáá»áááá·áºá¡á
á®á¡á
ááºá¡á TFS ááẠáááºáááºáááºáááºáá¯ááºáá¬ážáá±á¬ Build ááᯠWindows á¡ááá®áá±ážááŸááºážáá¬áá¬áᶠáá±ážááá¯á·áá²á·áááºá
áá«ááá¯á· áá¬ááᯠááá¯áá»ááºáá²á·áá¬áá²á
áá»áœááºá¯ááºááá¯á·ááẠáá±ážááá¯á·ááŒááºážááŸáá·áº ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠTFS ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž Linux á¡ááá®áá±ážááŸááºážáá¬áá¬ááœáẠá¡ááá®áá±ážááŸááºážááᯠrun áᬠáááºážááá¯á·ááŒá¬ážááœáẠááŸá±á¬áºá¡áááºáá»áá¯ážááŸááááºá áá® ááŸá±á¬áºáá±áá¹áᬠáá¬ážáááºáž ááŸááá±ážáá á¡á²áá«ááᯠáááœá²áááºááŸá¬ ááŒá±áá áºááŸááºážááŸááºážááŒá®áž áá»áŸá±á¬ááºááœáŸá¬á¡ááŒá±á¬ááºáž á áá¬ážáááºážáááºážááŒá±á¬áá«áááºá
á á®áá¶ááááºážá
á¡ááá®áá±ážááŸááºážááẠááŒáá¯áááºááœá±áá±ážáááºáá»á¬ážááᯠááá¯ááºááœááºáááºá¡ááœáẠáá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠáá±ážáá±á¬ááºáááºá
áá±á¬ááºáááº
á¡áá¯á¶ážááŒá¯áá° ááŸá áºáá»áá¯ážááŸááá²á·áááºá ááá SSL SHA-2 áááºááŸááºááᯠá¡áá¯á¶ážááŒá¯á á¡áá±á¬áá·áºáááºááŒááºážááŒáá·áº áááºáá±á¬ááºá¡áá¯á¶ážááŒá¯ááœáá·áº áááŸááá²á·áááºá U áá¯ááá áá±á¬á·ááºá¡ááºááŸáá·áº á áá¬ážááŸááºááᯠá¡áá¯á¶ážááŒá¯á áááºáá±á¬ááºááœáá·áºááŸááá²á·áááºá
HAProxy
ááá¯á·áá±á¬áẠáá±á¬ááºáááºáá±á¬ááºážááá¯áá»ááºááẠá¡á±á¬ááºáá«ááŒá¿áá¬áá»á¬ážááá¯ááŒá±ááŸááºážáá±ážááá·áº HAProxy ááá¯á·ááœá¬ážáááº-
- áá°áááœáá·áºááŒá¯áá»ááºá
- SSL áááºá á²ááŒááºáž
- HTTP áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáá»áááºááŸáááŒááºážá
- áá¯ááºááœáŸáá·áºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá
áá±á¬ááºáááºáááºááŸááºááᯠááœááºážáááºáá áºáá»áŸá±á¬áẠá á áºáá±ážá¡áááºááŒá¯áá²á·áááºá áá»áœááºá¯ááºááá¯á· - á¡á¬áᬠáá»áœááºá¯ááºááá¯á·ááá¯ááºááá¯ááºá áááºáá±á¬ááºááŸá¯áá±á¬ááºáááºáá»á¬ážááᯠáááºááŸááºáá»á¬ážáá¯ááºáá±ážáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠáááºááá¯ááºááẠá
ááááá¡áá»ááºááᯠá¡á¬áá¯á¶á áá¯ááºáá«á áá±á¬ááºá¡áááºážáááºááŒá¬á០ááŒááºááŒá±á¬áá«áááºá
backend
Linux ááœáẠbackend ááŒá¯áá¯ááºááẠá á®á ááºáá²á·áááºá áá±á¬ááºáá¶áá°ááẠáá±áá¬áá±á·á áºááŸáá·áº á¡ááŒááºá¡ááŸáẠáá¯á¶á·ááŒááºáááºá ááá¯á¡ááºáá±á¬ á¡ááœáá·áºáá°ážáá»á¬ážá á¬áááºážááᯠáááºááŒá®ážáá±á¬ááºá áá¯ááºááá¯ááºááœáá·áºá¡áá¯á¶ážááŒá¯áá°ááœáẠáááºááá·áºá¡ááœáá·áºá¡áá±ážáá»á¬ážáá±á«áºáá°áááºáá¬á ááœá±ááŒá±ážááá¯ááºáᬠá á¬ááœááºá á¬áááºážáá»á¬ážááᯠáááºááŸááºááá¯ážáááºááŸáá·áº áááºážááá¯á·ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡ááœáẠáá±ážááá¯á·ááẠááá¯á·ááá¯áẠá¡á á®áááºáá¶á á¬áá áºáá»áá¯ážáá»áá¯áž áááºáá®ážáá«á
HAProxy ááŒáá·áº á á¯áá±á¬ááºážááœá±
áá±á¬ááºáááºáá áºáŠážá á®á áááºážááŒá±á¬ááºážááŸá¬ááá·áº á¡ááŒá±á¬ááºážá¡áá¬ááŸá áºáá¯á¡ááŒááºá á¡áá±á¬ááºá¡áá¬ážá¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯áááºáž ááŸááá²á·áááºá IdentityServer4 ááá·áºá¡á¬áž áá±á¬á·ááºá¡ááºáááºááẠááœáá·áºááŒá¯áááºá áááºážááẠá¡ááá²á·ááŸáá·áº á¡á áœááºážáááºáá±á¬ analogue áá áºáá¯ááŒá áºáááºá ADFS - Active Directory á¡ááœá²á·áá»á¯ááºááºáá±á¬ááºááŸá¯áá»á¬áž.
á¡áá±á¬ááºá¡áá¬ážáá±á¬ááºážááá¯ááŸá¯ááᯠá¡ááá·áºáá»á¬ážá áœá¬ááŒáá·áº áá¯ááºáá±á¬ááºáá²á·áááºá áááááŒá±ááŸááºáž - áá±á¬ááºááẠbackend ááá¯á·áá±á¬ááºáá²á·áááºáá€áá¬áá¬ááŸáá·áº áááºááœááºááŒá®áž áááá¯ááºážááá·áºá¡ááœáẠááá¯áááºáá áºáᯠááŸááá±ááŒááºážááᯠá á áºáá±ážáá±ážáá±á¬á ááŸá¬áááœá±á·áá«áá áá±á¬ááºážááá¯áá»ááºááẠáááºážááŸáá¬áá±á¬á¡ááŒá±á¬ááºážá¡áá¬ááá¯á· ááŒááºáááºáá±á¬ááºááŸááá±á¬áºáááºáž ááŒááºáááºááœáŸááºážáá±ážááŒááºážááŒáá·áº ááŒááºáááºáááºážááœáŸááºááŒááºážááŒáá·áº áááºážááẠá¡áá±á¬ááºá¡áá¬ážááá¯á·ááœá¬ážáá«áááºá
áá¯áááá¡ááá·áº - áá±á¬ááºážááá¯áá»ááºááá¯áááºáá¶áááŸááá²á·áááºá IdentityServer ááŸá ááœáá·áºááŒá¯áá»ááºá á¬áá»ááºááŸá¬ááá¯á·á áááá¯ááºážááá·áºá á¬áááºážááœááºážááá·áºáá±áá¬á ááŒá¬ááŒáá·áºá áœá¬á á±á¬áá·áºááá¯ááºážáá²á·ááá±á¬ ááá¯áááºááẠIdentityServer áá±áá¬áá±á·á áºááœáẠáá±á«áºáá¬áááºá
ááááá¡ááá·áº - client ááá¯ááŒááºááœáŸááºážáá²á·áááºá ááŒá áºáá±á«áºáá¬áá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá®ááá¯á·á
IdentityServer4 ááœááºá¡ááºá¹áá«áááºáá
áºáá¯ááŸááááºá áááºážááẠHTTP ááŸáá
áºááá·áº ááŒááºáá±á¬ááºážááá¯ááŸá¯á¡áá±á«áº áá¯á¶á·ááŒááºááŸá¯ááᯠááŒááºáá±ážáááºá. áá»áœááºá¯ááºááá¯á·ááẠáá¬áá¬ááᯠáááºáááºáá¬ááœáẠáááºáá»áŸááẠáá¯ááºážáááºáá²á·ááá«á
á±á á
á¬ááœááºá
á¬áááºážááŸáá·áº áááºáááºá áá»áœááºá¯ááºááá¯á·ááẠááááááá¯ááºááᯠáááºáá»áŸááẠá¡áááºážáá±ážáá«á
á± HTTPS ááŸáááá·áº áá±á¬ááºáá¬áá±á¬ URL áá
áºáá¯ááŸáá·áº áááŠáž client áá±á¬ááºážááá¯ááŸá¯áá
áºáá¯á¡á¬áž áááºáá¶áááŸáááŒá®ážááá¯ááºáž IdentityServer ááẠáá°áá®áá±á¬á¡ááŒá±á¬ááºážá¡áá¬ááŒá
áºáá±á¬áºáááºáž HTTP ááŒáá·áº ááŒááºáá±ážáá«áááºá áá»áœááºá¯ááºááá¯á· áá¯ááºááŸá¯ááºááœá¬ážáá²á·áááºá á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠHAProxy ááá¯á· á¡áá±á¬ááºá¡áá¬ážááá¯ááºáᬠá¡ááŒá±á¬ááºážá¡áá¬ááŸáááá·áº áá»áœááºá¯ááºááá¯á· ááœáŸá²ááŒá±á¬ááºážáá²á·ááŒá®áž áá±á«ááºážá
á®ážáá»á¬ážááœáẠHTTP áááá¯ááá¯áá±á¬ááᯠHTTPS ááá¯á· ááœááºážáá¶ááẠááá¯á¡ááºáá«áááºá
ááá¯ážáááºááŸá¯á áá¬áá²á áááºáá±áá¬ááŸá¬ ááááºážáááºážáá²á·áá¬áá²á
áá»áœááºá¯ááºááá¯á·ááẠIdentityServer4 ááᯠáá®ážááŒá¬áž á¡ááá¯ááºážáá áºáá¯ááœáẠáá®ážááŒá¬áž node áá áºáá¯á¡ááŒá Ạááá¬ážááŸááá² á¡áá¯á¶ážááŒá¯áá°á¡á¯ááºá á¯á á¡áááºážá¡ááŒá áºáá»á¬ážááᯠááœáá·áºááŒá¯ááẠá¡ááá²á·ááŒá±ááŸááºážáá»ááºáá áºáá¯ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠááœá±ááŒá±ážááᯠáá»áœá±áá¬áá²á·áᬠá¡ááá®áá±ážááŸááºážá áá±á¬ááºááœááºá០áá¯ááºáá±á¬ááºááá·áº áá°áá®áá±á¬áá¬áá¬ááœáẠáááºážááᯠáá±á¬ááºáá¶ááá¯ááºááŸáá·áº ááœá²áá¯á¶ážáá²á·áááºá .
áááºááá¯á¡áá¯ááºáá¯ááºááá·áºááá²á
áá®áá±á¬á· áá»áœááºáá±á¬áºááŒá±á¬áá¬ážáá²á·á¡ááá¯ááºáž Magic Box áá«á áá»áœááºá¯ááºááá¯á·ááẠLinux ááá¯á·ááŒá±á¬ááºážááẠá¡á¬ááá¶áá¬ážááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á· áá¬ážáááºáá¬ážááŒá®ážááŒá áºáááºá ááŒá±ááŸááºážáá»ááºááá¯á¡ááºáá±á¬ áááá»áá±á¬á¡áá¯ááºáá»á¬ážááᯠáá¯á¶áá±á¬áºááŒáá«á áá¯á·á
áá¯ááºáá±ážá áááºááŸá¬ážáááºá áááºáá±á¬ááºááŸá¯ááŸáá·áº á¡ááá®áá±ážááŸááºážááœá²á·á
ááºážáá¯á¶ááœá²á·á
ááºážáá¯á¶ááá¯á·ááᯠáá±ážááá¯á·á
á®áá¶áááºá áá»ááºááŒá¯ááºáááºážá¡áááºážá
á¬ážáá»á¬ážááᯠáá±ážáá¬ážááááºááŒá
áºáá«áááºá áá²áá¶áá
áºááááºááẠáááºáá»áŸ áá»ááºááŒááºááŒá®áž áááá±á¬ááºá
áœá¬ ááŒá®ážááŒá±á¬ááºááŒá±á¬ááºáž ááœááºáááºá
áœá¬ ááŒááááºá
áá±ážááá¯á·áááºážá á á¶ááŸá¯ááºážááẠRPM ááŒá áºáááºá Linux ááœáẠáááºážááá«áá² áááºááá¯ááºááá¯ááºááŒá±á¬ááºáž áá°ááá¯ááºážáá¬ážáááºááŒáá±á¬áºáááºáž ááá±á¬áá»ááºááá¯ááºááá¯ááºá áááºáááºááŒá®ážáá±á¬ááºááœáẠáá¯ááºáá±á¬ááºááá¯ááºáá±á¬ DLL ááá¯ááºáá»á¬áž á¡á á¯á¡áá±ážáá áºáá¯ááŒá áºáááºá á¡á²áá®á¡áá²á áá á áá±á¬ááºááŸááá±á¬á· ááá±á¬áá»ááºá áá±á¬áºáá±á¬áºáááºáááºá áá áºáá¯áááºážáá±á¬áááá¬áááŒá±ááŸááºážáá»ááºááŸá¬ ဠbinary ááᯠRPM ááá¯á·áá¯ááºááá¯ážááŒá®áž áááºážááŸá¡ááá®áá±ážááŸááºážááá¯á¡áá¯á¶ážááŒá¯áááºááŒá áºáááºá
áá¬ážááŸááºážááŒá±á¬ááºážááŒááºážá áá»áœááºá¯ááºááá¯á·ááẠáááŒá¬áá áá¯ááºáá±áá²á·áááŒá®áž áááºáá±á·áá»áºá¡áááºááᯠáááºááá¯á·ááœá²á·á ááºážááááºááᯠáá¯á¶ážááŒááºáá²á·ááááºá á€áááºááŸá¬ TFS ááŸáá·áº áá±á«ááºážá ááºážááŸá¯á¡ááá·áºá áá±ážááœááºážááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááœáẠLinux ááœáẠáááºáá±á¬ááºáá¬ážáá±á¬ á¡á±ážáá»áá·áºáá áºáá¯ááŸááááºá TFS ááẠááá¯ááºááœááºáá° - á¡áá¯ááºááá¬áž - Build á¡á±ážáá»áá·áºáá¶ááá¯á· á¡áá¯ááºáá áºáᯠáá±ážááá¯á·áá±á¬á¡áá«á ááá¯ááºááœááºáá° áá¯ááºáááºážá ááºá áááºáááºážáá»ááºááœáẠá¡áá¯á¶ážáááºááá·áº variable á¡áá»á¬ážá¡ááŒá¬ážááá¯áááºáž áááºážááᯠáá±ážááá¯á·áááºá á€áááºáááºážáá»áẠááááºážááŸááºáá»á¬ážááœáẠBuild á¡áááºá áá¬ážááŸááºážá¡áááºááŸáá·áº á¡ááŒá¬ážáá±á¬ ááááºážááŸááºáá»á¬áž áá«áááºáá«áááºá "RPM áááºáá±á·áá»áºáááºáá±á¬ááºááŒááºáž" ááá¹áááœáẠá€á¡ááŒá±á¬ááºážááá¯ááá¯áááºááŸá¯áá«á
TFS á áá áºááá·áºááœááºážááŒááºážá ááá¯ááºááá¯ááºážáááºáá±á¬ááºááẠáááºážáá¬áááºá ááááºá áá»áœááºá¯ááºááá¯á·ááẠWindows á¡á±ážáá»áá·áºáá»á¬ážáá±á«áºááœáẠWindows ááá±á¬áá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá á¯áá±á¬ááºážáá²á·áá±á¬áºáááºáž ááá¯á¡áá« Linux á¡á±ážáá»áá·áºáá áºáᯠáá±á«áºáá¬ááẠ- áááºáá±á¬ááºááŸá¯á¡ááœá²á·ááœáẠááá·áºááœááºážáááºááá¯á¡ááºáá±á¬á á¡áá»áá¯á·áá±á¬ áá á¹á ááºážáá»á¬ážááŒáá·áº ááŒáœááºááá¬ááŒá®áž ဠBuild á¡á±ážáá»áá·áºááœáẠáááºáá±á¬ááºááá·áº ááá±á¬áá»ááºá¡áá»áá¯ážá¡á á¬ážááᯠááŒá±á¬ááŒááẠááá¯ááºááá¯ááºážááᯠáá áºáááºážáááºážáá²á· ááŒááºáááºáá«á
IdentityServer ADFS áááºáá»áœááºá¯ááºááá¯á·ááááºážáááºážááá¯ááºáá«á áá»áœááºá¯ááºááá¯á·ááẠOpen Source á¡ááœááºááœá¬ážáááºááŒá áºáááºá
á¡á áááºá¡ááá¯ááºážáá»á¬ážááá¯ááŒááºáááºážááŒáá«á áá¯á·á
ááŸá±á¬áºáá±áá¹áá¬
á¡ááá¯ááºážáá±ážááá¯ááºáž áá«áááºáááºá
Linux Build á¡á±ážáá»áá·áºá Linuxá áá»áœááºá¯ááºááá¯á· áááºážá¡ááœáẠáááºáá±á¬ááºáá¬ážáá±á¬ááŒá±á¬áá·áº - áááºážááẠáá¯áá¹áááááºáá«áááºá á€á¡ááá¯ááºážááᯠá¡ááá·áºáá¯á¶ážááá·áºááŒáá·áº áá¯ááºáá±á¬ááºáá²á·áááºá
- á¡áá¯ááºááá¬ážáá»á¬ážááᯠá á®á ááºáá±ážáááºá ááá±á¬áá»ááºááœáẠááŒáá·áºáá±ááŒááºážáá¯ááºáááºážááᯠáá»áŸá±á¬áºááá·áºáá¬ážáá±á¬ááŒá±á¬áá·áº áá áºáá±á¬ááºáááºážááá¯ááºáá«á
- .NET Core 1.x ááᯠááá·áºááœááºážáá«á. 1 ááᯠstandard repository ááœááºáááŸáááá¯ááºááŒá®ážáá±á¬á¡áá« 2.0.x ááᯠá¡áááºááŒá±á¬áá·áºáááºážá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº áá»áœááºá¯ááºááá¯á· ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á áááºáá±á¬á¡áá«á áááºááŒáááºáá±á¬áá¬ážááŸááºážááŸá¬ 1.09 ááŒá áºááŒá®áž áááºážááᯠá¡ááŒá±áá¶á ááá±á¬áá»ááºááᯠááŒá¯áá¯ááºááẠáá¯á¶ážááŒááºáá²á·áááºá
- Git 2.x.
RPM-repository RPM áááºáá±á·áá»áºáá»á¬ážááᯠáá áºáá±áá¬áá¬ááœáẠááááºážáááºážáá¬ážááẠááá¯á¡ááºáááºá Linux hosts á¡á¬ážáá¯á¶ážááœááºáááŸáááá¯ááºááá·áº áá°áá®áá±á¬áá±á¬áºááá¯áááẠRPM ááá¯ááŸá±á¬ááºááŸá¯ááᯠáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯áááºáᯠáá°ááá«áááºá á¡á²áá« áá°ááá¯á· áá¯ááºáá²á·áá¬á repository server ááᯠconfigure áá¯ááºáá¬ážáááºá áááºá¹ááá¬áá« áááºááŸááºáá¬ážáá±á¬ áááºáá±áá¬á០ááá¯á¡ááºáá±á¬ RPM á¡áá¯ááºááᯠáá±á«ááºážáá¯ááºáá¯ááºáááºá á¡áá¯ááºáá¬ážááŸááºážááᯠBuild á¡á±ážáá»áá·áºá០webhook ááá¯á· ááá¯ááºááŒá¬ážáá²á·áááºá
GitLab á ááááá¬áž! á€áá±áá¬ááœáẠGitLab ááᯠdeveloper áá»á¬ážááá¯ááºáá±á¬áºáááºáž á¡ááºááá®áá±ážááŸááºážáá¬ážááŸááºážáá»á¬ážá áááºáá±á·áá»áºáá¬ážááŸááºážáá»á¬ážááᯠááááºážáá»á¯ááºáááºá Linux á ááºá¡á¬ážáá¯á¶ážá á¡ááŒá±á¡áá±ááᯠá á±á¬áá·áºááŒáá·áºáááºááŸáá·áº á á¬ááœááºááᯠááááºážáááºážááẠ- Puppet manifests á¡á¬ážáá¯á¶ážááᯠááááºážáááºážáá¬ážáááºá
áá¯ááºáá±áž â á¡ááŒááºážááœá¬ážááœááºááŒá¿áá¬á¡á¬ážáá¯á¶ážááᯠááŒá±ááŸááºážáá±ážááŒá®áž áá»áœááºá¯ááºááá¯á·ááá¯áá»ááºáá±á¬ Gitlab á០á¡ááá¡áá»ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠáá±ážáá±á¬ááºáááºá
áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáááºá áááºáááºá RPM ááá¯á· DLL áá±ážááá¯á·ááŸá¯ áááºááá¯á·á¡áá¯ááºáá¯ááºááááºážá
RPM ááá¯á· DDL áá±ážááá¯á·ááŒááºážá
áá»áœááºá¯ááºááá¯á·ááœáẠ.NET ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±áž rockstar áá áºáá¯ááŸáááẠááá¯ááŒáá«á áá¯á·á áááºážááẠVisual Studio ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž áá¯ááºáá±ááŸá¯áá¬áááœá²áá áºáá¯ááᯠáááºáá®ážáááºá áááºážáá±á¬ááºá áááºážááẠGit ááá¯á· á¡ááºáá¯ááºáá¯ááºáᬠGit á€áá±áá¬ááœáẠTFS entity ááŒá áºáááºá ááá¯ááá¯áááºááŸá¬ áááºážááẠdeveloper á¡áá¯ááºáá¯ááºáá±á¬ application repository ááŒá áºáááºá
ááá¯á·áá±á¬ááºááœáẠTFS ááẠáááááááºá¡áá
áºáá
áºáá¯áá±á¬ááºááŸááá¬áááºááá¯ááŒááºáááºá áááºá¡ááºááºáá²á TFS áááºáááºáá»á¬ážááœáẠBuild á¡á±ážáá»áá·áºááœáẠáááºááá·áºá¡áááºážá¡ááŒá
áºáá»á¬ážááŸáááŒá±á¬ááºáž áá±á¬áºááŒááá·áº á¡ááœáŸááºážáá
áºáá¯ááŸááááºá á€ááá
á¹á
ááœááºá áá»áœááºá¯ááºááá¯á·ááẠ.NET Core ááá±á¬áá»ááºáá
áºáá¯ááᯠáááºáá±á¬ááºáá±ááŒá®áž áá±áááºáá²á០Linux Build á¡á±ážáá»áá·áºááᯠááœá±ážáá¬ážááŒá±á¬ááºáž áá°ááŒááºáááºá
Build á¡á±ážáá»áá·áºááẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºáá¶áááŸáááŒá®áž ááá¯á¡ááºááá·áºá¡áá¬áá»á¬ážááᯠáá±á«ááºážáá¯ááºáá¯ááºáááºá ááŸá®ááᯠ.NET repository, npm, etc. á¡ááá®áá±ážááŸááºážááᯠááá¯ááºááá¯ááºáááºáá±á¬ááºááŒá®áž áá±á¬ááºáááºááœá²áá¯ááºááá¯ážááŒá®ážáá±á¬ááºá RPM á¡áá¯ááºááᯠRPM ááá¯ááŸá±á¬ááºáá¬ááá¯á· ááá¯á·áá±ážáááºá
á¡ááŒá¬ážáá áºáááºááœááºá á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá áºáá»ááºáááºá á á áºáááºáá±ážáá¬áá០á¡ááºáá»ááºáá®áá¬ááẠááá±á¬áá»ááºá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááœáẠááá¯ááºááá¯ááºáá«áááºáá«áááº- áá°ááẠáááºáá±á·áá»áºáá¬ážááŸááºážáá»á¬ážááᯠááŒá±á¬ááºážáá²áá«áááºá Hiera á¡ááá®áá±ážááŸááºáž á á¬ááœááºááᯠááááºážáááºážáá¬ážááá·áº ááá¯ááŸá±á¬ááºáá¯á¶ááœááºá ááá¯á·áá±á¬áẠáá¯ááºáá±ážá¡á áá»áá¯ážáááºá yumá repository á០áááºáá±á·ááºá»á¡áá áºááᯠáá¯ááºáá°ááŒá®áž á¡ááá®áá±ážááŸááºážá áá¬ážááŸááºážá¡áá áºááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááá·áºááŒá áºáá±áá«ááŒá®á
á¡áá¬á¡á¬ážáá¯á¶ážááẠá
áá¬ážáá¯á¶ážáá»á¬ážááŒáá·áº ááá¯ážááŸááºážáá±á¬áºáááºáž Build á¡á±ážáá»áá·áºááá¯ááºááá¯ááºá áá¬ááŒá
áºááœá¬ážááááºážá
áá¯ááºááá¯ážááŒááºáž DLL RPM
ááá±á¬áá»ááºáááºážááŒá áºáá»á¬ážááᯠáááºáá¶áááŸáááŒá®áž TFS á០áá¯ááºáá±á¬ááºá áá¬áá»á¬ážááᯠáááºáá±á¬ááºáá«á áá±á¬ááºáá¯ááºáá±ážááá¯ááºá á¬ážááŸáẠááá±á¬áá»ááºááᯠá¡áááºážá¡ááŒá áºáá»á¬ážá០á áááºáááºáá±á¬ááºáááºá. á á¯á ááºážáá¬ážáá±á¬ ááá±á¬áá»ááºááᯠá¡á á¯áá áºáá¯á¡áá±ááŒáá·áº áááŸáááá¯ááºáááºá DLL ááá¯ááºáá»á¬ážááá¯ááºá áá áºáá±á«áºááŸááááºááá¯áá»áŸá±á¬á·áá»ááẠzip archive ááœááºáá¯ááºááá¯ážáá¬ážáááºá
ZIP ááŸááºáááºážááᯠááœáŸáá·áºáá áºááá¯ááºáááºá RPM package build directory ááá¯á·á ááá¯á·áá±á¬áẠBash script ááẠáááºáááºážáá»áẠvariable áá»á¬ážááᯠá¡á ááŒá¯áᬠBuild versioná ááá±á¬áá»ááºáá¬ážááŸááºážá build directory ááá¯á· áááºážááŒá±á¬ááºážááᯠááŸá¬ááœá±ááŒá®áž RPM-build ááᯠáá¯ááºáá±á¬ááºáááºá áááºáá±á¬ááºááŸá¯ááŒá®ážáááºááŸáá·áºá áááºáá±á·áá»áºááᯠáá¯ááºáá±áááºá áá±áááœááºážááá¯ááŸá±á¬ááºááŸá¯Build á¡á±ážáá»áá·áºáá±á«áºááœááºáááºááŸááááºá
ááá¯á·áá±á¬áẠBuild agent á០RPM repository ááŸá server ááá¯á· JSON áá±á¬ááºážááá¯áá»ááºááᯠááá¯á·ááá¯ááºáá«ááŒá®á áá¬ážááŸááºážá¡áááºááŸáá·áº build ááá¯ááœáŸááºááŒáááºá á¡á á±á¬ááá¯ááºážá áá»áœááºáá±á¬áºááŒá±á¬áá²á·ááá·áº Webhook ááẠBuild á¡á±ážáá»áá·áºááŸá áá±áááœááºážááá¯ááŸá±á¬ááºááŸá¯á០á€á¡áá¯ááºááᯠáá±á«ááºážáá¯ááºáá¯ááºáᬠáááºáááºááŸá¯á¡áá áºááᯠáááºáááºááá¯ááºá á±áááºá
RPM repository ááá¯á· á€á¡áá°ážá¡áá¯ááºááá¯á·áá±á¬ááºááŸá¯á¡á
á®á¡á
ááºááᯠá¡áááºááŒá±á¬áá·áºáááºážá á
á¯á
ááºážáá¬ážáá±á¬ áááºáá±á·ááºá»ááᯠááá¯ááŸá±á¬ááºáá¯á¶ááá¯á· á¡áááºááŒá±á¬áá·áº áá»ááºáá»ááºáž áááá¯á·ááá¯ááºááááºážá á¡ááŸááºááŸá¬ á€áááºááŸá¬ áá¯á¶ááŒá¯á¶ááŸá¯ááŸáá
á±áááºá¡ááœáẠá¡ááŒá±á¡áá±áá
áºáááºááŒá
áºáááºá á€á¡ááŒá±á¡áá±ááẠRPM áááºáá±á·áá»áºáá»á¬ážááᯠLinux á
ááºá¡á¬ážáá¯á¶ážááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬ áá¬áá¬áá
áºáá¯ááá¯á· ááœáá·áºááŒá¯áá»ááºáááŸááá°áá»á¬áž á¡ááºáá¯ááºáá¯ááºááŒááºážá ááŒá
áºááá¯ááºááŒá±ááᯠááá·áºáááºáá¬ážáááºá
áá±áá¬áá±á·á áºáá¬ážááŸááºážáá¬ážááŸááºáž
ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážá¡ááœá²á·ááŸáá·áº ááœá±ážááœá±ážááŸá¯áá áºáá¯ááœáẠáá±á¬ááºá»á¬ážáá»á¬ážááẠMS SQL ááŸáá·áº ááá¯ááá¯áá®ážá ááºááŒá±á¬ááºáž ááœá±á·ááŸáááá±á¬áºáááºáž Windows ááá¯ááºáá±á¬ ááá±á¬áá»ááºá¡áá»á¬ážá á¯ááœáẠPostgreSQL ááᯠá¡á áœááºážáá¯áẠá¡áá¯á¶ážááŒá¯áá±ááŒá®ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠáá±ážáá±á¬ááºáá¬ážááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááᯠá áœáá·áºááœáŸááºááẠáá¯á¶ážááŒááºáá¬ážááŒá®ážááŒá áºáá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·áááºáž á€áá±áá¬ááœáẠPostgreSQL ááᯠá áááºá¡áá¯á¶ážááŒá¯áá²á·áááºá
á€á¡ááá¯ááºážááœááºáá»áœááºá¯ááºááá¯á·áááºáá±áá¬áá±á·á
áºááá¯áááºáá²á·ááá¯á·áá¬ážááŸááºážáá¯á¶á
á¶ááŸáá·áº Flyway ááŸáá·áº Entity Framework Core á¡ááŒá¬ážáááºááá¯á·ááœá±ážáá»ááºáá²á·áááºááá¯ááŒá±á¬ááŒááá¯áá«áááºá áá°ááá¯á·áá²á· á¡á¬ážáá¬áá»áẠá¡á¬ážáááºážáá»ááºááœá±ááᯠááŒáá·áºáá¡á±á¬ááºá
ÐОМÑÑÑ
Flyway á áá áºáááºážáááºážáá² ááœá¬ážáááºá áá«ááá¯á· áá±á¬ááºááŒááºááŸáá·áºááá¯á· áááá°ážá - áá«á áááá¬áááºááŸá¬ážáá²á· á¡á¬ážáááºážáá»ááºáá«á áá±á¬á·ááºáá²áá±ážáá¬ážáá° á¡áááºááŒá±ááŸá¯á¡á áááºážááᯠá¡ááŒá¬ážáááºážáááºážáá»á¬ážááŒáá·áº Entity Framework Core ááŸáá·áº ááŸáá¯ááºážááŸááºááá¯ááºáááºá áá«ááᯠáá»áœááºá¯ááºááá¯á· ááŸá±á·áááºážáááºáá¬ážááŒá±á¬ááºáž ááááááŒá®áž á¡ááá á á¶áááºááŸááºáá»ááºááŸá¬ Windows ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠáááºááá·áºá¡áá¬ááá¯áá»áŸ ááŒá±á¬ááºážáá²áááºááá¯ááºáá±á
Flyway á¡ááœáẠwrapper áá áºáá»áá¯ážáá»áá¯áž ááá¯á¡ááºáá«áááºááá«ááŒá±á¬áá·áº áá±á¬ááºá»á¬ážáá±ážááœá± ááá±ážááŒá áºáá°ážá SQL áá±ážááœááºážáá»á¬áž. áááºážááá¯á·ááẠOOP áááºááŸááºáá»ááºáá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºááẠááá¯ááá¯áá®ážá ááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáá±áá¬áá±á·á áºá¡áá¬ááá¹áá¯áá»á¬ážááŸáá·áº áá¯ááºáá±á¬ááºáááºá¡ááœáẠááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáá±ážáá¬ážáá²á·ááŒá®áž SQL query áá áºáá¯ááᯠáááºáá®ážáᬠáááºážááᯠáá¯ááºáá±á¬ááºáá²á·áááºá áá±áá¬áá±á·á áºááá¬ážááŸááºážá¡áá áºááẠá¡áááºááá·áºááŒá áºááŒá®á á ááºážáááºááŒá®ážááŒá áºááẠ- á¡áá¬á¡á¬ážáá¯á¶ážá¡áááºááŒá±áááºá á¡á¬ážáá¯á¶ážá¡áá¯ááºáá¯ááºáááºá
Entity Framework Core ááœáẠá¡áá¯ááºááá¹ááᬠááŸáááẠ- áááºážááᯠáá±ážáá¶áá±á¬ áááºáá»á¬ážá¡á±á¬ááºááœáẠááŸááááºá á¡ááá·áºáá±á¬áºáá¯á¶áž SQL queries áá»á¬ážááᯠáááºáá±á¬ááºáááºáá ááŸáá·áº áá±áá¬áá±á·á áºááŸá áá¯ááºááœááºááŸá¯ááẠáááá¬áááºááŸá¬ážáááºá ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·ááœáẠáááºá¡á¬ážááŒáá·áºáá¬ážáá±á¬áááºáá±á¬ááºááŸá¯áááŸááá±á¬ááŒá±á¬áá·áº RPS áá¬áá±á«ááºážáá»á¬ážá áœá¬ááŒáá·áº áááºááá¯áááœááºáá»ááºáá«á á€á¡áá¹ááá¬ááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á·áááºáá¶ááŒá®áž ááŒá¿áá¬ááᯠá¡áá¬áááºá¡ááœáẠááœáŸá²á¡ááºáá¬ážáá«áááºá
ÐлÑÑÑ
Entity Framework Core box ááŸá¡áá¯ááºáá¯ááºááŒá®ážááœá¶á·ááŒáá¯ážááá¯ážáááºáááºááœááºáá°áááºáááŸáá·áº Flyway ááŸáááŒá®ážáá¬áž CI ááœáẠá¡ááœááºááá° áá±á«ááºážá ááºáá«á. áá«áá±ááá·áº developer ááœá±á¡ááœááºáá±á¬á· á¡áááºááŒá±á á±ááŸá¬áá« :)
áá¯ááºáááºážá ááºá¡áá»ááºáž
ááœáŸá±á·ááŒá±á¬ááºážááŒááºážá¡ááœáẠáá¬áááºááŸáááá·áºá¡áᬠá¡áá«á¡ááẠáááºáá±á·áá»áºáá¬ážááŸááºážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá áºáᯠáá¬áááºááᯠáá¯ááºáá±ážááŒááºáááºá ááááŠážá áœá¬á áááºážááẠmigration scripts ááŸáá·áº database-related functionality áá«ááŸááá±á¬ package áá áºáá¯ááᯠinstall áá¯ááºáá«áááºá áááºážááŒá®ážáá±á¬ááºá áá±áá¬áá±á·á áºááŸáá·áºá¡áá¯ááºáá¯ááºáá±á¬áá»áŸá±á¬ááºááœáŸá¬ááá¯ááŒááºáááºá áááºáááºá áá±á¬ááºáá áºáá¯ááá±á¬á· áá»ááºááŸááá²á· á¡á áááºá¡ááá¯ááºážááœá±ááᯠáááºáááºáá«á áááºáá±á·áá»áºáá»á¬áž ááá·áºááœááºážááŒá®áž á¡ááá®áá±ážááŸááºážáá»á¬áž á áááºááá·áº á¡á á®á á¥áºááᯠáá¯ááºáá±ážáááºáá®ážáááºá áºááœáẠáá±á¬áºááŒáá¬ážáá«áááºá
á¡ááá®áá±ážááŸááºážáá»á¬ážááẠááá¯áááºáá»á¬ážá áá±áá¬áá±á·á áºá áá¬ážááŸááºáá»á¬ážáá²á·ááá¯á· á¡áá±ážááŒá®ážáá±á¬áá±áá¬ááᯠá¡áá¯á¶ážááŒá¯áááºá áááºážááá¯á·á¡á¬ážáá¯á¶ážááᯠáá¯ááºááŸááºáá¬ážáá±á¬áá¯á¶á á¶ááŒáá·áº ááááºážáááºážáá¬ážááá·áº Puppet master á០config ááá¯á· ááœá²áá¯ááºáá«áááºá
TFS ááŒá¿áá¬áá»á¬áž
áá«ááá¯á·á¡á¬ážáá¯á¶ážá áá«ááá¯á·á¡ááœáẠááááºá¡áá¯ááºáá¯ááºáá±áá¬ááá¯á· áá¯á¶ážááŒááºááŒá®áž áá¬ážáááºáá¬áá²á·á¡áá«á áá«ááá¯á·á áááŒá¬ážááá±á¬áá»ááºááœá±ááŸá¬ Win development áá¬áá¡ááœáẠTFS ááŸá¬ááŸááá²á· á ááºážáá±ážááœá²ááœá± áá¬ááœá±ááŒá áºáá±áá²ááá¯áá¬ááᯠááŒáá·áºááá¯á· áá¯á¶ážááŒááºááá¯ááºáááºá á¡ááŸáááºááŒáá·áº áááá¬áááºááŸá¬ážáá±á¬ ááŒá¿áá¬áá»á¬ážááᯠááŸá¬ááœá±ááœá±á·ááŸááá²á·áááºá
á¡áááááá±á¬áá»ááºáá áºáá¯ááẠá á¯á ááºážááẠ12-15 áááá áºááŒá¬ááẠ- áááºážááẠá¡áá»áááºá¡áá±á¬áºááŒá¬áááºá áááºááẠááá¯áá²á·ááá¯á· áá±ááá¯ááºáááºááá¯ááºáá±á á¡ááŒááºááœá²ááŒááºážá áááºááŒá¬ááŸá¯áá áºáá¯ááẠI/O ááœáẠááŒá±á¬ááºáááºááœááºáá±á¬ááºážáá±á¬ áá¯ááºááœááºááŸá¯ááᯠááŒááá²á·ááŒá®áž áááºážááẠarray áá»á¬ážáá±á«áºááœááºááŒá áºáááºá
áááºážááᯠá¡á áááºá¡ááá¯ááºážá¡ááá¯áẠááœá²ááŒááºážá áááºááŒá¬ááŒá®ážáá±á¬ááºá áá»áœááºáá±á¬áºááẠfoci áá¯á¶ážáá¯ááᯠááŸá¬ááœá±ááœá±á·ááŸááá²á·áááºá ááá- "Kaspersky Antivirus"Windows Build á¡á±ážáá»áá·áºá¡á¬ážáá¯á¶ážááŸá á¡áááºážá¡ááŒá áºáá»á¬ážááᯠá áááºááºáááºáááºá áá¯ááá- Windows ááᯠá¡ááœáŸááºážá áááºážááᯠááááºáá¬ážááŒááºážáááŸááá«á á¡áá¯á¶ážáá»ááŸá¯áá¯ááºáááºážá ááºá¡ááœááºáž Build á¡á±ážáá»áá·áºáá»á¬ážáá±á«áºááŸá á¡áá¬á¡á¬ážáá¯á¶ážááᯠá¡áá»áááºááŸáá·áºáááŒá±ážáá® á¡ááœáŸááºážáá±ážáá¬ážáá«áááºá
áááá- Npm ááá·áºááœááºážáá«á ááá¯ááºááá¯ááºážá¡áá»á¬ážá á¯ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá€áááá»áá±á¬ ááŒááºááœááºážááᯠá¡áá¯á¶ážááŒá¯áá²á·ááŒááẠá áá°áá¬ááá¯á·ááá¯ážáá±áá¬áá²á ááŸá®ááá¯ááŸá¯áá áºáááºááᯠááœá²á·á ááºážáá±á¬á¡áá« Npm ááá·áºááœááºážááŒááºážáá¯ááºáááºážá ááºááᯠáá¯ááºáá±á¬ááºáááºá package-lock.jsonááá±á¬áá»ááºáááºáá±á¬ááºáá¬ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº áááºáá±á·áá»áºáá¬ážááŸááºážáá»á¬ážááᯠááŸááºáááºážáááºáá¬ážáá¬á á¡á¬ážáááºážáá»ááºááŸá¬ Npm ááá·áºááœááºážááŒááºážááẠá¡ááºáá¬áááºá០áá±á¬ááºáá¯á¶ážááœáẠáááºáá±á·áá»áºáá»á¬ážááᯠá¡áá»áááºááá¯ááºáž ááœá²áá°ááá¯ááºááŒá®áž ááŒá®ážáá¬ážáá±á¬ ááá±á¬áá»ááºáá áºáá¯á¡ááœáẠá¡áá»áááºáá»á¬ážá áœá¬ ááŒá¬áá«áááºá
á¡áá»áá¯á·áá±á¬ á¡á áááºá¡ááá¯ááºáž ááá¯á·ááá¯áẠááá±á¬áá»ááºáá áºáá¯áá¯á¶áž áááºááá¯á·á¡áá¯ááºáá¯ááºáááºááᯠá ááºážáááºááẠáá áºáá«áá áºáá¶ááœáẠdeveloper áá»á¬ážááẠáá±áááœááºážá ááºáá áºáá¯ááœáẠá ááºážáááºááŒáááºá ááá«ááá¶ááŸá¬ á¡áá¬á¡á¬ážáá¯á¶ážá ááŒááºááœááºážááŸá¬ á¡á±ážááŒáááºááá¯á· áááºááá±ááá·áº á á¯á ááºážááŒá®áž ááŸááá·áºáá¯ááºááá¯ááºááŒáᬠáá¬ááŸáááŒá áºáá«áá°ážá ááŒá¿áá¬á áá¬áá²ááá¯áᬠá¡ááŒá±ááŸá¬ááŒáá·áºáá±á¬á· áá¯ááºáááºá ááŸá®ááá¯ááŸá¯ááŸááá²á· áááºáá±á·áá»áºááœá±áá²á· áá¬ážááŸááºážá¡áá»áá¯ážáá»áá¯ážá
áá¯á¶ážááŒááºáá»ááº
- AV ááŒáœááºážáá»ááºáá»á¬ážááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážá
- á¡ááœáŸááºážáá±ážááŒááºážááᯠááááºáá«á
- ááœá¬ážáá« npm ci.
npm ci á á¡á¬ážáá¬áá»ááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠááŸá®ááá¯áá áºáááºááᯠáá áºááŒáááºá á¯áá±á¬ááºážáá«áááŸáá·áº áá±á¬á·ááºáá²áá±ážáá¬ážáá°ááᯠáá±ážáá±á¬ááºááẠá¡ááœáá·áºá¡áá±ážááᯠáá»áœááºá¯ááºááá¯á· áááŸááá«áááºá áááºááŸá packages áá»á¬ážá á¬áááºážááááááŸá áºáááºááá±á¬áẠááŒááºááœááºážááŸá¬ á ááºážáááºááá¯ááºáá«áááºá áá® á¡áá»áááºáá¯ááºáááºáá¬á á±áááºá code áá±ážáá²á· developer ááœá±á
configuration áá»á¬áž
ááᯠrepository configuration á¡ááŒá±á¬ááºážá¡áááºážáááºá áááá¯ááºážááŒá±á¬ááºážá¡á áá»áœááºáá±á¬áºááá¯á· áá¯á¶ážáá«áááºá ááᯠNexus á¡áá«á¡ááẠrepositories á á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáẠá¡ááœááºážááá¯ááºáž REPO. á€á¡ááœááºážááá¯ááºážááá¯ááŸá±á¬ááºááŸá¯ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡ááœááºážááá¯ááºážáááºááœááºáá»ááºáá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº á¡á áááºá¡ááá¯ááºážáá»á¬áž á¥ááá¬á¡á¬ážááŒáá·áºá ááá¯ááºááá¯ááºáá±ážáá¬ážáá±á¬ á á±á¬áá·áºááŒáá·áºá á áºáá±ážááŒááºážáá«ááŸááááºá
áá»áœááºáá±á¬áºááá¯á·áááºáž áá¯á¶ážáá«áááºá NuGetá¡ááŒá¬ážáá±á¬ áááºáá±á·áá»áºáááºáá±áá»á¬áá»á¬ážááŸáá·áº ááŸáá¯ááºážááŸááºáá«á áááºáá»áºááá¯áá±á¬ááºážáá±á¬ááŒá±á¬áá·áºá
ááááº
áá»áœááºá¯ááºááá¯á·ááẠBuild Agents áá»á¬ážááᯠá¡áá±á¬ááºážáá¯á¶ážááŒááºáááºááŒá®ážáá±á¬ááºá áá»ááºážáá»áŸáááºáá±á¬ááºáá»áááºááᯠ12 áááá áºá០7 áááá áºááá¯á· áá»áŸá±á¬á·áá»áá²á·áááºá
Windows á¡ááœáẠáá»áœááºá¯ááºááá¯á·áá¯á¶ážááá¯ááºááá·áº á ááºá¡á¬ážáá¯á¶ážááᯠáá±ááœááºáá±á¬áºáááºáž á€ááá±á¬áá»ááºááœáẠLinux ááá¯á·ááŒá±á¬ááºážáá«áá áá»áœááºá¯ááºááá¯á·ááẠ$10 ááá·áº áááºáá¬áááºá áááºážááẠááá¯ááºá ááºá¡ááœááºáá¬ááŒá áºááŒá®áž á¡ááŒá±á¬ááºážá¡áá¬ááᯠááá·áºááœááºážá ááºážá á¬ážáá«á á¡ááŒá¬ážá¡áá¬áá»á¬ážááŒá áºáááºá
á¡á á®á¡á ááºáá»á¬áž
áá¬ááá·áºáá¯á¶ážááááºá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáá±ážááá¯á·ááŸá¯ááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬áẠáá¯ááºáá±á¬ááºááẠá á®á ááºáá¬ážáá«áááºá
ááŒáá¯áááºáááºáá±á¬ááºáá¬ážááá·áº Docker áá¯á¶ááá¯á· ááŒá±á¬ááºážáá±áááºá. TFS ááẠDocker áá¯á¶á trigger-based assembly á¡áá«á¡ááẠPipeline ááœáẠáá±á«ááºážá ááºážááá¯ááºá á±ááá·áº ááááºá¡ááºáá»á¬ážá áœá¬áá«ááŸááá±á¬ á¡á±ážááŒáá±á¬á¡áá¬áá áºáá¯ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠá€á¡á áá»áá¯ážááŸá¯ááᯠáá áºáá¯áááºážá¡ááœáẠááŒá¯áá¯ááºááá¯áá«áááºá package-lock.json. ááá±á¬áá»ááºááá¯áááºáá±á¬ááºáá¬ááœááºá¡áá¯á¶ážááŒá¯ááá·áºá¡á áááºá¡ááá¯ááºážáá»á¬ážáááœá²á·á ááºážáá¯á¶áááºáá áºáááºážáááºážááŸáá·áºááŒá±á¬ááºážáá²áá«á Docker áá¯á¶á¡áá áºááá¯áá»áœááºá¯ááºááá¯á·áááºáá±á¬ááºáá«á á á¯á ááºážáá¬ážáá±á¬ á¡ááºááºááŒáá·áº ááœááºááááºáá¬ááᯠáá±á¬ááºááá¯ááºážááœáẠá¡áá¯á¶ážááŒá¯ááẠá¡áá¯á¶ážááŒá¯áááºá ááá¯ááá á¹á ááá¯ááºáá«á áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááá¯áá¹ááá®ááœáẠáááºááŒáœá áœá¬ááœá¶á·ááŒáá¯ážáá±ááŒá®áž áá¯ááºáá¯ááºááŸá¯ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠá¡áá»áááºá¡áá±á¬áºááŒá¬ áá±á¬ááºááœááºáá±ážáá±ááá·áº Kubernetes ááŸá ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áááá¯áá¬áá áºáá¯ááá¯á· ááŒá±á¬ááºážááẠá á®á ááºáá±áá«áááºá
á¡áá»ááºážáá»á¯ááº
Windows ááᯠááœáŸáá·áºáá áºááá¯á· áá°ááá¯ááºážááᯠááá¯ááºááœááºážáá«áááºá áá«áá±ááá·áº áá»ááºááŒá¯ááºáááºážááᯠááááá¬ááŒá±á¬áá·áº ááá¯ááºáá«áá°ážá á¡ááŒá±á¬ááºážááŒáá»ááºááŸá¬ Opensource ááŒá±ááŸááºážáá»ááºá¡áá»á¬ážá á¯ááŒá áºáááºá Linux stack. á¡áááºááŒá±ááá¬áž á¡áááºážá¡ááŒá áºáá»á¬ážááá¯áá»áœá±áá¬áá«á. áá»áœááºáá±á¬á·áºá¡ááŒááºá¡ááá±á¬á· á¡áá¬áááºáᬠá¡á¬ážáá±á¬ááºážáá²á· á¡ááá¯ááºážá¡ááá¯ááºážáá²á· Linux ááŸá Open Source ááŒá±ááŸááºážáá»ááºááœá±áá²á· áááºááá¯ááºáá«áááºá
Alexander Sinchinov á Speaker Profile
DevOps Conf ááá±á¬áºáááºááŸááºáááºáá»á¬ážá០áá»áœááºážáá»ááºááá¬ááŸááºáá»á¬ážá¡ááœáẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á á ááºážáááºááŸá¯ááŸáá·áº áá¯ááºáááºážáá±á¬ááºááœááºááŸá¯ áá¯ááºáááºážá ááºáá»á¬áž áá±á«ááºážá ááºááŒááºážááá¯ááºáᬠáá®áá¬áá¶áá áºáá¯ááŒá áºáááºá á¡á²áá«ááŒá±á¬áá·áº Alexander ááŒá±á¬áá²á·áá²á· ááá±á¬áá»ááºááŒá±á¬áá·áºáá¬ážá á¡áá±á¬ááºá¡áááºáá±á¬áºááŒá®áž á¡áá¯ááºáá¯ááºááŒá®áž áá»á±á¬áºááŒá±ááœá²áá±á·ááœáẠá¡á±á¬ááºááŒááºáá±á¬ áá¯ááºáá±ááŸá¯ ááŸá áºáá¯ááŸááááºá ááááºRIT++ ááŸá DevOps Conf áá±á áá áááºááŸáá·áº áá áááºááá¯á·ááœáẠá¡áá¬ážáá°ááŒá áºáááºáá»á¬áž áááºáá¶ááŒá áºááœá¬ážáŠážáááºááŒá áºáááºá áááºááẠáá±á¬ááºáá¯á¶ážááá¬ážáá±á«áºááá¯á· áá¯ááºáááºážááá¯ááºáá±ážáááºáá¡á á®áááºáá¶á á¬áááºááœááºážáá«á ááá¯á·ááá¯áẠááá·áºá¡áá»áááºáá°áá«áá á¬á¡á¯ááºáá¯ááºááẠáááºááŸááºá Skolkovo ááœááºáá»áœááºá¯ááºááá¯á·ááá¯ááœá±á·áá¯á¶áá«á
source: www.habr.com