Будущее NGINX: возвращаемся к нашим корням в открытых исходниках

в 19:44, , рубрики: devops, gateway, kubernetes, nginx, nginx unit, инженерные системы, системное администрирование

Когда весело - время летит. Да так, что сложно поверить: NGINX’у уже 18. Если оглянуться - сообщество и компания достигли вместе многого. Недавно мы прошли важную веху - на момент написания этой статьи 55.6% всех вебсайтов работают на NGINX (либо на нашем ПО, либо на продуктах, построенных поверх NGINX). Мы также веб-сервер №1 по доле рынка, и очень горды этим, и благодарны вам, сообществу NGINX, за этот потрясающий вотум доверия.

Мы также всё больше и больше понимаем, что ПО с открытыми исходниками продолжает менять мир. Всё больший и больший процент приложений создаётся с использованием открытого ПО. От терминалов и новостей Bloomberg до Washington Post, Slack, Airbnb, Instagram и Spotify - тысячи наиболее известных мировых брендов и компаний в работе своих веб-сайтов полагаются на NGINX Open Source. В моей собственной жизни - между Zoom для рабочих созвонов и Netflix вечерами - я, вероятно, провожу 80% своего дня, используя приложения, созданные поверх NGINX.

Иллюстрация из оригинальной статьи
Иллюстрация из оригинальной статьи

NGINX является только одной частью успеха открытых исходников. Мы не смогли бы построить цифровой мир — и, дополнительно, контролировать и управлять миром физическим — без всех удивительных проектов с открытыми исходниками, от Kubernetes и контейнеров до Python и PyTorch, от WordPress до Postgres и Node.js. Открытые исходники изменили способ нашей работы. На Github больше 73 миллионов разработчиков, которые сообща влили более 170 миллионов запросов на слияние. Огромный процент этих PR относится к репозиториям с открытыми лицензиями.

Мы взволнованы тем, что NGINX сыграл такую фундаментальную роль в становлении и успехе открытых исходников, и собираемся как продолжить поддержку, так и отблагодарить. В то же время нам нужно поразмышлять над своей работой с открытыми исходниками и адаптироваться к продолжающемуся развитию движения. Бизнес‑модели компаний, зарабатывающих на открытых исходниках, стали временами противоречивыми. Именно поэтому мы в NGINX всегда старались быть предельно понятными насчёт того, что является открытыми исходниками, а что доступно платно. Помимо прочего, это означает вообще никогда не пытаться выставлять счета за функциональность или возможности, которые мы включили в общедоступные, с открытыми исходниками, версии нашего ПО.

Открытое ПО быстро развивается. NGINX - тоже

Сейчас мы осознаём, что нам требуется крепко подумать над нашими обязательствами относительно открытого ПО, предоставляя больше ценности и возможностей в наших открытых продуктах, и да, также и улучшить нашу игру на коммерческой стороне. Мы просто не можем продолжать выставлять счета за то же, что и раньше, потому что мир изменился — некоторые функции, включенные только в наши коммерческие продукты, сейчас уже являются обязательным минимумом для разработчиков открытого ПО. Мы также знаем, что безопасность открытых исходников в центре внимания разработчиков. Из‑за этого наши проекты с открытыми исходниками должны быть так же безопасны, как и наши коммерческие продукты.

Мы также должны принять реальность. Внутри у нас была привычка говорить, что открытые исходники <здесь автор не уточняет, но по смыслу фразы речь об общедоступной версии Nginx — прим. перев.> не были на самом деле готовы к продакшну, потому что им не хватало функций или масштабируемости. Мир доказал, что мы уже какое‑то время ошибаемся в этом утверждении: многие тысячи организаций используют версию NGINX с открытыми исходниками в продакшн‑окружениях. И это хорошо, потому что показывает, насколько сильно они верят в наши версии с открытыми исходниками. Мы можем полагаться на это.

