
áááșáčáááŹáá« Habrá áá»áœááșáŻááșáááș á
áá
áșá
áźáá¶ááá·áșááœáČááŸáŻáĄááœáČá·á áĄááŒáźážáĄááČ Artem Karamyshev ááŒá
áșáááșá . áá»áœááșáŻááșáááŻá·áááș ááŒáźážááČá·áá±áŹááŸá
áșááœááș ááŻááșááŻááșáĄáá
áșáá»áŹážá
áœáŹááᯠááááșáááșááČá·áááșá API áááșáá±áŹááșááŸáŻáá»áŹážáááș áĄááœááșááá° áĄáááŻááșážáĄááŹá áĄááŸáŹážáĄááœááșážáá¶áááŻááșáááșááŸáááŒáźáž ááŻá¶ážá
áœáČáá°áááșáá±áŹááșááŸáŻááœááș áá»ááșááŒááșá
áœáŹ áááŻážáááșááŸáŻáĄááœááș áĄáááșááá·áșááŒá
áșáá±ááŒá±áŹááșáž áá±áá»áŹá
á±áááŻáá«áááșá áá»áœááșáŻááșáááŻá·áááááșáá±áŹááșážááᯠOpenStack ááœááșáĄáá±áŹááșáĄáááșáá±áŹáșááŹážááŒáźážá áĄááŸáŹáž-áá¶áááŻááșáááșááŸááá±áŹá
áá
áșáá
áșááŻáááŸááááș áá»áœááșáŻááșáááŻá·ááŒá±ááŸááșážáááá·áș áĄá
áááșáĄáááŻááșážáĄááŸáŹážáĄááœááșážááŒáżááŹáá»áŹážááᯠáá»áœááșáŻááșááŒá±áŹááŒáááŻáá«áááșá OpenStack ááœááș ááŻááșááŻááșáá»áŹážááᯠááźááœááșáá±áá°áá»áŹážáĄááœááș áááșážáááș á
áááșáááșá
áŹážááœááșáá±áŹááșážáááșáᯠáááșáá«áááșá
ááááșáá±áŹááșážáá áșááŻá áĄááŻá¶ážá áŻá¶ áá»ááŻá·ááœááșážáá»ááșáááșážáá¶ááŸáŻáááș áááșážá áĄá áááșáĄáááŻááșážáá»áŹážá áá¶áááŻááșáááșááŸáááŸáŻ áá«áááșáááșá áááŻá·ááŒá±áŹáá·áș áá»áœááșáŻááșáááŻá·áááș áĄááčáááŹááșáá»áŹážááᯠááŸáŹááœá±áá±áŹáșááŻááșááŒáźáž áááșážáááŻá·ááᯠááááșááŹážááá·áș áĄááá·áșáĄáŹážááŻá¶ážááᯠááŒááșážááŒááșážáá»ááșážááœáŹážáá«áááșá
á€ááŹááșáááșážá ááźááźáááŻááŹážááŸááșážá áĄááááĄáááșážáĄááŒá
áșááŒá
áșáá±áŹ Uptime day 4 ááœááșáááá·áșááœááș áĄá
áźáááșáá¶á
áŹáá
áșááŻááŒá
áșáááșá áááșááŒááșáááŻááșáááșá .
ááŻááșáááŻááșážáááŻááșááŹááááŻááŹááá¶áááŻááșáááș
MCS cloud á áĄáá»áŹážáá°ááŸáŹ áĄá áááșáĄáááŻááșážáááș áááŻáĄáá« Tier III áá±ááŹá ááșááŹááŸá áșááŻááœááș áĄááŒá±á ááŻááșááŹážááŒáźáž áááșážáááŻá·áĄááŒáŹážááœááș áááșážááááŻááșáááŻááș ááŸá±áŹááșáááŻááșáá±áŹáááŻááșááŹáá»áŹáž ááŸáááŒáźáž ááá°ááźáá±áŹáááșážááŒá±áŹááșážáá»áŹážááŒáá·áș ááźážááá·áșááŹážááŸááᏠ200 Gbit/s ááŸáŻááșážááŒáá·áș ááŻááșáááŻááșážáááŻááșááŹáĄááá·áșááœááș ááááșážáááșážááŹážáááșá áĄááá·áș III áááș ááŻááșáááŻááșážáááŻááșáᏠáĄááŒá±áá¶áĄáá±áŹááșáĄáĄáŻá¶áĄááœááș áááŻáĄááșáá±áŹ áĄááŸáŹážáĄááœááșážáá»áŹážááᯠáááșážáá¶áááŻááșááŸáŻáĄááá·áșááᯠáá±ážáá±áŹááșáááșá
áĄááŸá±áŹááșáááŻááșááŹááᯠááŻááșáááŻááșážáááŻááșááŹááŸáá·áș ááŻááčáááĄááá·áș ááŸá áșááŻá ááŻá¶ážááœááș ááááșážáááșážááŹážáááșá áá»ááșáááșááŒááŻáááșááŸáŹáá°ááŒááșážááŻááșáááșážá ááșáááș áááșáá«áááČááČááŒá áșááŒáźáž ááŒáżááŹáá»áŹážáá±á«áșáá±á«ááșááŹáᏠáá±ááŹá ááșááŹáá»áŹážááŒáŹáž áááșááœááșáá±ážááᯠáĄáááșáááŒááșáááŻážáááșá á±áá«áááșá
á„áááŹáĄáŹážááŒáá·áșá áááŒáŹáá±ážááźáá áá±ááŹá ááșááŹáá áșááŻáĄááźážááŸá áá±ááœááșážáá áșááŻááœááș áĄááŻááșááŻááșáá±á ááș ááŒá±áá°ážá ááșáá áșááŻáááș áááŻááșáá áșááŻáá»ááŻážááœáŹážááČá·ááŒáźáž á€áááŻááșáĄááœááșážááœááș áááșáááŸáá·áș áĄáááșáĄáááșážáááșážááŒááŻážááŸá áșááŻáá«ááŸááááșá áá±ááŹá ááșááŹááŸáá·áș áá»áœááșáŻááșáááŻá·ááĄááŸáŹáž-áá¶áááŻááșáááșááŸááá±áŹ áááșááœááșáá±ážáá»ááșáááșáááș áá áșáá»áááșáá»áááșááœááș áĄáŹážáááșážáá»ááșááŒá áșááœáŹážáááșá áááŻá·ááŒá±áŹáá·áș áá»áœááșáŻááșáááŻá·áááș áĄááŒá±áá¶áĄáá±áŹááșáĄáĄáŻá¶á áĄá áááșáĄáááŻááșážáá áșáᯠááŻá¶ážááŸáŻá¶ážááČá·ááá«áááșá áá»áœááșáŻááșáááŻá·áááș áá±áŹááșáá»ááșááœáČááŒáźáž áááșáá»ááșáá±ááœááșážááœááș áĄááᯠoptics áááșáááșááŒááșážáĄáá«áĄáááș ááŻááșáá±áŹááșáá»ááșáá»áŹážá áœáŹááᯠááŒáŻááŻááșááČá·áá«áááșá
áá±ááŹá ááșááŹáá»áŹážááœááș BGP ááŸáá áșááá·áș áá»áœááșáŻááșáááŻá·áááŸá±á·áááșáá»áŹážááᯠááŻááșááœáŸáá·áșáá±ážááá·áș áááșááœááșáá±ážáááșáá±áŹááșááŸáŻáá±ážáá°áá»áŹáž ááŸááá±ááá·áșáĄáá»ááșáá»áŹážááŸááááșá ááœááșáááșáŠážáááșáá»ááșáá áșááŻá áźáĄááœááșá áĄáá±áŹááșážááŻá¶ážáá±áŹáááșááá áșááᯠááœá±ážáá»ááșááŹážááŒáźážá ááá°ááźáá±áŹáá±áŹááșáááșáá»áŹážááᯠáĄáá±áŹááșážááŻá¶ážáá»áááșáááșááŸáŻáĄáááșáĄááœá±ážááŒáá·áș áá¶á·áááŻážáá±ážáááŻááșáááșááŒá áșáááșá áááșáá±áŹááșááŸáŻáá±ážáá°áá áșáŠážá០áááșááœááșááŸáŻ áá»ááșááœáŹážáá«áá áááŸááááŻááșáá±áŹáááșáá±áŹááșááŸáŻáá±ážáá°áá»áŹážááŸáá áșááá·áș áá»áœááșáŻááșáááŻá·ááááșážááŒá±áŹááșážááᯠááŒááșáááșáááșáá±áŹááșáá«áááșá
áááșáá±áŹááșááŸáŻáá±ážáá° áĄáááșáááŒá±áá«áá áá»áœááșáŻááșáááŻá·áááș áá±áŹááșáá áșááŻáááŻá· áĄáááŻáĄáá»á±áŹááșááŒá±áŹááșážáá«áááșá áá±ááŹá ááșááŹáá áșááŻá០áá»ááșááœááșáá«áá áá»áœááșáŻááșáááŻá·ááœááș áááșáá±áŹááșááá áșááŻááŻá¶ážááᯠáá°áá±áŹááșááá·áș ááŻááááá±ááŹá ááșááŹááŸá áá»áœááșáŻááșáááŻá·ááááșáá±áŹááșááŸáŻáá»áŹážá ááŸááșááááčáá°áá áșááŻááŸááááșá

