Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ

Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ

рд╣реЕрд▓реЛ, рд╣реЕрдмреНрд░! рдореА Artem Karamyshev рдЖрд╣реЗ, рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рди рд╕рдВрдШ рдкреНрд░рдореБрдЦ Mail.Ru Cloud Solutions (MCS). рдЧреЗрд▓реНрдпрд╛ рд╡рд░реНрд╖рднрд░рд╛рдд рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЕрдиреЗрдХ рдирд╡реАрди рдЙрддреНрдкрд╛рджрдиреЗ рд▓рд╛рдБрдЪ рдЭрд╛рд▓реА рдЖрд╣реЗрдд. API рд╕реЗрд╡рд╛ рд╕рд╣рдЬрдкрдгреЗ рд╡рд╛рдврд╡рддрд╛ рдпреЗрдгреНрдпрд╛рдЬреЛрдЧреНрдпрд╛, рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рд▓реЛрдбрдордзреНрдпреЗ рдЬрд▓рдж рд╡рд╛рдвреАрд╕рд╛рдареА рд╕рдЬреНрдЬ рдЖрд╣реЗрдд рдпрд╛рдЪреА рдЖрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рддреНрд░реА рдХрд░рд╛рдпрдЪреА рд╣реЛрддреА. рдЖрдордЪреЗ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо OpenStack рд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЖрдгрд┐ рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧреВ рдЗрдЪреНрдЫрд┐рддреЛ рдХреА рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреНрдпрд╛ рдШрдЯрдХ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддреЗрдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрд▓реНрдпрд╛. рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдЬреЗ OpenStack рд╡рд░ рдЙрддреНрдкрд╛рджрдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛рдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдордиреЛрд░рдВрдЬрдХ рдЕрд╕реЗрд▓.

рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреНрдпрд╛ рдПрдХреВрдг рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддреЗрдордзреНрдпреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдШрдЯрдХрд╛рдВрдЪреА рд▓рд╡рдЪрд┐рдХрддрд╛ рдЕрд╕рддреЗ. рддреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣реА рд╣рд│реВрд╣рд│реВ рддреНрдпрд╛ рд╕рд░реНрд╡ рд╕реНрддрд░рд╛рдВрд╡рд░ рдЬрд╛рдК рдЬреНрдпрд╛рдд рдЖрдореНрд╣реА рдзреЛрдХреЗ рдУрд│рдЦрд▓реЗ рдЖрдгрд┐ рддреЗ рдмрдВрдж рдХреЗрд▓реЗ.

рдпрд╛ рдХрдереЗрдЪреА рд╡реНрд╣рд┐рдбрд┐рдУ рдЖрд╡реГрддреНрддреА, рдЬреНрдпрд╛рдЪрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╕реНрддреНрд░реЛрдд рдЕрдкрдЯрд╛рдЗрдо рдбреЗ 4 рдХреЙрдиреНрдлрд░рдиреНрд╕рдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рд╣реЛрддрд╛, рдЬреНрдпрд╛рдиреЗ рдЖрдпреЛрдЬрд┐рдд рдХреЗрд▓реЗ рд╣реЛрддреЗ рд╕реБрдореНрдорд╛, рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛ Uptime рд╕рдореБрджрд╛рдп YouTube рдЪреЕрдиреЗрд▓рд╡рд░.

рднреМрддрд┐рдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреА рд▓рд╡рдЪрд┐рдХрддрд╛

MCS рдХреНрд▓рд╛рдЙрдбрдЪрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрд╛рдЧ рдЖрддрд╛ рджреЛрди рдЯрд┐рдпрд░ III рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░реНрд╕рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ, рддреНрдпрд╛рдВрдЪреНрдпрд╛рдордзреНрдпреЗ 200 Gbit/s рдЪреНрдпрд╛ рдереНрд░реВрдкреБрдЯрд╕рд╣ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдорд╛рд░реНрдЧрд╛рдВрджреНрд╡рд╛рд░реЗ рднреМрддрд┐рдХ рд╕реНрддрд░рд╛рд╡рд░ рдЖрд░рдХреНрд╖рд┐рдд рдХреЗрд▓реЗрд▓реЗ рд╕реНрд╡рддрдГрдЪреЗ рдЧрдбрдж рдлрд╛рдпрдмрд░ рдЖрд╣реЗ. рдЯрд┐рдпрд░ III рднреМрддрд┐рдХ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдорд╛рдгрд╛рдд рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.

рдЧрдбрдж рдлрд╛рдпрдмрд░ рднреМрддрд┐рдХ рдЖрдгрд┐ рддрд╛рд░реНрдХрд┐рдХ рджреЛрдиреНрд╣реА рд╕реНрддрд░рд╛рдВрд╡рд░ рдЖрд░рдХреНрд╖рд┐рдд рдЖрд╣реЗ. рдЪреЕрдиреЗрд▓ рдЖрд░рдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рд╣реЛрддреЗ, рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рд▓реНрдпрд╛ рдЖрдгрд┐ рдЖрдореНрд╣реА рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░рд╛рдВрдордзреАрд▓ рд╕рдВрдкреНрд░реЗрд╖рдг рд╕рддрдд рд╕реБрдзрд╛рд░рдд рдЖрд╣реЛрдд.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХрд╛рд╣реА рдХрд╛рд│рд╛рдкреВрд░реНрд╡реА, рдПрдХрд╛ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░рд╛рдЬрд╡рд│реАрд▓ рд╡рд┐рд╣рд┐рд░реАрдд рдХрд╛рдо рдХрд░рдд рдЕрд╕рддрд╛рдирд╛, рдПрдХрд╛ рдЙрддреНрдЦрдирдирдХрд░реНрддреНрдпрд╛рдиреЗ рдПрдХ рдкрд╛рдИрдк рддреЛрдбрд▓рд╛ рдЖрдгрд┐ рдпрд╛ рдкрд╛рдИрдкрдЪреНрдпрд╛ рдЖрдд рдПрдХ рдореБрдЦреНрдп рдЖрдгрд┐ рдмреЕрдХрдЕрдк рдСрдкреНрдЯрд┐рдХрд▓ рдХреЗрдмрд▓ рджреЛрдиреНрд╣реА рд╣реЛрддреА. рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рд╕рд╣ рдЖрдордЪреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╕рдВрдкреНрд░реЗрд╖рдг рдЪреЕрдиреЗрд▓ рдПрдХрд╛ рдХреНрд╖рдгреА, рд╡рд┐рд╣рд┐рд░реАрдд рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдЖрд▓реЗ. рддреНрдпрд╛рдиреБрд╕рд╛рд░ рдЖрдореНрд╣реА рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдЪрд╛ рдХрд╛рд╣реА рднрд╛рдЧ рдЧрдорд╛рд╡рд▓рд╛ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдврд▓реЗ рдЖрдгрд┐ рд╢реЗрдЬрд╛рд░рдЪреНрдпрд╛ рд╡рд┐рд╣рд┐рд░реАрдордзреНрдпреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдкреНрдЯрд┐рдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╣ рдЕрдиреЗрдХ рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реНрдпрд╛.

рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░реНрд╕рдордзреНрдпреЗ рд╕рдВрдкреНрд░реЗрд╖рдг рдкреБрд░рд╡рдард╛рджрд╛рд░рд╛рдВрдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдЪреЗ рдмрд┐рдВрджреВ рдЖрд╣реЗрдд рдЬреНрдпрд╛рдВрдирд╛ рдЖрдореНрд╣реА рдЖрдордЪрд╛ рдЙрдкрд╕рд░реНрдЧ BGP рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЛ. рдкреНрд░рддреНрдпреЗрдХ рдиреЗрдЯрд╡рд░реНрдХ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢рд╛рд╕рд╛рдареА, рд╕рд░реНрд╡реЛрддреНрддрдо рдореЗрдЯреНрд░рд┐рдХ рдирд┐рд╡рдбрд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рднрд┐рдиреНрди рдХреНрд▓рд╛рдпрдВрдЯрдирд╛ рд╕рд░реНрд╡реЛрддреНрддрдо рдХрдиреЗрдХреНрд╢рди рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдПрдХрд╛ рдкреНрд░рджрд╛рддреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╕рдВрдкреНрд░реЗрд╖рдг рдХрдореА рдЭрд╛рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рдЙрдкрд▓рдмреНрдз рдкреНрд░рджрд╛рддреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдЖрдордЪреЗ рдорд╛рд░реНрдЧ рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рддреЛ.

