BLOG | NGINX

L'avenir de NGINX : Retour à nos racines Open Source

NGINX-Partie-de-F5-horiz-black-type-RGB
Miniature de Rob Whiteley
Rob Whiteley
Publié le 23 août 2022

Le temps passe vite quand on s'amuse. Il est donc difficile de croire que NGINX a maintenant 18 ans. Avec le recul, la communauté et l’entreprise ont accompli beaucoup de choses ensemble. Nous avons récemment franchi une étape importante : au moment où nous écrivons ces lignes, 55,6 % de tous les sites Web sont alimentés par NGINX (soit par notre propre logiciel, soit par des produits construits sur NGINX). Nous sommes également le serveur Web numéro un en termes de part de marché. Nous en sommes très fiers et reconnaissants que vous, la communauté NGINX, nous ayez accordé ce vote de confiance retentissant.

Nous reconnaissons également, de plus en plus, que les logiciels open source continuent de changer le monde. Un pourcentage de plus en plus important d’applications sont créées à l’aide de code open source. Des terminaux Bloomberg aux actualités en passant par le Washington Post, Slack, Airbnb, Instagram et Spotify, des milliers de marques et de propriétés parmi les plus connues au monde s'appuient sur NGINX Open Source pour alimenter leurs sites Web. Dans ma propre vie – entre Zoom pour les réunions de travail et Netflix le soir – je passe probablement 80 % de ma journée à utiliser des applications construites sur NGINX.

NGINX n’est qu’un élément de la réussite de l’open source. Nous ne serions pas en mesure de construire le monde numérique – et de plus en plus, de contrôler et de gérer le monde physique – sans tous les incroyables projets open source, de Kubernetes et conteneurs à Python et PyTorch, de WordPress à Postgres en passant par Node.js. L'open source a changé notre façon de travailler. Il y a plus de 73 millions de développeurs sur GitHub qui ont collectivement fusionné plus de 170 millions de pull requests (PR). Un pourcentage énorme de ces PR ont été réalisés sur des référentiels de code avec des licences open source.

Nous sommes ravis que NGINX ait joué un rôle aussi fondamental dans l’essor et le succès de l’open source – et nous avons l’intention de le maintenir et de le transmettre. Dans le même temps, nous devons réfléchir à notre travail open source et nous adapter à l’évolution continue du mouvement. Les modèles économiques des entreprises qui tirent profit de l’open source sont parfois devenus controversés. C'est pourquoi NGINX a toujours essayé d'être très clair sur ce qui est open source et ce qui est commercial. Cela signifiait surtout ne jamais essayer de facturer des fonctionnalités ou des capacités que nous avions incluses dans les versions open source de nos logiciels.

L'Open Source évolue rapidement. NGINX évolue également.

Nous réalisons désormais que nous devons réfléchir sérieusement à notre engagement envers l’open source, apporter plus de valeur et de fonctionnalités à nos produits open source et, bien sûr, améliorer également notre jeu dans le domaine commercial. Nous ne pouvons pas simplement continuer à facturer les mêmes choses que par le passé, car le monde a changé ; certaines fonctionnalités incluses uniquement dans nos produits commerciaux sont désormais des enjeux de base pour les développeurs open source. Nous savons également que la sécurité open source est une priorité pour les développeurs. Pour cette raison, nos projets open source doivent être tout aussi sécurisés que nos produits commerciaux.

Nous devons également reconnaître la réalité. En interne, nous avions l’habitude de dire que l’open source n’était pas vraiment prêt pour la production car il manquait de fonctionnalités ou d’évolutivité. Le monde nous prouve depuis un certain temps déjà que nous avons tort sur ce point : des milliers d’organisations utilisent le logiciel open source NGINX dans des environnements de production. Et c’est une bonne chose, car cela montre à quel point ils croient en nos versions open source. Nous pouvons construire sur cela.

En fait, nous le faisons constamment avec nos produits phares. À ceux qui disent que la famille de produits NGINX originale a vieilli, je réponds que vous ne nous avez pas surveillés de près :

  • Pour le logiciel Open Source NGINX de base, nous continuons d'ajouter de nouvelles fonctionnalités et de prendre en charge davantage de plates-formes de systèmes d'exploitation. Deux fonctionnalités essentielles pour la sécurité et l'évolutivité des applications Web et du trafic, HTTP3 et QUIC , seront intégrées dans la prochaine version que nous livrerons.
  • Un coin discret mais incroyablement innovant de l'univers NGINX est NGINX JavaScript (njs) , qui permet aux développeurs d'intégrer du code JavaScript dans le modèle de traitement d'événements des modules NGINX HTTP et TCP/UDP (Stream) et d'étendre la syntaxe de configuration NGINX pour implémenter des fonctionnalités sophistiquées. Nos utilisateurs ont fait des choses assez étonnantes, allant de la purge innovante du cache et des manipulations d'en-têtes à la prise en charge de protocoles plus avancés comme MQTTv5.
  • Notre serveur d'applications Web universel, NGINX Unit , a été conçu par l'auteur original de NGINX Open Source, Igor Sysoev , et il continue d'évoluer. L'unité occupe une place importante dans notre vision des applications modernes et d'une pile d'applications moderne qui va bien au-delà de notre objectif principal sur le plan des données et la sécurité. À mesure que nous développons Unit, nous repensons la manière dont les applications doivent être conçues pour l’évolution du Web, avec davantage de fonctionnalités natives du cloud et conçues pour les applications distribuées et hautement dynamiques.

L'architecture de référence des applications modernes

Nous souhaitons continuer à expérimenter et à faire progresser les moyens d’aider notre groupe de développeurs principaux à déployer plus efficacement et plus facilement des applications modernes. L'année dernière, lors du Sprint 2.0, nous avons annoncé l' architecture de référence des applications modernes NGINX (MARA), et je suis heureux d'annoncer qu'elle est récemment entrée en disponibilité générale en tant que version 1.0.0 . MARA est une pile d'outils organisée et avisée, incluant Kubernetes, que nous avons connectée pour faciliter le déploiement de l'infrastructure et de l'architecture d'application sous forme de code. En quelques clics, vous pouvez configurer et déployer une architecture de référence MARA intégrée à tout ce dont vous avez besoin pour créer un environnement cloud natif de qualité production : sécurité, journalisation, mise en réseau, serveur d'applications, configuration et gestion YAML, et bien plus encore.

Diagramme montrant la topologie de l'architecture de référence des applications modernes NGINX

MARA est une architecture modulaire, et ce par conception. Vous pouvez choisir votre propre aventure et concevoir à partir des modules existants une architecture de référence personnalisée capable d'exécuter réellement des applications. La communauté a soutenu notre idée et nous avons établi des partenariats avec un certain nombre d’entreprises technologiques innovantes sur MARA. Sumo Logic a ajouté ses compétences de journalisation à MARA et Pulumi a contribué avec des modules d'automatisation et d'orchestration de flux de travail. Nous espérons qu’avec MARA, tout développeur pourra mettre en place et exécuter un environnement Kubernetes complet en quelques minutes, avec tous les éléments de support, sécurisé et prêt pour le déploiement d’applications. Ce n’est qu’un exemple de la manière dont je pense que nous pouvons tous mettre notre énergie collective pour faire avancer une grande initiative dans l’industrie.

L'avenir de NGINX : Moderniser, optimiser, étendre

Chaque année, lors de NGINX Sprint, notre conférence virtuelle d’utilisateurs, nous prenons de nouveaux engagements pour l’année à venir. Cette année n’est pas différente. Nos promesses pour les douze prochains mois peuvent être résumées en trois mots : moderniser , optimiser et étendre . Nous souhaitons nous assurer qu’il ne s’agit pas simplement de mots à la mode dans le monde des affaires ; nous avons des programmes substantiels pour chacun d’entre eux et nous voulons que vous nous demandiez de tenir nos promesses.

Promesse n°1 : Moderniser notre approche, notre présence et notre gestion communautaire

De toute évidence, nous modernisons rapidement notre code et introduisons de nouveaux produits et projets. Mais la modernisation ne concerne pas uniquement le code : elle englobe la gestion du code, la transparence autour de la prise de décision et la manière dont nous nous présentons au sein de la communauté. Alors qu'historiquement la base de code Open Source NGINX fonctionnait sur le système de contrôle de version Mercurial, nous reconnaissons que le monde open source vit désormais sur GitHub. À l’avenir, tous les projets NGINX naîtront et seront hébergés sur GitHub, car c’est là que travaillent les communautés de développeurs et d’open source.