ááŻááșáááŻááșážáááŻááșááŹáĄááŒá±áá¶áĄáá±áŹááșáĄáŠáá»áŹážááá¶áááŻááșáááș
áĄáááźáá±ážááŸááșážáĄááá·áș áĄááŸáŹážáá¶áááŻááșáááșáĄááœááș áá»áœááșáŻááșáááŻá·áĄááŻá¶ážááŒáŻááá·áșáĄááŹ
áá»áœááșáŻááșáááŻá·ááááșáá±áŹááșááŸáŻáááș opensource áĄá áááșáĄáááŻááșážáá»áŹážá áœáŹáá±á«áșááœááș áááșáá±áŹááșááŹážáááșá
ExaBGP BGP-based dynamic routing protocol ááᯠáĄááŻá¶ážááŒáŻá ááŻááșáá±áŹááșáá»ááșáĄáá»áŹážáĄááŒáŹážááᯠáĄáá±áŹááșáĄáááșáá±áŹáșááá·áș áááșáá±áŹááșááŸáŻáá áșááŻááŒá áșáááșá áĄááŻá¶ážááŒáŻáá°áá»áŹáž API áááŻáááșáá±áŹááșááŒáá·áșááŸáŻááá·áșááŸáá áșááá·áș áá»áœááșáŻááșáááŻá·áááœáá·áșááŒáŻááŹážáá±áŹá áŹáááșážáááș IP ááááșá áŹáá»áŹážáááŻááŒá±áŹáșááŒáŹáááș áááșážáááŻáááșááŒáœá áœáŹáĄááŻá¶ážááŒáŻáá«áááșá
HAProxy OSI áá±áŹáșáááșá ááá°ááźáá±áŹáĄááá·áșáá»áŹážááœááș áĄááœááșááŒá±áŹááșážááœááșááŒááșááœááș áĄááœáŹážáĄáᏠáá»áááșááœááșáá»áŸáŹááŸáááŒááșáž á ááșážáá»ááșážáá»áŹážááᯠááŒááșáááșáááșááŸááșáááŻááșá á±ááá·áș high-load balancer áá áșááŻááŒá áșáááșá áá±ááŹáá±á·á áșáá»áŹážá áááșáá±á·áá»áșááœáČá áŹážáá»áŹážá API áááșáá±áŹááșááŸáŻáá»áŹážá áááșáááșáá±áŹááșááŸáŻáá»áŹážá áá»áœááșáŻááșáááŻá·áááŒááșááœááșážáá±ážááá±áŹáá»ááșáá»áŹáž - áĄááŹáĄáŹážááŻá¶ážáááș HAProxy ááá±áŹááșááœááșááœááș ááŸááá±áá«áááșá
API áĄáááźáá±ážááŸááșáž â ááŻá¶ážá áœáČáá°áááș áááșážá áĄááŒá±áá¶áĄáá±áŹááșáĄáĄáŻá¶ááŸáá·áș áááșážááááșáá±áŹááșááŸáŻááᯠá áźáá¶ááá·áșááœáČááá·áș python ááŒáá·áș áá±ážááŹážááŹážáá±áŹ áááșáĄááșáááźáá±ážááŸááșážáá áșááŻááŒá áșáááșá
áĄááŻááșáááŹážáá»áŸá±áŹááșááœáŸáŹ (ááá±á·ááŸá á áááŻážáááŻážáĄááŻááșáááŹáž) - OpenStack áááșáá±áŹááșááŸáŻáá»áŹážááœááșá áááșážáááș áĄááŒá±áá¶áĄáá±áŹááșáĄáŠáááŻá· API ááœáŸááșááŒáŹážáá»ááșáá»áŹážááᯠááŻááșááœáŸáá·áșááœáá·áșááŒáŻááá·áș áĄááŒá±áá¶áĄáá±áŹááșáĄáŠ daemon áá áșááŻááŒá áșáááșá á„áááŹáĄáŹážááŒáá·áșá áá áșááșáááșááźážááŸáŻáááș áĄááŻááșáááŹážá ááŒá áșáá±á«áșááŒáźáž áááșááźážááŸáŻáá±áŹááșážáááŻááŸáŻáááș áĄáááźáá±ážááŸááșáž API ááœááș ááŒá áșáá±á«áșáááșá
Standard OpenStack Application Architecture
OpenStack áĄááœááș ááźááœááșááŹážáá±áŹ áááșáá±áŹááșááŸáŻáĄáá»áŹážá áŻáááș áá áșááŻáááșážáá±áŹ áá«ááŹáááŻááșážááᯠáááŻááșááŹáááș ááŒááŻážá áŹážááŒáááșá áááșáá±áŹááșááŸáŻáá áșááŻááœááș áĄáá»áŹážáĄáŹážááŒáá·áș áĄáááŻááșáž á áááŻááșážáá«áááșáááș- API ááŸáá·áș áĄááŻááșáááŹážáá»áŹáž (backend executors)á á ááșážáááșážáĄáááŻááșážá API áá áșááŻáááș ááźážááŒáŹážááŻááșáá±áŹááșááŸáŻ (daemon) áĄááŒá áș áááŻá·áááŻááș áĄáááșááá·áșááŻááșááŹážááá·áș Nginx áááŻá·áááŻááș Apache áááșááŹááŹááᯠáĄááŻá¶ážááŒáŻááŹážááá·áș python ááœááș WSGI áĄáááźáá±ážááŸááșážáá áșááŻááŒá áșáááșá API áááș áĄááŻá¶ážááŒáŻáá°áá±áŹááșážáááŻááŸáŻááᯠááŻááșáá±áŹááșááŒáźáž áĄáá±áŹááșáĄáááșáá±áŹáșáááșáĄááœááș áĄááŻááșáááŹážáĄáááźáá±ážááŸááșážáááŻá· áá±áŹááșáááșááœáŸááșááŒáŹážáá»ááșáá»áŹážááᯠáá±ážáááŻá·áááșá ááŻá¶ááŸááșáĄáŹážááŒáá·áș RabbitMQ áááș áááșáá±á·áá»áșááœáČá áŹážááᯠáĄááŻá¶ážááŒáŻá ááœáŸáČááŒá±áŹááșážááŒááșážáááș áĄááŒáŹážáĄááŹáá»áŹážááᯠáá¶á·áá»ááșážá áœáŹ áá±áŹááșááœááșáá±ážáá«áááșá áááșáá±á·áá»áșáá»áŹáž ááœáČá áŹážáá¶áá±áŹááșááŸááá±áŹáĄáá«á áááșážáááŻá·ááᯠáĄááŻááșáááŹážáá»áŹážá ááŻááșáá±áŹááșááŒáźáž áááŻáĄááșáá«á ááŻá¶á·ááŒááșáá»ááșááŒááșáá±ážáááșá
á€áá«ááŹáááŻááșážááœááș áá»ááŸáŻá¶ážááŸáŻá ááźážááŒáŹážááŻá¶áĄáá»ááșáá»áŹáž áá«áááșáááș- RabbitMQ ááŸáá·áș áá±ááŹáá±á·á áșá áááŻá·áá±áŹáș RabbitMQ áááș áááșáá±áŹááșááŸáŻáá áșááŻáĄááœááșáž ááźážááŒáŹážááœáČááŹážááŒáźáž ááźáĄááŻááźáĄá áááșáá±áŹááșááŸáŻáá áșááŻá áźáĄááœááș áá áșáŠážáá»ááșážááŒá áșáááŻááșáááșá áááŻá·ááŒá±áŹáá·áș MCS ááœááș áá»áœááșáŻááșáááŻá·áááș á€áááșáá±áŹááșááŸáŻáá»áŹážááᯠáááșáááŻááșááá»áŸ ááœáČááŒáŹážááŹážáá«áááșá ááá±áŹáá»ááșáá áșááŻá áźáĄááœááș ááźážááŒáŹážáá±ááŹáá±á·á áșáá áșááŻá ááźážááŒáŹáž RabbitMQ ááᯠáá»áœááșáŻááșáááŻá· áááșááźážáá«áááșá áĄáŹážáááșážáá»ááșáĄáá»ááŻá·ááœááș ááá±áŹáșááááŸáŻáá áșááŻááŒá áșááœáŹážáá±áŹáĄáá« áááșáá±áŹááșááŸáŻáá áșááŻááŻá¶áž ááŒááŻáá»ááșááœáŹážááŒááșážáááŻááșááČ áááșážááĄá áááșáĄáááŻááșážáá áșááŻááŹááŒá áșáá±áŹááŒá±áŹáá·áș á€áá»ááșážáááșááŸáŻáááș áá±áŹááșážááœááșáá«áááșá
ááŻááșááŹážáĄáááźáá±ážááŸááșážáá»áŹážá áĄáá±áĄááœááșááŸáŹ áĄááá·áșáĄáááșáááŸááá±áŹááŒá±áŹáá·áș API áááș á áœááșážáá±áŹááșáááșááŸáá·áș áĄááŸáŹážáá¶áááŻááșáááșááᯠáááŻážááŒáŸáá·áșáááșáĄááœááș áá»áááșááœááșáá»áŸáŹáá»áŹážáá±áŹááșááœááș áĄáá»áŹážáááŻááș áĄáá»áŹážáááŻááș áĄááœááșááá° áĄáááŻááșážáĄááŹááᯠáá»áááșááŸááááŻááșáááșá
APIs áá»áŹážááŸáá·áș áĄááŻááșáááŹážáá»áŹážáĄááŒáŹáž ááŸáŻááșááœá±ážáá±áŹ ááá·áșááČááŻááșáá±áŹááșááŸáŻáá»áŹáž ááŒá áșáá±á«áșááŹáá±áŹáĄáá« áĄáá»ááŻá·áááșáá±áŹááșááŸáŻáá»áŹážáááș áááșáá±áŹááșááŸáŻáĄááœááșáž áá±á«ááșážá ááșááŸáááŸááŻááșážááŸáŻ áááŻáĄááșáá«áááșá á€ááá áčá ááœááșá áá áșááŻáááșážáá±áŹááŸáááŸááŻááșážáá±ážá ááșááŹá Redisá Memcacheá etcd ááČá·áááŻá·áá±áŹ áĄá áŻáááŻááșáĄááŒáŻá¶áááŻááșá áá áșáĄáŹáž áĄááŻá¶ážááŒáŻááŒáźáž áĄááŻááșáááŹážáá áșáŠážá០á€ááŹáááșááᯠáá±ážáĄááșááŹážááŒá±áŹááșáž áĄááŒáŹážáá°áá áșáŠážáĄáŹáž ááŒá±áŹááœáá·áșááŒáŻáááș ("áá»á±ážáá°ážááŒáŻá ááá°áá«ááŸáá·áș")á áá«áááŻá·á etcd áááŻááŻá¶ážáááșá á ááșážáááșážáĄáááŻááșážá áĄááŻááșáááŹážáá»áŹážáááș áá±ááŹáá±á·á áșááŸáá·áș áááșááŒáœá áœáŹ áááșááœááșááŒá±áŹáááŻááŒááŒáźáž áááŻáá±ááŹá០áĄáá»ááșáĄáááșáá»áŹážááᯠáá±ážááŹážáááșááŒáááșá áá»áœááșáŻááșáááŻá·áááș multimaster áĄá áŻáĄáá±ážááœááșáááșááŸááá±áŹ áá±ááŹáá±á·á áșáĄááŒá áș mariadb ááᯠáĄááŻá¶ážááŒáŻáá«áááșá
á€áááčááááșáá áșááŻáááșážáááșáá±áŹááșááŸáŻááᯠOpenStack áĄááœááș áá±áá°áá»áááșáá¶ááá·áșááŻá¶á á¶ááŒáá·áș ááœáČá·á ááșážááŹážáááșá áááșážááᯠáĄáááŻááșážáĄááŹááŸáá·áș áĄááŸáŹážáá¶áááŻááșáááșááŸáááŸáŻ áááșážáááșážáá»áŹážáááș áĄááœááșáááșááŸáŹážááá·áș áĄááááșá áá áșáá áșááŻáĄááŒá áș áá°ááááŻááșáááșá á„áááŹáĄáŹážááŒáá·áșá API áĄááŸáŹážáá¶áááŻááșáááșáĄááœááșá áá»áááșááœááșáá»áŸáŹááᯠáááșážáááŻá·ááŸá±á·ááœááșááŹážáááș ááŻá¶áá±áŹááșáááșá ááŻááșááŹážáĄáá±áĄááœááșááᯠáááŻážááŒáŸáá·áșááŒááșážááŒáá·áș áĄá±áŹááșááŒááșáááșá
áĄá áźáĄá ááșáá áșááŻááŻá¶ážááĄáŹážáááșážáá»ááșááŸáŹ RabbitMQ ááŸáá·áș MariaDB ááŒá áșáááșá áááșážáááŻá·á ááááŻááŹáááșááŹáá»áŹážáááș ááźážááŒáŹážáá±áŹááșážáá«ážáá áșááŻááșááŸáá·áș áááŻááșáááșáá«áááșá á€áá±áŹááșážáá«ážááœááș API áĄááŸáŹážáá¶áááŻááșáááșááᯠáĄáŹááŻá¶á ááŻááșáááŻáá«áááșá

