OpenNJet : 下一代云原生应用引擎

发布于:2024-05-02 ⋅ 阅读:(24) ⋅ 点赞:(0)

本心、输入输出、结果

OpenNJet : 下一代云原生应用引擎


编辑 | 简简单单 Online zuozuo
地址 | https://blog.csdn.net/qq_15071263

个人简介 : 简简单单Online zuozuo,目前主要从事 Java 相关工作,商业方向为 B、G 端,主要使用Java、Python 进行日常开发,喜欢探索各个方面的内容,对很多的方向、内容感兴趣 :目前对 AIGC、云计算、物联网、医疗应用方向感兴趣


如果觉得本文对你有帮助,欢迎点赞、收藏、评论

前言

在这里插入图片描述

OpenNJet 应用引擎是高性能、轻量级的WEB应用与代理软件。作为云原生服务网格的数据平面,NJet具备动态配置加载、主动式健康检测、集群高可用、声明式API等多种强大功能。通过CoPliot副驾驶服务框架,在隔离控制面和数据面的情况下实现了高可扩展性。NJet应用引擎助力企业实现云原生技术的平滑升级并大幅降低IT运营成本。

1

OpenNJet 技术架构

在这里插入图片描述

2

安装 OpenNJet

操作系统环境

在这里插入图片描述

通过 Docker 容器启动 OpenNJet

docker run  -d --rm --cap-drop=ALL --cap-add=cap_dac_override --cap-add=cap_dac_read_search --cap-add=cap_setuid --cap-add=cap_net_bind_service --cap-add=cap_net_admin --cap-add=cap_net_raw --cap-add=cap_setgid --cap-add=cap_audit_write tmlake/njet:latest

运行完成如下图

在这里插入图片描述

进入容器

docker exec -it 570f8e0b19b2 /bin/bash

访问 OpenNJet 服务

curl http://127.0.0.1:8080/

在这里插入图片描述

查看 OpenNJet 的运行情况和配置文件

ps -ef
cat /usr/local/njet/conf/njet.conf

在这里插入图片描述

3

为什么有了 OpenNJet

据 Gartner 预测,到 2025 年,云原生架构将成为超过 95% 的新数字计划基础,高于 2021 年的不到 40%,云原生架构市场占有率不断提高。而如今,全球半数以上(55%) 的网站都基于 NGINX 运行,差不多相同比例 (53.7%) 的中国网站在 NGINX 开源版上运行。而 NGINX 存在难于动态配置、管理功能影响业务等问题,为了解决这些问题,OpenNJet 由此诞生

OpenNJet 基于 NGINX1.19 基础 fork 并独立演进,具有高性能、稳定、易扩展的特点,通过数据面与控制面的隔离,能够在不重启进程的情况下基于动态配置能力进行配置的实时更新。最近还推出了 OpenNJet K8s Ingress Controller 1.0,基于 OpenNJet 的动态特性、高性能实现,弥补了 NGINX 在云原生场景中不足,而且提供了丰富的流量管理功能,如动态 location、host/path 路由、负载均衡、动态 upstream、金丝雀发布、SNI 等。

4

OpenNJet 和 NGINX 是什么关系

OpenNJet 是一个基于 NGINX 开发的云原生应用引擎。它不仅扩展了 NGINX 的核心功能,比如增加了安全特性和代码重构的选项,还增加了对动态加载的支持,使得 NGINX 可以更灵活地运用在不同的服务器和中间件环境中。简单来说,是对 NGINX 的增强

OpenNJet应用引擎是面向互联网和云原生应用提供的运行时组态服务程序。具备环境感知、安全控制、加速优化等能力,可利用动态加载机制实现不同的产品形态,如API网关、消息代理、入口/出口控制器、边车、负载均衡和WAF等。提供了服务网格中东西向通信、透明流量劫持、熔断、遥测与故障注入、链路追踪、蓝绿发布等新功能特性。

目前,云原生应用引擎OpenNJet已经正式成为开放原子开源基金会的孵化期项目

5

什么是云原生应用引擎?OpenNJet 的有哪些优势

一、概念
原生应用引擎是一种可用于快速开发原生应用的软件开发工具。它将电脑程序的前端开发,后台管理开发以及前后端的联通性整合到一起,帮助开发者更轻松地开发原生应用。

二、特点

  1. 提供强大的技术支持。原生应用引擎有着丰富的技术支持,极大简化了原生应用的开发过程,可以帮助企业或开发者快速开发新功能。
  2. 优质的体验。通过原生应用引擎可以获得良好的体验,并实现轻量级的体验效果,让用户拥有更直观的原生应用体验。
  3. 低成本高回报的优势。由于原生应用引擎可以大幅缩短开发过程,相比手动开发,更可以节省不少的成本,同时也可以提高开发效率,从而极大提升项目回报率。
  4. 严格安全控制。原生应用引擎具有较为严格的安全控制,对用户隐私等重要信息进行加密,有效保护用户之间的数据传输安全性。

