经过十几年的发展,云计算作为数字化转型的重要基础设施,已经由 “面向云迁移应用” 的阶段演进到 “面向云构建应用” 的阶段,即由 “以资源为中心” 演进到 “以应用为中心” 的云原生基础设施阶段。云原生基础设施利用智能的调度和运维系统来高效管理更为丰富的应用,为用户带来了多方面的革新。
在云原生的基础设施中,支撑应用的所有能力都已经 API 化、标准化,如存储、网络、路由、部署,这种架构使得应用能够解除对特定的云服务商的依赖,快速分发到不同的公有云,或公有和私有云混合的复杂云环境。尤其是硬件资源的 API 化,使得硬件可以接受上层的调度编排,为应用及时提供相关的资源需求。这种软硬协同的基础设施架构在为应用提供更好性能的同时,也对隔离性、安全性等多方面能力进行了加强。
企业使用云原生到了什么阶段?
云原生使得软件开发从传统 “小作坊” 步入分工协作的” 大规模自动化工厂 “时代,催生 SaaS 服务、低代码 / 无代码、开发部署一体化方式渐成主流。据 Gartner 预测,2025 年部署在云原生平台上的应用将增长至 95%。
Kubernetes 被认为是 “云时代的 Linux”,根据此前 Stackoverflow 对近十万程序员调查显示,Docker 和 Kubernetes 已经成为继 Linux 和 Windows 之后开发者们 top 3 最常用、最喜爱的工具。
云原生架构已成为 IT 架构新范式。 当前,IT 架构已经从主机系统架构(上世纪 60 年代 -)、客户端服务器架构(上世纪 90 年代 -)演进为云原生应用架构(2015 年 -),有效解决了之前架构中的重复开发、代码低效、安全隐患等缺限。
云原生架构具有如下典型技术特征
采用轻量级的容器。
云原生应用程序是打包为轻量级容器的独立自治服务的集合。与虚拟机相比,容 器简化了容器管理集群的搭建工作,同时整合了调度、配置、存储、网络等。用户可以将微服务及其所需的所有配置、依赖关系和环境变量打包成容器镜像,轻松移植到全新的服务器节点上,而无需重新配置环境。
设计松耦合的微服务。
微服务将大型复杂软件应用拆分成多个简单应用,每个简单应用描述着一个小业务并可以被独立部署。各微服务之间是松耦合的,可以独立地对每个服务进行升级、部署、扩展和重新启动 等。相比传统的单体架构,微服务具有降低系统复杂度、独立部署、独立扩展、跨语言编程等特点。
通过 API 进行交互协作。
云原生服务使用轻量级 API 进行交互,比如基于 RESTFul、gRPC 或 NATS 等协议。 使用最佳语言和框架开发。云原生应用的每项服务可以使用最适合该功能的语言和框架开发。微服务的细粒度拆分模式使得各个服务可以分别根据需要选择最适合的语言和框架。
通过 DevOps 流程进行管理。
DevOps 是一组过程、方法和系统的统称,旨在统一软件开发和软件操作, 与业务目标紧密结合,构建出一种通过持续交付实践去优化资源和扩展应用程序的新方式,缩短了开发周期、 增加了部署频率,并实现了更可靠的发布。
以容器、微服务、DevOps 等为核心的云原生技术和理念推动着云原生产业生态蓬勃发展。随着企业深入上云用云,业务应用走向全面云化,企业对云原生的需求升级,需要一个底层的云原生应用引擎来支撑业务应用的快速云化改造。比如,应用引擎的边车 (Sidecar) 形态可以在传统应用不做任何改造的情况下,实现上 云迁移 ; 再如,应用引擎作为应用服务器,为业务提供了标准的微服务框架。此外,传统的技术领域,如数据库、数据仓库等转变为云服务的方式也需要云原生应用引擎来进行支撑。
总之,云原生应用引擎和其他云原生技术的相互融合,可以为企业提供坚实的云化技术底座,从而实现企业应用的云原生技术升级。
下一代云原生应用引擎OpenNJet 最早是基于 NGINX1.19 基础 fork 并独立演进,随着 NGINX 版本迭代,吸收上游 NGINX 的更新,已经同步更新到 NGINX1.23.1 版本,OpenNJet 具有高性能、稳定、易扩展的特点,同时也解决了 NGINX 长期存在的难于动态配置、管理功能影响业务等问题。
作为底层引擎,OpenNJet 利用动态加载机制可以实现不同的产品形态,如 API 网关、消息代理、出入向代理,负载均衡,WAF 等等。在云原生架构中,OpenNJet 除了提供南北向通信网关的功能以外,还提供了服务网格中东西向通信、透明流量劫持、熔断、遥测与故障注入等新功能特性。
传送门:gitee.com/njet-rd