Openstack áá»áŸá±áŹááșááœáŸáŹááááŻááŹá cloud ááááșáá±áŹááșážá áááșáá»ááșááźááŸáŻááŸáá·áș áĄááŸáŹážáĄááœááșážáá»áŹážááᯠáááșážáá¶áááŻááșááŸáŻ
ExaBGP ááᯠââáĄááŻá¶ážááŒáŻá HAProxy balancer áĄááŸáŹáž-áá¶áááŻááșáááșááŸááĄá±áŹááș ááŒáŻááŻááșááŒááșážá
áá»áœááșáŻááșáááŻá·á APIs áá»áŹážááᯠáĄááœááșáĄá áŹážá ááŒááșáááșááŒáźáž áĄááŸáŹážáĄááœááșážáá¶áááŻááșá á±áááșáĄááœááșá áááșážáááŻá·ááŸá±á·ááœááș load balancer ááᯠááŹážááŸááá«áááșá áá»áœááșáŻááșáááŻá·áááș HAProxy áááŻááœá±ážáá»ááșááČá·áááșá áá»áœááșáŻááșááĄááŒááșáĄáá áááșážááœááșáá»áœááșáŻááșáááŻá·áááŻááșáááșážááŹáááșáĄááœááșáááŻáĄááșáá±áŹáááá±ááááčáááŹáá»áŹážááŸááááș- áá»áŹážá áœáŹáá±áŹ OSI áĄááá·áșáá»áŹážááœááș áááșáá»ááșááźááŒááșážá á áźáá¶ááá·áșááœáČááŸáŻáĄááșááŹáá±á·á áșá ááŒá±áŹááșážááœááșááŒááșááœááșááŸáá·áș áĄáááŻááșážáĄááŹá áááșáá»ááșááźáá±áŹáááșážáááșážáá»áŹážá áœáŹá session tables áĄááœááșáá¶á·áááŻážááŸáŻá
áááááŻá¶ážááŒá±ááŸááșážáááș áááŻáĄááșáá±áŹááŒáżááŹááŸáŹ balancer áááŻááșáááŻááșá áĄááŸáŹážááᯠáááșážáá¶áááŻááșááŸáŻáááșááŒá áșáááșá áá»áááșááœááșáá»áŸáŹááᯠáááșáááșááŻá¶ááŒáá·áș áá»ááșááœááșááá·áșáĄáá»ááșááᯠáááșááźážáá±ážáááș- áá»áááșááœááșáá»áŸáŹ ááŒááșáá±áŹááșááŒáźáž áááșáá±áŹááșááŸáŻ áá»ááșááœáŹážáááșá ááźáááŻáááŒá áșáĄá±áŹááș áá»áœááșáá±áŹáșáááŻá· HAProxy ááᯠExaBGP ááČá·ááœáČááŻá¶ážáá«áááșá
ExaBGP áááș ááá·áșáĄáŹáž áááșáá±áŹááșááŸáŻáá áșááŻá áĄááŒá±áĄáá±ááᯠá á áșáá±ážáááșáĄááœááș áááčáááŹážáá áșááŻááᯠáĄáá±áŹááșáĄáááșáá±áŹáșáááș ááœáá·áșááŒáŻáááșá áá»áœááșáŻááșáááŻá·áááș HAProxy áááŻááșáá±áŹááșáááŻááșá áœááșážáááŻá á áșáá±ážáááș á€áááčáááŹážáááŻáĄááŻá¶ážááŒáŻááŒáźáž ááŒáżááŹáá»áŹážááŸááá«á BGP á០HAProxy áááșáá±áŹááșááŸáŻááᯠááááșáá«á
ExaBGP+HAProxy áĄá áźáĄá ááș
- áá»áœááșáŻááșáááŻá·áááș áááŻáĄááșáá±áŹáá±áŹá·ááșááČááșááŒá áșááá·áș ExaBGP ááŸáá·áș HAProxy ááᯠááŹááŹááŻá¶ážááŻááœááș ááá·áșááœááșážáá«áááșá
- áá»áœááșáŻááșáááŻá·áááș ááŹááŹáá áșááŻá áźááœááș loopback interface áá áșááŻááᯠáááșááźážáááșá
- ááŹááŹááŻá¶ážááŻááŻá¶ážááœááș áá»áœááșáŻááșáááŻá·áááș áá°ááźáá±áŹáĄááŒá°áá±áŹááș IP ááááșá áŹááᯠá€áĄááșááŹáá±á·á áșáĄááœááș áááșááŸááșáá±ážáááșá
- áĄááŒá°áá±áŹááș IP ááááșá áŹááᯠExaBGP ááŸáá áșááá·áș áĄááșááŹáááșáááŻá· ááŒá±áŹáșááŒáŹááŹážáááșá
ááŹááŹááŻá¶ážááŻááŻá¶ážá០áá°ááźáá±áŹ IP ááááșá áŹááᯠááŒá±áŹáșááŒáŹááŒááșážááŒáá·áș áĄááŸáŹážáá¶áááŻááșáááșááᯠáááŸááááșá ááœááșáááșááŸáŻáá±áŹáá·áșááŸááŒáá·áșáá»áŸááș áá°ááźáá±áŹááááșá áŹáááș ááá°ááźáá±áŹáá±áŹááșáááșááŻá¶ážáá»ááŻážá០áááșáá±áŹááșáááŻááșáááșá router áááș áá°ááźáá±áŹáááșážááŒá±áŹááșážááŻá¶ážááŻáááŻááŒááșáááŒáźáž áááșážááááŻááșáááŻááșáááșááá áșáĄáá±á«áșáĄááŒá±áá¶á áááșážáááŻá·áĄáááșá០áĄááŒáá·áșááŻá¶ážáŠážá áŹážáá±ážáááŻááœá±ážáá»ááșáááș (á€áááșááŸáŹ áĄáá»áŹážáĄáŹážááŒáá·áș áá°ááźáá±áŹááœá±ážáá»ááșááŸáŻááŒá áșáááș)á áááșážááŒá±áŹááșážáááș ááŹááŹáá»áŹážááČááŸáá áșááŻááŹááŒá áșáááșá
HAProxy ááááșáááșááŸáŻ áááŻá·áááŻááș ááŹááŹáá»ááŻá·ááœááșážááŸáŻááœááș ááŒáżááŹáá»áŹážááŸááá±áŹáĄáá«ááœááș ExaBGP áááș áááșážááŒá±áŹááșážááᯠááŒá±ááŒáŹááŒááșážáááșááœáŹážááŒáźáž áááșážááŒá±áŹááșážáááș áĄááŒáŹážááŹááŹáááŻá· áá»á±áŹááœá±á·á áœáŹááŒá±áŹááșážááœáŹážáá«áááșá
áááŻá·ááŒá±áŹáá·áșá áá»áœááșáŻááșáááŻá·áááș balancer á áĄááŸáŹážáá¶áááŻááșáááșááᯠáááŸáááČá·áá«áááșá