рдкреНрд░рджрд╛рддрд╛ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рдЖрдкреЛрдЖрдк рдкреБрдвреАрд▓рдХрдбреЗ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЛ. рдПрдХрд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рдордзреНрдпреЗ рдмрд┐рдШрд╛рдб рдЭрд╛рд▓реНрдпрд╛рд╕, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рджреБрд╕рд▒реНрдпрд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рдордзреНрдпреЗ рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡рд╛рдВрдЪреА рдорд┐рд░рд░ рдХреЙрдкреА рдЕрд╕рддреЗ, рдЬреА рд╕рдВрдкреВрд░реНрдг рднрд╛рд░ рдШреЗрддреЗ.

Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ
рднреМрддрд┐рдХ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдЪреА рд▓рд╡рдЪрд┐рдХрддрд╛

рдЕрдиреБрдкреНрд░рдпреЛрдЧ-рд╕реНрддрд░реАрдп рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддреЗрд╕рд╛рдареА рдЖрдореНрд╣реА рдХрд╛рдп рд╡рд╛рдкрд░рддреЛ

рдЖрдордЪреА рд╕реЗрд╡рд╛ рдЕрдиреЗрдХ рдУрдкрдирд╕реЛрд░реНрд╕ рдШрдЯрдХрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ.

ExaBGP рд╣реА рд╕реЗрд╡рд╛ рдЖрд╣реЗ рдЬреА BGP-рдЖрдзрд╛рд░рд┐рдд рдбрд╛рдпрдиреЕрдорд┐рдХ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░реВрди рдЕрдиреЗрдХ рдХрд╛рд░реНрдпреЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ. рдЖрдордЪреНрдпрд╛ рд╢реНрд╡реЗрддрд╕реВрдЪреАрдмрджреНрдз IP рдкрддреНрддреНрдпрд╛рдВрдЪреА рдЬрд╛рд╣рд┐рд░рд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рддреНрдпрд╛рдЪрд╛ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╡рд╛рдкрд░ рдХрд░рддреЛ рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рдХрд░реНрддреЗ API рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛рдд.

рд╣рд╛рдкреНрд░реЛрдХреНрд╕реА рд╣рд╛ рдПрдХ рдЙрдЪреНрдЪ-рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рдЖрд╣реЗ рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ OSI рдореЙрдбреЗрд▓рдЪреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рд╕реНрддрд░рд╛рдВрд╡рд░ рдЕрддрд┐рд╢рдп рд▓рд╡рдЪрд┐рдХ рд░рд╣рджрд╛рд░реА рд╕рдВрддреБрд▓рди рдирд┐рдпрдо рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдЖрдореНрд╣реА рддреЗ рд╕рд░реНрд╡ рд╕реЗрд╡рд╛рдВрд╕рдореЛрд░ рд╕рдорддреЛрд▓ рд░рд╛рдЦрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рддреЛ: рдбреЗрдЯрд╛рдмреЗрд╕, рд╕рдВрджреЗрд╢ рджрд▓рд╛рд▓, API рд╕реЗрд╡рд╛, рд╡реЗрдм рд╕реЗрд╡рд╛, рдЖрдордЪреЗ рдЕрдВрддрд░реНрдЧрдд рдкреНрд░рдХрд▓реНрдк - рд╕рд░реНрд╡рдХрд╛рд╣реА HAProxy рдЪреНрдпрд╛ рдорд╛рдЧреЗ рдЖрд╣реЗ.

API рдЕрдиреБрдкреНрд░рдпреЛрдЧ тАФ python рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рди, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ.

рдХрд╛рдордЧрд╛рд░ рдЕрд░реНрдЬ (рдпрд╛рдкреБрдвреЗ рдлрдХреНрдд рдХрд╛рд░реНрдпрдХрд░реНрддрд╛) - рдУрдкрдирд╕реНрдЯреЕрдХ рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ, рд╣рд╛ рдПрдХ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдбрд┐рдорди рдЖрд╣реЗ рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдкреАрдЖрдп рдХрдорд╛рдВрдбреНрд╕ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░рд╡рд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдбрд┐рд╕реНрдХ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдпрдХрд░реНрддреНрдпрд╛рдордзреНрдпреЗ рд╣реЛрддреЗ рдЖрдгрд┐ рдирд┐рд░реНрдорд┐рддреА рд╡рд┐рдирдВрддреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ API рдордзреНрдпреЗ рд╣реЛрддреЗ.

рдорд╛рдирдХ рдУрдкрдирд╕реНрдЯреЕрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

OpenStack рд╕рд╛рдареА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд░реНтАНрдпрд╛рдЪ рд╕реЗрд╡рд╛ рдПрдХрд╛рдЪ рдкреЕрд░рд╛рдбрд╛рдЗрдордЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддрд╛рдд. рд╕реЗрд╡реЗрдордзреНрдпреЗ рд╕рд╣рд╕рд╛ 2 рднрд╛рдЧ рдЕрд╕рддрд╛рдд: API рдЖрдгрд┐ рдХрд╛рдордЧрд╛рд░ (рдмреЕрдХрдПрдВрдб рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯрд░реНрд╕). рдирд┐рдпрдорд╛рдиреБрд╕рд╛рд░, рдПрдкреАрдЖрдп рд╣рд╛ рдкрд╛рдпрдереЙрдирдордзреАрд▓ рдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдп рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд╣реЗ, рдЬреЛ рдПрдХрддрд░ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдбреЗрдорди) рдХрд┐рдВрд╡рд╛ рд░реЗрдбреАрдореЗрдб Nginx рдХрд┐рдВрд╡рд╛ Apache рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░реВрди рд▓реЙрдиреНрдЪ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. API рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рдирдВрддреАрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рдЖрдгрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрдвреАрд▓ рд╕реВрдЪрдирд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕ рджреЗрддреЗ. рдЯреНрд░рд╛рдиреНрд╕рдлрд░ рдореЗрд╕реЗрдЬ рдмреНрд░реЛрдХрд░ рд╡рд╛рдкрд░реВрди рд╣реЛрддреЗ, рд╕рд╣рд╕рд╛ RabbitMQ, рдЗрддрд░ рдЦрд░рд╛рдм рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд. рдЬреЗрд╡реНрд╣рд╛ рд╕рдВрджреЗрд╢ рдмреНрд░реЛрдХрд░рдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрддрд╛рдд, рддреЗрд╡реНрд╣рд╛ рдХрд╛рдордЧрд╛рд░рд╛рдВрджреНрд╡рд╛рд░реЗ рддреНрдпрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рдкреНрд░рддрд┐рд╕рд╛рдж рдкрд░рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рдпрд╛ рдкреЕрд░рд╛рдбрд╛рдЗрдордордзреНрдпреЗ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдгреНрдпрд╛рдЪреЗ рдкреГрдердХ рд╕рд╛рдорд╛рдиреНрдп рдореБрджреНрджреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд: RabbitMQ рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕. рдкрд░рдВрддреБ RabbitMQ рдПрдХрд╛ рд╕реЗрд╡реЗрдордзреНрдпреЗ рд╡реЗрдЧрд│реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рд╕рд┐рджреНрдзрд╛рдВрддрддрдГ, рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡реЗрд╕рд╛рдареА рд╡реИрдпрдХреНрддрд┐рдХ рдЕрд╕реВ рд╢рдХрддреЗ. рдореНрд╣рдгреВрди MCS рд╡рд░ рдЖрдореНрд╣реА рдпрд╛ рд╕реЗрд╡рд╛ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдХрд░рддреЛ; рдкреНрд░рддреНрдпреЗрдХ рд╡реИрдпрдХреНрддрд┐рдХ рдкреНрд░рдХрд▓реНрдкрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рд╡реЗрдЧрд│рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдпрд╛рд░ рдХрд░рддреЛ, рдПрдХ рд╡реЗрдЧрд│рд╛ RabbitMQ. рд╣рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рдЪрд╛рдВрдЧрд▓рд╛ рдЖрд╣реЗ рдХрд╛рд░рдг рдХрд╛рд╣реА рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдмрд┐рдВрджреВрдВрд╡рд░ рдЕрдкрдШрд╛рдд рдЭрд╛рд▓реНрдпрд╛рд╕, рд╕рдВрдкреВрд░реНрдг рд╕реЗрд╡рд╛ рдЦрдВрдбрд┐рдд рд╣реЛрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪрд╛ рдлрдХреНрдд рдПрдХ рднрд╛рдЧ рдЖрд╣реЗ.

рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЕрдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЖрдгрд┐ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╡рд╛рдврд╡рдгреНрдпрд╛рд╕рд╛рдареА API рдмреЕрд▓рдиреНрд╕рд░реНрд╕рдЪреНрдпрд╛ рдорд╛рдЧреЗ рдХреНрд╖реИрддрд┐рдЬрд░рд┐рддреНрдпрд╛ рд╕рд╣рдЬрдкрдгреЗ рд╕реНрдХреЗрд▓ рдХрд░реВ рд╢рдХрддреЗ.

рдЬреЗрд╡реНрд╣рд╛ API рдЖрдгрд┐ рдХрд╛рдордЧрд╛рд░ рдпрд╛рдВрдЪреНрдпрд╛рдд рдЬрдЯрд┐рд▓ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдСрдкрд░реЗрд╢рдиреНрд╕ рд╣реЛрддрд╛рдд рддреЗрд╡реНрд╣рд╛ рдХрд╛рд╣реА рд╕реЗрд╡рд╛рдВрдирд╛ рд╕реЗрд╡реЗрдордзреНрдпреЗ рд╕рдордиреНрд╡рдп рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЛ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдПрдХрд▓ рд╕рдордиреНрд╡рдп рдХреЗрдВрджреНрд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ, рд░реЗрдбрд┐рд╕, рдореЗрдордХреЗрд╢, рдЗ.рдбреА. рд╕рд╛рд░рдЦреА рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдгрд╛рд▓реА, рдЬреА рдПрдХрд╛ рдХрд╛рд░реНрдпрдХрд░реНрддреНрдпрд╛рд▓рд╛ рджреБрд╕рд░реНтАНрдпрд╛рд▓рд╛ рд╕рд╛рдВрдЧреВ рджреЗрддреЗ рдХреА рд╣реЗ рдХрд╛рд░реНрдп рддреНрдпрд╛рдЪреНрдпрд╛рдХрдбреЗ рд╕реЛрдкрд╡рд▓реЗ рдЖрд╣реЗ ("рдХреГрдкрдпрд╛ рддреЗ рдШреЗрдК рдирдХрд╛"). рдЖрдореНрд╣реА etcd рд╡рд╛рдкрд░рддреЛ. рдирд┐рдпрдорд╛рдиреБрд╕рд╛рд░, рдХрд╛рдордЧрд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдд, рддреЗрдереВрди рдорд╛рд╣рд┐рддреА рд▓рд┐рд╣рд┐рддрд╛рдд рдЖрдгрд┐ рд╡рд╛рдЪрддрд╛рдд. рдЖрдореНрд╣реА mariadb рд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рддреЛ, рдЬреЛ рдорд▓реНрдЯреАрдорд╛рд╕реНрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЕрд╕рддреЛ.

рд╣реА рдХреНрд▓рд╛рд╕рд┐рдХ рдПрдХрд▓ рд╕реЗрд╡рд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ OpenStack рд╕рд╛рдареА рд╕реНрд╡реАрдХрд╛рд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рдЖрдпреЛрдЬрд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рд╣реЗ рдПрдХ рдмрдВрдж рдкреНрд░рдгрд╛рд▓реА рдореНрд╣рдгреВрди рдорд╛рдирд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЬреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЖрдгрд┐ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддреЗрдЪреНрдпрд╛ рдкрджреНрдзрддреА рдЕрдЧрджреА рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗрдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдкреАрдЖрдп рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕рд╕рд╛рдареА, рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рдореЛрд░ рдмреЕрд▓рдиреНрд╕рд░ рдареЗрд╡рдгреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ. рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛рдордЧрд╛рд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдврд╡реВрди рд╕рд╛рдзреНрдп рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рд╕рдВрдкреВрд░реНрдг рдпреЛрдЬрдиреЗрддреАрд▓ рдХрдордХреБрд╡рдд рдмрд┐рдВрджреВ рдореНрд╣рдгрдЬреЗ RabbitMQ рдЖрдгрд┐ MariaDB. рддреНрдпрд╛рдВрдЪреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕реНрд╡рддрдВрддреНрд░ рд▓реЗрдЦрд╛рд╕ рдкрд╛рддреНрд░ рдЖрд╣реЗ. рдпрд╛ рд▓реЗрдЦрд╛рдд рдорд▓рд╛ API рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддреЗрд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ.

Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ
рдУрдкрдирд╕реНрдЯреЕрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░. рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреЗ рд╕рдВрддреБрд▓рди рдЖрдгрд┐ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛

ExaBGP рд╡рд╛рдкрд░реВрди HAProxy рдмреЕрд▓рдиреНрд╕рд░ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдмрдирд╡рдгреЗ

рдЖрдордЪреЗ API рд╕реНрдХреЗрд▓реЗрдмрд▓, рдЬрд▓рдж рдЖрдгрд┐ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдмрдирд╡рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рдореЛрд░ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рдареЗрд╡рддреЛ. рдЖрдореНрд╣реА HAProxy рдирд┐рд╡рдбрд▓реЗ. рдорд╛рдЭреНрдпрд╛ рдорддреЗ, рдпрд╛рдд рдЖрдордЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрд╣реЗрдд: рдЕрдиреЗрдХ OSI рд╕реНрддрд░рд╛рдВрд╡рд░ рд╕рдВрддреБрд▓рди, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЗрдВрдЯрд░рдлреЗрд╕, рд▓рд╡рдЪрд┐рдХрддрд╛ рдЖрдгрд┐ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА, рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд╕рдВрддреБрд▓рди рдкрджреНрдзрддреА, рд╕рддреНрд░ рд╕рд╛рд░рдгреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди.

рдкрд╣рд┐рд▓реА рд╕рдорд╕реНрдпрд╛ рдЬреНрдпрд╛рдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ рддреА рдореНрд╣рдгрдЬреЗ рдмреЕрд▓рдиреНрд╕рд░рдЪреА рджреЛрд╖ рд╕рд╣рдирд╢реАрд▓рддрд╛. рдлрдХреНрдд рдмреЕрд▓рдиреНрд╕рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рдиреЗ рджреЗрдЦреАрд▓ рдмрд┐рдШрд╛рдбрд╛рдЪрд╛ рдореБрджреНрджрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддреЛ: рдмреЕрд▓рдиреНрд╕рд░ рддреБрдЯрддреЛ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рдХреНрд░реЕрд╢ рд╣реЛрддреЗ. рд╣реЗ рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА ExaBGP рд╕рд╣ HAProxy рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛.

ExaBGP рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реЗрд╡реЗрдЪреА рд╕реНрдерд┐рддреА рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдпрдВрддреНрд░рдгрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдЖрдореНрд╣реА рд╣реА рдпрдВрддреНрд░рдгрд╛ HAProxy рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЖрдгрд┐ рд╕рдорд╕реНрдпрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, BGP рдХрдбреВрди HAProxy рд╕реЗрд╡рд╛ рдЕрдХреНрд╖рдо рдХрд░реВ.