Nous allons également moderniser la manière dont nous gouvernons et gérons les projets NGINX. Nous nous engageons à être plus ouverts aux contributions, plus transparents dans notre gestion et plus accessibles à la communauté. Nous suivrons toutes les conventions attendues pour le travail open source moderne et reconstruirons notre présence sur GitHub, ajouterons des codes de conduite à tous nos projets et prêterons une attention particulière aux commentaires de la communauté. Dans le cadre de cet engagement de modernisation, nous ajoutons un canal communautaire NGINX sur Slack . Nous mettrons en place sur la chaîne nos propres experts pour répondre à vos questions. Et vous, la communauté, serez là pour vous entraider également – dans l’outil de messagerie que vous utilisez déjà pour votre travail quotidien.

Promesse n°2 : Optimiser notre expérience de développeur

Les développeurs sont nos principaux utilisateurs. Ils construisent et créent les applications qui ont fait de nous ce que nous sommes. Notre principe a toujours été que NGINX est facile à utiliser. Et c’est fondamentalement vrai – NGINX ne prend pas des jours à installer, à lancer et à configurer. Cela dit, nous pouvons faire mieux. Nous pouvons accélérer le « délai de rentabilisation » dont bénéficient les développeurs sur nos produits en raccourcissant la courbe d’apprentissage et en simplifiant le processus de configuration. Par « valeur », j’entends déployer du code qui fait quelque chose de vraiment précieux, en production, point final. Nous allons réorganiser notre expérience de développeur en simplifiant l'expérience d'installation, en améliorant notre documentation et en ajoutant de la couverture et du poids à nos forums communautaires.

Nous allons également lancer une nouvelle offre SaaS qui s'intègre nativement à NGINX Open Source et vous aidera à la rendre utile et précieuse en quelques secondes. Il n'y aura pas d'inscription, pas de portail, pas de paywall. Ce SaaS sera gratuit à utiliser, pour toujours.

De plus, nous reconnaissons que de nombreuses fonctionnalités critiques que les développeurs considèrent désormais comme des enjeux de base se trouvent du mauvais côté du mur payant pour NGINX Open Source et NGINX Plus. Par exemple, la découverte du service DNS est essentielle pour les applications modernes. Notre promesse est de rendre ces fonctionnalités critiques gratuites en les ajoutant à NGINX Open Source. Nous n'avons pas encore décidé de toutes les fonctionnalités à déplacer et nous souhaitons votre avis . Dites-nous comment optimiser votre expérience en tant que développeurs. Nous écoutons.

Promesse n°3 : Étendez la puissance et les capacités de NGINX

Aussi populaire que soit NGINX aujourd’hui, nous savons que nous devons continuer à nous améliorer si nous voulons être tout aussi pertinents dans dix ans. Notre objectif ambitieux est le suivant : nous voulons créer une pile complète d’applications NGINX et des capacités de support pour la gestion et l’exploitation d’applications modernes à grande échelle.

À ce jour, NGINX a principalement été utilisé comme plan de données de couche 7. Mais les développeurs doivent mettre en place de nombreux échafaudages autour de NGINX pour le faire fonctionner. Vous devez connecter les capacités d’automatisation et CI/CD, configurer une journalisation appropriée, ajouter l’authentification et la gestion des certificats, et bien plus encore. Nous souhaitons créer une extension de NGINX bien plus performante, dans laquelle chaque exigence majeure de test et de déploiement d'une application soit satisfaite par un ou plusieurs composants open source de haute qualité qui s'intègrent parfaitement à NGINX. En bref, nous souhaitons apporter de la valeur à chaque couche de la pile et la rendre gratuite. Par exemple, si vous utilisez NGINX Open Source ou NGINX Plus comme passerelle API, nous voulons nous assurer que vous disposez de tout ce dont vous avez besoin pour gérer et faire évoluer ce cas d'utilisation : importation d'API, découverte de services, pare-feu, règles de politique et sécurité, le tout disponible sous forme d'options open source de haute qualité.