HAProxy áá»áááșááœááșáá»áŸáŹáá»áŹážá áĄááŸáŹážáĄááœááșážáá»áŹážááᯠáááșážáá¶áááŻááșááŸáŻ
áĄá áźáĄá á„áșáááș áááŒáá·áșá áŻá¶áá±áŹá·áááș- áá»áœááșáŻááșáááŻá·áááș HAProxy ááᯠáááșáááŻá·ááŒááŻáááșááŹážááááșááᯠáá±á·ááŹááČá·áá±áŹáșáááșáž áááșáá±áŹááșááŸáŻáá»áŹážáĄááœááșáž áááșááᯠáááșáááŻá·ááŒáá·áșáá±ááááșááᯠááá±á·ááŹááČá·áá«á áááŻá·ááŒá±áŹáá·áșá áá»áœááșáŻááșáááŻá·áááș á€áĄá áźáĄá á„áșááᯠáĄáááșážáááșáá»áČá·ááœááșáááŻááșáááș- áá»áœááșáŻááșáááŻá·áááș áĄááŒá°áá±áŹááș IP ááááșá áŹáá»áŹážá áœáŹááŒáŹáž áá»áááșááœááșáá»áŸáŹááᯠáááșááœáŹážááČá·áááșá
DNS ááŸáá·áș BGP áááŻáĄááŒá±áá¶á áááșáá»ááșááźááŒááșážá
áá»áœááșáŻááșáááŻá·á HAProxy áĄááœááș Load Balancing ááŒáżááŹááᯠáááŒá±ááŸááșážáááŻááșáá±ážáá«á áááŻá·áá±áŹáșá áá»áœááșáŻááșáááŻá· á€áá±ááŹááœááș ááŻááșáááČá·áááŻá·á áááșážááᯠáááŻážááŸááșážá áœáŹ ááŒá±ááŸááșážáááŻááșáááșá
ááŹááŹááŻá¶ážááŻááᯠáááșáá»ááșááźá á±áááș áááșáááș áĄááŒá°áá±áŹááș IP ááááșá Ꮰá ááŻááŸáá·áș áá±áŹááșážáá±áŹ DNS áĄáá±áŹááșážáá»áŹáž áááŻáĄááșáááșááŒá áșáááșá á€ááááșá áŹáá áșááŻá áźááᯠHAProxy áá áșááŻá áźá loopback interface ááœááș ááŻá¶ážááŒááșááŒáźáž áĄááșááŹáááșáááŻá· ááŒá±áŹáșááŒáŹááŹážáááșá
OpenStack ááœááșá áĄáááșážáĄááŒá áșáá»áŹážááᯠá áźáá¶ááá·áșááœáČáááșá áááșáá±áŹááșááŸáŻáá áșááŻá endpoint API ááᯠáááșááŸááșáá±ážááá·áș áááșáá±áŹááșááŸáŻáááșážááœáŸááșááᯠáĄááŻá¶ážááŒáŻáá«áááșá á€áááșážááœáŸááșááœááș áá»áœááșáŻááșáááŻá·áááș ááá°ááźáá±áŹ IP ááááșá áŹááŻá¶ážááŻááŒáá·áș DNS ááŸáá áșááá·áș ááŒá±ááŸááșážááá·áș áááŻááááșážáĄáááș - public.infra.mail.ru ááᯠááŸááșááŻá¶áááșáá«áááșá ááááșáĄáá±ááŒáá·áș DNS ááŸáá áșááá·áș ááááșá áŹááŻá¶ážááŻááŒáŹážááœááș áááșááŒáá·áșáá±ááŸáŻááᯠáááŸááááșá
áá«áá±ááá·áș áĄááŒá°áá±áŹááș IP ááááșá áŹááœá±ááᯠááŒá±ááŒáŹááČá·áĄáá« ááŹááŹááœá±ážáá»ááșááŸáŻ áŠážá áŹážáá±ážááœá±ááᯠáááááșážáá»áŻááșááŹážááŹááŒá±áŹáá·áș áá«áᏠáááșáá»ááșáááźáá±ážáá«áá°ážá ááŻá¶ááŸááșáĄáŹážááŒáá·áșá IP ááááșá ᏠáááșáááșážáĄáááŻááș ááŹááŹáá áșááŻáᏠááœá±ážáá»ááșáááșááŒá áșááŒáźáž áá»ááșááŸá áșááŻááŸáŹ BGP ááœááș áááșááá áșáá»áŹážááᯠáááșááŸááșááŹážááŒááșážáááŸááá±áŹááŒá±áŹáá·áș áááșááŹážááŹážáááșááŒá áșáááșá
áá»áœááșáŻááșáááŻá·áááș ááá°ááźáá±áŹ áááșááá áșáá»áŹážááŒáá·áș ExaBGP ááŸáá áșááá·áș áááșážááŒá±áŹááșážáá»áŹážááᯠá áááșáá±ážáááŻá·áá«áááșá áá»áááșááœááșáá»áŸáŹáá áșááŻá áźáááș áĄááŒá°áá±áŹááș IP ááááșá áŹááŻá¶ážááŻááŻá¶ážááᯠááŒá±áŹáșááŒáŹáá±áŹáșáááșáž áááșážáááŻá·áĄáááșá០áá áșááŻáááș á€áááșáá»ááșááźááŸáŻáĄááœááș áĄááááá áșááŻááŒá áșááŒáźáž áĄáááșážááŻá¶ážáááșááá áșááŒáá·áș ááŒá±áŹáșááŒáŹááŹážáááșá áááŻá·ááŒá±áŹáá·áș áá»áááșááœááșáá»áŸáŹ ááŻá¶ážááŻá ááŻá¶áž ááŻááșáá±áŹááșáá±áá»áááșááœááș ááá IP ááááșá áŹáááŻá· áá±á«áșáááŻááŸáŻáá»áŹážáááș ááááááșáá»ááșááááșážáááŻá· ááœáŹážáááșá ááŻáááá០ááŻááááááŻá· áá±á«áșáááŻááŸáŻáá»áŹážá ááááá០áááááááŻá· áá±á«áșáááŻááŸáŻáá»áŹáž ááŒá áșáááșá
Balancer áá»áŹážááČá០áá áșáá±áŹááș ááŒáŻááșáá»áá«á ááŹááŒá áșáááČá áááșáá»ááșááźááŸáŻáá áșááŻáᯠáá»ááșááœááșáá«á áááșážááááșáááááșá áŹááᯠáĄááŒáŹážááŸá áșááŻá០ááŒá±áŹáșááŒáŹááŹážááČááŒá áșááŒáźáž áááșážáááŻá·áĄááŒáŹáž áĄááœáŹážáĄááŹááᯠááŒááșáááșááŒáá·áșáá±áá«áááșá áááŻá·ááŒá±áŹáá·áșá áá»áœááșáŻááșáááŻá·áááș ááŻá¶ážá áœáČáá°áĄáŹáž DNS ááŸáá áșááá·áș IP ááááșá áŹáá»áŹážá áœáŹááᯠáá áșááŒááŻááșáááș áá±ážáá«áááșá DNS ááŸáá·áș ááá°ááźáá±áŹ áááșááá áșáá»áŹážááŒáá·áș áá»áááșááŸáááŒááșážááŒáá·áșá áá»áááșááœááșáá»áŸáŹ ááŻá¶ážááŻá ááŻá¶ážááœááș áááșááᯠááŒáá·áșááœáČááŸáŻáá áșááŻááᯠáá»áœááșáŻááșáááŻá· áááŸááá«áááșá áá áșáá»áááșáááșážááŸáŹáááș áá»áœááșáŻááșáááŻá·áááș áĄááŸáŹážáá¶áááŻááșáááșááᯠáááŻá¶ážááŸáŻá¶ážá á±áá«á

