Всяко извикване на AWS API, видео стрийм в CloudFront и справка в Route 53 преминават през една и съща инфраструктура, която AWS нарича своята гранична мрежа. Сега тя работи върху система за маршрутизиране, изградена от нулата в продължение на няколко години.
Системата, която казва на трафика къде да отиде
Мащабът, който AWS съобщава към момента на публикацията: 39 региона, 123 зони на наличност (availability zones), над 750 точки на присъствие на шест континента, пиъринг с повече от 5000 външни мрежи, стотици терабити в секунда.
Под всичко това работи управляващата равнина за маршрутизиране (routing control plane), която осигурява на всяко устройство точна информация за съществуващите дестинации и начина за достигането им. AWS използва аналогия с контрола на въздушния трафик: събиране на доклади за местоположението, изработване на безопасни маршрути, излъчване на инструкции.
Тази картина трябва да се изгражда наново всеки път, когато връзка се повреди или се появи нов път — процес, който инженерите наричат конвергенция. Докато той завърши, отделни части на мрежата могат да се разминават относно най-добрия път, а пакетите да пристигат с закъснение, да поемат в грешна посока или да изчезнат. AWS посочва финансовата търговия, телемедицината и медиите на живо като случаи, при които няколко секунди несъответствие могат да доведат до неуспешни транзакции или прекъснато обслужване.
Защо AWS имаше проблем
Мрежата е нараствала на етапи, като всеки е обновявал хардуера и софтуера. Една от последиците: различни нейни части започват да управляват собствени управляващи равнини, независими една от друга, но взаимосвързани. Всяка една е била надеждна сама по себе си. Поддържането им в съответствие в стотици локации обаче не е било такова.
Те са конвергирали с различна скорост. В тези пролуки една част от мрежата е можела все още да изпраща трафик по път, който друга вече е отписала. AWS заявява, че резултатът може да бъде цикъл на маршрутизиране (routing loop), при който пакетите обикалят в кръг, докато изтекът, или трафик, насочен към път, който вече не съществува. Потребителите получават загуба на пакети и по-висока латентност от неустановено състояние на маршрутизиране.
„Осъзнахме, че добавянето на повече координация между независими системи само ще увеличи сложността. Колкото повече системи трябваше да постигат съгласие, толкова повече ресурси бяха необходими за поддържането им в синхрон. Знаейки, че простотата позволява мащабиране, решихме да заменим независимите управляващи равнини с единна обединена система, която предоставя единна последователна картина на мрежата за всяко устройство, конвергира по-бързо и ограничава обхвата на всяка отделна промяна“, обясняват експертите от AWS.
Три промени
Първо, споделянето на маршрути работи само в една посока. Традиционно рутерите както научават от своите съседи, така и рекламират пред тях, така че картината на всяко устройство е от втора ръка. AWS разделя двете половини. Възлите за събиране (collection nodes) вземат маршрути от локално свързани устройства и ги изпращат навън; възлите за разпределение (distribution nodes) приемат отдалечени маршрути и ги предават на локалните устройства. Нито един от тях не рекламира отново нищо, научено отдругаде, така че всяко устройство получава всеки маршрут директно от неговия източник.
Второ, тунелиране. Оригиналният пакет се обвива в външен пакет, носещ инструкциите за маршрутизиране, които междинните устройства следват, без да инспектират съдържанието. След това трафикът преминава по пътя, избран от управляващата равнина, изолиран от устройства, които все още работят с остаряла информация.
Трето, всичко това бе въведено в цялата мрежа, заменяйки независимите системи с единствен източник на истината.

Тунели от край до край между средите (Източник: AWS)
Какво костваше това и какъв е резултатът
Миграцията е продължила с години и е обхванала хиляди устройства в активна мрежа, достигайки до свързаните с интернет рутери, магистралната мрежа (backbone), Direct Connect, възлите към зоните на наличност и периферните услуги, включително CloudFront и Route 53. AWS съобщава, че наличността е била запазена през цялото време, подпомогната от система за валидация, която е анализирала конфигурационните промени, преди те да достигнат до продукционната среда.
Обединената система разполага с няколко пъти повече изчислителна мощност за решения за маршрутизиране в сравнение с тази, която е заменила, което според AWS е допринесло пряко за по-бързата конвергенция. Времето за конвергенция в някои мрежови среди се е подобрило с до 96 процента. AWS съобщава също за по-малко повторни опити и по-предвидима латентност за клиентите, както и за единна архитектура за отстраняване на неизправности от инженерите. Цялата гранична мрежа вече работи върху нея.