На самом деле мы постоянно делаем это <полагаемся — прим. перев.> в наших основных продуктах. Тем, кто считает, что Nginx уже перерос себя, скажу, что вы наблюдали за нами невнимательно:

  • В NGINX Open Source мы продолжаем добавлять новые функции, и поддерживаем ещё больше ОС. Две функции, критичные для безопасности веб‑приложений и трафика, HTTP3 и QUIC, выйдут в следующей версии.

  • Тихий, но невероятно новаторский уголок вселенной NGINX — NGINX JavaScript (njs), который позволяет разработчикам интегрировать код JavaScript в модель обработки событий модулей NGINX HTTP and TCP/UDP (Stream), и расширять синтаксис конфигурации NGINX реализацией сложных вещей. Наши пользователи сделали удивительные штуки — от инновационной очистки кэша и манипуляций с заголовками до поддержки более расширенных протоколов типа MQTTv5.

  • Наш универсальный сервер веб‑приложений, NGINX Unit, был задуман оригинальным автором NGINX Open Source, Игорем Сысоевым, и продолжает развиваться. Unit занимает важное место в нашем видении современных приложений и современного стека, который выходит далеко за пределы нашей консцентрации на data plane и безопасности. По мере того, как мы разрабатываем Unit, мы переобдумываем, как нужно проектировать архитектуру приложений для развивающегося веба — с дополнительными бесшовными интеграциями для облаков, разработанными для распределенных и высокодинамичных приложений.

Эталонная архитектура современных приложений

Мы хотим продолжать экспериментировать и продвигать способы помощи нашим основным клиентам — разработчикам более эффективно и легко разворачивать современные приложения. В позапрошлом году <в оригинале от 2022г. — «в прошлом» — прим.перев.> на Sprint 2.0 мы объявили эталонную архитектуру современных приложений NGINX (MARA), и я счастлив сказать, что недавно она вышла в. общий доступ под версий 1.0.0. MARA — это тщательно подобранный набор инструментов, включая Kubernetes, которые мы объединили, чтобы упростить развертывание инфраструктуры и архитектуры приложений в виде кода. Несколькими кликами вы можете настроить и развернуть эталонную архитектуру MARA, которая интегрирована со всем, что потребуется для создания готового к продакшну и облакам окружения — безопасность, логирование, сеть, сервер приложений, настройка, YaML‑управление и так далее.

Иллюстрация из оригинальной статьи

Иллюстрация из оригинальной статьи

MARA является модульной архитектурой, и это — намеренно. Вы можете выбрать свой собственный путь и разработать из существующих модулей персональную эталонную архитектуру, которая действительно может запускать приложения. Сообщество поддержало нашу идею, и мы начали сотрудничать над MARA c несколькими инновационными технологическими компаниями. Sumo Logic добавили свои обработчики логов к MARA, а Pulumi добавили модули для автоматизации и оркестрации рабочих процессов. Мы надеемся, что с MARA любой разработчик может получить полное окружение Kubernetes в работающем состоянии за минуты, полностью со всем поддерживающими частями, безопасное и готовое для развертывания приложения. Это только один пример того, как, я думаю, мы можем направить нашу общую энергию на продвижение большой инициативы в индустрии.

Будущее NGINX: модернизируй, оптимизируй, расширяй

Ежегодно на NGINX Sprint, нашей виртуальной конференции пользователей, мы даём новые обещания на грядущий год. В этом году ничего не меняется. Наши обещания на ближайшие 12 месяцев можно выразить в трёх словах: модернизируй, оптимизируй, и расширяй. Мы намереваемся убедить в том, что это не просто пустые слова от бизнеса; у нас есть значительные программы для каждого и мы хотим, чтобы вы проверяли выполнение наших обещаний.

Обещание № 1: Модернизировать наш подход, присутствие, и управление сообществом

Очевидно, мы быстро модернизируем наш код и знакомим с новыми продуктами и проектами. Но модернизация касается не только кода — она охватывает управление кодом, прозрачность в принятии решений и то, как мы позиционируем себя в сообществе. В то время как — исторически — кодовая база NGINX Open Source работала на системе контроля версий Mercurial, мы понимаем, что мир открытых исходников сейчас живёт на GitHub. Далее все проекты NGINX будут зарождаться и размещаться на GitHub, потому что именно там работают сообщества открытых исходников и разработчиков.