ExaBGP+HAProxy рдпреЛрдЬрдирд╛

  1. рдЖрдореНрд╣реА рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░, ExaBGP рдЖрдгрд┐ HAProxy, рддреАрди рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ.
  2. рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд▓реВрдкрдмреЕрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рддрдпрд╛рд░ рдХрд░рддреЛ.
  3. рд╕рд░реНрд╡ рддреАрди рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЖрдореНрд╣реА рдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕рд▓рд╛ рд╕рдорд╛рди рдкрд╛рдВрдврд░рд╛ IP рдкрддреНрддрд╛ рдирд┐рдпреБрдХреНрдд рдХрд░рддреЛ.
  4. рдПрдХ рдкрд╛рдВрдврд░рд╛ IP рдкрддреНрддрд╛ ExaBGP рджреНрд╡рд╛рд░реЗ рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдЬрд╛рд╣рд┐рд░рд╛рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рд╕рд░реНрд╡ рддреАрди рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рд╕рдорд╛рди IP рдкрддреНрддреНрдпрд╛рдЪреА рдЬрд╛рд╣рд┐рд░рд╛рдд рдХрд░реВрди рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рдиреЗрдЯрд╡рд░реНрдХрдЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди, рд╕рдорд╛рди рдкрддреНрддрд╛ рддреАрди рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреБрдвреАрд▓ рд╣реЙрдкреНрд╕рдордзреВрди рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗ. рд░рд╛рдЙрдЯрд░ рддреАрди рд╕рдорд╛рди рдорд╛рд░реНрдЧ рдкрд╛рд╣рддреЛ, рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдореЗрдЯреНрд░рд┐рдХрдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ рддреНрдпрд╛рддреАрд▓ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдзрд╛рдиреНрдп рдирд┐рд╡рдбрддреЛ (рд╣рд╛ рд╕рд╣рд╕рд╛ рд╕рдорд╛рди рдкрд░реНрдпрд╛рдп рдЕрд╕рддреЛ) рдЖрдгрд┐ рд░рд╣рджрд╛рд░реА рдлрдХреНрдд рдПрдХрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЬрд╛рддреЗ.

HAProxy рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрд┐рдШрд╛рдб рдЭрд╛рд▓реНрдпрд╛рд╕, ExaBGP рдорд╛рд░реНрдЧрд╛рдЪреА рдШреЛрд╖рдгрд╛ рдХрд░рдгреЗ рдерд╛рдВрдмрд╡рддреЗ рдЖрдгрд┐ рд╡рд╛рд╣рддреВрдХ рд╕реБрд░рд│реАрддрдкрдгреЗ рджреБрд╕рд░реНтАНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ.

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА рдмреЕрд▓рдиреНрд╕рд░рдЪреА рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реА.

Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ
HAProxy рдмреЕрд▓рдиреНрд╕рд░реНрд╕рдЪреА рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛

рдпреЛрдЬрдирд╛ рдЕрдкреВрд░реНрдг рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдЖрд▓реЗ: рдЖрдореНрд╣реА HAProxy рдХрд╕реЗ рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рд╛рд╡реЗ рд╣реЗ рд╢рд┐рдХрд▓реЛ, рдкрд░рдВрддреБ рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ рд▓реЛрдб рдХрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рд╛рд╡реЗ рд╣реЗ рд╢рд┐рдХрд▓реЛ рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдпрд╛ рдпреЛрдЬрдиреЗрдЪрд╛ рдереЛрдбрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрд▓рд╛: рдЖрдореНрд╣реА рдЕрдиреЗрдХ рдкрд╛рдВрдврд░реНтАНрдпрд╛ IP рдкрддреНрддреНрдпрд╛рдВрдордзреНрдпреЗ рд╕рдВрддреБрд▓рди рд░рд╛рдЦрдгреНрдпрд╛рд╕рд╛рдареА рдкреБрдвреЗ рдЧреЗрд▓реЛ.

DNS рдкреНрд▓рд╕ BGP рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕рдВрддреБрд▓рди

рдЖрдордЪреНрдпрд╛ HAProxy рд╕рд╛рдареА рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧрдЪрд╛ рдкреНрд░рд╢реНрди рдЕрджреНрдпрд╛рдк рдирд┐рд░рд╛рдХрд░рдг рдЭрд╛рд▓реЗрд▓рд╛ рдирд╛рд╣реА. рддрдерд╛рдкрд┐, рд╣реЗ рдЕрдЧрджреА рд╕реЛрдкреНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рд╕реЛрдбрд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЬрд╕реЗ рдЖрдореНрд╣реА рдпреЗрдереЗ рдХреЗрд▓реЗ.

рддреАрди рд╕рд░реНрд╡реНрд╣рд░ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ 3 рдкрд╛рдВрдврд░реЗ IP рдкрддреНрддреЗ рдЖрдгрд┐ рдЪрд╛рдВрдЧрд▓реЗ рдЬреБрдиреЗ DNS рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреАрд▓. рдпрд╛рдкреИрдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрддреНрддрд╛ рдкреНрд░рддреНрдпреЗрдХ HAProxy рдЪреНрдпрд╛ рд▓реВрдкрдмреЕрдХ рдЗрдВрдЯрд░рдлреЗрд╕рд╡рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдЬрд╛рд╣рд┐рд░рд╛рдд рдХреЗрд▓реА рдЬрд╛рддреЗ.

OpenStack рдордзреНрдпреЗ, рд╕рдВрд╕рд╛рдзрдиреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реЗрд╡рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ, рдЬреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡реЗрдЪреЗ рдПрдВрдбрдкреЙрдЗрдВрдЯ API рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ. рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЖрдореНрд╣реА рдПрдХ рдбреЛрдореЗрди рдирд╛рд╡ рдиреЛрдВрджрдгреА рдХрд░рддреЛ - public.infra.mail.ru, рдЬреНрдпрд╛рдЪреЗ рдирд┐рд░рд╛рдХрд░рдг DNS рджреНрд╡рд╛рд░реЗ рддреАрди рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ IP рдкрддреНрддреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНрд╣рд╛рд▓рд╛ DNS рджреНрд╡рд╛рд░реЗ рддреАрди рдкрддреНрддреНрдпрд╛рдВрдордзреНрдпреЗ рд▓реЛрдб рд╡рд┐рддрд░рдг рдорд┐рд│рддреЗ.

рдкрд░рдВрддреБ рдкрд╛рдВрдврд░реЗ IP рдкрддреНрддреЗ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛рдирд╛ рдЖрдореНрд╣реА рд╕рд░реНрд╡реНрд╣рд░ рдирд┐рд╡рдб рдкреНрд░рд╛рдзрд╛рдиреНрдпрдХреНрд░рдо рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдд рдирд╛рд╣реА, рд╣реЗ рдЕрджреНрдпрд╛рдк рд╕рдВрддреБрд▓рд┐рдд рдирд╛рд╣реА. рд╕рд╛рдорд╛рдиреНрдпрддрдГ, IP рдкрддреНрддреНрдпрд╛рдЪреНрдпрд╛ рдЬреНрдпреЗрд╖реНрдарддреЗрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдлрдХреНрдд рдПрдХ рд╕рд░реНрд╡реНрд╣рд░ рдирд┐рд╡рдбрд▓рд╛ рдЬрд╛рдИрд▓, рдЖрдгрд┐ рдЗрддрд░ рджреЛрди рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЕрд╕рддреАрд▓ рдХрд╛рд░рдг BGP рдордзреНрдпреЗ рдХреЛрдгрддреЗрд╣реА рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реАрдд.

рдЖрдореНрд╣реА ExaBGP рджреНрд╡рд╛рд░реЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдореЗрдЯреНрд░рд┐рдХреНрд╕рд╕рд╣ рдорд╛рд░реНрдЧ рдкрд╛рдард╡рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА. рдкреНрд░рддреНрдпреЗрдХ рдмреЕрд▓рдиреНрд╕рд░ рд╕рд░реНрд╡ рддреАрди рдкрд╛рдВрдврд░реНтАНрдпрд╛ IP рдкрддреНрддреНрдпрд╛рдВрдЪреА рдЬрд╛рд╣рд┐рд░рд╛рдд рдХрд░рддреЛ, рдкрд░рдВрддреБ рддреНрдпрд╛рдкреИрдХреА рдПрдХ, рдпрд╛ рдмреЕрд▓рдиреНрд╕рд░рд╕рд╛рдареА рдореБрдЦреНрдп, рдХрд┐рдорд╛рди рдореЗрдЯреНрд░рд┐рдХрд╕рд╣ рдЬрд╛рд╣рд┐рд░рд╛рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рддреНрдпрд╛рдореБрд│реЗ рддрд┐рдиреНрд╣реА рдмреЕрд▓рдиреНрд╕рд░ рдЪрд╛рд▓реВ рдЕрд╕рддрд╛рдирд╛, рдкрд╣рд┐рд▓реНрдпрд╛ рдЖрдпрдкреА рдЕреЕрдбреНрд░реЗрд╕рд╡рд░реАрд▓ рдХреЙрд▓ рдкрд╣рд┐рд▓реНрдпрд╛ рдмреЕрд▓рдиреНрд╕рд░рд╡рд░ рдЬрд╛рддрд╛рдд, рджреБрд╕рд▒реНрдпрд╛рд▓рд╛ рджреБрд╕рд▒реНрдпрд╛рд▓рд╛ рдХреЙрд▓ рдХрд░рддрд╛рдд рдЖрдгрд┐ рддрд┐рд╕рд▒реНрдпрд╛ рддреЗ рддрд┐рд╕рд▒реНрдпрд╛рд▓рд╛ рдХреЙрд▓ рдХрд░рддрд╛рдд.

