entry ááá¯
áá±áá¹áá¬ááŸáá·áºááŒá¬ážááá¯ááºáá«á!
á€áá±á¬ááºážáá«ážááœáẠneural networks áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááá±á¬áá»ááºáá áºáá¯á¡ááœáẠmicroservice áááá¯áá¬áááºáá±á¬ááºááŒááºážá¡ááœá±á·á¡ááŒá¯á¶ááᯠáá»áŸáá±áá«áááºá
áááá¯áá¬ááá¯ááºáá¬ááá¯á¡ááºáá»ááºáá»á¬ážá¡ááŒá±á¬ááºážááŒá±á¬ááŒáá¡á±á¬ááºá á¡áá»áá¯ážáá»áá¯ážáá±á¬ááœá²á·á ááºážáá¯á¶ááŒáá¯á¶áá»á¬ážááá¯ááŒáá·áºááŸá¯áá«á ááŒá®ážááœá¬ážáá±á¬áááá¯áá¬áá¡á áááºá¡ááá¯ááºážáá áºáá¯á á®ááá¯ááœá²ááŒááºážá áááºááŒá¬ááŒá®ážááŒá±ááŸááºážáá»ááºááááºážááá¬ááá¯ááºážááá¯ááºáá¬áááºááá áºáá»á¬ážááá¯á¡áá²ááŒááºááŒáá«á áá¯á·á
á á¬áááºááá¬ááá¯ááŸá áºáááºáá«áááº
ááŒá¿áá¬ááŸáá·áº áááºážáá¡ááŒá±á¡ááŒá±á¬ááºáž á áá¬ážá¡áááºážáááº
á¡ááá á¡áá°á¡áááŸá¬ áá¬ááºáá¯á¶áá áºáá¯á¶ááᯠá¡ááŒá±áá¶á áááºááŸááºá áá±ážááŒáá·áº áá°áá áºáá±á¬ááºá ááœá²áá±á¬ááºááŸá¯ááᯠá¡áá²ááŒááºááẠááŒá áºáááºá
á€áá±á¬ááºážáá«ážááœáẠá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ á¡á¬áá¯á¶ááŒá±á¬ááœááºáááºáá»á¬ážááŸáá·áº áá±áá¬ááŒááºáááºááŸá¯ááŸáá·áº áá±á·áá»áá·áºáá±ážáá¯ááºáááºážá ááºáá»á¬ážááᯠáá±á¬áºááŒááŒááºážá០áá±ážááœá¬ááœá¬ážáá«áááºá ááá¯á·áá¬ááœááºá á¡á±á¬ááºáá«áá¯ááºáá±ááŸá¯áá»á¬ážáá²ááŸáá áºáá¯ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá²ááŒááºááá¯ááºááá¯ááºážááᯠáááºááŸáá¯ááºážáá±á¬á¡ááá·áºááœáẠááœá²ááŒááºážá áááºááŒá¬ááŒááºážááá¯á· áá»áááºážáá±ááŒááºááœá¬ážáá«áááºá
ááᯠáá»áœááºá¯ááºááá¯á·ááẠááááºáááºážá¡ááá·áºááŸá á¡áá²ááŒááºáá±ážááá¯ááºááá¯ááºážááᯠááŒááºáááºážááœá¬ážáááºááŒá áºááŒá®ážá ááá±á¬áá»ááºáááá¯áá¬áá áºáá¯áá¯á¶ážá á¡ááŒá±á¡áá±ááœáẠá¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážá á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážááŒá¯ááŸá¯ááᯠá¡á¬áá¯á¶á áá¯ááºáá«áááºá
ááœá²áá±á¬ááºááŸá¯ á¡áá²ááŒááºááŒááºáž ááá¯ááºááá¯ááºážááᯠáá¯ááºáá±á¬ááºáá±á¬á¡áá«á áá¯ááºáááºážááᯠá¡á±á¬ááºáá« á¡á áááºá¡ááá¯ááºážáá»á¬ážá¡ááŒá ẠááŒáá¯ááœá²ááœá¬ážáááº-
- áá¬ááºáá¯á¶áá»á¬ážááœáẠáá»ááºááŸá¬áá»á¬ážááᯠááœá±ážáá»ááºááŒááºážá
- áá°áá áºáŠážáá»ááºážá á®á á¡ááá·áºáááºááŸááºáá»ááº
- ááááºááᯠáááºáááºáá«á
ááááŠážá
áœá¬ ááŒáá¯áááºáá±á·áá»áá·áºáá¬ážáá±á¬ á¡ááºá¡á¬ážáá»á¬ážááŒáá·áº ááŒá±ááŸááºážáááºá
á¡áá²ááŒáẠááá¯ááºááá¯ááºážá áá¯ááºáááºážáá±á¬ááºáᬠáá¯á¶ááŒááºáž
ááá±á¬áá»ááºáááá¯áá¬ááá¯á¡ááºáá»ááºáá»á¬ážááᯠáá±á·áá¬ááŒááºážá
áááá¶ááá¬áá²ááŸá¬
ML ááá±á¬áá»ááºáá áºáá¯á áááá¶ááá¬
á€ááá±á¬áá»ááºááẠááŒáœááºážáá»ááºááá¯ááºáá« - áááá¯áá¬áááºáá¬ááœáẠááááááá¯ááºááᯠááŸá áºááŒáŸá¯ááºáá¬ážááẠááá¯á¡ááºááá·áº á¡áá²ááŒááºááŸá¯ááá¯ááºááá¯ááºážááᯠá¡áœááºááá¯ááºážáááºáá±á¬ááºááŸá¯áá áºáá¯á¡ááŒá ẠááŒá¯á¶áá¯á¶ááá á±ááẠáá¯á¶ážááŒááºáá»ááºáá»áá²á·ááŒááºážááŒá áºáááºá á¡á±á¬ááºáá«á¡ááŒá±áá¶ááá¯á¡ááºáá»ááºáá»á¬ážááᯠáá±á¬áºáá¯ááºáá²á·áááº-
- áá áºá á¯áá áºá ááºážáááºáž ááŸááºáááºážááááºážáááºážááŒááºáž â áááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááẠááŸááºáááºážáá»á¬ážááᯠáá áºáá±áá¬áááºážááœáẠáá±ážáá¬ážááá·áºáááºá áááºážááá¯á·ááẠááœá²ááŒááºážá áááºááŒá¬ááẠá¡áááºááŒá±ááá·áºáááºá
- ááŒá áºááá¯ááºááŒá±á¡ááŸááá¯á¶áž Bottleneck á¡ááŒá Ạá¡áá²ááŒááºááŒááºážáááºáá±á¬ááºááŸá¯á á¡áá»á¬ážááá¯áẠá¡ááá¯ááºážá¡áá¬á
- áá¯á¶áá áºáá¯á¶áá»ááºážá á®ááᯠá¡áá²ááŒááºáááºá¡ááœáẠáá°áá®áá±á¬ááá¬áááᯠáááá¯áááºáá¬á¡áááºážá¡ááŒá áºáá»á¬ážááᯠááœá²áá±áá±ážááá·áºáááº
- áá®ážááŒá¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº stack áá áºáá¯áá¯á¶ážááᯠá¡ááŒáẠ(ááŒááºáááº) ááŒáá·áºáá»ááºááŒááºážá
- ááá¯á¡ááºáá«á ááá°áá®áá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážááœáẠáá¯á¶á¡áá¬ááá¹áá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠá áœááºážáááº
áááá¯áá¬á¡áááºááá¬
ááá¯á¡ááºáá»ááºáá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒá®ážáá±á¬ááºá ááá¯ááºáááá¯áá¬ážáá áºáááá¯áá¬ááẠááŒá®ážááŒáá·áºá á¯á¶áá¯áá®ážáá«áž ááá¯ááºáá®ááŒá±á¬ááºáž áááá¬áááºááŸá¬ážáá¬áááºá
áááá¯á¡ááºáá±á¬ áá±á«ááºážááá¯ááºááŸá¯áá»á¬ážááᯠáááºááŸá¬ážáááºá¡ááœáẠTelegram API ááᯠááŸá±á·áá¯á¶ážáááºážá¡ááŒá Ạááœá±ážáá»ááºáá²á·áááºá
áŠážá áœá¬ á¡áá»á±á¬áááºáááá¯áá¬á structural diagram ááᯠááŒáá·áºááŒá áá¯á·á ááá¯á·áá±á¬áẠá¡á áááºá¡ááá¯ááºážáá áºáá¯á á®á áá±á¬áºááŒáá»ááºáá áºáá¯ááá¯á· ááœá±á·ááœá¬ážáᬠá¡á±á¬ááºááŒááºáá±á¬ image processing áá¯ááºáááºážá ááºááá¯áááºáž ááá¬ážáááºá¡á±á¬áẠááŒá¯áá¯ááºáá«á
á¡áá»á±á¬áááºáááá¯áá¬áááœá²á·á ááºážáá¯á¶áá¬ážáá»ááº
áá¯á¶á¡áá²ááŒááºááŒááºážáá¯ááºáááºážá ááºááœáẠáááºážááá¯á·ááᯠáá áºáá¯áááºážáá¬áááºáá°ááŸá¯ááᯠáááºááœáŸááºážááá·áº áá¯á¶ááŒááºážá á¡á áááºá¡ááá¯ááºážáá áºáá¯á á®á á¡á áááºá¡ááá¯ááºážáá áºáá¯á á®á¡ááŒá±á¬ááºážááᯠááá¯ááá¯á¡áá±ážá áááºááŒá±á¬ááá¯ááŒáá«á áá¯á·á
Microservice "attrai-telegram-bot"
á€ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯ááẠTelegram API ááŸáá·áº á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá¯á¶ážá¡á¯ááºáá¬ážáááºá á áááºááŒáá¯ááºáá¯á¶áá áºáá¯á¶ááŒáá·áº áá¯ááºáá±á¬ááºááŒááºážááŸáá·áº á¡áá²ááŒááºááŸá¯ ááá¯ááºááá¯ááºážáá áºáá¯á ááááºááŒáá·áº áá¯ááºáá±á¬ááºááŒááºáž ááŸá áºáá»áá¯ážááŸááááºá ááŒááºááœááºážááŸá áºáá¯áá¯á¶ážááᯠáá±áá°áá»á¡á¬ážááŒáá·áº ááŒáá·áºááŒáá«á áá¯á·á
áá¯á¶áá áºáá¯ááŸáá·áº á áááºááŒáá¯áẠáááºáá±á·áá»áºáá áºáá¯ááᯠáááºáá¶áááŸááá±á¬á¡áá«-
- á¡á±á¬ááºáá«á
á
áºáá±ážááŸá¯áá»á¬ážáá«áááºááŒá®áž á
á
áºáá¯ááºááŒááºážááᯠáá¯ááºáá±á¬ááºáááº-
- á¡áá±á¬ááºážáá¯á¶ážáá¯á¶á¡ááœááºá¡á á¬ážááᯠáááŸáááá¯ááºáááºá
- áááºážá á®áá¬ážááŒá®ážáá¬áž á¡áá¯á¶ážááŒá¯áá°áá¯á¶á¡áá±á¡ááœááº
- áááŠážá á áºáá¯ááºááŒááºážááᯠááŒááºááœá¬ážáá±á¬á¡áá«á áá¯á¶á¡á¬áž docker volume ááœáẠááááºážáááºážáá¬ážáááºá
- áá¯ááºáá±á¬ááºá áá¬áá áºáá¯ááᯠ"to_estimate" áááºážá á®ááœáẠáá¯ááºáá¯ááºáá¬ážááŒá®ážá áá»áœááºá¯ááºááá¯á·áá¡áá¶á¡ááá¯ážá¡áá»ááºááœááºááŸááá±á¬ áá¯á¶áá®ááá¯á· áááºážááŒá±á¬ááºážá¡áá«á¡ááẠá¡ááŒá¬ážá¡áá¬áá»á¬áž áá«áááºáááºá
- á¡áááºáá±á¬áºááŒáá«á¡ááá·áºáá»á¬ážááᯠá¡á±á¬ááºááŒááºá áœá¬ááŒá®ážááŒá±á¬ááºáá«áá á¡áá¯á¶ážááŒá¯áá°ááẠáááºážá á®ááŸááá¯ááºáá±á¬ááºá áá¬á¡áá±á¡ááœááºá¡áá±á«áºá¡ááŒá±áá¶á ááœááºáá»ááºáá¬ážááá·áº ááá·áºááŸááºážááŒá± áá¯á¶ááŒáá·áºáá¯ááºáá±á¬ááºáá»áááºááŸáá·áº áááºáá±á·áá»áºááᯠáááºáá¶áááŸááááºááŒá áºáááºá á¡ááŸá¬ážá¡ááœááºážáá áºáá¯ááŒá áºáá±á«áºáá«á á¡áá¯á¶ážááŒá¯áá°ááẠááŸá¬ážááœááºážááœá¬ážááá¯ááºááá·áºá¡áá¬áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºááŸáá·áºá¡áá° áááºáá±á·áá»áºáá±ážááá¯á·ááŒááºážááŒáá·áº ááŒááºáá¬ážá áœá¬ á¡áááá±ážáááºááŒá áºáá«áááºá
ááá¯á·á¡ááŒááºá á€á¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯ááẠááá¯ááºáá¶áá¶áá¯ááºáá¬ážáá áºáŠážáá²á·ááá¯á·áááºá á¡áá²ááŒááºááŸá¯ááá¯ááºááá¯ááºážááá¯ááŒááºááœá¬ážááá·áºá¡áá¯ááºáá»á¬ážá¡ááœáẠáááºááœááºáá¬ážááá·áº "after_estimate" áááºážá á®ááŒááºážááᯠáá¬ážáá±á¬ááºáááºá
âafter_estimateâ á០á¡áá¯ááºá¡áá áºáá áºáá¯ááᯠáááºáá¶áááŸááá±á¬á¡áá«-
- áá¯á¶á¡á¬áž á¡á±á¬ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºááŒá®ážáá«áá ááááºááᯠá¡áá¯á¶ážááŒá¯áá°áᶠáá±ážááá¯á·áááºá ááá¯ááºáá«á á¡ááŸá¬ážá¡ááœááºážáá áºáá¯á¡ááŒá±á¬ááºáž á¡ááŒá±á¬ááºážááŒá¬ážáá«áááºá
- á¡áá²ááŒááºááŸá¯ ááá¯ááºááá¯ááºážá ááááºááŒá áºáá±á¬ áá¯á¶ááᯠáááºááŸá¬ážááŒááºážá
á¡áá²ááŒááºááŒááºáž á¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯ "attrai-estimator"
á€ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯ááẠááá¯ááºáá¶áá¶áá¯ááºáá¬ážááŒá áºááŒá®áž áá¯á¶á¡áá²ááŒááºááŸá¯ááá¯ááºááá¯ááºážááŸáá·áº áááºáááºááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááᯠáá¯á¶ážá¡á¯ááºáá¬ážáááºá á€áá±áá¬ááœáẠá¡áá¯ááºáá¯ááºááá·áº á¡ááºáááá¯áá®áááºáá áºáá¯áᬠááŸáááẠ- áááºážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒáá·áºááŒáá«á áá¯á·á
âto_estimateâ á០á¡áá¯ááºá¡áá áºáá áºáá¯ááᯠáááºáá¶áááŸááá±á¬á¡áá«-
- á¡áá²ááŒááºáá±ážááá¯ááºááá¯ááºážááŸáááá·áº áá¯á¶ááᯠááŒáá·áºááŒáá«á
áá¯á·á
- áá¯á¶ááᯠmemory áá²ááá¯á· áááºáá±ážáááºá
- áá»áœááºá¯ááºááá¯á·ááẠááá¯á¡ááºáá±á¬ á¡ááœááºá¡á á¬ážááá¯á· áá¯á¶ááᯠáá°áá±á¬ááºáá¬áá«áááºá
- áá»ááºááŸá¬á¡á¬ážáá¯á¶ážááᯠááŸá¬ááœá±ááŒááºáž (MTCNN)
- áá»áœááºá¯ááºááá¯á·ááẠáá»ááºááŸá¬á¡á¬ážáá¯á¶ážááᯠá¡áá²ááŒááºááẠ(áá»áœááºá¯ááºááá¯á·ááẠáá±á¬ááºáá¯á¶ážá¡ááá·áºááœáẠááœá±á·ááá±á¬ áá»ááºááŸá¬áá»á¬ážááᯠá¡áá¯ááºáá áºáá¯á¡ááŒá ẠááŒá¯á¶áá¯á¶ááŒá®áž ResNet34)
- áá±á¬ááºáá¯á¶ážáá¯á¶ááᯠRender áá¯ááºáá«á
- áá±á¬ááºááœá±ááᯠááœá²ááŒáá·áºáá¡á±á¬ááº
- á¡ááá·áºáááºááŸááºáá»ááºáá»á¬ážááœá²ááŒááºážá
- á áááºááŒáá¯áẠ(áá°áááºáž) áá¯á¶áá áºáá¯ááᯠáá»ááºááŒááºážá
- á¡áá²ááŒáẠááá¯ááºááá¯ááºážá០ááœááºáá¯ááºáá»á¬ážááᯠááááºážáááºážááŒááºážá
- á¡áááºááœáẠááœá±ážááœá±ážáá¬ážáá±á¬ âattrai-telegram-botâ microservice á០áá¬ážáá±á¬ááºááá·áº âafter_estimateâ áááºážá á®ááœáẠáá¯ááºáá±á¬ááºá áá¬ááᯠáá»áœááºá¯ááºááá¯á· ááá·áºááœááºážáá¬ážáá«áááºá
Graylog (+ mongoDB + Elasticsearch)
ááœá±ážáá»ááºááŸá¯ááẠáá°á·á¡áá±á«áºááœáẠáá»áááºážááœá¬ážááŒá®áž áá«ááá¯ááºážááá¯ááá¯ááºáá±á
ááááºá ELK stack ááŸáá·áºáá¬á¡áá¯ááºáá¯ááºáá°ážáá°áá áºáŠážá¡áá±ááŒáá·áº Graylog ááŸáá·áºá¡áá¯ááºáá¯ááºá áẠá¡áá¯á¶ážá á¯á¶á¡ááŒá¯ááá±á¬áá±á¬ááºáá±á¬á¡ááœá±á·á¡ááŒá¯á¶ááŸááá²á·áá«áááºá á áááºáá»ááºá áá¬áá áºáá¯ááá±á¬á· Graylog áááºá¡ááºáá¬áá±á·á áºáá±á«áºááŸá Kibana á¡ááºá¹áá«áááºáá»á¬ážááœáẠáá¬ááœááºáá±á¬ááºážááœááºááŸá¯ááŒá áºáááºá
áá¯áẠMQ
á€ááá±á¬áá»ááºááœáẠáááºážááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá
Redis
ááá«ááá¶ááœáẠááá°áá®áá±á¬ Python microservices áá»á¬ážááœáẠá¡áá»áá¯á·áá±á¬ áá±áá¬áááºáá±á¬ááºáá¯á¶áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá·áº áá¯á¶á¡áá¬ááá¹áá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠááá¯á¡ááºáááºá
á¥ááá¬á¡á¬ážááŒáá·áºá Redis ááẠ"telegram_user_id => áááºážá á®á¡ááœááºáž áá¯ááºáá±á¬ááºáá±áá±á¬ á¡áá¯ááºáá»á¬áž á¡áá±á¡ááœááº" á hashmap ááᯠááááºážáááºážáá¬ážáᬠá¡áá¯á¶ážááŒá¯áá°áá áºáŠážáá¶á០áá±á¬ááºážááá¯ááŸá¯á¡áá±á¡ááœááºááᯠá¡áá»áá¯á·áá±á¬áááºááá¯ážáá áºáá¯á¡áá ááá·áºáááºáá¬ážááá¯ááºááŒá®áž DoS ááá¯ááºááá¯ááºááŸá¯áá»á¬ážááᯠáá¬ááœááºááá¯ááºáááºá
á¡á±á¬ááºááŒááºáá±á¬ áá¯ááºáá¯á¶áá¯ááºáá±á¬ááºááŒááºáž áá¯ááºáááºážá ááºááᯠááá¬ážáááºááŒá áºá¡á±á¬áẠáá¯ááºááŒáá«á áá¯á·
- á¡áá¯á¶ážááŒá¯áá°ááẠTelegram bot ááá¯á· áá¯á¶áá áºáᯠáá±ážááá¯á·áááºá
- "attrai-telegram-bot" ááẠTelegram API á០áááºáá±á·áá»áºááᯠáááºáá¶áááŸáááŒá®áž áááºážááᯠááá¯ááºážááŒá¬ážá áááºááŒá¬áááºá
- áá¯á¶áá«ááŸááá±á¬ áá¯ááºáá±á¬ááºá áá¬ááᯠá¡áá®á¡áá»áŸ áááºážá á® âto_estimateâ ááá¯á· áá±á«ááºážááá·áºáááº
- á¡áá¯á¶ážááŒá¯áá°ááẠá á®á ááºáá¬ážááá·áº á¡áá²ááŒááºáá»áááºááŸáá·áºá¡áá° áááºáá±á·áá»áºááᯠáááºáá¶áááŸááá«áááºá
- âattrai-estimatorâ ááẠâto_estimateâ áááºážá á®á០áá¯ááºáá±á¬ááºá áá¬áá áºáá¯ááᯠáá°áááºá ááá¯ááºááá¯ááºážááŸáááá·áº ááá·áºááŸááºážáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒá®áž âafter_estimateâ áááºážá á®ááá¯á· áá¯ááºáá±á¬ááºáááº
- "attrai-telegram-bot" "after_estimate" áááºážá á®ááᯠáá¬ážáá±á¬ááºááŒá®áž ááááºááᯠá¡áá¯á¶ážááŒá¯áá°áᶠáá±ážááá¯á·áááº
DevOps
áá±á¬ááºáá¯á¶ážá¡áá±áá²á·á áááá¯áá¬áááºáá¬ááᯠááŒááºáááºáá¯á¶ážáááºááŒá®ážáá±á¬ááºá á¡áá®á¡áá»áŸ á áááºáááºá á¬ážá áá¬áá±á¬ááºážáá²á· á¡ááá¯ááºáž - DevOps ááᯠáááºááœá¬ážááá¯ááºáá«áááºá
Docker Swarm ááŒá áºáááº
âswarmâ ááá¯á¡áá¯á¶ážááŒá¯á áá»áœááºá¯ááºááá¯á·áá¡á
á¯á¡áá±ážááŸá áá¯á¶ááŸááºá¡á¬ážáá¯á¶ážááᯠá¡áá»áá¯ážá¡á
á¬áž-ááá»áá¯ážááŒáá·áº ááœá²ááŒá¬ážááá¯ááºááẠ- á¡áá¯ááºááá¬ážááŸáá·áº áááºáá±áá»á¬á áááá¡áá»áá¯ážá¡á
á¬ážá á
ááºáá»á¬ážááœáẠááœááºááááºáá¬á¡á¯ááºá
á¯áá»á¬áž (stacks) áá»á¬ážááᯠááŒáá·áºáá»ááºáá»áá¬ážááŒá®ážá áá¯áááá¡áá»áá¯ážá¡á
á¬ážá á
ááºáá»á¬ážááẠá¡ááá¯ááºážá¡áá¬á áá»áááºááœááºáá»áŸá¬ááŸáá·áº áá»áááºááŸáááẠáá¬áááºááŸááááºá
áá±á«ááºážáá±á¬áẠáááºáá±áá»á¬ áá áºáŠážááŸáá·áº á¡áá¯ááºááá¬áž áá¯á¶ážáŠáž áá«áááºááá·áº á¡á á¯á¡ááœá²á·
ááŒá áºááá¯ááºáá»á±á¡áááºážáá¯á¶áž á¡á á¯á¡áá±ážá¡ááœááºá¡á á¬ážááŸá¬ 1 node ááŒá áºáááºá á ááºáá áºáá¯ááẠáá±á«ááºážáá±á¬ááºáááºáá±áá»á¬ááŸáá·áº á¡áá¯ááºááá¬ážáá áºáŠážá¡ááŒá Ạáá áºááŒáá¯ááºáááºáá¯ááºáá±á¬ááºáááºááŒá áºáááºá ááá±á¬áá»ááºáá¡ááœááºá¡á á¬ážááŸáá·áº á¡ááŸá¬ážáá¶ááá¯ááºáááºá¡ááœáẠá¡áááá·áºáá¯á¶ážááá¯á¡ááºáá»ááºáá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á áááºážááẠá€áá»ááºážáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááẠáá¯á¶ážááŒááºáá²á·áááºá
ááŸá±á·ááá¯áá»áŸá±á¬áºááŒáá·áºáááºážá ááœááºááááºááŸá¬ á áááºáá¯ááºáá¯ááºáá²á·áá²á· ááááá¯ááºáá¯ááºááŸá¯ áá±ážááá¯á·ááŸá¯áá ááŒá®ážá áá®á¡á á¯á¡ááœá²á·áá²á· áááºáááºáááºááœáŸááºáá²á· ááŒá¿áá¬áááŸááá²á·áá°áž (áá«áá±ááá·áº áá®ááá¯á¡ááœá²á·á¡á ááºážáᬠá¡áááºá á¬áž á¡ááŒá®ážá á¬ážááœá±á¡ááœáẠáááºááá¯á០áááºáá¶ááá¯ááºá áá¬áááŸááá°ážááá¯á· áááá¯ááá¯áá«áá°ážá á¡ááŸá¬ážáá¶ááá¯ááºááẠááá¯á¡ááºáá»ááºáá»á¬ážááŸáá·áº áááºááá¯ááºáá±á¬ ááá±á¬áá»ááºáá»á¬áž)á
Docker Stack
swarm mode ááœááºá áá°ááẠstacks (docker á ááºáá±á¬ááºááŸá¯á¡á
á¯á¶) ááá¯á¡áá¯á¶ážááŒá¯áááºáá¬áááºááŸááááºá
áááºážááẠdocker-compose configs áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáᬠááá·áºá¡á¬áž deploy options áá»á¬ážááᯠáááºáá±á¬ááºážá¡áá¯á¶ážááŒá¯ááẠááœáá·áºááŒá¯áááºá
á¥ááá¬á¡á¬ážááŒáá·áºá á€áá±á¬ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡áá²ááŒááºááá·áº microservice instance áá áºáá¯á á®á¡ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠááá·áºáááºáá¬ážáá«ááẠ(áá»áœááºá¯ááºááá¯á·ááẠN instances á¡ááœáẠN cores áá»á¬ážááᯠááœá²áá±áá±ážáááºá microservice ááá¯ááºááá¯ááºááœáẠPyTorch ááŸá¡áá¯á¶ážááŒá¯áá±á¬ cores á¡áá±á¡ááœááºááᯠáá áºáá¯á¡áá ááá·áºáááºáá¬ážáááº)
attrai_estimator:
image: 'erqups/attrai_estimator:1.2'
deploy:
replicas: 4
resources:
limits:
cpus: '4'
restart_policy:
condition: on-failure
âŠ
Redisá RabbitMQ ááŸáá·áº Graylog ááá¯á·ááẠááá¯ááºáá¶ááá¯ááºáááºáá±á¬ááºááŸá¯áá»á¬ážááŒá áºááŒá®áž áááºážááá¯á·ááᯠ"attrai-estimator" áá²á·ááá¯á· ááœááºáá°á áœá¬ áá»áááºááŸááááááá¯ááºááŒá±á¬ááºáž áááááŒá¯ááẠá¡áá±ážááŒá®ážáá«áááºá
áá±ážááœááºážááᯠáá¯á¶áá±á¬ááºááẠ- á¡áááºááŒá±á¬áá·áº Kubernetes ááá¯ááºááá·áºááááºážá
á¡áá±ážá á¬ážááŸáá·áº á¡áááºá á¬ážááá±á¬áá»ááºáá»á¬ážááœáẠKubernetes ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠáá¯ááºáá»á ááááºááŒá®ážáááºáᯠáááºááááºá ááá¯á¡ááºáá±á¬áá¯ááºáá±á¬ááºáá»ááºá¡á¬ážáá¯á¶ážááᯠDocker Swarm á០ááá°ááá¯ááºáááºá áááºážááẠcontainer orchestrator á¡ááœáẠá¡áá±á¬áºáá±ážá¡áá¯á¶ážááŒá¯áááœááºáá°ááŒá®áž áááºáááºá¡áá¬ážá¡áá®ážáááºážáááºážáá«ážáá«áááºá
á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¥á®áá»á¬áž
á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠVDS ááœáẠá¡á±á¬ááºáá«ááá¹ááá¬áá»á¬ážááŒáá·áº ááŒáá·áºáá»ááºáá¬ážáááºá
- CPU- 4 Core Intel® Xeon® Gold 5120 CPU @ 2.20GHz
- áááº: 8 GB á¡áá
- SSD: 160GB
áá±ááá¹áááááºááᯠá ááºážáááºááŒá®ážáá±á¬ááºá áá¯á¶ážá áœá²áá°áá»á¬áž ááŒááºážáááºá áœá¬ áááºáá±á¬ááºáá¬áááŒáá·áº á€á ááºááẠáá¯á¶áá±á¬ááºáááºáᯠáááºááááºá
áá«áá±ááá·áº ááŒáá·áºáá»ááºááŒá®ážááŒá®ážáá»ááºážáá²á CIS ááŸá¬ áá°ááŒáá¯ááºá¡áá»á¬ážáá¯á¶áž áá¯á¶áá¯ááºáá áºáá¯áá²á· ááá·áºááºáá áºáá¯ááᯠáááºáá²á·ááŒá®áž áá°ááœá±á áááºáááºá á¬ážáá¬ááŒá®áž áá¬áá®á¡áááºážáááºá¡ááŒá¬ááŸá¬áá² áááºáá±á¬ááºááŸá¯á áá±á¬ááºážáá²á·áá»á®áá²á· áá¯á¶ááœá±ááᯠá¡á±á¬ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáá²á·áá«áááºá áá áºáá»áááºáááºážááŸá¬áááºá á¡ááœááºá¡ááááºá¡áá»áááºáá»á¬ážááœáẠCPU ááŸáá·áº RAM á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºáááºáááºá¡áá¯á¶ážáááŒá¯ááá¯ááºáá«á
áá±á¬ááºáááºááááºáá áºá¡áá»áá¯á·
á áááºááŒáá·áºáá»ááºáá»áááºááŸá ááŒá®áž áá°ážááŒá¬ážáá±á¬á¡áá¯á¶ážááŒá¯áá°á¡áá±á¡ááœááºááŸáá·áº á¡áá²ááŒááºááẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááẠáá±á·áá±á«áºáá°áááºáá«áááºá
á¡áá²ááŒáẠááá¯ááºááá¯ááºáž á¡áá¯áá¬á á¡áá»ááẠááŒáá·áºááŒá°ážááŒááºážá
ááœá±á·ááŸááá»ááºáá»á¬áž
á¡áá»ááºážáá»á¯ááºááŒá±á¬ááá»áŸáẠááœááºááááºáá¬áá»á¬ážá á á¯á ááºážááŸá¯áááºáá±á¬ááºáá¯á¶ááŸáá·áº áá»ááºážáááºáá¯á¶ááẠáááºážááá¯á·ááá¯ááºáá°ááá¯á· á¡ááŒáá·áºá¡á ááá¬ážáá»áŸáááŒá±á¬ááºáž ááŒá±á¬ááá¯ááºááẠ- á¡ááœááºá¡ááááºá¡áá»áááºáá»á¬ážááœááºááẠá¡á ááºáá»ááŒááºáž ááá¯á·ááá¯áẠáá»á±á¬á·ááœá¬ážááŒááºážáá»áá¯áž áááŸááá²á·áá«á
CPU áá±á«áºááŸá á¡á¬áá¯á¶ááŒá±á¬ááœááºáááºáá»á¬ážááᯠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áá±á¬ááºáá»ááºáá»áá±á¬ á¡áá±ážá á¬ážááŸáá·áº á¡áááºá á¬ážááá±á¬áá»ááºáá»á¬ážááẠáááºážááá¯á·ááá¯ááºáááºážá ááºááœáẠá€áá±á¬ááºážáá«ážááœááºáá±á¬áºááŒáá¬ážááá·áº á¡áá±á·á¡áá»áá·áºáá»á¬ážááᯠá¡á±á¬ááºááŒááºá áœá¬áá»ááŸááºááá¯ááºáááºáᯠáá»áœááºáá±á¬áºáááºáá«áááºá
á¡á ááá¯ááºážááœáẠáá±á¬ááºážáá«ážááŸááºááŒá±á¬ááºáž áááºááá·áºááá¯ááºáááºááŒá áºáá±á¬áºáááºáž ááŸááºáá»á¬ážáá±á¬á á¬áááºááŒááºážááᯠááááºáááºá á€áá±á¬ááºážáá«ážáá« á¡áá»ááºá¡áá»áá¯á·ááᯠáá»ááºááŸááºáá¬ážááẠáá¯á¶ážááŒááºáá²á·áááº- áá±á¬ááºáá¯ááºáá±ááŸá¯áá»á¬ážááœáẠáááºážááá¯á·áᶠááŒááºááœá¬ážáá«áááºá
Telegram - @AttraiBot ááœáẠáá±á¬á·ááºááᯠáááºááá¯ááºááá¯ááºáááºá áááºážááẠá¡áááºážáá¯á¶áž 2020 áá±á¬ááºážáŠážáá¬áá®áá¯ááºá¡áá á¡áá¯ááºáá¯ááºáá«áááºá á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááᯠáááááºážáááºážáá¬ážáá« - áá°áááºážáá¯á¶áá»á¬ážá á¡áá²ááŒááºááŸá¯ááá¯ááºááá¯ááºážá ááááºáá»á¬áž - áá¯ááºáá±á¬ááºááŒá®ážáá«á á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá»ááºáá®ážáá áºáááºááá¯ááºááŒá±á¬ááºáž ááááá±ážáá«áá á±á
source: www.habr.com