amarao (amarao_san) wrote,
amarao
amarao_san

software defined TCP

(в рамках сардонического троллинга по мотивам SDN)

Поскольку всех задолбала непредсказуемость и скучность обработки TCP в стиле 80ых, нам нужен новый, современный метод обработки tcp-сессий.

Для этого каждый входящий IP пакет отправляется в mapreduce кластер (например, Apache Giraph/Spark, или, для олдскульных пердунов, в Hadoop), где они обрабатываются в униформной модели: от сбора фрагментов до восстановления http-запроса из tcp-сесии, ну и, разумеется, обслуживания его. Ответ так же reduce'ится на отдельные ip-пакеты и отправляется клиенту.

Поскольку мы не можем точно предсказать нагрузку на кластер, за всем этим следит ферма серверов оркестрации, которая поднимает нужное количество контейнеров докеров внутри виртуальных машин (за виртуальными машинами смотрит Heat из состава openstack'а, а ему железо под виртуалки провижинит heat из состава ironic/undercloud, в рамках проекта TrippeO).

Подобное решение позволяет сделать обработку tcp полностью распределённой и снимающей ограничения на число активных сессий.

Если вариант с undercloud/heat кажется слишком сырым, то можно сделать проще: на каждый пришедший ip-пакет поднимать отдельный контейнер с докером и отдавать пакет в обработку туда, автоматически pipeline'я контейнеры в виде ip|tcp|http|app|to_http|to_tcp|to_ip.

Мы проверили эту идею в жизни - мы получили фантастическую скорость обработки в нашем кластере из 200000 виртуальных машин - мы обрабатывали более полумилиллиона IP-пакетов в секунду! И нам это обошлось всего в $2.77 в секунду на аренду виртуалок!
Subscribe

  • План действий

    AAA при логине ведёт себя по разному в зависимости от того A это или AAAA.

  • Админский гольф

    Вам выдали шелл на сервер, на котором кто-то удалил все симлинки (т.е. файлы типа "симлинк"). Ваша задача починить сервер. Починенным сервер…

  • продолжая leetcode

    Первый раз я ощутил Силу. Задача - roman numerals, с обещанием, что на входе нет мусора. pub fn roman_to_int(s: String) -> i32 { let mut acc =…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments