вторник, 3 ноября 2009 г.

[comp.prog.c++] Yahoo открыл исходники своего Traffic Server-а

Практически во всех современных анти-С++ных флеймах плюсофобы задают вопрос: “А где сейчас ниша C++?” С таким прозрачным намеком на то, что нет уже таких ниш. Мол, даже в области высоконагруженных приложений C++ уже делать нечего.

И вот отличный “наш ответ Чемберлену” – Yahoo открыла свой Traffic Server, написанный как раз на C++. Traffic Server – высокопроизводительный сервер приложений для облачных (could computing) сервисов Yahoo.

Traffic Server отвечает за управление сессиями и конфигурациями, балансировку нагрузки, аутентификацию и маршрутизацию. В настоящее время он обслуживает до 30 миллиардов Web-запросов и до 400TB трафика в день, на тестах производительности показывая скорость в 35000 запросов в секунду (по некоторой информации, на одной машине).

Traffic Server помещен в инкубатор Apache, где можно ознакомиться с его исходными текстами.

9 комментариев:

Skynin комментирует...

Фобы, филы (неважно чего) появляются от абсолютизациии своего опыта. От веры в единственность некой Истины, находящейся на вершине пирамиды истин и правд. Это, по моему, результат монотеизма.
Хотя вот у Бора - "Противоположностью правдивого утверждения есть ложное утверждение.
Противоположностью одной глубокой истины есть другая глубокая истина"

Споры вокруг ЯП и технологий программирования обычно не учитывают деления класса ПО.
Например такого:
Системно-коробочное, прикладно-коробочное, системно-конечное, прикладно-конечное.

Или такого как у Спольски:
Ширпотреб
Внутреннее ПО
Встроенное ПО
Игры
Одноразовое ПО
Пять миров
Замечу что даже эти деления - не конфликтуют друг с другом, а возникают из разных углов обзора.

А для выбора ЯП(технологии) Traffic Server еще и третьи факторы нужно рассматривать: время-стоимость разработки, возможности привлечения(чтобы сделать) и содержания(чтобы сопровождать) высококлассных программистов.

Когда я выступаю в роли "плюсофоба", то спрашиваю не о нише, а "где ты работаешь и что пишешь, в Microsoft индексацию в SQL сервере? в Nokia ядро прошиваемой Nokia OS?" Ну вот еще пополнится список - "в Yahoo или иной подобной фирме где требуется ПО обрабатывающее 30 миллиардов Web-запросов в день?" Ну тогда наверняка выбор С/C++ оправдан - есть и соответствующие требования и деньги и время.

И даже в том же Yahoo, лет 7 тому, или чуть больше сообщалось с помпой:
Переводим веб-емайл с уникального CGI движка на С на... PHP.
Не хватило даже им денех сопровождать собственные наработки, проверенные временем и успехом. Наверное уже потому - что когда Yahoo начинался - мощность железа была не та, и денег на покупку более дорогого - не было. А когда появилось железо и деньги, оказалось - да дешевле на PHP в суммарном итоге перевести часть сервисов.

Skynin комментирует...

P.S. о моем "мире"
Меня "35000 запросов в секунду" впечатляют точно также как умение балерин крутить фуэте, шахматных гроссмейстеров играть вслепую на десятках досок, и чемпионов по квейку проходить уровень за 20 секунд с выкошенными тотально монстрами. Впечатляет конечно, но далеко от моего быта.

А вот когда, в частности, встретил что самое большое, действующее решение на Microsoft Dynamics AX - 1300 одновременных клиентских подключений - воскликнул - какая огромная фирма где это крутится! (по памяти, обслуживающее железо там - кластер из 5ти 8процессорных толи ксеонов, толи еще чего серверного от Intel). А решения от IBM и Oracle - еще круче. И этот класс софта уже называется - middleware.

У Спольски, в тех же пяти мирах:
Важно знать, что когда бы Вы ни читали книгу о методологии программирования, написанную гуру/консультантом по разработке ПО, работающим на полную ставку, можете быть спокойны, что он говорит о разработке внутреннего, корпоративного ПО. Не ширпотребного, не встроенного и, конечно же, не игр.

