1 сезон · выпуск 4 · 19 декабря 2019 · 43 мин

Главный идиотизм в истории русской IT-индустрии. Что такое Nginx и почему наезд на него это позор?

Разработка Общество и право Ностальгия

Слушать · 43:19

Самат Галимов еще летом собирался позвать в подкаст разработчика Nginx Игоря Сысоева, но не успел, а теперь пришлось записывать внеплановый выпуск. Если вы не айтишник, то до прошлой недели могли ничего не знать про программу Nginx, но точно ей пользовались. Это один из самых популярных в мире веб-серверов, программа, без которой интернета в нынешнем виде просто не было. Игорь Сысоев разработал ее 15 лет назад, когда был сисадмином в Rambler, а потом ушел и основал свою компанию, которую недавно купила американская корпорация F5 почти за 700 млн долларов. На прошлой неделе Rambler заявил о своих правах на программу, после этого в офисе Nginx и в квартирах его основателей прошли обыски. О том, как работает Nginx и почему его все любят, Самат говорит с техническим директором Яндекс.Вертикали Данилой Штанем и техническим директором компании «Флант» Дмитрием Столяровым.

Этот подкаст мы делаем совместно сервисом онлайн-образования Яндекс.Практикум

Таймкоды:

Что такое веб-сервер?

Каким был интернет до Nginx

Как Nginx стал одной из самых важных программ

Защита, аналитика, экономия: как можно использовать одну и ту же программу для разных задач

Как зарабатывает Nginx

О конфликте с Рамблером

Транскрипт