DNS + BGP ááᯠââáĄááŒá±áá¶á HAProxy ááᯠáá»áááșááœááșáá»áŸáŹááŸáááŒááșážá
ExaBGP ááŸáá·áș HAProxy áĄááŒáŹáž áĄááŒááșáĄááŸááșáĄáá»ááŻážáááșáá±áŹááșááŸáŻ
áááŻá·ááŒá±áŹáá·áșá áááșážááŒá±áŹááșážáá»áŹážááŒá±ááŒáŹááŒááșážááᯠáááșááá·áșááŒááșážáĄáá±á«áș áĄááŒá±áá¶á ááŹááŹááŸááœááșááœáŹááá·áșáĄáá«ááœááș áá»áœááșáŻááșáááŻá·áááș áĄááŸáŹážáĄááœááșážáá¶áááŻááșáááșááŸáááŸáŻááᯠáĄáá±áŹááșáĄáááșáá±áŹáșáá±áŹááșááœááșááČá·áá«áááșá áááŻá·áá±áŹáș HAProxy áááș ááŹááŹáá»ááŻá·ááœááșážááŸáŻááŸááœáČá áĄááŒáŹážáĄááŒá±áŹááșážáá»áŹážááŒá±áŹáá·áș ááááșáááŻááșáááș- á áźáá¶ááá·áșááœáČááŸáŻáĄááŸáŹážáá»áŹážá áááșáá±áŹááșááŸáŻáĄááœááșáž áá»ááșááœááșááŸáŻáá»áŹážá á€ááá áčá áá»áŹážááœááș áá»ááŻážáá±áá±áŹ balancer ááᯠáááșááŸáŹážáááŻááŒáźáž áĄááŒáŹážáááčáááŹážáá áșáᯠáááŻáĄááșáá«áááșá
áááŻá·ááŒá±áŹáá·áș ááááșáĄá áźáĄá ááșááᯠáá»áČá·ááœááșááŒááșážááŒáá·áș ExaBGP ááŸáá·áș HAProxy ááŒáŹážááœááș ááŸááŻá¶ážááŻááșááŸáŻááșážááᯠáĄáá±áŹááșáĄáááșáá±áŹáșááČá·áááșá ExaBGP áááș áĄáááźáá±ážááŸááșážáá»áŹážá áĄááŒá±áĄáá±ááᯠá á áșáá±ážáááș á áááșááŒááŻááș scripts áá»áŹážááᯠáĄááŻá¶ážááŒáŻááá·áșáĄáá« áááșážáááș ExaBGP ááŸáá·áș HAProxy áĄááŒáŹáž áĄááŒááșáĄááŸááșáĄáá»ááŻážáááșáá±áŹááșááŸáŻááŸááá±áŹ áá±áŹá·ááșááČááᯠáĄáá±áŹááșáĄáááșáá±áŹáșááŒááșáž ááŒá áșáááșá
áááșážáááŻááŻááșáá±áŹááșáááșá HAProxy ááĄááŒá±áĄáá±áááŻá á áșáá±ážáááŻááșááá·áș ExaBGP config ááœááșáá»ááșážááŹáá±ážá á áșáá±ážáá°áĄáŹáž configure ááŒáŻááŻááșáááșáááŻáĄááșáááșá áá»áœááșáŻááșáááŻá·áááá áčá ááœááșá áá»áœááșáŻááșáááŻá·áááș HAProxy ááŸá áá»ááșážááŹáá±ážáá±áŹááșáá¶ááᯠááŒááșáááșáááșááŸááșááŒáźáž ExaBGP áááșá០áááŻážááŸááșážáá±áŹ GET áá±áŹááșážáááŻáá»ááșááŒáá·áș á á áșáá±ážáá«áááșá ááŒá±ááŒáŹáá»ááșáááșááœáŹážáá«á HAProxy áááș áĄááŻááșáááŻááșááČ ááŒá±áŹáșááŒáŹáááșááááŻáĄááșáá«á