三、优势

  1. 快速构建应用。原生应用引擎可以快速构建应用,因为它可以使用JavaScript、HTML5等开发语言进行开发,大大缩短了应用的开发周期,帮助企业抢占市场机遇。
  2. 高效维护。通过原生应用引擎可以轻松的进行应用维护,因为引擎内部可以封装新功能,作为提升应用性能的一个强大机制,从而使得维护升级更加高效、便捷。
  3. 支持多端应用。原生应用引擎使用的是跨平台技术,可以让开发者在多个平台的应用中同步更新,从而实现多端应用的运行状态,更容易达到在各平台共享信息的目标。

四、缺点

  1. 对于原生应用引擎技术的要求较高。由于原生应用引擎构建的应用类型较复杂,既有传统应用的特点,又对流畅性有着极高的要求,因此,对开发者技术要求也比较高,容易产生技术的鸿沟。
  2. 功能限制。原生应用引擎只能支持某一种特定开发语言,而不能支持多种语言,所以会限制开发、运行过程中的一些日常功能,无法满足企业或开发者的需求变化。
OpenNJet 的有哪些优势

NJet应用引擎是高性能、轻量级的WEB应用与代理软件。作为云原生服务网格的数据平面,NJet具备动态配置加载、主动式健康检测、集群高可用、声明式API等多种强大功能。通过CoPilot副驾驶服务框架,在隔离控制面和数据面的情况下实现了高可扩展性。NJet应用引擎助力企业实现云原生技术的平滑升级并大幅降低IT运营成本

在这里插入图片描述

6

OpenNJet 与国产化

OpenNJet 加入 OpenCloudOS 社区,完成技术兼容互认

OpenNJet 正式加入 OpenCloudOS 操作系统开源社区,并完成了 OpenNJet v1.2.3 与 OpenCloudOS 的相互兼容认证,测试期间,整体运行稳定,在功能、性能及兼容性方面表现良好

在这里插入图片描述
经过以上多项测试表明,OpenNJet 在 OpenCloudOS 多个版本的系统下均能稳定运行,在提供标准负载均衡能力的基础上,添加了国密算法的支持,尤其是针对业内痛点,提供动态配置能力,解决了配置变更时服务实例需要重启或重加载导致的生产系统影响问题,实现了性能无损的配置变更。OpenNJet 是 OpenCloudOS 系统上,您部署负载均衡及应用网关服务的又一选择。

OpenNJet 产品负责人单雷表示:

希望能借助 OpenCloudOS,使广大的 web 使用者能快捷的体验到 OpenNJet 的优秀特性,愿同 OpenCloudOS 一道,完善自主可控的软件基础设施。

(OpenNJet软件)V1.0正式通过国家版权局严格审核,并获得计算机软件著作权登记证书。

在这里插入图片描述

7

OpenNJet 使用教程

常用命令

 njet -h //显示帮助信息
 njet -p /tmpr/njet/ -c conf/njet.conf //启动
 ​njet -t //测试配置信息是否有错误
 njet -v //显示版本
 njet -s stop 或者 kill -TERM {进程id} //快速停止
 njet -s reload 或者 kill -HUP {进程id}//重新加载配置

proxy_connect
Syntax: proxy_connect Default: none Context: server
启用“ CONNECTHTTP 方法支持。
proxy_connect_allow
Syntax: proxy_connect_allow all | [port ...] | [port-range ...] Default: 443 563 Context: server

此指令指定代理 CONNECT 方法可以连接到的端口号或范围的列表。 默认情况下,只启用默认的 https 端口(443)和默认的 snews 端口(563)。 使用此指令将覆盖此默认值,并仅允许连接到列出的端口。

当我第一次体验OpenNJet时,我被其在性能和灵活性方面的卓越表现所吸引。首先,OpenNJet基于NGINX引擎,利用了NGINX1.23.1版本的最新功能,为系统提供了出色的性能和稳定性。无论是处理大流量还是保障系统稳定运行,OpenNJet都表现出色。其次,OpenNJet提供了丰富的功能模块,包括API网关、消息代理、出入向代理、负载均衡、WAF等,这些模块可以根据需求进行动态加载,为系统提供了极大的灵活性和可定制性。例如,我可以根据业务需求轻松地添加API网关和负载均衡功能,而不需要重新配置整个系统。

8

相关资源

OpenNJet 官网

OpenNJet Gitee

感谢亲的点赞、收藏、评论,一键三连支持,谢谢

感谢亲的点赞、收藏、评论,一键三连支持,谢谢

感谢亲的点赞、收藏、评论,一键三连支持,谢谢