kPHP как альтернативная гражданская служба

ВКонтактовские "олимпиадники"-чемпионы ACM разработали крайне интересную высоконагруженным сайтам технологию. На пару уровней абстракции выше, чем Nginx (другая отечественная разработка для нагруженных проектов), может появится новый компилируемый язык.

Павел Дуров рассказывает:

В конце мая мы завершили перевод всего кода ВКонтакте на компилируемый язык программирования, который разрабатывали более года, — KPHP. В результате практически все страницы сайта стали грузиться более чем 2 раза быстрее.

На изображениях видно среднее время создания страниц нашими серверами до и после их перевода с PHP на KPHP. KPHP поддерживает большинство стандартов обычного PHP, но работает значительно быстрее. Позже мы предоставим код KPHP в открытый доступ для всех разработчиков мира.

В 2010-м году своя технология компиляции PHP выходила под маркой Facebook. Дуров обрисовал хабраюзеру Teodorix отличия от неё:

Либо Facebook дал в общий доступ сильно испорченную версию, либо мы разработали нечто принципиально лучшее. Это касается не только скорости работы скомпилированного кода, но, в первую очередь, скорости компиляции. Если там на некоторых тестах можно ждать окончания компиляции полчаса, то у нас весь код ВКонтакте компилируется распределённо меньше, чем за минуту. Плюс, там есть дополнительные встроенные возможности оптимизации.

К сожалению, летний спад посещаемости не даёт возможности оценить влияние запуска новой технологии внутри ВК на привязанность пользователей, однако картинки производительности, показанные Дуровым, в любом случае выглядят впечатляюще и вряд ли останутся незамеченными как в офисе FB в Калифорнии, так и в российских компаниях вроде "Яндекса" и Mail.ru.

Публикации о таких инновациях внутри ВКонтакте приходятся на тот период, когда самому ВКонтакте и его сотрудникам светит отличная возможность оказать поддержку укреплению обороноспособности страны в виде несения срочной службы в "беспилотных войсках Российской Федерации".

Напомню: тема привлечение ("призыва") талантливых программистов ИТМО на службу в армию с целью создания беспилотных летательных аппаратов стала практически дежурным разговором между Владимиром Путиным и Сергеем Шойгу. Желание "найти и посотрудничать" с талантами — самое мягкое, что было озвучено президентом и министром обороны. Как вы думаете, сколько сотрудников ВКонтакте, обладающих программистскими талантами, не достигли ещё возраста в 28 лет?

Вряд ли мысли о том, что часть сотрудников соцсети может проследовать из ВК в ВЧ являются приятными для Дурова — безусловно, для ВКонтакте куда лучше, если сотрудники, во-первых, останутся на гражданке. И, во-вторых, если им даже не придётся думать о возможности возникновения проблем с вооруженными силами РФ — всем будет проще и спокойнее.

Оригинальные технологии быстрого обслуживания огромного числа пользователей в какой-то степени могут быть "разменной монетой". Формально, десятки миллионов россиян — это не только пользователи соцсети, но и получатели госуслуг в современных цифровых форматах. Авторы прорывных веб-технологий или даже госсайтов, сервисов для миллионов, при благоприятном для ВКонтакте наклоне башен Кремля, вполне могут считаться несущими альтернативную "гражданскую службу".