HAProxy áá»ááșážááŹáá±ážá
á
áșáá±ážááŒááșážá
HAProxy Peers- á ááșááŸááșááᯠáááșáá°ááŒáŻááŒááșážá
áá±áŹááșááŻááșáááá·áșáĄááŹááŸáŹ sessions áá»áŹážááᯠsynchronize ááŻááșáááșááŒá áșáááșá ááŒáá·áșáá±áá»áááșááœááșáá»áŸáŹáá»áŹážááŸáááá·áș áĄááŻááșááŻááșáá±áŹáĄáá«á ááááŻááșážááá·áșáááșááŸááșáá»áŹážáĄááŒá±áŹááșáž áĄáá»ááșáĄáááșáááŻááŸá±áŹááșááŸáŻááᯠá áŻá ááșážáááș áááșááČáááșá áááŻá·áá±áŹáș HAProxy áááș ááá°ááźáá±áŹ HAProxy ááŻááșáááșážá ááșáá»áŹážáĄááŒáŹáž session tables áá»áŹážááᯠááœáŸáČááŒá±áŹááșážáá±ážáááŻááșá áœááșážááŸááá±áŹááŒá±áŹáá·áș áááșážáááŻááŻááșáá±áŹááșáááŻááșááá·áș áá»áááșááœááșáá»áŸáŹáĄáááșážáááșááČááŸáá áșááŻááŒá áșáááșá
áááșáá»ááșááźáĄá±áŹááș áá»áááșááŸááááșážáĄáá»ááŻážáá»ááŻáž ááŸááá«áááș- ááČá·áááŻá·áá±áŹ áááŻážááŸááșážáá±áŹáááșážáááșážáá»áŹáž áá±áŹááșáááșá áááșááŸááșááᯠáááááá±áŹáĄáá«ááŸáá·áș ááááșááČá·áááŻá·áááș ááŹááŹáá±á«áșááœááș ááŻááșááŻá¶ážáá»áááșáááŻááșážá ááŸáá·áș áááșáááŻážáááșá ááŻáááááœá±ážáá»ááșááŸáŻááᯠáĄáá±áŹááșáĄáááșáá±áŹáșáá»ááșááČá·áááșá
HAProxy áááș á€áááčáááŹážá client sessions áá»áŹážáááŻááááșážáááșážáááș stick-tables áááŻáĄááŻá¶ážááŒáŻáááșá áááșážáááŻá·áááș ááŻá¶ážá áœáČáá°á áá°áááșáž IP ááááșá áŹá ááœá±ážáá»ááșááŹážáá±áŹ áá áșááŸááșááááșá Ꮰ(áá±áŹááșááœááșááŸ) ááŸáá·áș áááșáá±áŹááșááŸáŻ áĄáá»ááșáĄáááșáĄáá»ááŻá·ááᯠááááșážáááșážááŹážáááșá ááŻá¶ááŸááșáĄáŹážááŒáá·áșá á„áááŹáĄáŹážááŒáá·áșá RoundRobin áá»áááșááœááșáá»áŸáŹááŻááșááœááș áĄááŒáŹážáá»áááșááœááșáá»áŸáŹáááŻááŒá±áŹááșážááá·áșáĄáá« áĄááŻá¶ážááŒáŻáá° session context áááŻáááœáŸáČááŒá±áŹááșážáááŻááșáá±áŹáĄáááźáá±ážááŸááșážáá»áŹážáĄááœááșáĄáá°ážáááŒáá·áșáĄááŻá¶ážáááșáá±áŹáĄáááșážáĄááŒá áș-IP + destination-IP áĄááœáČááᯠááááșážáááșážáááș stick table áá»áŹážáááŻáĄááŻá¶ážááŒáŻáááșá
áĄáááșá stick table áá áșááŻáááș ááá°ááźáá±áŹ HAProxy ááŻááșáááșážá ááșáá»áŹáž (áááșáá»ááșááźááŸáŻááŒá áșáá±á«áșááá·áșááŒáŹáž) áĄááŒáŹáž ááœá±á·áá»áŹážáááș áááșááŒáŹážáá±ážáá«áá áá»áœááșáŻááșáááŻá·á balancers áá»áŹážáááș stick table áá áșááŻáááșážááŸáá·áș áĄááŻááșááŻááșáááŻááșáááșááŒá áșáááșá áá»áááșááœááșáá»áŸáŹáá»áŹážááČá០áá áșááŻáá»ááșááœááșáá«á ááŻá¶ážá áœáČáá°áááœááșáááșááᯠáá»á±áŹááœá±á·á áœáŹááŒá±áŹááșážáááŻááșá á±áááșá ááááŻááșážááá·áșáááșááŸááșáá»áŹážááŸáá·áș áĄááŻááșáááș áĄá á±áŹáááŻááșážááœá±ážáá»ááșááŹážááá·áș áá°ááźáá±áŹáá±áŹááșááœááșááœááș áááșáááșááŸááá±áááșááŒá áșáááșá
ááá·áșáá»á±áŹáșáá±áŹáááșáááșááŸáŻáĄááœááșá session áááŻáááșáá±áŹááșááČá·ááá·áș balancer ááĄáááșážáĄááŒá áș IP ááááșá áŹááŒáżááŹááᯠááŒá±ááŸááșážááááșááŒá áșáááșá áá»áœááșáŻááșáááŻá·áááá áčá ááœááșá áááșážáááș loopback áá»ááșááŸáŹááŒááșááŸá dynamic address áá áșááŻááŒá áșáááșá
áááșáá°ááœááșáá°áá»áŹážá ááŸááșáááșáá±áŹáĄááŻááșáááș áĄáá»ááŻá·áá±áŹáĄááŒá±áĄáá±áá»áŹážááœááșáᏠáĄá±áŹááșááŒááșáááșá áááŻáááŻáááșááŸáŹá TCP áĄáá»áááșááŻááșááŻá¶ážááŸáŻáá»áŹážáááș ááŻá¶áá±áŹááșá áœáŹááŒáźážááŹážááá«áááș áááŻá·áááŻááș áá°ážááŒá±áŹááșážááŒááșážáááș ááŻá¶áá±áŹááșáá±áŹááŒááșáááșááááșááŒá áșááŒáźážá áááŻá·ááŸáᏠTCP á ááșááŸááșáĄáŹáž áááșá áČáááșáĄáá»áááșáááŸáá á±áááșááŒá áșáááșá áááŻá·áá±áŹáșá áááșážáááș áá»á±áŹááœá±á·á áœáŹ áá°ážááŒá±áŹááșážááŒááșážááᯠááœáá·áșááŒáŻáááșá
IaaS ááœááș áá°ááźáá±áŹáááșážáááŹááᯠáĄááŻá¶ážááŒáŻá áááșáá±áŹááșááŹážáá±áŹ áááșáá±áŹááșááŸáŻáá áșááŻááŸááááșá ááź Octavia ááŻáá±á«áșáááșá áááșážáááș HAProxy ááŻááșáááșážá ááșááŸá áșááŻáĄáá±á«áșáĄááŒá±áá¶ááŒáźáž áĄá áááŻááșážááœááș áááșáá°ááœááșáá°áá»áŹážáĄááœááș áá¶á·áááŻážááŸáŻáá«áááșáááșá ááźáááșáá±áŹááșááŸáŻááŸáŹ áá°áááŻá·áááŻááșáá°áááŻá· áĄáá±áŹááșážááŻá¶ážáááșáá±ááŒááČá·ááŒáźážáá«ááŒáźá
ááŻááșááŻá¶áááș HAProxy ááŒá áșáááșááŻá¶ážááŻááŒáŹážááŸá áá»ááŻážáá°áááŹážáá»áŹážá ááœá±á·áá»áŹážááŸáŻááᯠáááŹážááœááșááŒáá·áșááŒáááŹážááŒáźážá áááșážááᯠáááșáááŻá·ááŒááșáááșáááŻááșáááșáááŻáááșááᯠááźáááŻááșážááŻá¶á á¶áá áșááŻá áĄáááŻááŒáŻááŹážáááșá