рдмреЕрд▓рдиреНрд╕рд░реНрд╕рдкреИрдХреА рдПрдХ рдкрдбрд▓реНрдпрд╛рд╡рд░ рдХрд╛рдп рд╣реЛрддреЗ? рдХреЛрдгрддрд╛рд╣реА рдмреЕрд▓рдиреНрд╕рд░ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рдЪрд╛ рдореБрдЦреНрдп рдкрддреНрддрд╛ рдЕрджреНрдпрд╛рдк рдЗрддрд░ рджреЛрдирдордзреВрди рдЬрд╛рд╣рд┐рд░рд╛рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдордзреНрдпреЗ рд░рд╣рджрд╛рд░реА рдкреБрдиреНрд╣рд╛ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ DNS рджреНрд╡рд╛рд░реЗ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ IP рдкрддреНрддреЗ рджреЗрддреЛ. DNS рдЖрдгрд┐ рднрд┐рдиреНрди рдореЗрдЯреНрд░рд┐рдХреНрд╕рджреНрд╡рд╛рд░реЗ рд╕рдорддреЛрд▓ рд╕рд╛рдзреВрди, рдЖрдореНрд╣рд╛рд▓рд╛ рддрд┐рдиреНрд╣реА рдмреЕрд▓рдиреНрд╕рд░рдордзреНрдпреЗ рд▓реЛрдбрдЪреЗ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рдорд┐рд│рддреЗ. рдЖрдгрд┐ рддреНрдпрд╛рдЪ рд╡реЗрд│реА рдЖрдкрдг рджреЛрд╖ рд╕рд╣рдирд╢реАрд▓рддрд╛ рдЧрдорд╛рд╡рдд рдирд╛рд╣реА.

Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ
DNS + BGP рд╡рд░ рдЖрдзрд╛рд░рд┐рдд HAProxy рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдгреЗ

ExaBGP рдЖрдгрд┐ HAProxy рдордзреАрд▓ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж

рддреНрдпрд╛рдореБрд│реЗ, рдЖрдореНрд╣реА рдорд╛рд░реНрдЧрд╛рдВрдЪреА рдШреЛрд╖рдгрд╛ рдерд╛рдВрдмрд╡рд┐рдгреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд░реНрд╡реНрд╣рд░ рд╕реЛрдбрд▓реНрдпрд╛рд╕ рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЛ. рдкрд░рдВрддреБ HAProxy рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдЕрдкрдпрд╢рд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдЗрддрд░ рдХрд╛рд░рдгрд╛рдВрдореБрд│реЗ рдмрдВрдж рд╣реЛрдК рд╢рдХрддреЗ: рдкреНрд░рд╢рд╛рд╕рдирд╛рддреАрд▓ рддреНрд░реБрдЯреА, рд╕реЗрд╡реЗрддреАрд▓ рдЕрдкрдпрд╢. рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рджреЗрдЦреАрд▓ рд▓реЛрдб рдЕрдВрддрд░реНрдЧрдд рддреБрдЯрд▓реЗрд▓рд╛ рдмреЕрд▓рдиреНрд╕рд░ рдХрд╛рдврд╛рдпрдЪрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдпрдВрддреНрд░рдгреЗрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ.

рдореНрд╣рдгреВрди, рдорд╛рдЧреАрд▓ рдпреЛрдЬрдиреЗрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реВрди, рдЖрдореНрд╣реА ExaBGP рдЖрдгрд┐ HAProxy рджрд░рдореНрдпрд╛рди рд╣реГрджрдпрд╛рдЪреЗ рдареЛрдХреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ. рд╣реЗ ExaBGP рдЖрдгрд┐ HAProxy рдордзреАрд▓ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рдЪреЗ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрд╣реЗ, рдЬреЗрд╡реНрд╣рд╛ ExaBGP рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреА рд╕реНрдерд┐рддреА рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдиреБрдХреВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░рддреЗ.

рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ ExaBGP рдХреЙрдиреНрдлрд┐рдЧрд░рдордзреНрдпреЗ рдЖрд░реЛрдЧреНрдп рддрдкрд╛рд╕рдХ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЬреЗ HAProxy рдЪреА рд╕реНрдерд┐рддреА рддрдкрд╛рд╕реВ рд╢рдХрддреЗ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдЖрдореНрд╣реА HAProxy рдордзреНрдпреЗ рд╣реЗрд▓реНрде рдмреЕрдХрдПрдВрдб рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ ExaBGP рдмрд╛рдЬреВрдиреЗ рдЖрдореНрд╣реА рдПрдХ рд╕рд╛рдзреА GET рд╡рд┐рдирдВрддреА рддрдкрд╛рд╕рддреЛ. рдЬрд░ рдШреЛрд╖рдгрд╛ рд╣реЛрдгреЗ рдерд╛рдВрдмрд▓реЗ, рддрд░ HAProxy рдмрд╣реБрдзрд╛ рдХрд╛рдо рдХрд░рдд рдирд╛рд╣реА рдЖрдгрд┐ рддреНрдпрд╛рдЪреА рдЬрд╛рд╣рд┐рд░рд╛рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА.

Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ
HAProxy рдЖрд░реЛрдЧреНрдп рддрдкрд╛рд╕рдгреА

HAProxy Peers: рд╕рддреНрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди

рдкреБрдвреАрд▓ рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ рд╕рддреНрд░реЗ рд╕рдордХреНрд░рдорд┐рдд рдХрд░рдгреЗ. рд╡рд┐рддрд░рд┐рдд рдмреЕрд▓рдиреНрд╕рд░рджреНрд╡рд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдирд╛, рдХреНрд▓рд╛рдпрдВрдЯ рд╕рддреНрд░рд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреАрдЪреЗ рд╕рдВрдЪрдпрди рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреЗ рдХрдареАрдг рдЖрд╣реЗ. рдкрд░рдВрддреБ HAProxy рд╣реЗ рдХрд╛рд╣реА рдмреЕрд▓рдиреНрд╕рд░реНрд╕рдкреИрдХреА рдПрдХ рдЖрд╣реЗ рдЬреЗ рдкреАрдЕрд░реНрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдореБрд│реЗ рд╣реЗ рдХрд░реВ рд╢рдХрддрд╛рдд - рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ HAProxy рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдордзреНрдпреЗ рд╕рддреНрд░ рд╕рд╛рд░рдгреА рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛.

рд╡рд┐рд╡рд┐рдз рд╕рдВрддреБрд▓рди рдкрджреНрдзрддреА рдЖрд╣реЗрдд: рд╕реЛрдкреНрдпрд╛ рдЬрд╕реЗ рдХреА рдЧреЛрд▓-рд░реЙрдмрд┐рди, рдЖрдгрд┐ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд, рдЬреЗрд╡реНрд╣рд╛ рдХреНрд▓рд╛рдпрдВрдЯрдЪреЗ рд╕рддреНрд░ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рддреЛ рдкреВрд░реНрд╡реАрдкреНрд░рдорд╛рдгреЗрдЪ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╕рдВрдкрддреЛ. рдЖрдореНрд╣рд╛рд▓рд╛ рджреБрд╕рд░рд╛ рдкрд░реНрдпрд╛рдп рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛рдпрдЪрд╛ рд╣реЛрддрд╛.

