Size: a a a

2020 February 13

ЕО

Евгений Омельченко in DevOps
Aleksey Smirnov
AS же,автономная система, какое еще AZ ?
Availability zone
источник

DS

Dmitry Sergeev in DevOps
Евгений Омельченко
-1 AZ и печалька
не понял,  ну перетащил айпи на другой балансировщик,  чем в этом плане отличается l3 от l7?
источник

ЕО

Евгений Омельченко in DevOps
источник

AS

Aleksey Smirnov in DevOps
Dmitry Sergeev
не понял,  ну перетащил айпи на другой балансировщик,  чем в этом плане отличается l3 от l7?
перетащил ip - это например haproxy + keepalived + vrrp, и это только внутри одной AS будет работать (или внутри одного зоны в терминах клауда)
источник

AS

Aleksey Smirnov in DevOps
И получается если вся зона падает, то тебе надо делать bgp анонс на другую автономку (в другую зону). @elemir90, правильно? Приведешь пример на чем такое можно собрать?
источник

LB

Let Eat Bee in DevOps
Евгений Омельченко
А как по твоему l3-балансировщик работает? С помощью bgp
Bgp может анонсить тот,через кого трафик вообще не идёт, будет ли он считаться L3 балансироващиком? Haproxy в TCP режиме - классический L3 балансировщик, работает  без всякого BGP
источник

ЕО

Евгений Омельченко in DevOps
Ну, условно. L3-балансировка выглядит так:

1. В разных зонах стоят разные border router'ы, они анонсят один и тот же самый VIP (IP адрес балансера) с одним весом
2. Для анонса настроен ECMP, с помощью которого гарантируется, что трафик из одного sip:sport:dip:dport пройдёт через тот же самый border router
3. Внутри зоны обычно эта схема повторяется в маленьком масштабе, то есть internal bgp, ecmp и так трафик доползает до нужного бекенда. Кроме того есть автоматика, которая проверяет хелсчеки и снимает/поднимает анонсы на iBGP.
4. Анонсы iBGP прорастают в eBGP, что гарантирует, что если внутри зоны что-нибудь анонисится, то этот IP и вовне заанонсится.

Теперь что у вас будет с HTTP/1. У вас десять tcp соединений, каждое из них будет иметь свой sport, что позволит на 10 бекендов рассыпать трафик. С HTTP/2 у вас будет один набор sip:sport:dip:dport и всё посыплется на один бекенд. Альтернатив тут особых нет: сетевое оборудование ничего не знает про http2 streams и никаких железных технологий для этого нет
источник

AS

Aleksey Smirnov in DevOps
значит нужно в такой схеме сразу после прохождения внешнего балансировщика - дальше идти на обычные L7 балансеры, а их failover строить на хелсчеках, а не на bgp
источник

ЕО

Евгений Омельченко in DevOps
Aleksey Smirnov
значит нужно в такой схеме сразу после прохождения внешнего балансировщика - дальше идти на обычные L7 балансеры, а их failover строить на хелсчеках, а не на bgp
Ну это можно, но вы должны учитывать, что перестройка eBGP это 30-60 секунд. Если nginx в AZ упадёт, то трафик будет столько проливаться на пол
источник

AS

Aleksey Smirnov in DevOps
это просто наверное надо записывать в риски и объявлять учитывающий это SLA для клиентов
источник

AS

Aleksey Smirnov in DevOps
100% аптайм всё равно почти невозможен, и как нам проповедует гугл - не нужен
источник

ЕО

Евгений Омельченко in DevOps
Aleksey Smirnov
100% аптайм всё равно почти невозможен, и как нам проповедует гугл - не нужен
Разным сервисам нужен разный SLA. Но минуту заворачивать трафик части (ну пусть 10-ой части) пользователей вникуда при падении одного nginx'а это кошмар для большинства сервисов
источник

AS

Aleksey Smirnov in DevOps
вот кстати, надо посмотреть рассказывал ли netflix как у них это устроено
источник

AS

Aleksey Smirnov in DevOps
у них же есть инструмент хаос-тулинга, хаос-горилла кажется - которая как раз целый регион кладет
источник

ЕО

Евгений Омельченко in DevOps
Нетфликс небось живёт на alb, AWS это продумал за них
источник

AS

Aleksey Smirnov in DevOps
значит они с этим прямо хорошо должны уметь жить
источник

ЕО

Евгений Омельченко in DevOps
А ещё у них HTTP/1.1
источник

AS

Aleksey Smirnov in DevOps
слышал вроде что у них только контрол-плейн на авс, а дата-плейн - на собственных железках
источник

AS

Aleksey Smirnov in DevOps
т.е. приходим к тому с чего начали? проблема в http2 в принципе?
источник

ЕО

Евгений Омельченко in DevOps
Ну у гугла http2
источник