Pour résumer, notre rêve est de construire un écosystème autour de NGINX qui s’étend à toutes les facettes de la gestion et du déploiement des applications. MARA est la première étape dans la construction de cet écosystème et nous souhaitons continuer à attirer des partenaires. Mon objectif est de voir, d’ici la fin de l’année 2022, une application entièrement pré-câblée être lancée et exécutée en quelques minutes dans un environnement NGINX, équipée d’un ensemble complet de fonctionnalités (traçage distribué, journalisation, mise à l’échelle automatique, sécurité, hooks CI/CD) qui sont toutes prêtes à faire leur travail.

Présentation de Kubernetes API Gateway, d'un tout nouveau Amplify et de l'agent NGINX

Nous nous engageons à tout cela. Et voici trois acomptes sur mes trois promesses.

  1. Plus tôt cette année, nous avons lancé NGINX Kubernetes Gateway<.htmla>, basé sur l' architecture de référence du SIG Kubernetes API Gateway. Cela modernise notre gamme de produits et nous permet de rester en phase avec l’évolution continue du cloud natif. La passerelle NGINX Kubernetes est également une sorte de rameau d’olivier que nous tendons à la communauté. Nous nous rendons compte que cela complique les choses lorsque nous avons créé un contrôleur Ingress commercial et un contrôleur open source pour Kubernetes, tous deux différents de la solution Ingress communautaire (également construite sur NGINX). L’éventail de choix a semé la confusion dans la communauté et nous a mis dans une mauvaise position.

    Il est assez clair que l’API Gateway va prendre la place du contrôleur Ingress dans l’architecture Kubernetes. Nous modifions donc notre approche et ferons de la passerelle NGINX Kubernetes – qui sera proposée uniquement en tant que produit open source – le point central de nos efforts de mise en réseau Kubernetes (en phase avec l’évolution de la norme). Il s'intégrera et s'étendra à d'autres produits NGINX et optimisera l'expérience des développeurs sur Kubernetes.

  2. Il y a quelques années, nous avons lancé NGINX Amplify , une offre SaaS de surveillance et de télémétrie pour les flottes NGINX. Nous n'en avons pas vraiment fait beaucoup de publicité. Mais des milliers de développeurs l’ont trouvé et l’utilisent encore aujourd’hui. Amplify était et reste gratuit. Dans le cadre de notre engagement de modernisation, nous ajoutons une série de nouvelles fonctionnalités à Amplify. Notre objectif est d'en faire votre copilote de confiance pour surveiller et gérer les produits NGINX à grande échelle en temps réel. Amplify surveillera non seulement vos instances NGINX, mais vous aidera également à configurer, appliquer des scripts et dépanner les déploiements NGINX.
  3. Nous lançons NGINX Agent, une application légère que vous déployez avec les instances NGINX Open Source. Il inclura des fonctionnalités auparavant proposées uniquement dans les produits commerciaux, par exemple l'API de configuration dynamique. Avec NGINX Agent, vous pourrez utiliser NGINX Open Source dans de nombreux autres cas d'utilisation et avec une flexibilité bien plus grande. Il comprendra également des contrôles beaucoup plus granulaires que vous pourrez utiliser pour étendre vos applications et votre infrastructure. L'agent vous aide à prendre des décisions plus judicieuses concernant la gestion, le déploiement et la configuration de NGINX. Nous travaillons dur sur NGINX Agent – gardez un œil sur un article de blog qui sera publié dans les prochains mois pour annoncer sa disponibilité !

Regard vers l'avenir

J’espère que dans un an, vous me poserez des questions sur ces promesses. Si je ne peux pas faire état de réels progrès sur ces trois points, alors tenez-moi-en compte, s'il vous plaît. Et s’il vous plaît, comprenez bien que nous sommes engagés et prêts à discuter avec vous tous. Vous êtes notre meilleure feuille de route produit. Veuillez participer à notre sondage annuel . Rejoignez la communauté Slack NGINX et dites-nous ce que vous en pensez. Commentez et déposez des PR sur les projets de notre dépôt GitHub .

Ce sera une année formidable, la meilleure de tous les temps. Nous sommes impatients d'avoir de vos nouvelles et nous vous invitons à nous en faire part. Aidez-nous à vous aider. Ce sera une année formidable, la meilleure de tous les temps. Nous sommes impatients d'avoir de vos nouvelles et nous vous invitons à nous en faire part.


« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."