HAProxy рдпрд╛ рдпрдВрддреНрд░рдгреЗрдЪреА рдХреНрд▓рд╛рдпрдВрдЯ рд╕рддреНрд░реЗ рдЬрддрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдЯрд┐рдХ-рдЯреЗрдмрд▓ рд╡рд╛рдкрд░рддреЗ. рддреЗ рдХреНрд▓рд╛рдпрдВрдЯрдЪрд╛ рдореВрд│ IP рдкрддреНрддрд╛, рдирд┐рд╡рдбрд▓реЗрд▓рд╛ рд▓рдХреНрд╖реНрдп рдкрддреНрддрд╛ (рдмреЕрдХрдПрдВрдб) рдЖрдгрд┐ рдХрд╛рд╣реА рд╕реЗрд╡рд╛ рдорд╛рд╣рд┐рддреА рдЬрддрди рдХрд░рддрд╛рдд. рд╕рд╛рдорд╛рдиреНрдпрддрдГ, рд╕реНрдЯрд┐рдХ рдЯреЗрдмрд▓реНрд╕рдЪрд╛ рд╡рд╛рдкрд░ рд╕реНрддреНрд░реЛрдд-IP + рдЧрдВрддрд╡реНрдп-IP рдЬреЛрдбреА рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреЗ рд╡рд┐рд╢реЗрд╖рддрдГ рдЕрд╢рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ рдЬреЗ рджреБрд╕рд░реНтАНрдпрд╛ рдмреЕрд▓рдиреНрд╕рд░рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛рдирд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕рддреНрд░ рд╕рдВрджрд░реНрдн рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реАрдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, RoundRobin рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ рдореЛрдбрдордзреНрдпреЗ.

рдЬрд░ рд╕реНрдЯрд┐рдХ рдЯреЗрдмрд▓рд▓рд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ HAProxy рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдордзреНрдпреЗ (рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рдВрддреБрд▓рди рд╣реЛрддреЗ) рд╣рд▓рд╡рд╛рдпрд▓рд╛ рд╢рд┐рдХрд╡рд▓реЗ рдЕрд╕реЗрд▓, рддрд░ рдЖрдордЪреЗ рдмреЕрд▓рдиреНрд╕рд░ рд╕реНрдЯрд┐рдХ рдЯреЗрдмрд▓рдЪреНрдпрд╛ рдПрдХрд╛ рдкреВрд▓рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рддреАрд▓. рд╣реЗ рдмреЕрд▓рдиреНрд╕рд░рдкреИрдХреА рдПрдХ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ рдХреНрд▓рд╛рдпрдВрдЯрдЪреЗ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдЦрдВрдбрдкрдгреЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдгреЗ рд╢рдХреНрдп рдХрд░реЗрд▓; рдХреНрд▓рд╛рдпрдВрдЯ рд╕рддреНрд░рд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдкреВрд░реНрд╡реА рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рд╕рдорд╛рди рдмреЕрдХрдПрдВрдбрд╡рд░ рд╕реБрд░реВ рд░рд╛рд╣реАрд▓.

рдпреЛрдЧреНрдп рдСрдкрд░реЗрд╢рдирд╕рд╛рдареА, рдмреЕрд▓рдиреНрд╕рд░рдЪреНрдпрд╛ рд╕реНрддреНрд░реЛрдд рдЖрдпрдкреА рдкрддреНрддреНрдпрд╛рдЪреА рд╕рдорд╕реНрдпрд╛ рдЬреНрдпрд╛рдордзреВрди рд╕рддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ рддреНрдпрд╛рдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рд╣рд╛ рд▓реВрдкрдмреЕрдХ рдЗрдВрдЯрд░рдлреЗрд╕рд╡рд░реАрд▓ рдбрд╛рдпрдиреЕрдорд┐рдХ рдкрддреНрддрд╛ рдЖрд╣реЗ.

рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрдЪреЗ рдпреЛрдЧреНрдп рдХрд╛рд░реНрдп рдХреЗрд╡рд│ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддреАрддрдЪ рд╕рд╛рдзреНрдп рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдореНрд╣рдгрдЬреЗрдЪ, TCP рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреБрд░реЗрд╕реЗ рдореЛрдареЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдкреБрд░реЗрд╕реЗ рдЬрд▓рдж рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реВрди TCP рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдгреНрдпрд╛рд╕ рд╡реЗрд│ рдирд╕реЗрд▓. рддрдерд╛рдкрд┐, рддреЗ рдЕрдЦрдВрдб рд╕реНрд╡рд┐рдЪрд┐рдВрдЧрд╕рд╛рдареА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.

IaaS рдордзреНрдпреЗ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╕рдорд╛рди рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╡рд╛рдкрд░реВрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рд╕реЗрд╡рд╛ рдЖрд╣реЗ. рдпрд╛ OpenStack рд╕рд╛рдареА рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рдмреЕрд▓рдиреНрд╕рд░ рд▓реЛрдб рдХрд░рд╛, рдЬреНрдпрд╛рд▓рд╛ рдСрдХреНрдЯрд╛рд╡реНрд╣рд┐рдпрд╛ рдореНрд╣рдгрддрд╛рдд. рд╣реЗ рджреЛрди HAProxy рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЗ. рддреНрдпрд╛рдВрдиреА рдпрд╛ рд╕реЗрд╡реЗрдд рд╕реНрд╡рддрдГрд▓рд╛ рдЙрддреНрдХреГрд╖реНрдЯ рд╕рд┐рджреНрдз рдХреЗрд▓реЗ рдЖрд╣реЗ.

рдЪрд┐рддреНрд░ рдпреЛрдЬрдирд╛рдмрджреНрдзрдкрдгреЗ рддреАрди HAProxy рдЙрджрд╛рд╣рд░рдгрд╛рдВрдордзреАрд▓ рдкреАрдЕрд░ рдЯреЗрдмрд▓рдЪреА рд╣рд╛рд▓рдЪрд╛рд▓ рджрд░реНрд╢рд╡рддреЗ, рд╣реЗ рдХрд╕реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдпрд╛рд╡рд░ рдПрдХ рдХреЙрдиреНрдлрд┐рдЧрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЖрд╣реЗ:

Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ
HAProxy Peers (рд╕рддреНрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди)

рдЖрдкрдг рд╕рдорд╛рди рдпреЛрдЬрдирд╛ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реНрдпрд╛рд╕, рддреНрдпрд╛рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдЪреА рдХрд╛рд│рдЬреАрдкреВрд░реНрд╡рдХ рдЪрд╛рдЪрдгреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ 100% рд╡реЗрд│реЗрдд рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд░реЗрд▓ рд╣реЗ рддрдереНрдп рдирд╛рд╣реА. рдкрд░рдВрддреБ рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╛рдпрдВрдЯрдЪрд╛ рд╕реНрддреНрд░реЛрдд рдЖрдпрдкреА рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╕реНрдЯрд┐рдХ рдЯреЗрдмрд▓ рдЧрдорд╛рд╡рдгрд╛рд░ рдирд╛рд╣реА.

рдПрдХрд╛рдЪ рдХреНрд▓рд╛рдпрдВрдЯрдХрдбреВрди рдПрдХрд╛рдЪрд╡реЗрд│реА рдпреЗрдгрд╛рд▒реНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рдгреЗ

рдЖрдордЪреНрдпрд╛ API рд╕рд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХрд░реАрддреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реЗрд╡рд╛, рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╣рд┐рдорд╕реНрдЦрд▓рдирд╛рдЪреНрдпрд╛ рдЕрдзреАрди рдЕрд╕реВ рд╢рдХрддрд╛рдд. рддреНрдпрд╛рдВрдЪреА рдХрд╛рд░рдгреЗ рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рдЕрд╕реВ рд╢рдХрддрд╛рдд, рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рддреНрд░реБрдЯреАрдВрдкрд╛рд╕реВрди рд▓рдХреНрд╖реНрдпрд┐рдд рд╣рд▓реНрд▓реНрдпрд╛рдВрдкрд░реНрдпрдВрдд. рдЖрдореНрд╣реА рд╡реЗрд│реЛрд╡реЗрд│реА IP рдкрддреНрддреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ DDoSed рдЖрд╣реЛрдд. рдХреНрд▓рд╛рдпрдВрдЯ рдЕрдиреЗрдХрджрд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рдЪреБрдХрд╛ рдХрд░рддрд╛рдд рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ рдорд┐рдиреА-рдбреАрдбреАрдУрдПрд╕ рджреЗрддрд╛рдд.

рдПрдХ рдорд╛рд░реНрдЧ рдХрд┐рдВрд╡рд╛ рджреБрд╕рд░рд╛, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд░рдХреНрд╖рдг рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдПрдкреАрдЖрдп рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдд CPU рд╡реЗрд│ рд╡рд╛рдпрд╛ рдШрд╛рд▓рд╡рдгреЗ рд╣рд╛ рд╕реНрдкрд╖реНрдЯ рдЙрдкрд╛рдп рдЖрд╣реЗ.