Когда я вижу в книге "Рассмотрим на примере оформления счета на покупку" - родное.
Когда 35000тыс запросов в секунду (или как у ФПфилов - а вот синтаксический разбор по графу "зюзельфискина") - о чем говорят эти люди, кто эти люди?...

Dmitry Vyukov комментирует...

Re: А для выбора ЯП(технологии) Traffic Server еще и третьи факторы нужно рассматривать: время-стоимость разработки, возможности привлечения(чтобы сделать) и содержания(чтобы сопровождать) высококлассных программистов.

Да... умеешь программировать на С++ - вот ты уже и высококлассный программист...
Чувствую приду скоро в ресторан поесть, а мне скажут - "Извините, но высококлассных поваров нанимать дорого, поэтому у нас повара умеют готовить только что б не отравиться, а что б вкусно было - это уже слишком дорого и слишком высококлассные программис... тьфу, повара нужны".
Ну собственно в маршрутках уже так и есть - у нас маршрутка только что б быстро от метро до дома доехать, а что б ещё безопасно было, это уже слишком дорого, это надо что б сборщик денег ещё и водить хорошо умел...

Skynin комментирует...

Чувствую приду скоро в ресторан поесть, а мне скажут - "Извините
не скажут, а накормят что будет изжога или "пронесет" :)

у нас повара умеют готовить только что б не отравиться, а что б вкусно было
Или Вы не бывали в фастфуде и ресторане чтобы сравнить вкус и цены? Так ведь уже с дохристовых времен.

Можете в фастфуде повозмущаться, книгу жалоб потребовать, почему у них котлета такая, а вот вчера былы в ресторане, там ну сооовсем другая.

eao197 комментирует...

2Skynin: в данном случае вы копнули слишком глубоко. Я преследовал простую цель -- показать, что C++ успешно применяется в такой области, как "высокоуровневое системное программирование" (термин из книги Страуструпа "Дизайн и эволюция языка С++"). Поскольку несколько раз участвовал в форумных разборках, в которых сама возможность этого отвергалась. А тут такой яркий пример.

Что до стоимости специалистов, то high-perfomance middleware -- это такая же узкая и сильноспециализированная ниша, как какой-нибудь online trading. Мало спецов, каждый из них дорог. И стоимость их работы определяется даже не столько борьбой с особенностями языка C++, сколько знанием целого комплекса низкоуровневых системных и сетевых механизмов. За эти знания приходится платить так же, как за знания каких-то алгоритмов торговли акциями, или за знания тонкостей финансового законодательства.

Skynin комментирует...

Поскольку несколько раз участвовал в форумных разборках, в которых сама возможность этого отвергалась.
Понятно. Они так считают потому не работали ни в Microsoft'е ни в Yahoo и о задачах таких знают не больше моего. :)

eao197 комментирует...

Они так считают потому не работали ни в Microsoft'е ни в Yahoo и о задачах таких знают не больше моего. :)

Боюсь, все еще хуже. Они даже не представляют, что где-то вообще могут существовать такие задачи. Меня, например, в свое время очень впечатлило то, что данные проекта BaBar хранились в объектной БД и обрабатывались на C++, поскольку там были такие объемы (порядка петабайта), которые просто не на чем было обрабатывать. Такие примеры, что называется, "внушають" -- они расширяют и кругозор, и сознание. Именно этим и интересны. Это же здорово, когда случайно узнаешь, какие удивительные вещи кто-то где-то делает.

Miroslav комментирует...

Проект интересный своей реальной промышленной природой. Это вам не очередной супер-абстрактный бред от бюста или оффтопика х.
Посмотрел пару файлов стало грустно. Свой i/o, свой async i/o. Кэш&cluster насквозь через всю программу (звездочкой инклюды). Логика на continuations поверх цэ++ (представляю куда едут брови у тех кто писал только на).
зы может просто на больничном - оттого и грустно.

eao197 комментирует...

2Rubanets Myroslav: ну на таких скоростях не удивительно иметь собственные i/o и async i/o -- чтобы каждый чих контролировать.

PS. Выздоравливай!