Самат Галимов, Даня Штайн, Дмитрий Столяров · расшифровано автоматически, ошибки возможны

  1. Самат Галимов

    Всем привет! Меня зовут Самат Галимов, и это подкаст «Запуск завтра». Обычно мы говорим о технологиях примерно вот

  2. Даня Штайн

    так. Почему вы пишете здесь какой-то кусок

  3. Самат Галимов

    софта, который надо будет дебагать?

  4. Дмитрий Столяров

    С установки TCP-соединения, да?

  5. Даня Штайн

    То есть, в частности, вот комбинация Apache и PHP.

  6. Дмитрий Столяров

    Она ни разу не императивная в Nginx. ...что это Apache. На самом деле это совершенно не Apache. Акселерирующий веб-сервер. Исторически был mod.php. Пользуется ingress-контроллер.

  7. Самат Галимов

    Прикольно. Я работаю техническим директором и я нахожу специалистов мирового уровня. А дальше мы обсуждаем их работу простым человеческим языком. Есть такая программа Nginx, которой мы пользуемся каждый день по много раз. Когда вы открываете почти любое приложение или сайт, они делают запрос на сервер. И первая программа, которая отвечает на этот запрос, это в большинстве случаев Nginx. При этом, скорее всего, вы о ней ничего не слышали до прошлой недели, когда к её создателю, Игорю Сысоеву, пришли с обыском. сисадмином в Rambler, и как раз тогда написал эту программу. Он ушёл из Рамблера и создал компанию, которую недавно продала американская корпорация F5 за безумные деньги. После этого Рамблер неожиданно заявил о своих правах на NGINX, и было заведено уголовное дело. Мы сегодня говорим с двумя людьми, которые хорошо понимают, насколько крут и важен Nginx. И еще, имейте в виду, мы писали этот выпуск подкаста в понедельник утром, а в понедельник вечером появились новости, что прошел совет директоров Rambler, и они поручили менеджменту компании добиться прекращения уголовного дела против Nginx. Я очень надеюсь, что это дело закончится хорошо, а пока давайте разберемся, почему Nginx важен и как мы им пользуемся каждый день. Это подкаст студии Либо-Либо, и у нас есть партнер— сервис онлайн-образования Яндекс.Практикум. Если вы хотите стать программистом, дизайнером или дата-сайентистом (data scientist), идите на сайт Яндекс.Практикум и учитесь.

  8. Дмитрий Столяров

    Привет, меня зовут Дмитрий Столяров, я технический директор «Флант» (Flant). Flanta – это компания, которая занимается в России помощью другим компаниям в использовании open-source продуктов, преимущественно Linux, Kubernetes, ну и Nginx тоже.

  9. Самат Галимов

    Хорошо. Данила?

  10. Даня Штайн

    Привет, меня зовут Даня Шеин, я технический директор в компании Яндекс.Вертикали. Яндекс.Вертикали – это такой независимый бизнес-юнит внутри Яндекса, который занимается сервисами объявлений, например, Авто.ру, Яндекс.Недвижимость, Яндекс.Работа.

  11. Самат Галимов

    Мы сегодня собрались, потому что я давно хотел сделать выпуск подкаста про NGINX. И мы бы наверняка сделали где-то через полгодика. Но тут произошли некоторые события, так что хочется... Мне кажется, многие слышали про то, что происходит вокруг компании NGINX. Хочется не говорить о политике в основном, а поговорить о том, что это вообще такое. Потому что мне кажется, что сисадмины довольно хорошо понимают, что такое NGINX. А обычная публика и даже программисты, которые не занимаются системным администрированием, ничего про это не знают. Начать я хочу с того, чтобы вы попробовали описать, что такое вообще веб-сервер. Вот если я бизнес-чувак и я ничего не понимаю, что такое Nginx?

  12. Даня Штайн

    Nginx, в частности, веб-сервер вообще, это такая программа, которая на себя берет кучу всякой маленькой механики, всяких маленьких сложных механик по реализации того, что, собственно, мы интернетом привыкли называть. Когда, с одной стороны, пользователь нажимает у себя в браузере www.ru, кстати, реально существующий сайт, Дальше там происходит много всякой сложной машинерии и в браузере, потом это уходит через провайдера по кабелям в виде электрических импульсов, бежит куда-нибудь и доходит до сервера, на котором теоретически вот этот вот сайт есть. Ну, как представляете, сайт, сервер и так далее. Вот, собственно, первая программа, которая обрабатывает запросы пользователя, пришедшие откуда-то из интернетов, это практически всегда веб-сервер. Это программа, которая понимает, что к ней пришел пользователь, который просит что-то, документ по такому-то адресу, и дальше с этим может что-то сделать. В самом простом случае может просто отдать какую-нибудь страничку или картинку, например. Собственно, веб-сервер – это и есть та программа, которая разговаривает с пользователем интернета.

  13. Самат Галимов

    Я дико люблю слушать на самом деле такие объяснения, потому что каждый раз узнаю что-то новое, и вообще интересно, как разные люди объясняют сложные вещи.

  14. Дмитрий Столяров

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

  15. Самат Галимов

    То, что программисты программируют, да?

  16. Дмитрий Столяров

    Да, то, что программируют программисты. И некоторая программа, которая в абсолютном большинстве случаев, я не знаю, я бы сказал, что в ста процентах, которая является Nginx, это то, что принимает все запросы от пользователей, дальше те, которые простые. те, которые за картинками, те, которые за какой-то информацией, которую мы можем закэшировать. он на них отвечает сам, а те, которые сложные, он их отправляет в один или в несколько, может быть, там, группа бэкэндов, да? Может быть, там, разные бэкэнды. Но вот Nginx— это некоторый акселерирующий, черт побери, веб-сервер, да? Ну, это как бы странное название. То есть вот, с моей точки зрения, В случае Nginx это программа, которая сидит между пользователем и application-сервером, сервером приложений, и она разгружает application-сервер от простых запросов.

  17. Самат Галимов

    передаточное звено, которое те запросы, которые нужно отправляет, оно знает, куда какой запрос отправить с помощью настроек. Можно поставить галочку. Мне кажется, мы объяснили, что такое Nginx. Окей, вот женская такая программа. Наверняка она не одна на свете такая. Какие еще есть программы, которые делают то же самое?

  18. Даня Штайн

    Примерно то же самое делает все, что угодно. Сейчас в целом с учетом того, как сейчас развиты языки программирования, библиотеки для них и так далее, в целом Считается нормально писать новый веб-сервис, который бы отвечал и выглядел как сайт для пользователя, без всяких промежуточных серверов. Но весь секрет Nginx на самом деле не в том, что он делает, или не в том, как он делает, а в том, когда он это сделал. Потому что сейчас эта проблема решенная. И решенная она в том числе благодаря тому, что 10 лет назад, 15 лет назад, как мы все сейчас знаем, Игорь Сысоев, решая вот эту самую проблему, тысяч пользователей, которые приходят на веб-сервер, который для обработки каждого запроса запускает фактически еще один маленький кусочек программы, который требует кучу ресурсов, памяти. тактов процессора и так далее, вот эту проблему тогда никто толком не решал. Столько людей в интернете не было, такой проблемы не было. Тогда только-только начали появляться вот эти первые суперпосещаемые сервисы, и эта проблема стала вставать в полный рост.

  19. Самат Галимов

    Скажите, пожалуйста, вы помните, когда появился Nginx, и как он появился, и что он изменил в вашей жизни, то есть в профессиональной жизни?

  20. Дмитрий Столяров

    Мы тогда занимались совсем простыми вещами. Я помню, что у нас были апачи везде, PHP. И, конечно же, как только мы поставили Nginx перед апачом, перед PHP, мы сильно сняли нагрузку, сильно разгрузили наши серверы.

  21. Самат Галимов

    Это выражается в экономии. Я просто тогда еще, скорее всего, ходил под стол пешком. Поэтому что это означало практически? Надо было меньше серверов или они просто быстрее начали отвечать? Вообще о каких объемах шла речь?

  22. Дмитрий Столяров

    Это совокупный эффект. Речь идет о том, что мы больше не используем ресурсы сервер-приложений для выполнения простых задач. И если на наш сайт, например, за 10 минут заходят 1000 пользователей, это небольшие цифры, но тем не менее. И пользователи делают, не знаю, один клик в минуту, да, они прочитали страницу, кликнули еще, прочитали. Ну, допустим, да? то получается, что нам нужно держать соединение со всей этой тысячей пользователей. И если мы вдруг это попытаемся сделать средствами аппликейшн-сервера, то мы на каждого пользователя можем расходовать несколько сот мегабайт памяти. Казалось бы, что такое сто мегабайт памяти? Ну, вроде как немного, но мы, во-первых, вспоминаем, что это 10 лет назад, во-вторых, вспоминаем, что у нас пользователей тысяча, а на тысячу это уже сто тысяч мегабайт, то бишь сто гигабайт. Это уже какие-то большие размеры даже на тысячу пользователей.

  23. Самат Галимов

    Прости, пожалуйста. Моя первая работа была в звуке. Это такой музыкальный сервис, типа Яндекс.Музыки, только за пять лет до этого. И там уже был Nginx. Nginx там отдавал музыку. То есть я свою профессиональную карьеру уже начинал с Nginx. Apache я никогда в жизни не видел, кроме какого-то, прошу прощения, старого говна.

  24. Даня Штайн

    На самом деле Apache до сих пор живой. И люди им до сих пор пользуются, если очень почему-то захотеть. А Apache – это тоже веб-сервер, который был очень распространен раньше.

  25. Самат Галимов

    На самом деле, всего в феврале, мне кажется, 2018 года Nginx стал популярнее Apache по внешним метрикам. То есть, сейчас 38, по-моему, процентов всех веб-серверов в мире, то есть, всех сайтов отдаются Nginx. Раньше больше 37% отдавалось Apache. То есть, это такие конкуренты типа.

  26. Даня Штайн

    Тогда была такая комбинация софта, которая позволяла обеспечивать очень низкий порог входа для программистов.

  27. Самат Галимов

    LAMP.

  28. Даня Штайн

    LAMP, да. Linux, Apache, MySQL, PHP. И в частности комбинация Apache и PHP, и того, как оно подключалось, позволяла тебе по одной очень простой инструкции поднять веб-сервер, потом index.php. Открыть его у себя в браузере, и оно, блин, работает. Очень простой.

  29. Самат Галимов

    На самом деле магия.

  30. Даня Штайн

    Да, я когда в 2002 году в первый раз это сделал, я на это посмотрел. «Вау, мои возможности теперь безграничны, абсолютно!» И это не требовало никакой квалификации и так далее. То есть, это правда было очень простое, очень понятное и фактически готовое решение, которое резко снизило порог входа для разработки веб-сайтов, веб-сервисов и так далее. В тот момент, когда эта штука стала популярной, появились миллионы веб-студий, миллионы фрилансеров. Любой школьник покупал себе книжку «PHP 4» и писал, и это все работало. Поэтому Apache такой популярный. Это было очень простое решение.

  31. Дмитрий Столяров

    Пару примеров софта, сделанного на этом стеке. MediaWiki. Дальше. WordPress, всем известный. Это тот же самый стек. Это то, что вспомнилось сходу.

  32. Даня Штайн

    Я работал в компании, в которой мы начали делать свои сервисы, и в какой-то момент поняли, что там довольно много людей на них начало приходить. Ну, по тем меркам много. Знаешь, когда у тебя каждую секунду кто-нибудь загружает страничку на твоем сервисе.

  33. Самат Галимов

    пожалуйста, это Екатеринбург, 2005 год. Седьмой, седьмой. Сколько у тебя сейчас вот в твоих сервисах, сколько страниц, спрашивайте по секунду.

  34. Даня Штайн

    Тысяч пять. Но в какой-то момент вот эта самая традиционная конструкция из PHP и Apache начинает от этого очень удивляться. Почему Nginx такой быстрый? Потому что модель того, как он эти запросы обслуживает, принципиально другая. Apache на каждый запрос порождает еще один процесс, в котором начинает с этим запросом работать. А в Nginx принципиально другая система. Там все запросы стоят в очередь, а один процесс, умеет с ними что-то делать. Просто по очереди. Что у тебя есть? Что-нибудь поработать есть? Есть? Давай, я тебе отвечу. Потому что так исторически сложилось, что сеть довольно медленная штука. И поэтому в большинстве случаев вот эти порожденные процессы в той старой схеме, они будут просто память занимать и ничего не делать. Да, просто будут ждать. В Nginx архитектура. Там запросы снаружи ждут, а внутри максимально эффективно работает один, ну, чаще, конечно, не один, но очень маленькое количество процессов, сильно меньше, чем количество запросов, которые они обслуживают.

  35. Дмитрий Столяров

    У меня есть немножко дурацкая и детская, но очень хорошая аналогия. Вот представьте себе библиотеку. Приходит человек, и он приходит в библиотеку и говорит, мне нужна вот такая книжка. Ему библиотекарь говорит, а, иди ищи. Другой приходит, другому говорит, а, тоже иди ищи. И вот у нас 500 человек ходят по библиотеке и ищут свои книжки. Они не знают, что они там по алфавиту лежат. Вот они ходят, и у нас вся библиотека занята кучей людей. А NGINX— это такой супербыстрый библиотекарь, который пришел первый, он очень быстро сбегал, выдал ему. Почему быстро? Потому что он хорошо знает, куда бежать, и больше он просто ничего не делает, да? А когда у него спрашивают что-то необычное, он уже говорит, хорошо, иди ищи сам. Но это единичные случаи. То есть вот, наверное, такая аналогия может немножко, пусть и по-детски, но раскрыть смысл работы Nginx.

  36. Самат Галимов

    Я сейчас заинтригован. Какого хрена это написал какой-то чувак сисадмин в рамблере, а не Yahoo, например? У них же стопудово был больше трафика в то же самое время. У них были те же самые проблемы.

  37. Даня Штайн

    Все тогда решали такую проблему. И по-прежнему куча компаний пишет массу похожих вещей внутри. Просто они пишут это для себя. А этот конкретный чувак писал это сразу с прицелом для всех. Он создавал инструмент для всех, а не инструмент для решения конкретной своей внутренней проблемы. Я уверен, что тогда и у Yahoo, и у Google наверняка были и есть свои собственные инструменты для решения подобных задач. сидят на Nginx или на чем-нибудь, что мы с тобой знаем или можем назвать вслух. Вот этот конкретный чувак делал инструмент для всех. И пытался его делать для всех. Именно поэтому он полетел и стал таким популярным. Он удобнее настраивается, удобнее конфигурируется.

  38. Самат Галимов

    Слушай, ты сейчас сказал очень важное слово. Ты сказал инструмент. Про это хочу немножко поговорить. Вот есть программы, которые требуют прямо копания в кишках. Нужно разобраться, нужно с разработчиком поговорить, чтобы он тебе объяснил. Техподдержку обязательно нужно купить. А вот Nginx это... Как вы его используете? Если его оценить просто как молоток, как инструмент. Как часто вы его используете в своей работе?

  39. Дмитрий Столяров

    Как часто вы используете пуговицу на штанах? И сколько людей?

  40. Самат Галимов

    Классно.

  41. Дмитрий Столяров

    И сколько людей нужно вам, чтобы ваша пуговица на штанах работала?

  42. Самат Галимов

    Окей, смотри, Дима, ты технический директор фланта, вы аутсорсер, т.е. к вам приходят много разных компаний, вы им настраиваете разную инфраструктуру и отвечаете за то, чтобы она не падала. Сколько у тебя примерно клиентов и сколько примерно сайтов?

  43. Дмитрий Столяров

    Количество сайтов я не знаю.

  44. Самат Галимов

    Ну т.е. речь о тысячах.

  45. Дмитрий Столяров

    Много.

  46. Самат Галимов

    О клиентах сколько?

  47. Дмитрий Столяров

    Ну конечно. Больше 100.

  48. Самат Галимов

    Какая доля из них использует Nginx?

  49. Дмитрий Столяров

    100%. Я не задумываюсь, потому что сейчас невозможно ничего сделать. У нас Nginx зашит в какие-то другие вещи.

  50. Самат Галимов

    А, то есть это какая-то инфраструктурная вещь, на основе которой дальше всё остальное строится, как на фундаменте.

  51. Дмитрий Столяров

    Да, получается, что в 100% случаев.

  52. Самат Галимов

    Прикольно. Даня?

  53. Даня Штайн

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

  54. Самат Галимов

    ребят так. Ну у меня было то же самое, я помню, ну самый высоконагруженный проект была «Медуза», и у нас просто весь трафик уходил туда, и была вообще хитрая система кэширования, которая позволяла нам платить за трафик типа не тысяч, там не 10 тысяч, мне кажется, Аmazon хотел за это в месяц, а типа там 400 долларов это было примерно. То есть умение там хорошо подшаманить инженеров, это такое классное умение сисадмина и иногда даже программиста. Проще говоря, мы нашли хостинг, в котором не надо было платить за трафик, в котором ты платил просто за физическую машину, которую ты арендуешь. Это французский хостинг, очень крупный, онлайн называется. Дело в том, что они еще и провайдер. Провайдер обычных пользователей, что довольно необычно. И там, короче, по некоторым... И еще во Франции много атомной энергетики, поэтому электричество дешевле. Короче, там набор факторов, которые вместе приводят к тому, что ты можешь очень дешево арендовать машину, ну, сервер. Мы арендовали там типа 10 серверов, или там 4 сервера вначале было. и с них отдавали весь трафик Meduza. И работало это ровно потому, что все запросы, вообще все содержимое Meduza хранилось на этих конечных серверах, они называются edge, то есть краевые, те, которые с краю твоей сети, те, в которые бьется пользователь. То есть пользователь приходил и говорил, хочу вот эту страницу, ему сразу отдавалась эта страница. Никакого вычисления там уже не было. Это примерно как если у тебя уже все на прилавке лежит, ты прямо сразу с прилавка отдаешь тебе. Пришел запрос, сразу отдал.

  55. Даня Штайн

    Никуда не хочешь. Не надо в подсобку ходить.

  56. Самат Галимов

    Да, в подсобку ходить не нужно. Это называется каширующая, как бы, каширование. Вся идея.

  57. Дмитрий Столяров

    Ровно по такому же принципу строится доставка видеоконтента обычно. То есть, ну, как бы, если посмотреть, как организован Netflix, да, то они edge-серверы в каждой точке обмена трафика, в каждом крупном провайдере для того, чтобы не с Amazon.

  58. Самат Галимов

    Не из Америки, условно, а из своего Урюпинска, где у тебя там стоит сервачок. Да, именно так. Круто, что один из крупнейших сервисов Netflix— это треть трафика, мне кажется, в Америке, или там больше половины. Больше треть трафика вечером.

  59. Даня Штайн

    В пиковые часы, да.

  60. Самат Галимов

    Типа по ночам, когда все смотрят киношки вечером перед сном. И все это проходит через программу, через код, который был Игорем Сысоевым русским чуваком в Москве когда-то там много лет назад. Скажите что-нибудь, что вы делали такого необычного, смешного или просто интересного. Мы, например, в Медузе пытались от дидоса защититься. Я помню, когда нас дидосили, мы в NGINX что-то тюнили хитро так, чтобы запросы отбивались.

  61. Даня Штайн

    Ну, вот из совсем свежих, ты сейчас говорил, я вспомнил. Есть такая штука, европейский закон про приватность данных, GDPR. Очень многие с ним сталкивались, так или иначе. И Яндекс, поскольку формально из Европы доступен, там, разумеется, в какой-то момент, когда этот закон приняли, была очень большая инициатива, все готовились, дописывали соответствующую функциональность, логирование, соглашение с пользователем, делали take-out-сервис, который заставляет отдавать данные и так далее. И, разумеется, к нам тоже с этой проблемой пришли. То есть, в части своих сервисов нам пришлось это сделать. Во вторую, например, мы сказали, ну, а вторую формально нигде, кроме России, не работает. Поэтому давайте договоримся так. Мы GDPR формально соблюдать не будем. Мы просто поставим заглушку для всех, кто не в России, где скажем, друзья, этот сервис работает по законам Российской Федерации, не соответствует никаким европейским конвенциям. Пожалуйста, если вас это переживает, вот здесь нажмите нет и уходите. А если все норм, нажмите да. и продолжайте пользоваться сервисом. Так вот, всю логику показывания этой заглушки, все логирование, связанное с тем, что пользователь согласился и так далее, все это сделано в нашем случае исключительно настройками Nginx. Никто из программистов ни байтика кода не написал для того, чтобы этот функционал сделать. возможности настройки настолько богатые, что такую, ну, казалось бы...—

  62. Самат Галимов

    Сложную логику.—

  63. Даня Штайн

    Не очень. Ну, как, она довольно простая, конечно, если подумать, но всё равно, там есть какая-то многоступенчатая история, и всю её можно сделать исключительно, правильно настроив, ну, на самом деле, Nginx за Nginx, но тем не менее. То есть это довольно простая штука.—

  64. Самат Галимов

    Респектую, это достаточно, когда проходит тест. Очень классно. Дима?

  65. Дмитрий Столяров

    У меня интересный кейс. Вот представьте себе, плеер на сайте, видеоплеер. Ну понятно, что он скачивает видео, понятно, что видео это много весит, надо отдавать. Но есть еще один очень интересный сайд-эффект у плеера. Мы зачастую хотим знать, досмотрел ли видео человек до конца. А еще мы хотим знать, ну даже если он до конца не досмотрел, досмотрел ли он до середины, досмотрел ли он до какой-то части. А еще мы хотим знать, нет ли у него так называемых буферингов, ну когда видео подвисает. Ну и обычно все плееры шлют статистику. Если у вас, не дай бог, в какое-то событие смотрит несколько миллионов человек в онлайне из плеера, то вы получаете сходу сотни тысяч запросов в секунду информации о том, что я, плеер с идентификатором таким-то, просмотрел это следующее 20 секунд видео. Или я, плеер с идентификатором таким-то, у меня там тормозит что-то. И вот мы в свое время для одной компании настраивали Nginx для того, чтобы принимать этот трафик. И очень элегантное решение. Вместо того, чтобы обрабатывать эти запросы, все, что мы сделали, мы принимали их в Nginx и отдавали код 200. То есть ничего не делали. Просто записывали информацию.

  66. Самат Галимов

    Мы вовнутрь делали аналитику в Meduza.

  67. Даня Штайн

    Все так делали! Дай пять.

  68. Дмитрий Столяров

    Нет, ну все, я не могу вам физически дать пять, но все так делали, да? Но способа принять 100 тысяч запросов в секунду на одной машине другого нет.

  69. Самат Галимов

    Очень часто мы хотим знать, как ведут себя пользователи на сервисе. Куда они заходят, какие видео смотрят, какие видео досматривают до конца. Это всё задачи аналитики. И задача сбора аналитики при больших объёмах сервиса становится очень сложной. Трудно написать программу, которая будет получать десятки миллионов событий в час и при этом ни одной из них не терять. Классно, что вместо того, чтобы это всё программировать самому, можно использовать готовый функционал Nginx. Дело в том, что Nginx записывает информацию о каждом запросе, который к нему пришёл. Можно складывать эту информацию в отдельные файлики, а потом уже в свободное время анализировать. Таким образом, мы уверены, что никакое действие пользователя не потеряется. Приходилось ли вам говорить с разработчиком Nginx или это инструмент, который drop-in и он просто работает? Это вот очень важный момент, на самом деле.

  70. Даня Штайн

    Я писал письма в рассылку, и мне ребята отвечали. В целом, у Нджинкса есть место, куда можно написать, и где участвуют, в том числе, разработкой Nginx.

  71. Самат Галимов

    Как часто приходится это делать?

  72. Даня Штайн

    Никогда. В смысле, все мои личные вопросы— это были скорее очень теоретические истории, когда я что-то пытался сообразить или разобраться, как это должно быть. И практически никогда это не история про «что-то здесь не работает, почините, пожалуйста». Nginx развивается для того, чтобы тупых ошибок там не было. Там бывают сложные, сложно сочиненные баги, но это довольно редкая история. То есть Nginx как продукт, он очень стабилен. Правда, очень стабилен.

  73. Самат Галимов

    Мне кажется, у Димы была какая-то история про это, про стабильность Nginx.

  74. Дмитрий Столяров

    Мы очень-очень давно, типа 8 лет назад, делали модуль для Nginx. И этот модуль, ну, неважно, что он делает, важно, что мы его не трогали 6 лет, и он до сих пор компилируется. И мы не понимаем, почему.

  75. Самат Галимов

    Ну, то есть... Ну, чтобы вы понимали, обычно программа, которую ты не трогал 6 лет, она, скорее всего, не заведется. А тут она, значит, работает. Это довольно удивительно. Это вызывает восхищение.

  76. Даня Штайн

    Ну, это правда. Это уникальный случай, когда 15 лет назад, по большому счету, был написан софт, который до сих пор актуален. Он, конечно, развивался, эволюционировал, но никогда внутри NGINX не было революции, не было версии суперновой, которая всё делает по-другому. Это очень постепенные эволюционные изменения. И все базовые концепции, то, как пишутся конфигурационные файлы, то, как оно внутри в целом работает, они все вот оттуда, они все из 15-ти, 10-ти лет назад. Это, на самом деле, очень-очень редкая история.

  77. Самат Галимов

    У Nginx есть платная версия. Кто-нибудь за нее когда-нибудь платил?

  78. Даня Штайн

    Я знаю людей, которые знают людей, которые за нее платили. Ну, то есть Nginx Plus, который платная версия, это, по большей части, во-первых, пакет консультационных услуг от разработчиков. Ну и вообще, в принципе, есть такая Давайте будем говорить байка, что крупной корпорации проще за что-то заплатить, чем взять что-то бесплатное и разбираться с юридическими рисками того, что они бесплатно что-то используют. Так вот договор, ты заплатил и так далее. Для Nginx это вообще была история про то, чтобы в корпорации зайти. А второй большой кусок Nginx Plus это история про наблюдаемость того, что внутри него происходит. В Nginx Plus это прямо штука, которую они целенаправленно решали для того, чтобы его было удобнее использовать, удобнее эксплуатировать. Не сказать, чтобы в принципе неудобно было, но с этим еще проще.

  79. Самат Галимов

    меньше костылей.

  80. Даня Штайн

    Да.

  81. Дмитрий Столяров

    Я знаю две функции, которых мне очень не хватает в open-source-версии. Во-первых, обычно список... Ну, мы говорили о том, что Nginx стоит первым, принимает запросы от пользователей и дальше распределяет по бекендам, по серверам приложений, по нескольким, балансирует. Проблема в том, что в open-source-версии Nginx список этих приложений константный, и он определен в конфигурационном файле. То есть для того, чтобы добавить новый бекенд, нам нужно поменять конфиг, и перезагрузить Nginx. Он, правда, замечательно перезагружается без простоя. У него там есть режим переконфигурации, reload. Но не поменяв конфигурационный файл, мы не можем изменить список бекендов.

  82. Самат Галимов

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

  83. Дмитрий Столяров

    А вторая вещь— это очередь запросов. Ну и так называемый, я сейчас буду ругаться страшными словами, backpressure. Но мы не можем настроить, что не отправлять в backend больше скольки-то запросов одновременно. в Open Source версии такой возможности нету. Почему это важно? Потому что если у нас сервер приложений может обрабатывать только 100 запросов, 100 пользователей одновременно, и от того, что мы туда навалим больше, он просто поставит их в очередь, и мы не будем знать, сколько у нас запросов стоят в очереди в настоящий момент. А если мы очередь сделаем в Nginx, то мы будем знать, что хорошо, у нас сейчас 10 бекендов, они полностью заняты, плюс у нас еще полторы тысячи запросов в очереди. И, скорее всего, нам надо их уже даже прибивать, не отправлять, ну и вообще что-то с этим делать, да. Ну то есть вот этих вещей нету. И очень интересно, что читаешь документацию по Nginx, и там, ну как бы все эти возможности есть, ты такой читаешь, а, я сейчас чик, ты добавляешь все параметры в конфиге, а он тебе говорит, бах, говорит, не знаю такого параметра. Ты думаешь, что такое, у тебя не та версия. Ты идёшь, смотришь там, да, у меня последняя версия NGINX, документация последняя, что такое, а потом там маленькими буквами написано, доступна только в NGINX Plus. И у тебя такая ярость! Какого чёрта? Как вообще? А потом, с моей точки зрения, NGINX вообще единственный продукт, который может себе позволить Вот такое безобразие, то есть в документации на open-source-версию вставки из коммерческой версии и при этом так, чтобы люди не начали тебя ненавидеть. Ну то есть, конечно, некоторый всплеск ненависти есть, а потом думаешь, ладно, это Nginx, мы его любим, он прекрасен. И ситуация в том, что у продукта такой объём дебета доверия и дебета позитивной кармы, не знаю, да, что даже встройкой в open-source документацию коммерческих кусков они могут себе это позволить.

  84. Даня Штайн

    Вот... Интересно.

  85. Самат Галимов

    Компания NGINX, в ней сейчас, насколько я знаю, около 20 разработчиков, может там 30, и около 20 человек сидела несколько лет назад в Сан-Франциско, продавала все это дело. Довольно большая компания. Как они зарабатывают? Ведь этих лицензий коммерческих, я так понимаю, не очень много продается.

  86. Даня Штайн

    Они не публичные, они не рассказывают о том, сколько они зарабатывают и сколько у них прибыль. Но с момента образования компании в 2011 году они практически сразу получили инвестиции. И вот была последняя сделка, когда всю компанию купил огромный гигант. очень профильный покупатель, который специализируется на вот таких задачах, продает за дикие миллионы жиреским утюгам. Корпорациям, да, свои решения. Компания F5 за какие-то дикие деньги, 670 миллионов долларов, что ли. То есть, они наверняка зарабатывали что-то. Насколько прибыльными они были Насколько я знаю, открытой информации не было. Никто никогда не рассказывал. Я знаю, что очень долго они на полуэнтузиазме эту историю тянули. Потом они сделали компанию и подняли инвестиции. И с тех пор, насколько я знаю, это только история о том, что инвестиции, потом еще инвестиции, а потом большой выход, когда все инвесторы счастливы, потому что там все заработали достаточно денег, в Nginx. И в общем-то сейчас они часть огромной корпорации, которая умеет такие вещи продавать супер

  87. Самат Галимов

    большим корпорациям за большие деньги.

  88. Даня Штайн

    Очень большие деньги. Очень большие.

  89. Самат Галимов

    Последнее время мы очень много слышим про критические технологии, про то, что вот есть некоторые вещи, которые нужно иметь под своим контролем, чтобы вдруг, значит, враги ее не сломали. Nginx имеет русские корни и используется при этом по всему миру. Сысоев, и интернет везде сломается?

  90. Дмитрий Столяров

    Может что-нибудь такое случиться, что француз что-нибудь нажмут, и закон Ньютона сломается?

  91. Самат Галимов

    Англичане.

  92. Дмитрий Столяров

    Sorry. Но тем не менее.

  93. Даня Штайн

    Если без аналогий, то нет, не может, потому что в абсолютном большинстве мест, где Nginx работает, он работает как кусок кода, который у меня на сервере работает. Он скомпилирован, запущен и ничего не... Это не сервис, это программа. от того, что автор что-то передумает. Ну, теоретически, там могут быть какие-нибудь закладки. Но Nginx— это программа с открытым исходным кодом. Любой программист, по большому счету, может ее внимательно проанализировать и для себя, если ему очень важно, решить, правда, есть там закладка какая-нибудь и черный ход или нет. Поэтому тут скорее нет.

  94. Самат Галимов

    То есть запросы не ходят в Кремль, где их просматривают агенты ФСБ?

  95. Даня Штайн

    Ну, может быть, существуют какие-то специальные государственные сборки Nginx, в которых эти модули вкомпилированы, но в абсолютном большинстве случаев нет, потому что исходные коды открыты, все точно знают, как эта программа работает. И именно поэтому, в том числе, поэтому к ней кредит доверия. Наверняка у людей, которые заказывают заказную разработку, у ребят из Nginx, какой-нибудь Netflix, который весь этот свой CDN построен, по сути, на Nginx, который доработан под их нужды. Может быть, у них такие проблемы и могут возникнуть.

  96. Самат Галимов

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

  97. Даня Штайн

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

  98. Самат Галимов

    А то, чем пользуется весь мир, это просто вещи, которые мы сделали, теперь просто даем по поле. Это как там от Калашникова. Если Калашников даже захочет, чтобы он сломался у арабов, это вряд ли случится.

  99. Даня Штайн

    Совершенно верно. Потому что калашников уже сделан и уже у кого-то в руках.

  100. Самат Галимов

    Блин, я так не хотел эту аналогию с калашниками, потому что это как бы... Во-первых, это пошло, все это говорят. Во-вторых, калашник это инструмент разрушения, Nginx. Это, мне кажется, большая разница. Почему мы вообще здесь собрались, почему мы сделали выпуск про Nginx именно сегодня? Недавно Rambler предъявил претензии к Nginx, что, мол, программа принадлежит нам, потому что Игорь Сысоев, когда разрабатывал Nginx, когда он начал его делать, поэтому он теперь наш. Можете, пожалуйста, как-то прокомментировать ситуацию? Я не хочу сейчас, наверное, даже юридических комментариев, потому что все, кто хотят, могут просто почитать комментарии юристов, которые в один голос говорят, что бред сивой кобылы. Но хочется просто, как бы, что вы про это думаете? как люди, которые в индустрии. Вот когда было, например, дело «Кировлеса». Я в этом... Я даже не пытался в этом разобраться, потому что там куча юридических документов, я нихера в этом не понимаю. Для меня было понятно, кто прав, кто виноват, но я в этом не погружался. Здесь это все разворачивается перед моими, перед нашими глазами. Мы все это видим, мы всю эту историю, на самом деле, знали. Историю NGINX. Она буквально перед глазами, потому что все исходные коды, все коммиты, все это можно просто взять и прочитать. Так вот, учитывая, что вы во всем этом варитесь, какое у вас настроение, что вы думаете, что вы слышите про это все в индустрии?

  101. Дмитрий Столяров

    У меня было очень неоднозначное восприятие, первая новость, типа Rambler предъявил претензии. Вообще интересный момент, потому что у меня тоже есть ребята, которые работают и делают опенсорс проекты. Мы как компания делаем опенсорс проекты, но в моем случае ребята за это получают зарплату. И у меня не было на момент моего первого, первых каких-то эхо, донесшегося про эту новость, я вообще не знал никаких, ну, никаких подробностей. То есть мне никогда это не было интересно, я не вчитывался. И первое восприятие было неоднозначное, типа, ох, ни фига себе, ну, то есть, как бы, типа, что вообще такое? А ну потом, когда чуть-чуть я разобрался в ситуации, понял, что, конечно же, жуткое безобразие. И, не знаю, нельзя так делать. Нельзя так делать. Это просто позорно. Точка.

  102. Даня Штайн

    Более тупого и никчемного скандала в российской IT-индустрии до сих пор не было. Даже любые истории, вот помните, информационный фон тоже вокруг героические персоны, например, Павла Дурова, когда у него был конфликт с Mail.ru, с этими каким-то еще инвесторами между Mail.ru и Mail.ru. Даже тогда такой Такого очевидного единодушия среди ребят, которые в индустрии работают, не было. Ну, потому что Дуров такая одиозная, неоднозначная фигура и так далее. Он, конечно, безусловно, сделал прекрасные сервисы. В случае с Nginx я не видел ни одного человека, у которого была бы который хоть чуть-чуть разбирается в вопросе, хоть какое-то отношение имеет, у которого была бы позиция «здесь не все так однозначно». Но просто, правда, более тупого скандала невозможно придумать. Я не знаю, что можно... Мне фантазии не хватает придумать что-нибудь более идиотское, чем вот эта ситуация. Работает куча людей, у которых довольно однозначное мнение про это. Поэтому в Рамблере собирали внутреннее собрание, откуда, конечно же, утекло примерно все. Все реплики, все объяснения и так далее.

  103. Самат Галимов

    Я еще не прочитал.

  104. Даня Штайн

    Блин, там столько огня навеки. Внутренне транслируют еще одну позицию о том, что тут все не так однозначно. В общем, я не понимаю. Ситуация предельно идиотская, скандал предельно тупой, на мой взгляд. Я очень надеюсь, что настолько очевидная тупизна даже в России в 2019 году... Так

  105. Самат Галимов

    быть не может просто.

  106. Даня Штайн

    Так не бывает, да. То есть это такой сюр, что даже при всей неоднозначности того, что происходит у нас в стране и при разном отношении, вот моем лично, к разным событиям, но такого сюра до сих пор по-моему, не было еще ни разу. И такого просто не может быть.

  107. Самат Галимов

    Меня сейчас разорвет, потому что больше всего меня во всей этой истории взбесила позиция Яндекса, Мэлру и вообще всех, кто публично об этом высказывался, потому что вместо того, чтобы сказать «происходит какой-то беспредел, человек сделал программу, и не было, во-первых, ни человеческой договоренности, что программа будет принадлежать Рамберу», Ни юридически в России законы такие, что если программист в своё свободное время написал какую-то программу, даже в рабочее время, если не было... Вообще, начнём с того, что Сысоев не программист, он сисадмин. настраивать серверы, а не программы писать. В общем, ни в каком разрезе никакого захода Рамблеру что-то отжать нет, но при этом достаточно было Рамблеру написать заявление, Как к ним домой, прошу прощения, к ним домой утром пришли люди с автоматами и устроили обыск. Ну как бы вот никакого open source, не open source, свободной лицензии, вот это все и релевантно, про это не нужно говорить, потому что это переводит контекст, это переводит, это размывает фокус. Тут речь не о том, что права open source зажимают в России, это вообще неинтересно на самом деле, никого не ебёт. А вот то, что люди сделали очень крутую штуку, а после этого заработали полмиллиарда долларов, прошу прощения, и после этого остались жить в России, и к ним, значит, утром ни с того ни с чего пришли люди с автоматами, вот это важно, и это понятно любому человеку. Для этого не нужно понимать про open source. Это просто какая-то базовая человеческая свобода, безопасность, просто желание вести бизнес в этой стране. Меня вот этот аспект больше всего волнует. И то, что ни Яндекс, ни Mail.ru не пытаются это объяснить понятным человеческим языком, то, что мы сейчас пытаемся с вами сделать, а начинают говорить об open source, это меня возмущает. Потому что мне кажется, что это такая попытка уйти от болезненной темы.

  108. Даня Штайн

    То, что ты сейчас сказал, это ведь очень оценочно. И компании, и корпорации не могут себе позволить оценочных суждений. Ведь автоматчики пришли в рамках обысков, поскольку люди проходят свидетелями. Всё делается в рамках, я сейчас изо всех сил кавычки машу руками, но по большому счёту всё делается в рамках правового поля и действующих законов. Почему тебя не триггерило, когда до этого какой-нибудь Майкла Калви в СИЗО сажали?

  109. Самат Галимов

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

  110. Даня Штайн

    а с Калви может Прости.

  111. Самат Галимов

    Да уже начинается, почему тогда с чуваком, которого в Казани запытали?

  112. Даня Штайн

    Да, поэтому компании высказываются про конкретную область, про конкретные претензии, претензии, которые нацелены против опенсорса, претензии, которые возникают 15 лет спустя, а совершенно не про автоматчиков. В этом нет смысла никакого. Это не новая тема. у Сысоева, и не говорить про СИЗО и Калви, и не говорить про мужика с бутылкой шампанского в Казани, Это нечестно. Компании стараются быть честными и непредвзятыми.

  113. Самат Галимов

    Меня очень... Тут хочется напомнить об истории с Голуновым. Журналисты не пытались быть честными. Они просто сказали власти, что, чуваки, так не пойдет. И что-то изменилось. А мы так не делаем. И вот это вот... Почему они могут, а мы нет? Я говорю о журналистах и программистах. Я не жду от тебя ответа. Просто обидно. Хочется так же. Хочется лучше. Потому что на самом деле у нас ресурсов гораздо больше, чем у журналистов даже.

  114. Дмитрий Столяров

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

  115. Самат Галимов

    Говорит наш гость из Мюнхена.

  116. Даня Штайн

    Нашему ведущему из Риги.

  117. Самат Галимов

    Я ни с одним из вас раньше не был знаком. Спасибо большое, что вы согласились прийти. Вы были офигенными гостями, очень интересно. И то, что, как бы, Даня, ты пришел в студию, причем, Дима, ты вообще из Мюнхена, это все дико круто. Спасибо вам большое. Это подкаст студии Либо-Либо. Этот выпуск мы делали вместе с редактором Андреем Борзенко, продюсером Павлом Боровковым, звукорежиссером Павлом Цуриковым. За джингл спасибо Алексею Зеленскому. Слушайте нас на всех платформах, на которых вы слушаете подкасты. Подписывайтесь, ставьте лайки, звездочки и пишите комментарии. Мы их все обязательно читаем, а некоторые даже отвечаем.

Слушайте где удобно

0:00