Мы также собираемся осовременить то, как мы направляем и управляем проектами NGINX. Мы обещаем быть более открытыми к contributions, более прозрачными в нашем служении, и более доступными для сообщества. Мы будем следовать всем ожидаемым соглашениям современной работы с открытыми исходниками и перестроим наше присутствие на GitHub, добавим Кодексы Поведения ко всем нашим продуктам и обратим пристальное внимание на обратную связь от сообщества. Как часть этого обещания модернизации, мы добавляем канал Slack NGINX Community. Мы приведём в канал наших собственных экспертов для ответов на ваши вопросы. И вы — сообщество — также будете помогать друг другу в инструменте для обмена сообщениями, который вы уже используете для ежедневной работы.

Обещание #2: оптимизировать наш опыт разработчика

Разработчики являются нашими основными пользователями. Они собирают и создают приложения, которые сделали нас теми, кто мы есть. Нашим принципом всегда была простота использования NGINX. И это в основном правда — NGINX не требует для установки, запуска и настройки целых дней. Тем не менее, мы можем сделать лучше. Мы можем ускорить «время до ценности», которое разработчики тратят на наши продукты, сделав «кривую изучения» короче, а процесс настройки — легче. Под «ценностью» я имею в виду развёртывание кода, который делает что‑то действительно ценное, в продакшне, точка. Мы собираемся исправить наш опыт разработчика, упростив установку, улучшив документацию и добавив охвата и весомости нашим форумам сообщества.

Мы также собираемся выпустить новое предложение SaaS, которое будет нативно интегрироваться с NGINX Open Source, и поможет вам сделать его полезным и ценным за секунды. Не будет регистрации, ворот, платного доступа. Это SaaS будет бесплатным в использовании — всегда.

В дополнение, мы осознаём, что многие критичные функции, которые разработчики рассматривают как обязательный минимум, находятся на неправильной стороне платного доступа — не в NGINX Open Source, а в NGINX Plus. Например, поиск сервисов через DNS является базовым для современных приложений. Наше обещание — сделать эти критичные функции бесплатными, добавив их в NGINX Open Source. Мы ещё не приняли решение по всем функциям, которые переедут, и хотим исходные данные от вас. Расскажите нам, как оптимизировать ваш опыт разработчика. Мы слушаем.

Обещание № 3: Расширить мощь и возможности NGINX

Как бы ни был популярен NGINX сегодня, мы знаем, что нам нужно продолжать совершенствоваться, если мы хотим оставаться хотя бы такими же актуальными через десять лет. Наша амбициозная цель заключается в следующем: мы хотим создать полный стек приложений NGINX и поддержку возможностей для управления и эксплуатации современных приложений в масштабе.

На сегодняшний момент NGINX в основном используется как транспорт данных уровня 7. Но разработчики должны создать много вспомогательных конструкций вокруг NGINX, чтобы заставить его работать. Вам нужно добавить автоматизацию и возможности CI/CD, настроить корректное логирование, добавить аутентификацию и управление сертификатами, и так далее. Мы хотим сделать намного лучшее расширение NGINX, где каждое большое требование к тестированию и развёртыванию приложения будет удовлетворяться одним и более высококачественными компонентами с открытыми исходниками, которые бесшовно интегрируются с NGINX. Короче говоря, мы хотим предоставить ценность на каждом слое стека, и сделать это бесплатно. Например, если вы используете NGINX Open Source или NGINX Plus в качестве шлюза API, мы хотим убедиться в том, что у вас есть всё необходимое для управления и масштабирования этого варианта использования — импорт API, обнаружение сервисов, файрвол, политики правил и безопасность — всё доступное как высококачественные варианты с открытыми исходникам.