Лучшие комментарии

  • Контекст комментария

    Юта Соломонович

    «Именно тогда мы завершили перевод всего кода ВКонтакте на компилируемый язык программирования, ***— KPHP» «Из минусов — поддерживается не весь синтаксис PHP» Простите, я не понял, они разработали новый язык программирования или усечённый компилятор для PHP? Два диаметрально противоположных утверждения. Хотелось бы что бы технические вопросы оглашало лицо компетентное в этих вопросах. Понятно, что нежен «вау эффект», но если вспомнить про «антивирус Бабушкина», или новую ось «BolgenOS», то я как то скептично отношусь к таким утверждениям. Так же смущает, что их KPHP даёт всего лишь двух кратный прирост производительности. Конечно «Hip Hop» от Facebook это довольно неуклюжее животное, но это животное давало в 6−8 раз большую производительность, чем интерпретатор PHP. В php есть экспериментальное расширение для компиляции,(пруф искать лень, но в доках на php.net он есть). P. s. Вообще не понимаю почему гении-олимпиадники пишут HighLoad на PHP.

  • Контекст комментария

    Андрей Шетухин -

    Во-первых, скорость генерации страницы, а не скорость загрузки. Это принципиально важно. Во-вторых, два раза, конечно, два раза, но непонятно, на каких задачах. Для сайтов, много времени проводящих в ожидании ответа БД или кэша, скорее всего, ускорение вообще будет незаметно. Строго говоря, цифры вообще ни о чем. Какая-то страница что-то генерирует. Какая и что? Нет описания постановки эксперимента, тестового стенда, профиля нагрузки, потребления CPU и памяти, вообще ничего. Максимум что можно — порадоваться за ВКонтакте, что у них что-то ускорилось в два раза. В-третьих, сильно смущает поддержка подмножества языка. Если на KPHP нельзя «из коробки» запустить WordPress, Bitrix или Drupal, этот продукт мало кому будет интересен. Но даже если можно, то толку чуть, потому что рано или поздно всплывет несовместимость. Ну и последнее. Скорость компиляции (интересно, что под этим реально подразумевается?) особо не важна, если вы не правите код прямо на серверах. А если правите — ну, беда-беда.

  • Контекст комментария

    varg

    Откровенно преувеличивать скорость реакции армейских чинов и умение работать точечно по конкретным людям вовсе не стоит. Создания «ЦСКА» из программистов и ученых не произойдет. Переоценивать отдельные, пусть и заметные и даже выдающиеся, личности отдельных технических специалистов тоже не стоит. Под них никто не будет ничего менять и они там быстро застучат ногами, а силой, поверьте, никто никого в армии работать и делать то что ты не хочешь не заставит. Это реалии службы. Разговоры Шойгу и Путина они про системный более гибкий взгляд на подбор кадров и работу с ними. Результат будет только через годы. Никакой речи про программеров из русских стартапов не идет, идет речь о том чтобы студентов стимулировать не бегать от армии, а приносить пользу ей. Но не про то как бы это нам раскусить гениев из ВК, заломать им руки и спасти Россию их руками. Дела до конкретных личностей с гражданки в армии никому нет никакого. Все работают с кадрами по карточке учета в военкомате. Никаких вербовщиков для массовых призывов нигде нет. А про KPHP, очень хочется чтобы не вышло как это часто выходит, больше разговоров и пиара смелого и громогласного. Настораживает, что ни посмотреть, ни, как обычно, подробностей, ни поддержки, все в будущем и неизвестно когда. Зато слов уже на такое, что прям завтра мир перевернется.