HAProxy Peers (áááșááŸááș áááșáá°ááŒáŻááŒááșáž)
áá°ááźáá±áŹáĄá áźáĄá á„áșááᯠáááșáĄáá±áŹááșáĄáááșáá±áŹáșáá«áá áááșážáááŻááșáá±áŹááșáá»ááșááᯠáááŻáá ááŻááșá ááșážáááșááááșááŒá áșáááșá áááșážáááș áĄáá»áááșá 100% áá°ááźááá·áșáĄáááŻááșáž ááŻááșáá±áŹááșáááá·áșáááșáá°áá±áŹáĄáá»ááșáááŻááșáá«á áááŻá·áá±áŹáș áĄáááșážááŻá¶áž ááááŻááșážááá·áșááááșážááŒá áș IP ááᯠââááŸááșáááááș áááŻáĄááșáá±áŹáĄáá«ááœááș stick tables áá»áŹážááᯠááŻá¶ážááŸáŻá¶ážáááșáááŻááșáá«á
áá°ááźáá±áŹ client áá¶á០áááŒááŻááșáááș áá±áŹááșážáááŻááŸáŻ áĄáá±áĄááœááșááᯠááá·áșáááșááŒááșážá
áá»áœááșáŻááșáááŻá·á APIs áá»áŹážáĄáá«áĄáááș áá°ááááŸááșááŒáŹážáááŸááááŻááșááá·áș áááșááá·áșáááșáá±áŹááșááŸáŻáá»áŹážáááșáááᯠáá±áŹááșážáááŻááŸáŻáá»áŹáž ááŒááŻáá»áá»ááșá áźážáááŻááșáá«áááșá áááșážáááŻá·áĄááœááș áĄááŒá±áŹááșážááŒáá»ááșáá»áŹážáááș ááŻá¶ážá áœáČáá°áĄááŸáŹážáá»áŹážá០áá áșááŸááșááŹážáá±áŹ áááŻááșáááŻááșááŸáŻáĄáá ááŻá¶ážáááœáČááŒáŹážáááŻááșáááșá áá»áœááșáŻááșáááŻá·áááș IP ááááșá áŹáá»áŹážá០áĄáá«áĄáŹážáá»á±áŹáșá áœáŹ DDoSed ááŻááșáá±áá«áááșá áá±áŹááșáááșáá»áŹážáááș áááșážáááŻá·á scripts áá»áŹážááœááș áááŒáŹáá áĄááŸáŹážáĄááœááșážáá»áŹáž ááŻááșááŒááŒáźáž mini-DDoS áá»áŹážááᯠáá±ážáá«áááșá
áá áșáááșážáááŻááșáá áșáááșáž áĄáááŻáĄááŹáĄááœááșáá±ážááááșá ááááŹáááșááŸáŹážáá±áŹááŒá±ááŸááșážáá»ááșááŸáŹ API áá±áŹááșážáááŻáá»ááșáĄáá±áĄááœááșáááŻááá·áșáááșáááșááŸáá·áș áĄááčáááŹááșááŸááá±áŹáá±áŹááșážáááŻááŸáŻáá»áŹážáááŻááŻááșáá±áŹááșááŹááœááș CPU áĄáá»áááșáááŻáááŒáŻááșážááźážáááșááŒá áșáááșá
áááŻááá·áșáááșáá»ááșáá»áŹážááᯠáĄáá±áŹááșáĄáááșáá±áŹáșáááșá áá°ááźáá±áŹ stick tables áá»áŹážááᯠáĄááŻá¶ážááŒáŻá HAProxy áááŻáĄááŒá±áá¶á ááœáČá·á ááșážááŹážáá±áŹ ááŸáŻááșážááŹážááá·áșáááșáá»ááșáá»áŹážááᯠáĄááŻá¶ážááŒáŻáá«áááșá ááá·áșáááșáá»ááșáá»áŹážáááșááŸááșááŒááșážáááș áĄááœááșáááŻážááŸááșážááŒáźáž API áááŻá· áá±áŹááșážáááŻááŸáŻáĄáá±áĄááœááșáĄáŹážááŒáá·áș áĄááŻá¶ážááŒáŻáá°ááᯠááá·áșáááșáááșááœáá·áșááŒáŻáááșá áĄááșááááŻááźáááșáááș áá±áŹááșážáááŻááŸáŻáá»áŹážááŒáŻááŻááșááá·áș áĄáááșážáĄááŒá áș IP ááᯠââááŸááșááŹážááŒáźáž ááŻá¶ážá áœáČáá°áá áșáŠážáá¶á០áá áșááŒááŻááșáááș áá±áŹááșážáááŻááŸáŻáĄáá±áĄááœááșááᯠááá·áșáááșááŹážáááșá ááŻááșáá«áááșá áá»áœááșáŻááșáááŻá·áááș áááșáá±áŹááșááŸáŻáá áșááŻá áźáĄááœááș áá»ááșážáá»áŸ API load ááááŻáááŻááșááᯠááœááșáá»ááșááŒáźáž â á€áááșáááŻážááᯠ10 á ááá·áșáááșáááșááŸááșááŹážáááșá áá»áœááșáŻááșáááŻá·áááș áĄááŒá±áĄáá±ááᯠáĄááźážáááș á á±áŹáá·áșááŒáá·áșáá±ááŒáźáž áá»áœááșáŻááșáááŻá·á áááșáá»á±áŹááșážáá»áŹážááᯠááœá±ážááŻááșááŸáŻááșážáá±á«áșááœááș ááŹážááŸááá«á
áá«á áááșááœá±á·ááŸáŹ áááșáááŻááŒááșááČá áá»áœááșáŻááșáááŻá·ááœááș áá»áœááșáŻááșáááŻá·á áĄáááŻáĄáá»á±áŹááș áĄáááŻááșážáĄáᏠAPI áá»áŹážááᯠáá áșáá»áááșááŻá¶áž áĄááŻá¶ážááŒáŻáá±áá«áááșá áááșážáááŻá·áááș áá¶áááșáááŻááșážááœááș virtual machine áá±á«ááșáž ááŸá áșááŹá០ááŻá¶ážááŹááá·áșááᯠáááșááźážááŒáźáž ááá±áááŻááșážááœááș áááșážáááŻá·ááᯠáá»ááșáá áșáá«áááșá OpenStack áĄááœááșá PaaS áááșáá±áŹááșááŸáŻáá»áŹážááŸáá·áșáĄáá° virtual machine áá áșááŻáááșááźážááŹááœááș API ááŸáá áșááá·áș áááșáá±áŹááșááŸáŻáá»áŹážááŒáŹáž áĄááŒááșáĄááŸááșáĄááŒááșáĄááŸááșááŒá áșááŒááșážááŒá±áŹáá·áș áĄáááșážááŻá¶áž API áá±áŹááșážáááŻáá»ááș 1000 áááŻáĄááșáá«áááșá
áááŻáááŻá·áá±áŹ ááŻááșáááșážááŹáááșáá»áŹážááᯠááœáŸáČááŒá±áŹááșážááŒááșážáááș áĄááœááșááŒáźážááŹážáá±áŹáááșááᯠááŒá áșá á±áááșá áá»áœááșáŻááșáááŻá·áááș á€áááșááᯠáĄááČááŒááșááŒáźáž áá±á·á ááș áĄááŒáá·áșááŻá¶ážááᯠá áŻáá±áŹááșážáᏠáááșážáááŻá·ááᯠáááșááááŻážá á±ááŒáźážá áááșážáááș áá»áœááșáŻááșáááŻá·á ááŸáŻááșážááŹážááá·áșáááșáá»ááșááŒá áșááŹáááșá áá»áœááșáŻááșáááŻá·áááș áá»áœááșáŻááșáááŻá·ááááșáá»á±áŹááșážááᯠááœá±ážááŻááșááŸáŻááșážáá±á«áșááœááș ááŹážááŸááááșá áá»áœááșáŻááșáááŻá·ááœááș CGA scripts áá áșááŻááŻááŸááááŸááááŻááŒáá·áșááŸáŻáááș bot áá»áŹážááŸáá·áș scanner áá»áŹážáááŻáááŒáŹááááœá±á·ááŒááșáááŒáźážáááșážáááŻá·áááŻáááșááŒáœá áœáŹááŒááșáá±áŹááșáá±áá«áááșá
ááŻá¶ážá áœáČáá°áá»áŹážááááááŹážááááČ ááá·áșááŻááșáá±á·á áșááᯠáĄááșááááșááŻááșáááșáž
ááŻááșááŒáá·áșáá»ááșááŸáŻ ááŻááșáááșážá ááșáĄááá·áșááœááș áĄááŸáŹážáĄááœááșážáá¶áááŻááșáááșááᯠáá»áœááșáŻááșáááŻá· áá±áŹáșáá±áŹááșáá«áááșá á áááșáá±áŹááșážáá»á ááșáĄááœááșáž áá»ááŻá·ááœááșážáá»ááșáá»áŹážááŸááááŻááșáá±áŹáșáááșáž áááșáá±áŹááșááŸáŻáááŸááááŻááșááŸáŻáĄáá±á«áș áááșážáááŻá·ááááșáá±áŹááșááŸáŻááᯠáá»áŸá±áŹá·áá»áááŻááșáááșá
áá»áœááșáŻááșáááŻá·áááș áá»áœááșáŻááșáááŻá·ááááșáá±áŹááșááŸáŻáá»áŹážááᯠáĄáááșáááŒááș áĄááșááááșááŻááșááŒáźáž ááŻá¶ážá áœáČáá°áá»áŹážááᯠááááááŻááșá á±ááČ codebase ááᯠáĄááșááááșááŻááșááŹážááŒá±áŹááșáž áá±áá»áŹá á±ááááșá áá»áœááșáŻááșáááŻá·áááș HAProxy á á áźáá¶ááá·áșááœáČááŸáŻá áœááșážáááșáá»áŹážááŸáá·áș áá»áœááșáŻááșáááŻá·ááááșáá±áŹááșááŸáŻáá»áŹážááœááș Graceful Shutdown ááᯠáĄáá±áŹááșáĄáááșáá±áŹáșááŒááșážááŒáá·áș á€ááŒáżááŹááᯠááŒá±ááŸááșážáááŻááșááČá·áááșá
á€ááŒáżááŹáááŻááŒá±ááŸááșážáááșá áá»áááșááœááșáá»áŸáŹááááșážááŸáááŸáŻááŸáá·áș áááșáá±áŹááșááŸáŻáá»áŹážááᯠ"ááŸááșáááșáá±áŹ" ááááșááŒááșážáĄáŹáž áá±áá»áŹá á±áááș áááŻáĄááșáááș-
- HAProxy ááá áčá ááœááșá áĄááááĄáŹážááŒáá·áș socket áá áșááŻááŒá áșááá·áș stats áááŻááșááŸáááá·áș ááááșážáá»áŻááșááŸáŻááᯠááŻááșáá±áŹááșááŒáźáž HAProxy config ááœááș áááșááŸááșááŹážáááșá áááșáááș stdio ááŸáááá·áșáááșážáááŻáĄáááá·áșáá»áŹážáá±ážáááŻá·áááŻááșáááșá áááŻá·áá±áŹáș áá»áœááșáŻááșáááŻá·á áááșáááœáČá·á ááșážááŻá¶ááááșážáá»áŻááșááŸáŻááááááŹáááș ááŹááœááșáá±áŹááșážááœááșáá±áŹááŒá±áŹáá·áș áááșážááœááș HAProxy ááᯠá áźáá¶ááá·áșááœáČáááșáĄááœááș built-in module áá áșááŻááŸááááșá áá»áœááșáŻááșáááŻá· áááșááŒáœá áœáŹ áĄááŻá¶ážááŒáŻáá±áá«áááșá
- áá»áœááșáŻááșáááŻá·á API ááŸáá·áș Engine áááșáá±áŹááșááŸáŻáĄáá»áŹážá áŻáááș ááŸááá±áŹááááșááŒááșážáááșážáááŹáá»áŹážááᯠáá¶á·áááŻážáá±ážáááș- ááááșáááŻááșáá±áŹáĄáá«ááœááșá áááșážáááŻá·áááș áááșááŸáááŻááșáá±áŹááșáááá·áșááŹáááșá http áá±áŹááșážáááŻááŸáŻ áááŻá·áááŻááș áááșáá±áŹááșááŸáŻááŻááșáááșážáá áșááŻááŒá áșá á±áááș á á±áŹáá·áșáááŻááșážáá±ááŒáááșá áĄááŻááșáááŹážááŸáŹáááșáž áĄááŹážáá°áá«ááČá áá°ááŻááșáá±ááČá· áĄááŻááșááœá±áĄáŹážááŻá¶ážááᯠááááŒáźáž áĄááŹáĄáŹážááŻá¶ážááᯠáĄá±áŹááșááŒááșá áœáŹ ááŒáźážááŒá±áŹááșááœáŹážááČá·áĄáá« ááŒáźážááŻá¶ážááœáŹážáá«áááșá
á€áĄáá»ááșááŸá áșáá»ááșááŒá±áŹáá·áș áá»áœááșáŻááșáááŻá·áááŒáá·áșáá»ááșááŸáŻáĄááœááș áá±ážáááșážáá±áŹ áĄááșááááŻááźáááșáááș á€ááČá·áááŻá·ááŒá áșááŻá¶ááááșá
- áá±áŹá·ááșááČáĄááșáá»ááșááźááŹáááș ááŻááșáĄáá áșáĄááŻááșáá áșááŻááᯠá áŻá ááșážáááș (áá»áœááșáŻááșáááŻá·áĄááœááș áááșážáááș RPM ááŒá áșáááș)á áááșážááᯠdev áááșáááșážáá»ááșááœááș á ááșážáááșááŒáźážá áááșážááᯠá ááșááŒáá·áșááœááș á ááșážáááșááŒáźáž áĄááá·áșáááŻááŸá±áŹááșááŸáŻááœááș ááŹážááČá·áááșá
- developer áááș "artifacts" ááĄáá±ážá áááșááŻá¶ážáá±áŹáșááŒáá»ááșááŒáá·áș ááŒáá·áșáá»ááșáááșááŹáááșááᯠáááșááŸááșáá±ážáááș- áááșáá±á·áá»áșáĄáá áșáááŹážááŸááșážá ááŻááșáá±áŹááșáá»ááșáĄáá áșááá±áŹáșááŒáá»ááșááŸáá·áș áááŻáĄááșáá«á ááŒáá·áșáá»ááșááŒááșážáááŻááșáᏠáĄááŒáŹážáĄáá±ážá áááșáĄáá»ááșáĄáááșáá»áŹážááᯠáááșááŸááșáá±ážáááșá
- á
áá
áșá
áźáá¶ááá·áșááœáČáá°á áĄááșááááșááᯠá
áááșáááșá Ansible playbook áááŻááœáá·áșááŒáźáž áĄá±áŹááșáá«áááŻá·ááᯠááŻááșáá±áŹááșáá±ážáá«áááșá
- áĄááá·áșáááŻááŸá±áŹááșááŸáŻá០áááșáá±á·áá»áșáá áșááŻáááŻáá°ááŒáźáž ááŻááșááŻááșáááŻááŸá±áŹááșááŹááŸá áááșáá±á·áá»áșáááŹážááŸááșážááᯠáĄááșááááșááŻááșáááș áááșážáááŻáĄááŻá¶ážááŒáŻáá«á
- áĄááșááááșááŻááșááŹážáá±áŹ áááșáá±áŹááșááŸáŻá áá±áŹááșááœááșááœááș á áŹáááșážááᯠá áŻá ááșážáá«á
- HAProxy ááœááș áĄááșááááșááŻááșááá·áș áááááŻá¶ážáááșáá±áŹááșááŸáŻááᯠááááșáááŻááșááŒáźáž áááșážáááŻááșáááșážá ááșáá»áŹáž ááŒáźážááŻá¶ážáááș á á±áŹáá·áșáááŻááșážáá±áá«áááșá áááșáááșá áœáŹ ááááșááŒááșážáĄáŹáž áá»á±ážáá°ážáááșáá»ááșá áááșááŸá áĄááŻá¶ážááŒáŻáá° áá±áŹááșážáááŻáá»ááșáá»áŹážáĄáŹážááŻá¶áž áĄá±áŹááșááŒááșá áœáŹ ááŒáźážááŒá±áŹááșáááșáᯠáá»áœááșáŻááșáááŻá· ááŻá¶ááŒááșáá«áááșá
- API ááŸáá·áș áĄááŻááșáááŹážáá»áŹážááᯠááŻá¶ážááááșááá·áșáááŻááșááŒáźáž HAProxy ááᯠááááșááŒáźážáá±áŹááșá ááŻááșááᯠáĄááșááááșááŻááșááŹážáááșá
- Ansible áááșáá±áŹááșááŸáŻáá»áŹáž
- áááșáá±áŹááșááŸáŻáá áșááŻá áźáĄááœááșá ááŒááŻáááșáááșááŸááșááŹážáá±áŹáá±áŹá·á ááșážáááșááŸáŻáá»áŹážá áœáŹááœááș áá°áá áșá ááșážáááșááŒááșážááŻááșáá±áŹááșááá·áș áĄáá»ááŻá·áá±áŹ "áááșáááŻááșáá»áŹáž" ááᯠááœáČááŻááșáá«áááșá ááŻááșáĄáá áșá áĄááŒá±áá¶ á á áșáá±ážááŸáŻááᯠááŒáŻááŻááșáááșá
- ááááșáĄááá·áșááœááș áĄááŸáŹážáĄááœááșážáá»áŹážáááœá±á·áá«áá áá±áŹááșáá¶áááŻááșááᯠá áááșáĄááŻá¶ážááŒáŻáááŻááșáááșááŒá áșáááșá
- áá±áŹááșáá»á±áŹáááșáááŻá· áááșááœáŹážááŒáá«á ááŻá·á
- áá±áŹááșáá¶áĄáŹážááŻá¶ážááᯠáĄááșááááșááŻááșááŒáźážáá±áŹááșá ááŻááșáá±áŹááșáá»ááșáááŻááșáᏠá ááșážáááșááŸáŻáá»áŹážááᯠá áááșáááșá áááșážáááŻá· áá»á±áŹááșááŻá¶ážáá±áá«áá developer áááș áá°áááșááźážááŹážááá·áș áááșááá·áșááŻááșáá±áŹááșáá»ááșáĄáá áșáááŻáááᯠááŒáá·áșááŸáŻáááșá
á€áĄááŹáááș ááŒáá·áșáá»ááșááŸáŻááᯠáĄááŒáźážáááșá á±áááșá