рдЕрд╢рд╛ рдирд┐рд░реНрдмрдВрдзрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рд╕рдорд╛рди рд╕реНрдЯрд┐рдХ рдЯреЗрдмрд▓ рд╡рд╛рдкрд░реВрди, HAProxy рдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рдЖрдпреЛрдЬрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рджрд░ рдорд░реНрдпрд╛рджрд╛ рд╡рд╛рдкрд░рддреЛ. рдорд░реНрдпрд╛рджрд╛ рд╕реЗрдЯ рдХрд░рдгреЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ API рдЪреНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреБрд╕рд╛рд░ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рджреЗрддреЗ. рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реНрддреНрд░реЛрдд рдЖрдпрдкреА рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рддреЛ рдЬреНрдпрд╛рд╡рд░реВрди рд╡рд┐рдирдВрддреНрдпрд╛ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдПрдХрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдХрдбреВрди рдПрдХрд╛рдЪрд╡реЗрд│реА рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рддреЗ. рдЕрд░реНрдерд╛рдд, рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡реЗрд╕рд╛рдареА рд╕рд░рд╛рд╕рд░реА API рд▓реЛрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рдЪреА рдЧрдгрдирд╛ рдХреЗрд▓реА рдЖрдгрд┐ рдпрд╛ рдореВрд▓реНрдпрд╛рдЪреНрдпрд╛ 10 рдкрдЯ тЙИ рдорд░реНрдпрд╛рджрд╛ рд╕реЗрдЯ рдХреЗрд▓реА. рдЖрдореНрд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪреЗ рдмрд╛рд░рдХрд╛рдИрдиреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡рддреЛ рдЖрдгрд┐ рдирд╛рдбреАрд╡рд░ рдмреЛрдЯ рдареЗрд╡рддреЛ.

рд╣реЗ рд╕рд░рд╛рд╡ рдордзреНрдпреЗ рдХрд╕реЗ рджрд┐рд╕рддреЗ? рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЕрд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдЖрд╣реЗрдд рдЬреЗ рдЖрдордЪреЗ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ API рдиреЗрд╣рдореА рд╡рд╛рдкрд░рддрд╛рдд. рддреЗ рд╕рдХрд╛рд│реА рдЕрдВрджрд╛рдЬреЗ рджреЛрди рддреЗ рддреАрдирд╢реЗ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рддрдпрд╛рд░ рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╕рдВрдзреНрдпрд╛рдХрд╛рд│реА рд╣рдЯрд╡рддрд╛рдд. OpenStack рд╕рд╛рдареА, PaaS рд╕реЗрд╡рд╛рдВрд╕рд╣ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдорд╛рди 1000 API рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд, рдХрд╛рд░рдг рд╕реЗрд╡рд╛рдВрдордзреАрд▓ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж API рджреНрд╡рд╛рд░реЗ рджреЗрдЦреАрд▓ рд╣реЛрддреЛ.

рдХрд╛рд░реНрдпрд╛рдВрдЪреНрдпрд╛ рдЕрд╢рд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдгрд╛рдореБрд│реЗ рдмрд░реНтАНрдпрд╛рдкреИрдХреА рдореЛрдард╛ рднрд╛рд░ рд╣реЛрддреЛ. рдЖрдореНрд╣реА рдпрд╛ рднрд╛рд░рд╛рдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗрд▓реЗ, рджреИрдирдВрджрд┐рди рд╢рд┐рдЦрд░реЗ рдЧреЛрд│рд╛ рдХреЗрд▓реА, рддреА рджрд╣рд╛рдкрдЯ рд╡рд╛рдврд╡рд▓реА рдЖрдгрд┐ рд╣реА рдЖрдордЪреА рджрд░ рдорд░реНрдпрд╛рджрд╛ рдмрдирд▓реА. рдЖрдкрдг рдирд╛рдбреАрд╡рд░ рдмреЛрдЯ рдареЗрд╡рддреЛ. рдЖрдореНрд╣реА рдЕрдиреЗрдХрджрд╛ рдмреЙрдЯреНрд╕ рдЖрдгрд┐ рд╕реНрдХреЕрдирд░ рдкрд╛рд╣рддреЛ рдЬреЗ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЪрд╛рд▓рд╡рддрд╛ рдпреЗрддреАрд▓ рдЕрд╢рд╛ CGA рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЖрд╣реЗрдд рдХреА рдирд╛рд╣реА рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдд рдЖрд╣реЗрдд, рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рдХрд╛рдкрдд рдЖрд╣реЛрдд.

рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рди рдпреЗрддрд╛ рддреБрдордЪрд╛ рдХреЛрдбрдмреЗрд╕ рдХрд╕рд╛ рдЕрдкрдбреЗрдЯ рдХрд░рд╛рдпрдЪрд╛

рдЖрдореНрд╣реА рдХреЛрдб рдЙрдкрдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЛ. рд░реЛрд▓рдЖрдЙрдЯреНрд╕ рджрд░рдореНрдпрд╛рди рддреНрд░реБрдЯреА рдЕрд╕реВ рд╢рдХрддрд╛рдд, рдкрд░рдВрддреБ рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдзрддреЗрд╡рд░ рддреНрдпрд╛рдВрдЪрд╛ рдкреНрд░рднрд╛рд╡ рдХрдореА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡рд╛ рд╕рддрдд рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЛ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рди рдХрд░рддрд╛ рдХреЛрдбрдмреЗрд╕ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. HAProxy рдЪреНрдпрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ Graceful Shutdown рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдЖрдореНрд╣реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ.

рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдмреЕрд▓рдиреНрд╕рд░рдЪреЗ рдирд┐рдпрдВрддреНрд░рдг рдЖрдгрд┐ рд╕реЗрд╡рд╛рдВрдЪреЗ "рдпреЛрдЧреНрдп" рд╢рдЯрдбрд╛рдЙрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ:

  • HAProxy рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдирд┐рдпрдВрддреНрд░рдг рдЖрдХрдбреЗрд╡рд╛рд░реА рдлрд╛рдЗрд▓рджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рдореВрд▓рдд: рдПрдХ рд╕реЙрдХреЗрдЯ рдЖрд╣реЗ рдЖрдгрд┐ HAProxy рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рддреБрдореНрд╣реА рддреНрдпрд╛рд▓рд╛ stdio рджреНрд╡рд╛рд░реЗ рдХрдорд╛рдВрдб рдкрд╛рдард╡реВ рд╢рдХрддрд╛. рдкрд░рдВрддреБ рдЖрдордЪреЗ рдореБрдЦреНрдп рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдирд┐рдпрдВрддреНрд░рдг рд╕рд╛рдзрди рдЙрддреНрддрд░рджрд╛рдпреА рдЖрд╣реЗ, рдореНрд╣рдгреВрди рддреНрдпрд╛рдд HAProxy рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдВрдЧрднреВрдд рдореЙрдбреНрдпреВрд▓ рдЖрд╣реЗ. рдЬреЗ рдЖрдореНрд╣реА рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╡рд╛рдкрд░рддреЛ.
  • рдЖрдордЪреНрдпрд╛ рдмрд░реНтАНрдпрд╛рдЪ API рдЖрдгрд┐ рдЗрдВрдЬрд┐рди рд╕реЗрд╡рд╛ рдЖрдХрд░реНрд╖рдХ рд╢рдЯрдбрд╛рдЙрди рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддрд╛рдд: рдмрдВрдж рдХрд░рддрд╛рдирд╛, рддреЗ рд╕рдзреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛рдд, рдордЧ рддреА HTTP рд╡рд┐рдирдВрддреА рдЕрд╕реЛ рдХрд┐рдВрд╡рд╛ рдХрд╛рд╣реА рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдп. рдХрд╛рдордЧрд╛рд░рд╛рдЪреНрдпрд╛ рдмрд╛рдмрддреАрддрд╣реА рдЕрд╕реЗрдЪ рдШрдбрддреЗ. рддреЛ рдХрд░рдд рдЕрд╕рд▓реЗрд▓реА рд╕рд░реНрд╡ рдХрд╛рдореЗ рддреНрдпрд╛рд▓рд╛ рдорд╛рд╣реАрдд рдЕрд╕рддреЗ рдЖрдгрд┐ рддреА рдпрд╢рд╕реНрд╡реАрдкрдгреЗ рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рддреА рд╕рдВрдкрддреЗ.