Добавить 34 комментария

  • Ответить

    Юра, ценность этой штуки не очень велика. Есть и другие варианты компилируемого PHP, есть и .NET. Вот если бы Вконтакте разработал бы для себя адски быструю на каком-то классе задач СУБД или супер-пупер масштабируемый сервер веб-приложений, позволяющий недорого построить архитектуру на миллион обращений в секунду, и выложил бы его в public domain — это был бы прорыв. А так, стандартная дипломная работа отличников по специальности прикладная математика. Совсем не ngnix по уровню воздействия на подходы к разработке высоконагруженных архитектур. В армии пока, по декларациям, дела их ждут более интересные и общественно полезные.

  • Ответить

    Это касается не только скорости работы скомпилированного кода, но, в первую очередь, скорости компиляции. Для сервиса, где обновления функционала происходят каждые полчаса и каждый-каждый день — типа ВКонтакте или YouTube — скорость компиляции очень значима. Остальным важнее, всё-таки, скорость исполнения. У ВКонтакте и так с откликом сайта было всё хорошо. Ускорение вдвое — приятно, но не критично. А у плохо написанных сайтов, где отклик сайта длииииинный — даже ускорение вдвое ничем не поможет.

  • Ответить

    «Именно тогда мы завершили перевод всего кода ВКонтакте на компилируемый язык программирования, ***— KPHP» «Из минусов — поддерживается не весь синтаксис PHP» Простите, я не понял, они разработали новый язык программирования или усечённый компилятор для PHP? Два диаметрально противоположных утверждения. Хотелось бы что бы технические вопросы оглашало лицо компетентное в этих вопросах. Понятно, что нежен «вау эффект», но если вспомнить про «антивирус Бабушкина», или новую ось «BolgenOS», то я как то скептично отношусь к таким утверждениям. Так же смущает, что их KPHP даёт всего лишь двух кратный прирост производительности. Конечно «Hip Hop» от Facebook это довольно неуклюжее животное, но это животное давало в 6−8 раз большую производительность, чем интерпретатор PHP. В php есть экспериментальное расширение для компиляции,(пруф искать лень, но в доках на php.net он есть). P. s. Вообще не понимаю почему гении-олимпиадники пишут HighLoad на PHP.

  • Ответить
    Альтер Эго

    >P. s. Вообще не понимаю почему гении-олимпиадники пишут HighLoad на PHP. так исторически сложилось? почему facebook на php? почему в yahoo был mysql? ну и всё такое

  • Ответить

    Во-первых, скорость генерации страницы, а не скорость загрузки. Это принципиально важно. Во-вторых, два раза, конечно, два раза, но непонятно, на каких задачах. Для сайтов, много времени проводящих в ожидании ответа БД или кэша, скорее всего, ускорение вообще будет незаметно. Строго говоря, цифры вообще ни о чем. Какая-то страница что-то генерирует. Какая и что? Нет описания постановки эксперимента, тестового стенда, профиля нагрузки, потребления CPU и памяти, вообще ничего. Максимум что можно — порадоваться за ВКонтакте, что у них что-то ускорилось в два раза. В-третьих, сильно смущает поддержка подмножества языка. Если на KPHP нельзя «из коробки» запустить WordPress, Bitrix или Drupal, этот продукт мало кому будет интересен. Но даже если можно, то толку чуть, потому что рано или поздно всплывет несовместимость. Ну и последнее. Скорость компиляции (интересно, что под этим реально подразумевается?) особо не важна, если вы не правите код прямо на серверах. А если правите — ну, беда-беда.

  • Ответить
    Laverna ОАО "Социальная сеть социальных сетей"

    //P.s. Вообще не понимаю почему гении-олимпиадники пишут HighLoad на PHP. Вообще-то, я думала всегда, что PHP это типа оболочка, а само ядро точно не на PHP.

  • Ответить

    Андрей, ну Иван Ильин где-то в книжке прочитал про проекты, которые билдятся несколько часов и вот нам тут рассказывает, как важна скорость компиляции в таких случаях. Ну и что, что веб-приложения не пишут так, чтобы в случае обновления одной фичи нужно было бы весь сервер веб-приложений пересобирать. Это же Иван Ильин — его комментарии к обсуждаемым вещам редко относятся и смысл в себе тоже редко несут.

  • Ответить
    dima5ty гасконец

    фейсбук, кстати, какое-то время уже на jit-вм, а не компиляторе, ну так, ради актуальности https://www.facebook.com/notes/facebook-engineering/speeding-up-php-based-development-with-hiphop-vm/10151170460698920 свой компилятор ограниченного подмножества языка, конечно, ценен, но только для внутрей и отдела маркетинга

  • Ответить

    Откровенно преувеличивать скорость реакции армейских чинов и умение работать точечно по конкретным людям вовсе не стоит. Создания «ЦСКА» из программистов и ученых не произойдет. Переоценивать отдельные, пусть и заметные и даже выдающиеся, личности отдельных технических специалистов тоже не стоит. Под них никто не будет ничего менять и они там быстро застучат ногами, а силой, поверьте, никто никого в армии работать и делать то что ты не хочешь не заставит. Это реалии службы. Разговоры Шойгу и Путина они про системный более гибкий взгляд на подбор кадров и работу с ними. Результат будет только через годы. Никакой речи про программеров из русских стартапов не идет, идет речь о том чтобы студентов стимулировать не бегать от армии, а приносить пользу ей. Но не про то как бы это нам раскусить гениев из ВК, заломать им руки и спасти Россию их руками. Дела до конкретных личностей с гражданки в армии никому нет никакого. Все работают с кадрами по карточке учета в военкомате. Никаких вербовщиков для массовых призывов нигде нет. А про KPHP, очень хочется чтобы не вышло как это часто выходит, больше разговоров и пиара смелого и громогласного. Настораживает, что ни посмотреть, ни, как обычно, подробностей, ни поддержки, все в будущем и неизвестно когда. Зато слов уже на такое, что прям завтра мир перевернется.

  • Ответить
    Альтер Эго

    Если новый протокол мессенджера — такая же по уровню инновация как KPHP, то совсем грустно за олимпиадников ВК. В трэщ-холдинге при всех его недостатках продукты наружу выпускаются на порядок лучше.

  • Ответить
    Альтер Эго

    Ну, если у ВК скорость загрузки страниц доли секунды, одно из двух: а) у всех пользователей в России внезапно ускорился интернет б) пиарщики ВК облажались с надписью

  • Ответить
    KcepoKc VK

    >>В трэщ-холдинге при всех его недостатках продукты наружу выпускаются на порядок лучше. Спутник или Агент? На моей памяти, с такой же интенсивностью здесь обсуждали только эти продукты. Обсуждали, надо сказать, горячо.

  • Ответить
    KcepoKc VK

    Павел Дуров: «Работа самого кода ускорилась значительно в большее количество раз. Большая часть времени исполнения — тормоза с сетью. Которые мы будем ускорять уже распараллеливанием запросов.»

  • Ответить
    Альтер Эго

    Спутник или Агент? На моей памяти, с такой же интенсивностью здесь обсуждали только эти продукты. Обсуждали, надо сказать, горячо. http://tarantool.org/

  • Ответить

    Если отзывчивость будет такой, как заявляют вконтактовцы, то это действительно на голову обходит существующие решения. Хипхоп это громоздкое нечто, объясняющее, кстати, почему и весь фэйсбук примерно такой. По крайне мере, фэйсбуковцам не приходилось решать задачу отдачи высоконагрузочного медиаконтента. Да что там медиаконтента, посмотреть фотографии — развлечение, требующее терпения и выдержки.

  • Ответить

    >По крайне мере, фэйсбуковцам не приходилось решать задачу отдачи высоконагрузочного медиаконтента. Какое отношение это имеет к PHP? Вы ведь не всерьез одновременно про PHP и отдачу медиаконтента? >Да что там медиаконтента, посмотреть фотографии — развлечение, требующее терпения и выдержки. Ничего, что фотки отдаются с CDN?

  • Ответить

    Андрей, какие «эксперты», такие и «разработки». Это роем, тут про архитектуры и технологии не обсудить.

  • Ответить
    dima5ty гасконец

    секундочку — мы ускоряем пхп в 100500 раз, но получилось всего 2x потому что латентность — бинарники на 300 мб — потратили на это год олимпиадникочасов что прогуливали эти чуваки?

  • Ответить
    KcepoKc VK

    dima5ty, мне кажется, Вы вообще не понимаете, о чем речь (как, впрочем, и большинство местных ‘экспертов’). 300 Мб — это не новый PHP, это весь код всего сайта и API, со встроенным веб-сервером, скомпилированный в один исполняемый файл.

  • Ответить
    dima5ty гасконец

    dima5ty, мне кажется, Вы вообще не понимаете, о чем речь (как, впрочем, и большинство местных ‘экспертов’) правда ваша, я не знаю как можно получить бинарник на 300 мб разумными средствами, но олимпиадникам, конечно, видней

  • Ответить

    >бинарник на 300 мб разумными средствами Код на С++ с кучей шаблонов и inline кода. Потом собрать статически с debug info и не сделать strip. Правда, и здесь надо постараться.