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

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


image-20240425234829996

Hello,亲爱的朋友们大家好呀,今天我们来讲一个在云原生方面的一个很优秀的应用引-OpenNJet

OpenNJet官网:

https://njet.org.cn/

OpenNJet介绍

我们先来看下简介:OpenNJet 应用引擎是一个基于 NGINX 的强大平台,它不仅继承了 NGINX 的高性能和稳定性,还针对互联网和云原生应用进行了一系列的创新和增强。下面是对 OpenNJet 的进一步介绍:

  1. 云原生功能增强

    ​ OpenNJet 通过云原生功能增强,实现了对容器化应用的高效支持。在2023年,OpenNJet K8s Ingress Controller 1.0正式发布,它支持 Kubernetes 容器编排工具,使得部署、扩展和管理云原生应用变得更加简单。

    OpenNJet Ingress Controller基于opennjet proxy的动态特性、高性能实现。弥补了nginx 在云原生场景中应用的不足,提供了丰富的流量管理功能,如动态location、host/path路由、负载均衡、动态upstream、金丝雀发布、SNI等,基于NGINX官方kubernetes-ingress项目定制开发,主要实现了配置的动态化,不需要reload OpenNJet。 OpenNJet Ingress Controller在upstream 动态化实现方面,使用lua实现upstream动态配置。

  2. 可扩展性和灵活性

    OpenNJet 与 DevOps 工具链紧密集成,支持持续集成和持续部署(CI/CD)流程,帮助团队自动化软件交付,加快发布速度,提高软件质量和稳定性,设计也注重可扩展性和灵活性,它允许开发者根据具体需求定制功能,无论是通过添加新的模块,还是通过修改现有代码,都能很好的兼容处理。

  3. 社区和生态系统

    OpenNJet 拥有一个活跃的社区和不断增长的生态系统,在官网中有大量的文档和教程,能帮助开发者快速上手和深入学习。

OpenNJet 应用引擎的这些特性使其成为了云原生时代下,构建和运行高性能、高可用和安全互联网应用的理想选择。随着云原生技术的不断发展,OpenNJet 也在不断进化,以满足开发者和企业的新需求。

OpenNJet安装实践-Docker

我们这次的实践在Docker上进行

我们先在DockerDesktop中搜索镜像

image-20240425234745482

然后等待安装

image-20240425235017878

安装完成后,我们使用如下命令启动

docker run -p 8080:8080  -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 d986a5625a9b229bf7746bc67903cafc9f262507e800aabd0a973cc34b6985a /bin/bash

image-20240426001117642

可以测试下下,请求测试 容器中执行如下指令

curl http://127.0.0.1:8080/

image-20240426001218762

好了,可以看到是启动成功了,成功展示了 Welcome to njet

通过OpenNJet部署 WEB SERVER

在上一章节中我们已经成功安装好了,友友们可以先检查下是否安装和启动成功,

在浏览器输入:http://localhost:8080/ ,如果能看到下面这个页面说明就成功了

image-20240429224213923

配置OpenNJet

我们先进入到下面这个文件夹

/usr/local/njet/html

然后新建一个HTML文件

hello.html 代码清单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    NJET HELLO
</body>
</html>

然后我们进入到配置文件中

路径:

/usr/local/njet/conf

我们编辑njet.conf文件,以下是一个简单的 OpenNJet配置文件示例,用于将所有请求重定向到我们刚写的一个HTML 文件:


http {
    include mime.types;
    access_log off;
    vhost_traffic_status_zone;
    #lua_package_path "$prefix/lualib/lib/?.lua;/usr/local/njet/modules/?.lua;;";
    #lua_package_cpath "$prefix/lualib/clib/?.so;;";
    server {
        #modsecurity on;       
        #modsecurity_rules_file /usr/local/njet/conf/modsec/main.conf;

        listen       8080;
        location / {
           root /usr/local/njet/html;
           index  html;
        }
    }

}