рдпрд╛ рджреЛрди рдореБрджреНрдпрд╛рдВрдореБрд│реЗ рдзрдиреНрдпрд╡рд╛рдж, рдЖрдордЪреНрдпрд╛ рдЙрдкрдпреЛрдЬрдирд╛рд╕рд╛рдареА рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЕрд╕реЗ рджрд┐рд╕рддреЗ.

  1. рдбреЗрд╡реНрд╣рд▓рдкрд░ рдХреЛрдбрдЪреЗ рдПрдХ рдирд╡реАрди рдкреЕрдХреЗрдЬ рдПрдХрддреНрд░ рдХрд░рддреЛ (рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╣реЗ RPM рдЖрд╣реЗ), рдбреЗрд╡реНрд╣ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рддреНрдпрд╛рдЪреА рдЪрд╛рдЪрдгреА рдХрд░рддреЛ, рд╕реНрдЯреЗрдЬрдордзреНрдпреЗ рддреНрдпрд╛рдЪреА рдЪрд╛рдЪрдгреА рдХрд░рддреЛ рдЖрдгрд┐ рд╕реНрдЯреЗрдЬ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рд╕реЛрдбрддреЛ.
  2. рдбреЗрд╡реНрд╣рд▓рдкрд░ "рдХрд▓рд╛рдХреГрддреА" рдЪреНрдпрд╛ рд╕рд░реНрд╡рд╛рдд рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд░реНрдгрдирд╛рд╕рд╣ рдЙрдкрдпреЛрдЬрдирд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп рд╕реЗрдЯ рдХрд░рддреЛ: рдирд╡реАрди рдкреЕрдХреЗрдЬрдЪреА рдЖрд╡реГрддреНрддреА, рдирд╡реАрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреЗ рд╡рд░реНрдгрди рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рддреИрдирд╛рддреАрдмрджреНрджрд▓ рдЗрддрд░ рддрдкрд╢реАрд▓.
  3. рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдЕрджреНрдпрддрди рд╕реБрд░реВ рдХрд░рддреЛ. рдЙрддреНрддрд░рджрд╛рдпреА рдкреНрд▓реЗрдмреБрдХ рд▓рд╛рдБрдЪ рдХрд░рддреЗ, рдЬреЗ рдпрд╛рдордзреВрди рдкреБрдвреАрд▓ рдЧреЛрд╖реНрдЯреА рдХрд░рддреЗ:
    • рд╕реНрдЯреЗрдЬ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреВрди рдкреЕрдХреЗрдЬ рдШреЗрддреЗ рдЖрдгрд┐ рдЙрддреНрдкрд╛рджрди рднрд╛рдВрдбрд╛рд░рд╛рддреАрд▓ рдкреЕрдХреЗрдЬрдЪреА рдЖрд╡реГрддреНрддреА рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддреЗ.
    • рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдмреЕрдХрдПрдВрдбрдЪреА рд╕реВрдЪреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ.
    • HAProxy рдордзреНтАНрдпреЗ рдЕрдкрдбреЗрдЯ рдХрд░рдгреНтАНрдпрд╛рдЪреА рдкрд╣рд┐рд▓реА рд╕реЗрд╡рд╛ рдмрдВрдж рдХрд░рддреЗ рдЖрдгрд┐ рддрд┐рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ. рдЖрдХрд░реНрд╖рдХ рдмрдВрдж рдХреЗрд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдЖрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рддреНрд░реА рдЖрд╣реЗ рдХреА рд╕рд░реНрд╡ рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рдпрдВрдЯ рд╡рд┐рдирдВрддреНрдпрд╛ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдкреВрд░реНрдг рд╣реЛрддреАрд▓.
    • API рдЖрдгрд┐ рдХрд╛рдордЧрд╛рд░ рдкреВрд░реНрдгрдкрдгреЗ рдерд╛рдВрдмрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдгрд┐ HAProxy рдмрдВрдж рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдХреЛрдб рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
    • рдЙрддреНрддрд░рджрд╛рдпреА рд╕реЗрд╡рд╛ рдЪрд╛рд▓рд╡рддреЗ.
    • рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡реЗрд╕рд╛рдареА, рдХрд╛рд╣реА "рд╣рдБрдбрд▓" рдЦреЗрдЪрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреЗ рдЕрдиреЗрдХ рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЪрд╛рдЪрдгреНрдпрд╛рдВрд╡рд░ рдпреБрдирд┐рдЯ рдЪрд╛рдЪрдгреА рдХрд░рддрд╛рдд. рдирд╡реАрди рдХреЛрдбрдЪреА рдореВрд▓рднреВрдд рддрдкрд╛рд╕рдгреА рд╣реЛрддреЗ.
    • рдорд╛рдЧреАрд▓ рдЪрд░рдгрд╛рдд рддреНрд░реБрдЯреА рдЖрдврд│рд▓реНрдпрд╛ рдирд╕рд▓реНрдпрд╛рд╕, рдмреЕрдХрдПрдВрдб рд╕рдХреНрд░рд┐рдп рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
    • рдЪрд▓рд╛ рдкреБрдвреАрд▓ рдмреЕрдХрдПрдВрдбрд╡рд░ рдЬрд╛рдКрдпрд╛.
  4. рд╕рд░реНрд╡ рдмреЕрдХрдПрдВрдб рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЪрд╛рдЪрдгреНрдпрд╛ рд╕реБрд░реВ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рддреЗ рдЧрд╣рд╛рд│ рдЕрд╕рд▓реНрдпрд╛рд╕, рд╡рд┐рдХрд╕рдХ рддреНрдпрд╛рдиреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдХреЛрдгрддреАрд╣реА рдирд╡реАрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╛рд╣рддреЛ.

рд╣реЗ рдЙрдкрдпреЛрдЬрди рдкреВрд░реНрдг рдХрд░рддреЗ.

Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ
рд╕реЗрд╡рд╛ рдЕрджреНрдпрддрди рдЪрдХреНрд░

рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХрдЪ рдирд┐рдпрдо рдирд╕реЗрд▓ рддрд░ рд╣реА рдпреЛрдЬрдирд╛ рдЪрд╛рд▓рдгрд╛рд░ рдирд╛рд╣реА. рдЖрдореНрд╣реА рдпреБрджреНрдзрд╛рдд рдЬреБрдиреНрдпрд╛ рдЖрдгрд┐ рдирд╡реАрди рджреЛрдиреНрд╣реА рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЛ. рдЖрдЧрд╛рдК, рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯрдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рд╣реЗ рдареЗрд╡рд▓реЗ рдЖрд╣реЗ рдХреА рд╕реЗрд╡рд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдмрджрд▓ рдЕрд╕рд▓реЗ рддрд░реАрд╣реА рддреЗ рдорд╛рдЧреАрд▓ рдХреЛрдб рдЦрдВрдбрд┐рдд рдХрд░рдгрд╛рд░ рдирд╛рд╣реАрдд. рдкрд░рд┐рдгрд╛рдореА, рдХреЛрдб рдмреЗрд╕ рд╣рд│реВрд╣рд│реВ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рдирд┐рд╖реНрдХрд░реНрд╖

рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ WEB рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдмрджреНрджрд▓ рдорд╛рдЭреЗ рд╕реНрд╡рддрдГрдЪреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рддрд╛рдирд╛, рдореА рдкреБрдиреНрд╣рд╛ рдПрдХрджрд╛ рддреНрдпрд╛рдЪреЗ рдореБрдЦреНрдп рдореБрджреНрджреЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдК рдЗрдЪреНрдЫрд┐рддреЛ:

  • рд╢рд╛рд░реАрд░рд┐рдХ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛;
  • рдиреЗрдЯрд╡рд░реНрдХ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ (рд╕рдВрддреБрд▓рди, рдмреАрдЬреАрдкреА);
  • рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдЖрдгрд┐ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдЪреА рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛.

рдкреНрд░рддреНрдпреЗрдХрдЬрдг рд╕реНрдерд┐рд░ рдЕрдкрдЯрд╛рдЗрдо!

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