CodeFest 2018. Валентин Бартенев (NGINX, Inc.) — NGINX Unit - динамический веб-сервер нового поколения с уникальной архитектурой

CodeFest 2018. Валентин Бартенев (NGINX, Inc.) — NGINX Unit - динамический веб-сервер нового поколения с уникальной архитектурой

Посмотрите выступление Валентина: https://2018.codefest.ru/lecture/1252/

В сентябре 2017 мы выпустили первую бета-версию нашего нового open-source проекта NGINX Unit и продолжаем его активно развивать. Он базируется на уникальной архитектуре нового поколения и на данный момент способен выполнять функции гибкого и эффективного сервера приложений. Из доклада вы узнаете, для чего создавался новый сервер, его основные приемущества, какими возможностями уже обладает и какие задачи способен решать. А также познакомитесь с его архитектурой и, если останется время, удобным JSON RESTful интерфейсом управления, позволяющим быстро манипулировать вашими веб-приложениями без потери соединений и прерываний в обслуживании.

16b6c87229eaf58768d25ed7b2bbbf52?s=128

CodeFest

April 05, 2018
Tweet

Transcript

  1. Валентин Бартенев CodeFest 2018

  2. NGINX Unit факты • 6 сентября 2017 — первая β-версия

    • Open-source, лицензия Apache 2.0 - unit.nginx.org • Поддержка Python, Go, PHP, Ruby и Perl - в планах: Java, node.js, .Net Core • JSON RESTful API
  3. None
  4. Основные цели • Упрощение веб-стека ◦ Уменьшение числа компонентов ◦

    Унификация функциональности, сетевого стека, конфигурации • Ответ современным реалиям ◦ RESTful JSON API ◦ Динамическая реконфигурация без разрыва соединений, без потери запросов и с минимальным потреблением ресурсов • Принципы и подходы, проверенные временем ◦ Безопасность, стабильность, легковесность, простота, масштабируемость, надежность, производительность
  5. Основные цели • Упрощение веб-стека ◦ Уменьшение числа компонентов ◦

    Унификация функциональности, сетевого стека, конфигурации • Ответ современным реалиям ◦ RESTful JSON API ◦ Динамическая реконфигурация без разрыва соединений, без потери запросов и с минимальным потреблением ресурсов • Принципы и подходы, проверенные временем ◦ Безопасность, стабильность, легковесность, простота, масштабируемость, надежность, производительность
  6. Меньше компонентов vs.

  7. None
  8. Унификация

  9. Unit ≠ Docker Docker – изоляция окружения Unit – унификация

    окружения Unit + Docker =
  10. Основные цели • Упрощение веб-стека ◦ Уменьшение числа компонентов ◦

    Унификация функциональности, сетевого стека, конфигурации • Ответ современным реалиям ◦ RESTful JSON API ◦ Динамическая реконфигурация без разрыва соединений, без потери запросов и с минимальным потреблением ресурсов • Принципы и подходы, проверенные временем ◦ Безопасность, стабильность, легковесность, простота, масштабируемость, надежность, производительность
  11. Основные цели • Упрощение веб-стека ◦ Уменьшение числа компонентов ◦

    Унификация функциональности, сетевого стека, конфигурации • Ответ современным реалиям ◦ RESTful JSON API ◦ Динамическая реконфигурация без разрыва соединений, без потери запросов и с минимальным потреблением ресурсов • Принципы и подходы, проверенные временем ◦ Безопасность, стабильность, легковесность, простота, масштабируемость, надежность, производительность
  12. None
  13. Масштабируемость веб-приложений Клиент Процесс приложения (40 Мб) 50 мс 200

    мс 600 мс
  14. Масштабируемость с nginx Клиент Процесс приложения (40 Мб) 50 мс

    200 мс 600 мс 2 мс 5 мс
  15. Цикл работы приложения Время Чтение запроса Обработка Отправка ответа Напрямую

    В паре с nginx Unit
  16. None
  17. None
  18. None
  19. None
  20. Ложь, наглая ложь и бенчмарки Из статьи “Concurrency comparison between

    NGINX-unit and uWSGI (python3)” https://itnext.io/performance-comparison-between-nginx-unit-and-uwsgi-python3-4511fc172a4c
  21. В планах • Роутинг запросов по Host, URI, заголовкам и

    т.д. • Отдача статических файлов • Проксирование и балансировка • TLS, HTTP/2, QUIC • Node.js, JAVA • Утилита управления из командной строки • Обновление без потери соединений
  22. Спасибо за внимание. vbart@nginx.com fb.com/vbart