á¤á ááľáĽáá áĽá á°ááá Elantsev áá ᣠáĽáááŁááá˘
á ááááŞáŤáŁ á ááłááľ áááľá áĽááľá°ááá áĄ-
- áŞá áá (áááŁá á áá) - áááá á áá á áľáŤáť
- á áááá ᣠááᣠᣠáááłá - áá°áá áŞáŤá á¨ááŤááľ áááŁá áá˝á
- RIP (áĽááá°á á áá) - á¨á áááá IP á áľáŤáť
- Healthcheck - á¨á áááá áááááľ áá¨áááĽ
- á°ááááľ áá, AZ - á áá¨á ááá¨á ááľáĽ áááá°á áá á¨á° áááľ
- ááá - á¨á°ááŤáŠ AZs á áĽá¨áľ
á¨áááľ áááłá¨áŞáŤáá˝ áśáľáľ áá áá á°ááŁáŤáľá áááłá-áááá á áŤáą áŤá¨áááá, á¨á áááááąá áľá á°áľ ááťáťá áŤáťá˝áá áĽá áá áá áŤáááá. á¨áľá á°áľ ááťáťá á á ááśáá˛á á¨áľáŤáá á áľá°áłá°á áá¨áááŁááĄ- ááá á¨áá°áá áŞáŤáá áááł áá¨áłá°áá áĽá á¨á áááľ áźáá á¨ááŤáá áááłáá˝á á¨áááŁá á á áŤáŤáľáľáᢠá¸ááá á áĽáŠá áá á á áá°áŤá¨áľ áĽá áĽáá˛áá á á á¨áŤ áá áŤá á¨á áĽááľ ááááŽá˝á á áááá ááŹáą áá¨áááŁáᢠááá á á áŤáááᣠá ááłááľ á ááŁááá˝ á¨á á á áá°áĽ á áá á¨áá á¸áá ááá ááᣠáĽá á áááááą á áľá°ááá á ááááá˘
á¨áááľ ááá áĽááá áá á¨áá áŤá ᨠOSI áá´á á ááŽáśáŽá ááĽááĽá ááá°áŁáᢠᨠCloud Balancer á¨áá°áŤá á TCP á°á¨á á˛áá áá á á¨á áŤá°áá ááĽááĽá L4 áá ááááłáá˘
áá° á¨ááááľ ááá á ááá´áá¸á á á ááá áĽááł áĽáááľá˘ ááľ á ááľ á¨ááááŠá á°á¨á áĽáá¨ááŤáá. á¨á°ááŁá á áááá˝á á áśáľáľ áááá˝ áĽáá¨áááá. á¨áááá á ááŽááá ááá áá°á áá ááľá°ááĽá áááááľ á áá áľ áĽá á¨áľáááąá á˘áá áááł áŤá¨ááťáᢠá¨áááŁá áŞáŤá á ááŽááá á¨áľáááąá áá áłá áááł áŤá¨ááťá áĽá á¨áłáł á ááŽááá ááá áŤááľá áľáááśá˝ áŤáľá°áłáľáŤáᣠáá á á¨á°áá áá˝ áá° áĽááľá á ááŁááá˝ áľáŤáá á¨ááľá¨áľ ááĽá°á áááááľ ááá˘
á¨ááἠá ááŽááá
áľáŤáአá¨ááŤá áá áľáá á áŤáá°á á ááŁá ááľ ááłáŞáŤáá˝ ááᢠá¨áľá á°áľ ááťáťáá ááá¨áá áĽá áĽáá°áá áŤá ááłáŞáŤáá˝ á á ááľ á¨ááἠááá¨á ááľáĽ á á ááľ áá áá°áŤáᢠá ááá áᣠáľáŤáአáá° áááá˝ áááłáᣠá¨áľáááá á¨á°ááá á¨á áá á áľáŤáť áááá AZ á BGP áá°áá áá˝ áŤáľáłáááá˘
áľáŤáá á ECMP áá áá°áááá - áá
áá° áááá áĽá áĽáŠá áĽáŠ ááááśá˝ áááŠá áľ á¨áá˝áá áľ á¨áááŞáŤ áľááľ áá (á áĽá áááł á˘ááá ááľá¨áťá IP á áľáŤáť áááá) áĽá ááŹáśá˝ á áááá¸áá ááአáá˝ááᢠá á°á¨ááŞá á áá¨á°áá áĽá
áľ áá°á¨áľ á á ááŤáł á¨á°á°áŤá˝ ááá˝ ááľáĽ áľáŤá áĽáá°ááááᥠá áĽáŤááłááą áá á áľáŤáť áĽááľá°ááááá, áľáŤáá áá° á
áἠáá°ááá áááłá áĽá á¨áá°áĄ á áá á áááľá. á áá áá á áľáŤáá áá áá áĽáá°ááá á á á áá áááá áĽáááá¨áłáá.
á ááŽááá á áá á
á¨áááá á ááŽááá ááá á áŤá á¤áá á ááᣠá áá
á áá°á¨áłá áááááá˝ á¨ááá á°áŞáá˝ áá áá¨ááááᥠááá áᣠáá°á¨áᣠá¨á ááŁááá˝á áľáĽáĽá ááá¨áᣠá¨á¤á ááá፠áá¤áśá˝á ááááľáŁ ááá°. á á ááľ á áŠá áá
REST API ááᣠáĽá á ááᣠáĽá ááááľ ááľáĽ áŤáá áĽá áá gRPCá ááŹá áĽáá ááááᣠáľááá
REST áá° gRPC âáĽáá°á¨ááááâ áĽá á¨á፠gRPCá áĽáť áĽáá ááááᢠááááá áĽáŤá á á ááľ á¨á፠ᨠYandex.Cloud á áŤá°áá˝ áááł áá á¨ááá¸á á°á¨áłáłá áŤáá°ááłá°á áááá¸á á°ááŁáŤáľá áá°ááá á áááŤáᢠá°ááŁáŤáľ á ááááá áá ááłááą áĽá áĽáá°áá áĽáá˛ááአá ááŤáľá˝á ááááľ á°á˝áááᢠáá
áá á-á°áááľ, á°á°áááááľ áĽá áľáŤáá˝á áááááĽá áŤá¨áááŁá.
á áá¤áąá, á¨á¤áá á ááľáĽ áŤáá á°ááŁá á Go ááľáĽ á¨á°áááá á¨ááłáĽ áááŁá áŞáŤ á áááááľ á°ááŁáŁáŞ áĽáŤá áŤáááŁá. ááá á°áŞáá˝á áá¨á áĽá ááľáááľ áŁá¨áááŁáá˝á áĽá á
ááĽáŽá˝á áľáĽáĽá áááἠáá˝ááá˘
á áááááą á Yandex áłáłá¤á ááľáĽ áŤááá áááł áŤá¨ááťáᣠá á°á¨ááá á¨áá°áłá°á á¨ááἠááł á á
áᥠáá áá áá˝ááᢠá Yandex.Cloud ááľáĽ, áá áĽáá° áĽá á áľááľáá
áá° ááá áááŁá áŞáŤ áĽááááľá˘ á°ááŁáŠ áľá ááá áá¨á ááá ἠáĽá á¨á¨áášáá áá˝áá áááááľ áá° á¤á áźá á°ááŁáŁáŞá áááá°á˝ á°ááŁá ááá ááá˘
á¨á¤á ááá፠áááŁá áŞáŤ
á¨áźá á°ááŚá˝á á¨ááá¨á áĽáŤááá˝á ááá áá ᣠá YDB ááľáĽ áŤáľáááŁá¸áá ᣠá°ááŁáŽá˝á á healtcheck ááśá˝ ááŤá¨á áŤá°áŤáŤá áĽá áá¤áśášá áŤá ááá ᣠá¨ááŤá áá° áłáłá¤á áááᥠáĽá áá° ááľáŁááá°á áááŁá áŞáŤ áááŤáᢠáĽáą, á á°áŤá, á áá¨á á ááŽááá ááľáĽ áŤááá á¨áááľá°á áľáĽáĽá áá° ááľáŁááľá°á-ááľ áááá¨á áĽáŤá áááŤá, áĽá á¨áá á áłá˝ áĽáááááŤáá.
áľá á¤á ááááŤáá˝ á¨á áá áĽáááááᢠáĽááą á á ááŤáł áááá˝ áá¨ááá áá˝áá. áŚá˛áśá˝ á¨á°ááŤáŠ á¨áľáŹáľ ááľáááśá˝ á áá¸áᢠTCP áźáŽá˝ á á°áá°á áá ááľáĽ áááááľá á á°áłáŤ áááł áááľá¨áľ á ááŁá¸áᢠá¨á¤á˝á˛á˛á áźáŽá˝ áááąáá á¨á°áłáŤ áááááľ áĽá á¨200 áááł áŽáľ áŤáá ááá˝ áŤáľáááá¸ááá˘
áĽáá˛áá, áźáŽá˝ á áľáááľ ááá ááľáĽ áááŤáŤá - áá áĽá áá áá¸á. á°ááĽáŽ áźáŽá˝ ááá á áááľ áአáĽááá áłáááľáą á áľáŤáá áá áĽáá°áá¨á°áľ á ááá áááŁá áŤáᢠáá á L4 áá á áŁá áĽáŠ á áá°áŤá ááááŤáąá á á¨áá°á á°á¨á ááŽáśáŽáá˝ á áááᎠáá á¨á°áá°á¨á° ááᥠL4 áá ááś áĽááá ááá áŤá á áá áĽáá°áá°á° ááá áááááą áá ááá áĽáŠ ááá ááĽá áľáááá ááá áá¨á á¨ááᢠááŁáŞ áźáŽá˝ ááĽáŤááłááą á¨á áááá ááłá áĽáŤááá˝á áĽáá˛áá ááá áŤáľáááá¸ááá˘
á áĽááááš á¨áááľ áááłá¨áŞáŤáá˝ áŤáłá¸á á¨á áááľ áá°áťáá˝á áŤá¨áááá. ááááľ ááᣠááľáááľá ááá¨áá áĽááá á á¨áľáááąá áááá˝ áááá¨áľ ááľáááᢠáá á áŤááľ áá áááááą á¨á¤á ááá፠áĽáŤááá˝á áĽá¨á á á á á¨ááłáĽ á°áŞáá˝á ááĽá ááá¨áá áŤáľá˝áááᢠáźáŽá˝ á¨áá¨ááááľ á á°áᨠá¨á¤áááľ áá¨áá፠ááśá˝ ááᣠá áá áá á¨áá°áť á˘áááá˝ á¨á°á áŁá áą áĽá á¨á°áŁá áá¸áᢠááłáŤ áľááá˝á á¨á ááľ á áľá°ááá áźáŽá˝á áá¨ááá á áá˝ááᢠáŤá áĽáą á¨áá¨áá¨áŁá¸áá áááłáá˝ áááł á ááááᢠááá¸ááá á ááŁááá˝ á˘áŤááľ á¨áśáľáľ á¨á¤á á á áŁá á ááśá˝ áźáŽá˝ áĽáá°ááááᢠáἠá¨áá á¨áá˝ áľáá° áááŽá˝á á áá áá á¨áá°áťáá˝ á áááá˝á á ááľááá ááśá˝ ááŤá¨á áĽáá¨áááááá˘
áááŁá á áĽá á¨á¤á ááááŤá ááá¨áľ áá° á˝ááŽá˝ áá፠áá˝áá. á¨á¤á áźá ááľááá ááááľ áá áĽááľ áĽáŤá áŤáá¨á ᣠáááá á ááá¨áĽ (á á áá áá áľáŤááá á¨ááŤáááá)ᣠá¨á፠áĽáááł á¨áá áááł ááá áŤáᥠááĽáą á á
áááľ áŤá áááľááᣠááá áá áľáŤáአá áá°ááľá áľáᢠáá
áá á˝áá á áá
ááááľ áĽáááłáááᥠá¨á¤áááľ áá°áť áľáŤááá á á°ááŁáŁá á°ááŁáŁáŞáá˝ ááááá ááľáľá á°á°áĽáśááᢠá áá á áááὠᣠá¨á°áá áá˝ áĽá á¨á¤á áźáŽá˝ áá ááŹáá˝á áááááłááľ áĽá
áľ á áľááš áááŤáŤá-á áááąá ᣠáĽá˝áá˝ áá° ááááš áá°ááłá ᣠáá
á áá° ááá ááĽáśá˝ áŤá°ááłá¸ááá˘
ááŠááą á°áá áá˝ ááŞá áá áĽáŤá á˛áŤááᥠá¨á¤á áźáŽá˝ á°áá ááĽáŤááłááą ááá°áĽ RIP áá áááᢠáĽáá
áá á ááľ á áľá°áłá˝ á˝áá ááá áŤá-á°á ááááťá˝á á ááŤáŤ IP á ááłá¨ áá¨áŚá˝ ááľáĽ ááĽáśá˝á áĽáá˛ááĽáŠ áĽáľá áĽáá°áŁáá. áááľ á¨á°ááŤáŠ á¨á°áá áŁáá¤áśá˝ á áááááłá¸áá á¨ááá á°áŞáá˝ ááᣠá¨á°á á áĽááłá áĽááľáĽá˘ áĽáŤááłááłá¸á á 10.0.0.1/24 ááĄáľ áá¨áĽ ááľáĽ á°ááłáłá á áľáŤáťáá˝ áŤáá¸á ááĽáśá˝ á áá¸á. á áá ááááľ áĽááąá ááá¨áľ ááťá á ááĽááľ, áĽá áĽáá
áá° Yandex.Cloud áááŁá á ááłá¨ áá¨áĽ ááá
á ááľáĽ áááá áááŁáľ á ááĽááľ. á°á¨á᪠ááááŽá˝á ááááľ á¨á°áťá áá
áłá˛-IPv6 á¨ááŁááľá á áľáŤáťáá˝ á áá áá á¨ááááŹá ááśá˝á áŤááááŠá˘ Quasi-address á ááľáĄ ᨠIPv6 á áľáŤáť áĽá á¨á°á áá áááľ áá¨áĽ ááłáá፠áŤáá á¨IPv4 á áľáŤáť ááᢠáľáŤáአáá° ááá áá°ááłáᣠᨠIPv4 áááá፠á áľáŤáťáá á¨áĽáą áŤááŁáᣠIPv6 á á IPv4 áá°áŤ áĽá ááŹáá áá° á°á ááá á ááłá¨áá¨áĽ áááŤáá˘
á¨á°ááá˘áŚáš áľáŤáá á á°ááłáłá ááááľ áááłááĄ- ááá ááá ááľá¨áťá á¨á¤á á°ááŁáŁáŞáá˝ ááŤáŤ ááľááá áááá áŤáŤá áĽá IPv4 á áá° IPv6 ááááŤáá˘
VPP - á¨ááἠá ááŽááá ááĽ
ááá á¨áá°áá á¨á á¨áŹáá°á ááŹáľ ááŽá°á˛áá (VPP) á´ááááá á áá áá á˛áá á¨á˛áľáŽ á¨á ááłá¨ áá¨áĽ áľáŤáá áŁá˝ áá°áľ ááᢠá áĽá áááł, áááá á á°á áá-áŚáł á ááłá¨ áá¨áĽ ááłáŞáŤ á áľá°áłá°á á¤á°-áá˝áááľ áá - á¨ááἠááá áááľ áŞáľ (DPDK) áá áá°áŤá. áá á¨áá°á á¨ááŹáľ áá°áľ á ááťá¸áá áŤá¨áááŁáᥠá á¨ááá ááľáĽ á áŁá áŤááą áááŤá¨áŚá˝ áá¨á°áłáᣠáĽá á á¨ááá áŚáł áĽá á á°á áá áŚáł ááŤá¨á ááá á áááľ á¨á ááľ ááá¨áŞáŤáá˝ á¨ááá˘
VPP á¨áá á á áá áááłá áĽá ááŹáá˝á áá° áŁá˝ á ááŁáá á¨á˛áľá°á á¨á áá á ááťá¸áá áŤáľááŁáᢠá ááťá¸á á¨á°ááá á áááá ááŽá°á°áŽá˝ áá áá¸ááŤáá˝á á ááá á áá áá ááᢠáááąá á¨áá¨á áá¸ááŤáá˝ áĽá á áá áááá (áĽá˝áá˝ á "áŹáá°áŽá˝" ááľáĽ áá¨áááá, ááᥠáĽááľ á ááľ áááŤá¨áŁá) áĽá á¨áááŞáŤ áá¸ááŤáá˝: á VPP ááľáĽ, á¨ááŹáľ áááá áŞáŤ ááŤá áá¨á°áá, á ááááš á°ááłáłá á°ááŁá á¨ááŤá¨ááá á°ááŁáŤáľá áááá.
áááłá, á VPP ááľáĽ á¨á áá ááŹáśá˝á ááááŁá á á¨áá¨áááá á áá¨á°áá á á°á á°á¨á°á áá: á ááááŞáŤ, á¨ááŹáą áŤáľááá˝ á áá°áá°á ááľááá ááááľ ááľáĽ ááá áá, á¨ááŤá áá° ááľááá ááááľ áááŤá, áá á ááŹáśá˝á á áááŞáŤ á°áá á¨áŚá˝ áá°á¨áľ á¨á áá áŤáľá°áááá.
áľáá˝ áááľáŽáᢠá¨áŞáá á°áŤá˛áá˝ á á áááŁáŁáŞ áá¸ááŤáá˝ á á ááá áá áľááľáá á ááłááĄá ᣠáľáááá á¨ááŹáśá˝á áŹáá°á áááľáŹáľ á¨á°ááá°á áŽáľ á áĽá áŹáá°á ááľá¨áá áááá-âá áá¨áá ááľáĽ á áŤáľ áĽá˝áá˝ á ááâ áŤá áááł á¨áá áŤá áľ á¨ááááŁá áŞáŤ áá°áľ á á ᢠá¨ááŤá ááááľ á°ááłáłá, á¨ááŤá - áá ááľ. Prefetch áááŞáŤáá˝ áĽá áá áááĽá áá° áá¸ááŤáá˝ áááŤá áĽá á áá á¨ááááľ á áááĽááľ áľáááážá˝ ááľáĽ ááłá¨áťá áááá á ááá˘
n_left_from = frame->n_vectors;
while (n_left_from > 0)
{
vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next);
// ...
while (n_left_from >= 4 && n_left_to_next >= 2)
{
// processing multiple packets at once
u32 next0 = SAMPLE_NEXT_INTERFACE_OUTPUT;
u32 next1 = SAMPLE_NEXT_INTERFACE_OUTPUT;
// ...
/* Prefetch next iteration. */
{
vlib_buffer_t *p2, *p3;
p2 = vlib_get_buffer (vm, from[2]);
p3 = vlib_get_buffer (vm, from[3]);
vlib_prefetch_buffer_header (p2, LOAD);
vlib_prefetch_buffer_header (p3, LOAD);
CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, STORE);
CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, STORE);
}
// actually process data
/* verify speculative enqueues, maybe switch current next frame */
vlib_validate_buffer_enqueue_x2 (vm, node, next_index,
to_next, n_left_to_next,
bi0, bi1, next0, next1);
}
while (n_left_from > 0 && n_left_to_next > 0)
{
// processing packets by one
}
// processed batch
vlib_put_next_frame (vm, node, next_index, n_left_to_next);
}
áľááá ᣠHealthchecks á IPv6 áá° VPP áŤááŤáᣠáá á áá° IPv4 ááááŤá¸ááᢠáá á¨áá¨áááá á ááŤá ááľáĽ áŁáá ááľááá ááááľ áá, áĽáąá á áááŞáá NAT áĽáá áĽáá áŤááá. áá°ááá˘áŚá˝ áľáŤáá (áĽá ᨠIPv6 áá° IPv4 ááá¨á) á°ááłáłá á áááŞáá NAT ááľááá ááááľ á á.
á¨á°ááŁáŁá á°áá áá˝ ááĽá°á áľáŤáá á ááŤá ááśá˝ ááľáĽ áŤááá, áá
á áááá á áŤáą áŤá¨áááá.
á¨ááááŞáŤá á áá á¨ááŁá á ááá áááá˝ áá. ᨠhash áŤá¨ááťá
áŁá 5-tuple hash á ááŁá á°á¨áłáłá áá˝ ááľ ááľáĽ á ááľá°á áľááľ áĽááľáá¨ááá áá¨áłáááŁáĽáá˛áá á¨á°ááŁáŁá ááᣠá¨á°áťá áĽááł áŤáá á¨áá¨á áááá áááŚá˝á˘ ááá ááá áá á¨ááá áľ ááŹáľ áá° ááá á˛á°ááľ áá° ááĽááľ áŤáá á¨ááşáá ááľááá ááááľ áááŤáᢠááĽááľ áŤáá ááşá á áá áá áááŁá á á¨áá¨á°áľá áľ áŚáł ááᥠáŤááľ âá¨ááĽáłâ ááĽáśá˝ áááá ááľáĽ ááá áĽááááŁááᢠá ááá á, ááŹááš áá° NAT ááľááá ááááľ áááŤá, áá á á¨ááľá¨áť á áľáŤáťáá á áľááá áá°áŤáá áĽá áźáŽá˝á áĽáá°áá áŤá°áá. áĽáá°áááá¨áąáľ ᣠᨠVPP á áá˝á áĽáá¨á°ááá - áá áĽáá° ááá°áľ ᣠá°ááłáłá áľááśá˝á á áá§á°á á¨ááááŁá áŞáŤ áá¸ááŤáá˝á áá¤áłáááľ áááłá°áá˘
ááĽááľ áŤáá áá˝áá
ááááľáá á¨áá¨áĽáá áĽá áááľáá? á ááááŞáŤ, á¨áá°ááá á°ááŁá áĽááľáĽ - á¨áááአááľáĽ á ááľ ááá ááá¨áĽ.
ááĽááľ á ááá ááşááᣠá¨ááŞá ááŹáľ áá˝ áá°ááᣠáĽá á ááľ ááĽááľ á¨áááአááľáĽ á ááŞá áá
áá áá˝ á ááĽá¨áśá˝ áĽááľ á ááŤáá ááá¨áŁáᢠáááአáĽáľáŤáá°áá¨á¨ áľá¨áľ, áá
áĽá
áľ á áĽáŠ áááł áá°áŤá: áááá á°ááłáłá 5-tuple áŤáá¸á ááŹáśá˝á áá° á°ááłáłá ááłá áĽáááŤáá. áááłá á ááłááľ áááŽá˝ áá¤á ááááŤáá˝ ááá˝ ááľá áľ áŤááᣠááľáá
á¨áá˝ááš ááá áááŤá ááááŁáᢠá¨á°áá áá á¨TCP áááááśá˝ ááá¨áŁáᥠáá°á á˛á áááłá A áá á¨á°á¨á°á ááŹáľ áá° áááłá B ááľá¨áľ áááá áá˝ááᣠáá
á á¨áá
á áĽá
á ááá áá á¨ááŤáááá˘
ááĽááľ áŤáá áá˝áá á¨á°ááá¸áá á˝áá áááłá. áá áá á˝áá°-ááłáĽ áááĽáŤáŤáľ ááá ááááľ áá ááᥠááĽáśá˝á á áá˝ á¨ááłá¨áááá áľ ááá áľ áĽááłáá á áľáĽ (áááłá á á ááᥠáá°áĽ)ᢠááĽáľá ááá¨áĽ áááŽáŤáŠáŠá áá° á ááá ááá á˛áá áá á á ááŹáą áá˝ á¨ááá°á ááá˘
áá
á¨ááĽáľ áľáĽáĽá á˛áá¨á á¨áľáŤáá áááś áá¨áááá ááááłáᢠááĽáľá áá°á¨á ááĽáą á¨áááá áľá áἠá¨áá á¨áá˝áá ááá áľ ááá áĽáť áá á¨áááŤáᢠááá áá¨á áľáááąáá áááá ááᣠááá áá á°ááŁá á¨ááá-áááá˝ ááľááá ááááľ á ááᣠáá
á áá°á á˛á á¨á°ááá ááá-áááá˝á áá° á á˛áľ ááĽáśá˝ áĽááłáááá áŤáľá˝áááá˘
á á°ááŁáŁá áĽá á ááĽá¨áśá˝ ááŤá¨á áŤááá áľáŤáá ááááŤáľ áá áĽáá°áá¨á°áľ á°áááá°áá. á áá á¨ááááť áľáŤááá áĽáááá¨áľá˘ áá áĽáá° áá°áť áľáŤáá á°ááłáłá áľááá°-áĽááľ áá¨á°áá - á á áááŞáá NATᣠáááľá á áááŁá NAT 44 áá°áá á áľáŤáá áĽá á NAT 46 áá¤á ááĽáĽá áľáŤááᢠá¨áŤáłá˝áá áĽá áľ áĽáá¨áĽáŤááᥠá¨á¤á áźáŽá˝ áľáŤáá áĽá áĽááá°á á¨á°á áá áľáŤááá á ááľ áĽáá°ááááá˘
Loadbalancer-node áĽá á¨á°ááŁá á áááá˝
á VPP ááľáĽ áŤá ááá á°áŞáá˝ áĽá ááĽáśá˝ áľáĽáĽá á á áŤáŁá˘á á áááááľ - ááľáŁááľá°á-ááľ áŞáááľ á°á°ááá. á¨ááľáŁááľá°á-á°ááŁáŁáŞá á¨ááľá°áśá˝ áĽá¨áľ áááááŁá áĽá á áá áŁáá á¨áŞáá áááł áĽá á¨á°ááŁáŁáŞá á á°áá áá ááá áááł ááŤá¨á áŤááá ááŠááľ áááľ áá˝ááᢠá¨á°áá áľáááľ áĽáááááᥠá¨á¤áá á á¨ááᥠááľá°áśá˝ áá° ááá áááŁá áŞáŤ áááŁáᣠáá á á¨ááĽáśá˝á âá áŤáááľâ ááá¨ááἠáá¤á áźá á°ááŁáŁáŞá á°ááŁáŤáľá áááľáŁáᢠ፠ᣠá á°áŤá ᣠá°ááŁáŽá˝á áá¤á áźá-ááľ áááľáŁá áĽá áá¤áśášá áŤá ááá ᣠá¨á፠á áá áá° ááá áááŁá áŞáŤ áááŤá¸ááᢠLoadbalancer-node á¨áááŁá áŞáŤá á¨ááᥠááľá°áśá˝á áááááŁá áĽá ᨠVPP áááłá ááááŁáᢠá áĽáá°áá ááááľ áľáááľ ááľáĽ áĽáŤááłááą á áááááľ áľá áá¨á¤áľ á áááááśá˝ á áľááá á¨áááá áĽáť áŤááá. á¨áááááśá˝ áĽááľ ááľá áá áĽá á¨á°ááŤáŠ áááá˝á á á°ááĽá á¨ááľáŤáľ áĽá á¨áá á á˝ááł á ááá˘
áá ááłáŽá˝ á°ááá°áá?
á áááŁá áŞáŤ á ááŽááá ááľáĽ áŤááľ ááá á áááááśáťá˝á á Go ááľáĽ á¨á°áá áĽá áĽáŠ á¨áá á áĽá á áľá°áááááľ áŁá áŞáŤáľ á áá¸á. Go á¨á°á¨ááá áľáááśá˝á áááááŁáľ áĽá áááľ ááá á¤á°-ááááá˝ á ááľá˘ GRPCá á áááľ áĽáá áááá ᣠááá á áŤááľ á¨á áááááľ áááľ áááľ ááá áľáá áŤá áááá - á áááááłá˝á á¨áĽáŤááłááłá˝áá á áááá áááŁá áŤá ᣠáľáĽáľáŁá¸áá á á°áááá áááἠáá˝áá áĽá áá áá ᨠGRPC áááŁá á áá á áááááᢠáááľáŞáá˝áŁ áááľ ááá áááľááá áĽáá ááááᢠá áá¨á á ááŽááá ááľáĽ áĽáŠ á áááá áĽá áľáá á¨ááá ááá˝áľ á ááá°áá-á¨áĽá¨áľ ááľááá áŤááľ ááá á áŞáá á áááá áá á¨ááá°áááá áľá ááá፠ááá°áĽá°áĽ á áŁá á áľá¸á᪠áá á˘
á˝ááŽá˝ áĽá áááľááá˝
á á°áἠáŤáá°áŤá áááľá áá? Go á ááśáá˛á á¨áá á°á¨ áľááľáł á áľá°áłá°á á ááᣠááá áá á¨áá á°á¨ áľááľáł áááŁááá˝ á ááá áá¨á°áłáᢠáĽááąá ááááá ááá ááááľ ááŽá˛áá ááľáŹáľ áĽá áĽááąá ááá¨áĄá ááľáłááľ ááᢠááá°áľáĄ ᨠGo ááŽááŤáá˝á á¨ááľáłááť áááł áááá¨áąá˘ áĽááá áá áĽáŠ á áááŤá˝ ᨠgoroutines áĽááľ áá. á áá áłáŞá ááľáĽ á°á¨á᪠ááá á áᥠá Go ááľáĽ á¨áŠáŤ áá áááĽá ááááľ ááá áá - á¨áá á°á¨ áľááľáł áááłáŁ á¨áŠáŤ ááŽá˛áá˝ áĽááľ áĽá ááá˝ áĽá áááááá˝á˘
áĽáá˛áá ááľ áá°ááŁáŤá áá¨áŤáá˝ ááἠáá፠áááá áá˝ááᢠáĽááą á áŁá á áááľ áá¸á, áĽá "áááá ááá á CI ááľáĽ á áĄáľá áááľ" á¨ááá áá°á á á ááŤá¨áĽ ááĽááą á áŁá á°áľáá á áá°áá. áĽáááłá áá á¨á°ááŁá áá¨áŤáá˝ á¨á áá ááĽáľá á¨áá áá áĽá áľáááá á¨áá ááĽááŤáá˝á áŤáľá¨áľááᢠá áá ááááŤáľ á˛áአá á ááľ áá¨áŤáá˝ á¨á°á áá° áľááá áá¨áŤáá˝ ááłáŠ áá˝ááᢠáá áááŤ: á¨á°áťá "á¨áŁáľ" áá¨áŤáá˝á á¨á ááľ áá¨áŤáá˝ ááá°á áŤáŤááą.
á¨áááᎠá áááááľ ááľá°áľ á ááá´áá¸á á¨á ááľ ááááľ á¨á áá ááľáĽáľáĽ ááᥠá á°ááá á ááá አá¨á°ááŤáŠ áá˝áá˝ áá ááááŚá˝á áá°áĽá°áĽ á áŁá ááš á áá°ááᢠáá áááŤ: áááᎠá°ááŞáľ áŤá°á¨á áá˛áŤáá áľá ááá áŤáľáĄ.
á¨áĽá áĽá áśá˝
á¨ááľáĽ ááá (IPv6) ááá á áľááá¨ááᣠá Kubernetes áľááŞááśá˝ áľáá áĽáá¨ááŤááᣠá áááááśáťá˝áá áááŤá¨áĄá áĽáááĽááá (á á áá áá á¨á¤á á á áŁá á
-ááľ áĽá á¨á¤áááľ áá¨áááŤ-ctrl áĽáť á¨á°ááŤá¨áĄ áá¸á)ᣠá á˛áľ á¨á¤á ááááŤáá˝á áĽáá¨ááŤáá áĽá áĽáá˛áá á¨áźáŽá˝ áĽáἠáá áááŤá á°ááŁáŤá áĽáá°ááááᢠá áááááśáťá˝áá á¨á áá áááá°á á¨ááľá¨á áĽáľá áĽáŤá¤áá áá - áľááá
áĽááľ á áĽááľ á ááĽáł áĽááłáááá ᣠáá á¨áááĽááľ áá¨á á áá ááᢠá¨SQS áá á°áłáá á¨áá á áááááľ á á
áᥠá á°áá ááľáĽ áłááˇáá˘
á á
áᥠᨠYandex Load Balancer ááá áááľ á°áŤááˇáᢠáŤáľáą
ááá: hab.com