Подводя итог, наша мечта — построить экосистему вокруг NGINX, которая распространяется в каждую грань управления и развёртывания приложения. MARA — первый шаг в построении этой экосистемы, и мы хотим продолжить привлечение партнёров. Моя цель — увидеть в конце 2022 у предварительно подключенного приложения полный запуск за минуты и работу в окружении NGINX, оборудованного полным комплектом возможностей — распределённый трейсинг, логирование, автомасштабирование, безопасность, хуки CI/CD — и все готовы выполнить свою работу.

Представляем Kubernetes API Gateway, новый Amplify и NGINX Agent

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

  1. Ранее в этом году мы запустили NGINX Kubernetes Gateway, основанный на эталонной архитектуре Kubernetes API Gateway SIG. Это модернизирует нашу продуктовую линейку и позволяет нам идти в ногу с продолжающимся развитием облачных решений. NGINX Kubernetes Gateway — что‑то вроде оливковой ветви, которую мы протягиваем сообществу <похоже, имеется в виду оливковая ветвь как символ мира — прим. перев.> Мы понимаем, что всё запуталось, когда мы создали Ingress controller for Kubernetes — и платный, и с открытыми исходниками, и оба отличались от решения Ingress сообщества (также основанного на Nginx). Широкий выбор запутал сообщество, и поставил нас в неудобное положение.
    Достаточно ясно, что Gateway API собирается занять место ingress‑контроллера в архитектуре Kubernetes. Так что мы изменяем свой подход и сделаем NGINX Kubernetes Gateway — который будет предлагаться только как продукт с открытыми исходниками — точкой сосредоточения наших усилий по части сети для Kubernetes (в ногу с развивающимся стандартом). Он будет и интегрироваться, и расширяться другими продуктами NGINX, и оптимизирует опыт разработчика для Kubernetes.

  2. Несколько лет назад мы запустили NGINX Amplify, SaaS‑предложение мониторинга и телеметрии для групп NGINX. На самом деле мы не особо его афишировали. Но тысячи разработчиков нашли его, и всё ещё используют его по сей день. Amplify был и останется бесплатным. Как часть нашего обещания модернизации, мы добавляем к Amplify множество новых возможностей. Мы нацелены на то, чтобы сделать его вашим надёжным «вторым пилотом», способным поддержать, наблюдать и управлять продуктами NGINX в масштабе в реальном времени. Amplify будет не только мониторить ваши экземпляры NGINX, но поможет вам настроить, применить скрипты и устранить неполадки в развёртываниях NGINX.

  3. Мы запускаем NGINX Agent, легковесное приложение, которые вы развернёте рядом с экземплярами NGINX Open Source. В него войдут те функции, которые ранее предлагались только в коммерческих продуктах, например — API динамической конфигурации. С NGINX Agent вы сможете использовать NGINX Open Source в большем количестве случаев и с намного большей гибкостью. Он также включит в себя намного больше тонких настроек, которые вы сможете использовать для расширения ваших приложений и инфраструктуры. Agent поможет вам принять более элегантные решения об управлении, развёртывании и настройке NGINX. Мы старательно работаем над NGINX Agent — поглядывайте на блог, который появится в следующую пару месяцев, в ожидании объявления доступности <Nginx Agent — прим.перев.>!

Глядя вперед

Я надеюсь, что через год вы спросите меня про эти обязательства. Если я не смогу отчитаться о реальном прогрессе — требуйте это с меня. И, пожалуйста, поймите — мы заинтересованы и готовы говорить с вами со всеми. Вы — наша лучшая дорожная карта продукта. Пожалуйста, пройдите наш ежегодный опрос. Приходите в канал nginxcommunity в Slack и скажите нам, что вы думаете. Комментируйте и присылайте пулл‑запросы в проекты в нашем репо на GitHub.

Будет великолепный год, лучший, чем когда‑либо. Мы с нетерпением хотим услышать вас, и, пожалуйста, полагайтесь на то, что услышите больше от нас. Помогите нам помочь вам.

Послесловие переводчика

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

NGINX - зарегистрированная торговая марка F5, Inc.

Автор: Сергей Печенко

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js