Highload++ 2017 завершён!

Профессиональная конференция разработчиков высоконагруженных систем

СКОЛКОВО, Москва 7 и 8 ноября

11-я ежегодная конференция для разработчиков highload-систем, которая соберет   2 700 участников из разных регионов России и мира. Мероприятие направлено на обмен знаниями о технологиях, позволяющих одновременно обслуживать многие тысячи и миллионы пользователей.

Программа охватывает такие аспекты веб-разработок, как архитектуры крупных проектов, базы данных и системы хранения, системное администрирование, нагрузочное тестирование, эксплуатация крупных проектов и другие направления, связанные с высоконагруженными системами.

Асинхронное программирование в PHP (phpDaemon: пристегните ремни — взлетаем)
Основная секция

Доклад принят в Программу конференции
GitLife - это локализация китайской платформы Gitee у нас. Это миллионы опенсорса как проектов, так и AI моделей. Last.Backend занимается созданием DevOps-технологий и продуктов. Имеет собственную систему оркестровки контейнеров аналога Kubernetes. Также занимается DevOps-акселерацией компаний, помогая в кратчайшие сроки получить качественную автоматизированную инфраструктуру под проект с дальнейшим 24/7-мониторингом.

Тезисы

Тезисы:

Добрый день. Я расскажу о необычных аспектах применения PHP: о написании асинхронных сетевых приложений, и полу-синхронных веб-приложений.

Вы наверняка уже наслышаны о протоколе FastCGI, который служит каналом связи с приложением. Популярное применение — связь между веб-сервером и Веб-приложением, его реализации есть во множестве языков. Протокол поддерживается многими веб-серверами, среди них nginx и lighttpd. Однако, в популярном языке PHP, реализация протокола до не столь давних пор была представлена лишь патчем PHP-FPM, который де-факто не выигрывает у Apache-prefork mod_php, поскольку он, вопреки идеологии FastCGI, запускает скрипт каждый раз с нуля, не говоря уже об асинхронности I/O. Идеология же FastCGI подразумевает единоразовую инициализацию приложения (подгрузку нужных библиотек, соединение с базой данных, и т.д.), и выполнение запросов один за другим или, вообще, параллельно (событийно переключаясь между контекстами запросов).

Модуль FastCGI в phpDaemon — правильная реализация FastCGI, которая позволяет добиться немыслимой производительности и снижения нагрузки на систему. Теперь нам не нужно тысячи раз в секунду копировать мегабайты памяти, не надо каждый раз соединяться с базой данных и проходить у нее авторизацию... мы можем просто выполнить то, что действительно необходимо, и приняться за следующий запрос. Теперь не нужно думать о том, сколько у нас подгружается классов из тяжелого фреймворка. Кэш оп-кода (eAccelerator) даст прирост лишь в случае использования компилирующих шаблонизаторов.

Давайте для начала разберём архитектуру — как же всё это работает, а затем я расскажу о предоставляемых вкусностях, и мы уделим значительное время вашим вопросам.

phpDaemon — это вполне самостоятельный демон, способный обрабатывать соединения по нескольким TCP- и UNIX-сокетам. Он использует libevent.

Для начала работы вам необходимо создать файл с приложением в папке applications и выполнить phpdaemon start.

Мастер-процесс создаст нужное количество рабочих процессов, которые начнут принимают новые соединения в пул, читать из них данные и делегировать выполнение запросов нужным приложениям, руководствуясь указаниями AppResolver'а. При этом вы можете выполнять какие-то процедуры с запросом даже до окончания обработки тела запроса.

Строго говоря, операции принятия соединения, приема данных, обработки запроса, и передачи ответа — асинхронны, т. е. мы можем принять два или больше соединений и поочередно их читать и обрабатывать в рамках одного процессе PHP (количество в рамках лимита max-concurrent-requests-per-worker). Разумеется, выполнение более одного конкурентного запроса в рабочем процесса потребует от программиста хранить все запросо-зависимые данные в экземпляре класса Request, и обеспечить отсутствие блокировок процесса. Это позволяет выполнять десятки тысяч запросов в секунду. Архитектура в чем-то похожа на nginx.