áááșáá±áŹááșááŸáŻ áĄááșááááșá
ááșáááșáž
á ááșážáá»á„áșážáá áșááŻááŹáááŸááá«á á€áĄá áźáĄá á„áșáááș áĄááŻááșáááŒá áșáá«á áááŻááșááœáČááœááș ááŹážááŸááșážáĄáá±áŹááșážááŸáá·áș áĄáá áșááŸá áșáá»ááŻážááŻá¶ážááᯠáá»áœááșáŻááșáááŻá· áá¶á·áááŻážáá±ážáá«áááșá áá±áŹá·ááșááČááșááœá¶á·ááŒááŻážáááŻážáááșáá±ážáĄááá·áșááœááșá áááșáá±áŹááșááŸáŻáá±ááŹáá±á·á áșááœááș áĄááŒá±áŹááșážáĄááČáá»áŹážááŸááá»áŸááșáááș áááșážáááŻá·áááș ááááșááŻááșááᯠáá»ááŻážáá»ááșáááșáááŻááșááŒá±áŹááșáž ááŒááŻáááșáááșááŸááșááŹážáááșá ááááșáĄáá±ááŒáá·áșá ááŻááșáĄááŒá±áá¶ááᯠááŒááșážááŒááșážáá»ááșáž áĄááá·áșááŒáŸáá·áșáááșáááșá
áá±áŹááșáá»ááș
áĄááŸáŹážáĄááœááșážáá¶áááŻááșáá±áŹ WEB ááááŻááŹááŸáá·áșáááșáááșááŒáźáž áá»áœááșáŻááșááááŻááșáááŻááșáĄááœá±ážáĄááŒááșáá»áŹážááᯠáá»áŸáá±áááșážá áááșážá áĄááááĄáá»ááșáá»áŹážááᯠáá»áœááșáŻááș áááșáá¶ááŸááșááŹážáááŻáá«áááșá
- ááŻááșáááŻááșážáááŻááșááŹáĄááŸáŹážáá¶áááŻááșáááș;
- ááœááșáááșáĄááŸáŹážáá¶áááŻááșááŸáŻ (áá»áááșááœááșáá»áŸáŹáá»áŹážá BGP);
- áĄááŻá¶ážááŒáŻááŒáźáž ááźááœááșááŹážáá±áŹ áá±áŹá·ááșááČááșá áĄááŸáŹážáĄááœááșážááᯠáá¶áááŻááșáááșááŸááááșá
áááșááŒáááșáá±áŹ áĄááŻááșáá»áááșáĄáŹážááŻá¶ážá
source: www.habr.com