上述配置中,我们在 HTTP 块中定义了一个名为“server”的服务器块。该服务器块监听 8080 端口,并将请求的根目录设置为/usr/local/njet/html。如果请求的路径不存在,默认会返 回 index.html 文件。

访问 Web应用程序
Bash
  njet -p /tmpr/njet/ -c conf/njet.conf 
  常见启动参数:
      -p 指定 prefix 配置文件路径,不指定,默认/etc/njet 
      -c 指定配置文件,不指定,默认 njet.conf
      -e 指定 error 日志文件

启动后,我们直接在浏览器中输入地址查看

image-20240429233703473

好了,这次的部署实战就完成啦,在实际部署 Web 应用程序时,可能需要更复杂的OpenNJet 配置,例如反向代理、负载平衡等。

技术架构图

image-20240426002425430

OpenNJet架构中的框架模块有如下模块

  • 核心模块
  • HTTP模块
  • 日志模块
  • 事件模块
  • 配置模块
  • Stream模块
  • 国密SSL模块

功能规划以及亮点总结

OpenNJet充分吸收了开源社区的建议,在功能规划上包含了4大类18类组件,具体功能如下:

image-20240426002703990

我们再来简单的总结下吧

OpenNJet功能亮点总结:

  1. 国际/国家标准支持:OpenNJet 致力于及时支持最新的国际和国家标准,例如 HTTP/3。在 2023 年发布的版本 2.0 中,它将提供完善的 HTTP/3 支持,确保企业能够利用最新的网络协议来提升性能和安全性。
  2. 内置企业特性:该应用引擎包含了专为企业级应用设计的特性,如集群规模的流量控制、高可用性以及 API 集成支持。这些特性使得 OpenNJet 能够满足大型企业在流量管理和服务稳定性方面的严格要求。
  3. 安全加固:OpenNJet 着重于安全性,内置了 Web 应用防火墙(WAF)和多种认证授权机制,为企业的数据和应用提供了坚固的安全保障。
  4. 动态能力:该平台已经原生实现了业界高度需求的动态路由能力,允许开发者根据实时流量和业务需求灵活调整路由策略。
  5. 可编程性:OpenNJet 不仅支持 HTTP 1/2/3,还允许通过脚本对特定应用协议进行解析,并基于协议内容执行定制的路由逻辑,提供了高度的灵活性和可定制性。
  6. 数据与管控能力隔离:平台实现了数据面和管控面的隔离,确保了可观测性所需的指标和追踪数据采集不会对业务处理造成影响,从而避免了性能下降。
  7. 适应面广:OpenNJet 设计用于适应多种部署环境,无论是在本地服务器、容器环境还是云原生架构中,都能够提供稳定和高效的服务。
  • 33
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
云原生应用架构实践》是一本介绍云原生应用架构设计和实践方法的PDF文件。云原生应用架构是一种在云环境中开发、部署和运行的应用架构模式,具有高可用性、高弹性和高扩展性等优势。 这本PDF文件首先介绍了云原生应用架构的基本概念和原则,包括容器化、微服务架构和自动化等内容。然后,它提供了一些实用的架构设计方法和最佳实践,帮助开发者高效地构建云原生应用。 在实践部分,PDF文件给出了许多案例研究和实际应用场景,涵盖了多种不同的技术和工具。它详细介绍了如何使用Docker等容器技术来打包和部署应用,如何使用Kubernetes等容器编排工具来管理应用的生命周期,以及如何使用Service Mesh等微服务架构技术来实现应用之间的通信和协调。 此外,这本PDF文件还介绍了云原生应用架构中的监控、日志和安全等方面的最佳实践,帮助开发者保证应用的可靠性和安全性。它还提供了一些性能调优的方法和工具,帮助开发者优化应用的性能和资源利用率。 总的来说,《云原生应用架构实践》这本PDF文件全面介绍了云原生应用架构的设计和实践方法,并提供了丰富的案例和经验,对开发者在构建云原生应用方面具有重要的参考价值。有了这本PDF文件的指导,开发者可以更好地理解和应用云原生应用架构,提高应用的可靠性、弹性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小叮当撩编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值