Архитектура позволяет легко создавать свои событийные сетевые сервисы, в дистрибутиве поставляются реализации FlashPolicy, HTTP, FastCGI, LockServer, TelnetHoneyPot, MemcacheClient, MongoClient...

Не станем вдаваться в подробности, но это действительно легко, и работать придётся лишь с оберткой, не думая о низком уровне.

Слайд №1: Спектр возможностей очень широк (всё опциально):

  • Умный MPM.
  • Модульная структура и API. /*К примеру, можно написать свой менеджер процессов, учитывающий фазу луны.*/
  • Возможность смены пользователя и корня рабочих процессов.
  • Поддержка Request-Body-File, X-Sendfile, multipart, attachment (callback), UCS-2.
  • Прием APPNAME.
  • Авто-сборка мусора (GC).
  • Лимиты для рабочего процесса.
  • Статус рабочих процессов.
  • Асинхронность выполнения запросов.
  • Асинхронная работа с сетью (libevent).
  • Встроенный модуль асинхронного CGI-сервера (libevent).

Слайд №2: Где и как это можно применить особенно эффективно?

  • Любые системы, использующие PHP.
  • Сетевые Веб-приложения (IM-гейты, чаты).
  • Торрент-трекеры.

Хотите немного серверной магии? Представьте себе несложную задачу: реализовать простецкую загрузку видео-файлов по HTTP, конвертацию их в FLV, и, разумеется, сохранение. Вы наверняка напишете простейший скрипт с использованием move_uploaded_file() и exec(), который будет висеть пока клиент отправляет запрос, кто-то пойдет дальше и будет записывать в БД идентификаторы файлов ожидающих конвертации, используя для конвертации отдельную пачку процессов, это позволит ограничить количество одновременно конвертируемых файлов.

А теперь я хочу немного вас удивить, я готов реализовать всю эту схему используя лишь 1 процесс PHP (ну, строго говоря, 2, учитывая мастер-процесс, но он не участвует в обработке). При этом не будет никакой потери в производительности, и мне даже не понадобится база данных (хотя, в нее стоит сбрасывать состояние, чтобы защититься от сбоев питания). Как? Очень просто. Достаточно создать приложение с использованием phpDaemon: в run() методе класса Request проверять счетчик работающих процессов конвертацию (обычную переменную), и если лимит не превышен — открывать pipe'а с ffmpeg'ом и класть его в свойство запроса, ну и вызвать $this->sleep(), при повторном вызове проверять состояние pipe и в случае его завершения - завершать запрос (я имею в виду именно запрос в очереди рабочего процесса, броузер получит страничку и отключится задолго до этого).

Как это работает? Очень просто. Как я уже говорил, обработка запросов асинхронна, и рабочий процесс будет принимать сразу несколько upload'ов и раскидывать кусочки по временным файлам, а когда запрос полностью принят — будет мгновенно открывать pipe c ffmpeg и возвращаться к пресловутой обработке.

Кстати, по такому же принципу работает встроенный CGI-сервер, служащий для подключения сторонних приложений.

Целевая аудитория:

Разработчики, в первую очередь так или иначе использующие PHP, но и все остальные тоже. Доклад позволит многим выйти на новую ступень оптимизации своих веб-проектов.

О докладчике:

Программист, системный архитектор, эксперт в области IT-безопасности. Опыт более 10 лет. Работаю CTO в Dultonmedia (http://yatv.ru/).

Другие доклады секции
Основная секция

СберТех — российский разработчик программного обеспечения для бизнеса и государства, основной поставщик решений для Сбера. Флагманское решение компании — цифровая облачная платформа Platform V для создания приложений любого масштаба и сложности и обеспечения технологической̆ независимости на уровне ПО.
Kinescope — видеоинфраструктура для интернета. Помогают бизнесу раскрыть потенциал профессиональных видеорешений для своих задач. Объединяют все необходимое для хранения, обработки, CDN-доставки и защиты видео в одном месте. Продукты Kinescope подходят как для стартапов, так и для компаний из списка РБК500 и государственных предприятий с высокими нагрузками и сложной логикой.
Positive Technologies — лидер в области результативной кибербезопасности. Компания является ведущим разработчиком продуктов, решений и сервисов, позволяющих выявлять и предотвращать кибератаки до того, как они причинят неприемлемый ущерб бизнесу и целым отраслям экономики. Наши технологии используют около 4000 организаций по всему миру. Positive Technologies — первая и единственная компания из сферы кибербезопасности на Московской бирже (MOEX: POSI), у нее более 205 тысяч акционеров.
Servicepipe Компания-разработчик продуктов для высокоточной защиты от кибератак, активно развивающая технологии анализа трафика и защиты от автоматизированных угроз на L3–L7. На базе собственных технологий Servicepipe реализует сервисы по защите от продвинутых ботов, DDoS- и целевых атак.
Ozon - один из крупейших маркетплейсов не только в РФ но и в мире. Тут приходиться решать необычные технические задачи, готового решения для которых может и не существовать. Очень интересно
Ozon — ведущий e-com России. В их IT-команде уже 5 000 специалистов, которые создают продукты для миллионов людей по всей стране и за рубежом. Ozon Tech разрабатывает собственные решения, контрибьютит в Open Source и использует современный стек: Go, C#, Kotlin, Swift TypeScript, Vue.js, Kubernetes и Kafka. Продолжают расти, чтобы повышать доступность сервисов и быть ещё ближе к пользователям.
СИБУР Цифровой — это IT-кластер СИБУРа, ведущей нефтехимической компании на рынке РФ. Решаем креативные задачи по цифровизации нефтехимического производства и бизнеса. Это задачи, связанные с Data Science, цифровой разработкой, промышленным интернетом вещей (IIoT), дополненной и виртуальной реальностью (AR и VR), управлением данными и BI-инструментами. В Цифровом СИБУРе 200+ проектов с ИТ-составляющей, более 200 ИТ-систем и 100+ ИТ-компетенций! А главное — с нами работает более 2000 сотрудников, благодаря которым мы строим цифровые заводы будущего уже сегодня. Своим примером мы показываем, что именно в промышленности происходят цифровые прорывы и возникают самые интересные задачи, связанные с искусственным интеллектом, большими данными, цифровой разработкой, IIoT, XR, BI-инструментами!
Wildberries — онлайн-платформа с 20-летней историей, где представлен широкий ассортимент продукции российских и международных брендов. География присутствия площадки охватывает 7 стран. Ежедневно покупателям отправляется свыше 12 млн товаров, а сеть пунктов выдачи заказов превышает 46 000 точек.
Luntry — комплексная защита контейнеров и Kubernetes на всех стадиях жизненного цикла приложения. Решение обеспечивает высокий уровень безопасности процессов, помогает создать инфраструктуру без слепых зон и наладить бесшовную коммуникацию между командами даже в самых крупных проектах.
EdgeЦентр — центр облачных и edge-решений. Помогают онлайн-бизнесу быстрее выпускать продукты и масштабировать ресурсы в несколько кликов. Предоставляют IT-решения в сфере вычислений, доставки, хранения и защиты контента.
Яндекс — технологическая компания, которая создаёт инновационные продукты на основе машинного обучения и нейронных сетей. Команда талантливых математиков и программистов развивает самую популярную в России поисковую систему и более 85 пользовательских сервисов, которые помогают людям в повседневных заботах.
Лидер трайба Цифровых Ассистентов в B2C
EdgeЦентр — центр облачных и edge-решений. Помогают онлайн-бизнесу быстрее выпускать продукты и масштабировать ресурсы в несколько кликов. Предоставляют IT-решения в сфере вычислений, доставки, хранения и защиты контента.
Tarantool — платформа in-memory-вычислений с гибкой схемой данных для эффективного создания высоконагруженных приложений. VK — это больше 200 технопроектов. Свыше 10 000 человек создают и развивают одни из самых популярных и высоконагруженных интернет-сервисов в стране. Делают комфортнее, легче и интереснее жизнь сотне миллионов людей.
Райффайзен Банк — часть австрийской банковской группы Raiffeisen Bank International; работает в России с 1996 года и входит в тройку самых надежных российских банков по версии Forbes. В команде банка более 3000 IT-специалистов, которые работают над продуктами будущего и развивают финтех в России. И не любят легаси.
МТС — одна из ведущих экосистемных компаний России. Предоставляет услуги мобильной и фиксированной связи, решения в области объединенных коммуникаций, интернета вещей, обработки данных, облачных вычислений и кибербезопасности. Штат IT-специалистов компании превышает 8 000 человек.
Лемана ПРО (Леруа Мерлен) — лидер рынка DIY в России. Мы переосмысливаем DIY-ритейл так же, как другие технологические лидеры до этого меняли банкинг и ИТ-сервисы. В компании можно с нуля создавать диджитал-решения, примерять разные роли, использовать современные технологии, запускать новые продукты.
Deckhouse — российский вендор, разработчик продуктов для построения надежной enterprise-инфраструктуры. Лидер рынка DevOps и №1 контрибьютор Kubernetes в России, 7 лет в эксплуатации, более 170 внедрений и референсные клиенты из самых разных отраслей.
Домклик - продуктовая технологическая компания, которая создает высоконагруженные проекты в сфере недвижимости, обеспечивая полный цикл от выбора квартиры, получения ипотеки, взаиморасчетов с продавцом до постпродажного сопровождения.
Пачка - корпоративный мессенджер, один из лидеров на Российском рынке корпоративных мессенджеров. Продуктом пользуются больше 100 тыс.пользователей из разных компаний. Программисты успешно настраивают ботов из других сервисов для публикации уведомлений в чат.
Яндекс — технологическая компания, которая создаёт инновационные продукты на основе машинного обучения и нейронных сетей. Команда талантливых математиков и программистов развивает самую популярную в России поисковую систему и более 85 пользовательских сервисов, которые помогают людям в повседневных заботах.
Команда Т-Банка — это разработчики, тестировщики, SRE-инженеры, архитекторы, аналитики, продакт-менеджеры, дизайнеры и другие специалисты. Вместе они создают финтех-продукты, которыми пользуются около 40 миллионов клиентов. Т-Банк развивает IT-индустрию, поддерживает комьюнити и делится экспертизой.
МТС — одна из ведущих экосистемных компаний России. Предоставляет услуги мобильной и фиксированной связи, решения в области объединенных коммуникаций, интернета вещей, обработки данных, облачных вычислений и кибербезопасности. Штат IT-специалистов компании превышает 8 000 человек.
Positive Technologies — лидер в области результативной кибербезопасности. Компания является ведущим разработчиком продуктов, решений и сервисов, позволяющих выявлять и предотвращать кибератаки до того, как они причинят неприемлемый ущерб бизнесу и целым отраслям экономики. Наши технологии используют около 4000 организаций по всему миру. Positive Technologies — первая и единственная компания из сферы кибербезопасности на Московской бирже (MOEX: POSI), у нее более 205 тысяч акционеров.
Команда Яндекс 360 создает продукты, которые решают повседневные задачи миллионов пользователей: от хранения воспоминаний до деловой переписки. В Яндекс 360 входят Почта, Диск, Документы, Телемост, Календарь, Заметки и Мессенджер.
НОТА — мультипродуктовый вендор отечественного ПО, входит в Холдинг Т1. Создан в 2023 году на основе обширной экспертизы команд холдинга. Компания занимается развитием собственных программных продуктов и формированием внешней партнерской сети для дистрибуции и интеграции решений, востребованных в условиях технологического суверенитета.
Positive Technologies — ведущий разработчик продуктов, решений и сервисов для результативной кибербезопасности, позволяющих выявлять и предотвращать атаки до того, как они причинят неприемлемый ущерб бизнесу и целым отраслям экономики. Технологический портфель компании охватывает большинство категорий средств защиты информации и продолжает расширяться. Мы создаем метапродукты — новое поколение инструментов для достижения результативной кибербезопасности с минимальным участием человека. Кроме того, Positive Technologies — первая и единственная компания из сферы кибербеза на Московской бирже.
Ozon — ведущая платформа e-commerce в России. В команде Ozon Tech почти 4 000 инженеров — и она продолжает расти. Десятки миллионов людей пользуются сервисами Ozon, их IT-инфраструктура управляет миллионами процессов каждый час. Микросервисы на Go и C#, в стеке технологий есть Vue.js, Swift и Kotlin, Kubernetes, Kafka, Hadoop и ClickHouse.
МТС — мультисервисная цифровая экосистема и ведущий телеком-оператор в России. Компания развивает сервисы и продукты в сфере больших данных, искусственного интеллекта, облачного хранения, медиа и финансов, телекоммуникаций. Штат IT-специалистов превышает 9,5 тыс. человек.
Компания занимается разработкой бизнес-решений для игровых разработчиков и издателей.
EdgeЦентр — центр облачных и edge-решений. Помогают онлайн-бизнесу быстрее выпускать продукты и масштабировать ресурсы в несколько кликов. Предоставляют IT-решения в сфере вычислений, доставки, хранения и защиты контента.
CINIMEX — IT-компания с 27-летней историей. Сфера деятельности — заказная разработка ПО. Сотрудники компании обладают глубокой экспертизой в разработке и внедрении решений на основе ML и DS, разработке enterprise-решений на микросервисной платформе, а также в интеграции и автоматизации бизнес-процессов. Среди клиентов «Синимекс» крупнейшие банки, известные ритейлеры и заказчики из производственной отрасли.
Cloud․ru — провайдер облачных сервисов и AI-технологий, который делает доступ к облакам и искусственному интеллекту простым и удобным. В Cloud․ru есть 100+ IaaS- и PaaS-сервисов, ML-платформа на базе суперкомпьютеров и публичное облако Cloud․ru Evolution на основе собственных разработок и open source. В команде провайдера более 1 500 специалистов в области IT, кибербезопасности и AI. Cloud․ru входит в число крупнейших IT-компаний России.
Пишут системы автоматизации бизнеса, стартапы, ботов, системы аналитики, личные кабинеты торговых систем и др. Если вы хотите сделать IT-продукт от простого бота до бэкофиса торговых систем, но не знаете, как и с чего начать, то проконсультируют вас и, при необходимости, сделают продукт под заказ или вместе с вами.
CINIMEX — IT-компания с 27-летней историей. Сфера деятельности — заказная разработка ПО. Сотрудники компании обладают глубокой экспертизой в разработке и внедрении решений на основе ML и DS, разработке enterprise-решений на микросервисной платформе, а также в интеграции и автоматизации бизнес-процессов. Среди клиентов «Синимекс» крупнейшие банки, известные ритейлеры и заказчики из производственной отрасли.
Яндекс — технологическая компания, которая создаёт инновационные продукты на основе машинного обучения и нейронных сетей. Команда талантливых математиков и программистов развивает самую популярную в России поисковую систему и более 85 пользовательских сервисов, которые помогают людям в повседневных заботах.
Команда Т-Банка — это разработчики, тестировщики, SRE-инженеры, архитекторы, аналитики, продакт-менеджеры, дизайнеры и другие специалисты. Вместе они создают финтех-продукты, которыми пользуются около 40 миллионов клиентов. Т-Банк развивает IT-индустрию, поддерживает комьюнити и делится экспертизой.
Райффайзен Банк — часть австрийской банковской группы Raiffeisen Bank International; работает в России с 1996 года и входит в тройку самых надежных российских банков по версии Forbes. В команде банка более 3000 IT-специалистов, которые работают над продуктами будущего и развивают финтех в России. И не любят легаси.
CINIMEX — IT-компания с 27-летней историей. Сфера деятельности — заказная разработка ПО. Сотрудники компании обладают глубокой экспертизой в разработке и внедрении решений на основе ML и DS, разработке enterprise-решений на микросервисной платформе, а также в интеграции и автоматизации бизнес-процессов. Среди клиентов «Синимекс» крупнейшие банки, известные ритейлеры и заказчики из производственной отрасли.
СберМаркет — технологический онлайн-сервис, который помогает делать покупки не выходя из дома. Tech-команда СберМаркета создает один из самых сложных высоконагруженных e-commerce проектов в России и делает это с любовью."
На Авито каждый может найти что-то своё среди миллионов частных объявлений и предложений компаний. У нас десятки тысяч RPS к бэкенду, терабайты картинок в хранилище и мощная система автоматизированной модерации на базе машинного обучения. Каждый месяц сервисом пользуется треть населения России.
«Группа Астра» – производитель инфраструктурного ПО. По данным рейтинга TAdviser, компания входит в топ-5 самых быстрорастущих компаний России. По мнению Forbes, «Группа Астра» входит в топ-15 самых дорогих компаний Рунета. В экосистеме группы – 22 продукта, которые комплексно закрывают потребности заказчиков в стеке инфраструктурного программного обеспечения: сертифицированная операционная система Astra Linux, служба каталогов ALD Pro, ПО для создания инфраструктур виртуальных рабочих мест Termidesk, СУБД Tantor средства резервного копирования RuBackup и др. По оценкам независимых аналитиков Strategy Partners, флагманский продукт – ОС Astra Linux – занимает более 76% рынка российских операционных систем, а доля компании на рынке инфраструктурного ПО российских разработчиков оценивается в 20%.
Servicepipe Компания-разработчик продуктов для высокоточной защиты от кибератак, активно развивающая технологии анализа трафика и защиты от автоматизированных угроз на L3–L7. На базе собственных технологий Servicepipe реализует сервисы по защите от продвинутых ботов, DDoS- и целевых атак.
MTС Web Services (MWS) — облачные сервисы для решения задач бизнеса. Компания предоставляет сетевые сервисы; продукты для вычисления, хранения и обработки данных; PaaS-решения; инструменты кибербезопасности; профессиональные сервисы и ИИ-решения.
Команда Т-Банка — это разработчики, тестировщики, SRE-инженеры, архитекторы, аналитики, продакт-менеджеры, дизайнеры и другие специалисты. Вместе они создают финтех-продукты, которыми пользуются около 40 миллионов клиентов. Т-Банк развивает ИТ-индустрию, поддерживает комьюнити и делится экспертизой.
Kinescope — видеоинфраструктура для интернета. Помогают бизнесу раскрыть потенциал профессиональных видеорешений для своих задач. Объединяют все необходимое для хранения, обработки, CDN-доставки и защиты видео в одном месте. Продукты Kinescope подходят как для стартапов, так и для компаний из списка РБК500 и государственных предприятий с высокими нагрузками и сложной логикой.
Лемана ПРО (Леруа Мерлен) — лидер рынка DIY в России. Мы переосмысливаем DIY-ритейл так же, как другие технологические лидеры до этого меняли банкинг и ИТ-сервисы. В компании можно с нуля создавать диджитал-решения, примерять разные роли, использовать современные технологии, запускать новые продукты.
Sendsay — это CDP для автоматизации общения с клиентами через email, ВКонтакте, Telegram, Web Push, Mobile Push и SMS.
YADRO известна как разработчик и производитель всего, что можно увидеть в серверной и ЦОД: систем хранения данных, серверов, коммутаторов. Компания также создает телеком-оборудование операторского класса. Go-разработчики заняты как в развитии СХД, так и в телеком-направлении.
ВКонтакте — крупнейшая социальная сеть в России и странах СНГ. Миссия — соединять людей, сервисы и компании, создавая простые и удобные инструменты коммуникации. VK — это больше 200 технопроектов. Свыше 10 000 человек создают и развивают одни из самых популярных и высоконагруженных интернет-сервисов в стране. Делают комфортнее, легче и интереснее жизнь сотне миллионов людей.
На текущий момент у меня собственная команда опытных методологов и разработчик курсов, с которыми мы успешно реализуем проекты и создаем обучения "под ключ" в разных форматах. Наша задача - это разработка понятных и эффективных обучающих курсов для сотрудников.
МТС — одна из ведущих экосистемных компаний России. Предоставляет услуги мобильной и фиксированной связи, решения в области объединенных коммуникаций, интернета вещей, обработки данных, облачных вычислений и кибербезопасности. Штат IT-специалистов компании превышает 8 000 человек.
НЛМК ИТ — команда, которая делает IT-системы для металлургии и генерит существенную часть успеха Группы НЛМК, лидера среди российских производителей стали. В их готовой продукции нет ни единой строчки кода, но в ее производстве участвует большая IT-команда. Поэтому они немножечко IT-металлурги. Делают цифру реальностью!
Rambler's Top100