V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Gerbner
V2EX  ›  分享发现

[Q&A 实录] 老师,您好!在您看来, NGINX 和 OpenNJet 在云原生方面有哪些共性和区别呢?在选择应用引擎时,我们应该考虑哪些关键因素?

  •  
  •   Gerbner · 140 天前 · 547 次点击
    这是一个创建于 140 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Q:老师,您好!在您看来,NGINX 和 OpenNJet 在云原生方面有哪些共性和区别呢?在选择应用引擎时,我们应该考虑哪些关键因素?

    A:共性实际上在官网及别的回复中有过描述,因为 NJet 最初的代码树来源于 NGINX ,可以使用相同的配置模式进行维护。区别在于 NJet 实现了 CoPilots ,动态配置框架,并对模块做了动态化改造,这种改造是扩展、新增,而不会变更原有实现的逻辑及含义。所以 NGINX 是可以自然,无需改造迁移到 NJet 上的。选择 NJet ,最关键的点是在某些特殊的客户场景下,是需要 7×24 业务无间断。

    虽然 NJet 把 7*24 作为切入点。但我们在选择引擎,或其他基础设施时,需要的更多是业务分析。比如我们的业务,可以容忍临时的中断,在线率只需 99%或 99.9%.那就可以不为性能作为切入点,而是重点考虑运维的友好度、扩展性等等。泛泛而谈,我认为有三点是需要考虑的:

    首先是避免成为单点,至少需要支持主备的架构,能够尽量快的实现故障的 failover;额外的,则需要实现水平扩展能力,因为一个节点的硬件资源总是有限的。

    另外,则是尽量内聚,对于较基础的组件,如果依赖太多的外部组件实现特定功能,一是不利于运维,需要这些额外组件的知识体系的学习;在云环境中,还有可能导致特定基础设施的绑定。比如我们也看到,很多的有效的业务组件,离开了 amazon s3/google bigtable 就无法运行,实际限制了在目前越来越流行的私有云中的应用。

    最后一点,则是扩展性。尤其在私有云环境中,我们面临的协议千差万别,甚至还有些古老的协议要支持,像 tuxedo 等。那么实际我们需要大量的实施、交付人员,在现场针对这些特定的协议或需求进行开发。这块业界基本上也有成型的做法,采用嵌入式语言来做。从最早的 TCL ,到 LUA/JS/python ,支持哪种语言,还是要看面临的常见,所以游戏类 LUA 比较频繁,而进行算法处理的,python 比较多。

    最近搞了个问答栏目,陆续放点我们的 Q&A 出来,欢迎使用了解 OpenNJet ~ 官网: https://njet.org.cn/ 主仓: https://gitee.com/njet-rd/njet?_from=gitee_search

    7 条回复    2024-03-13 16:49:26 +08:00
    keepRun
        1
    keepRun  
       140 天前
    希望国内的开放原子基金会发展成跟 apache 一样影响力的组织吧,省的中国人还得跑到国外去开源。
    Gerbner
        2
    Gerbner  
    OP
       140 天前
    @keepRun 我们的项目已经捐赠了,也很希望基金会能快速发展,只能说我们还在快速发展项目中
    keepRun
        3
    keepRun  
       140 天前
    推动国内开源,能够让国内技术体系更加完善,不至于受制于人,国内有实力的程序员也能够更方便贡献自己的力量。
    keepRun
        4
    keepRun  
       140 天前
    @Gerbner 建议介绍项目多加点通俗易懂、能够快速上手的内容,一开始大家关注某项技术肯定希望能够快速拿来用,甚至提供个 dockerfile 来快速搭建项目也挺好的,方便上手才更好推广
    Gerbner
        5
    Gerbner  
    OP
       133 天前
    @keepRun 感谢支持哇,终于听到不是一味吐槽国产的了,哭晕在厕所~
    俺们下月的时候考虑加上这种方式,会比较方便大家
    Gerbner
        6
    Gerbner  
    OP
       57 天前
    @keepRun 终于,OpenNJet 2.0.1 支持 docker 方式运行!
    镜像名称为 tmlake/njet:2.0.1 。使用 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:2.0.1 启动容器。
    欢迎您再体验,多多提问题~
    keepRun
        7
    keepRun  
       57 天前 via Android   ❤️ 1
    @Gerbner 建议你多渠道发布,如果要推广,显然同样的信息应该寻找尽可能多的地方发布,这方面真应该学学原神,国内、国外各大社区都同步发布信息,无论是 b 站、知乎、小红书、抖音、网易云音乐、qq 音乐、tiktok 、youtube 、twitch 、discord 等等,甚至自建网站发布,其实这就是营销推广,当任意一个渠道都有你的信息,就很容易接触到用户
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3231 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:02 · PVG 21:02 · LAX 06:02 · JFK 09:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.