云原生应用的架构设计-组件协同

云计算 云原生
云原生是在云计算环境中构建、部署和管理现代应用程序的软件方法。现代企业希望构建高度可扩展、灵活且具有弹性的应用程序,可以快速更新以满足客户需求。

图片

云原生是在云计算环境中构建、部署和管理现代应用程序的软件方法。现代企业希望构建高度可扩展、灵活且具有弹性的应用程序,可以快速更新以满足客户需求。为此,他们使用现代工具和技术,这些工具和技术本质上支持云基础设施上的应用程序开发。这些云原生技术支持快速、频繁地更改应用程序,而不会影响服务交付,从而为采用者提供了创新的竞争优势。

云原生(Cloud Native)是一种软件开发的方法论,它充分利用了云计算的优势,比如弹性、可扩展性和按需自服务。云原生应用通常设计为在云环境中运行,优化了开发者和运营商的体验,并且能够充分利用云服务的弹性、分布式、可扩展性等特点。

图片

云原生的核心概念包括:
1. 容器化(Containerization):应用程序及其依赖被打包在轻量级的容器中,这些容器可以在任何支持容器的环境中运行,从而实现了环境的一致性。
2. 微服务架构(Microservices):应用程序被分解成一系列小的、独立的服务,每个服务都执行特定的功能,并且可以独立地开发、部署和扩展。
3. 动态管理:应用的部署、扩展和管理是自动化的,通常通过容器编排工具如Kubernetes来实现。
4. DevOps文化:开发和运维团队紧密合作,采用自动化的流程来加速软件开发和部署,提高应用程序的质量和可靠性。
5. 持续集成和持续部署(CI/CD):通过自动化的构建、测试和部署流程,快速地将代码变更推向生产环境。
6. 声明式自动化:通过声明式的配置文件来定义应用的期望状态,而不是具体的操作步骤,使得自动化系统能够自动地将当前状态转变为期望状态。
7. 可观察性:应用的运行状态可以通过日志、监控和追踪等手段进行实时的观察和分析。
云原生技术栈通常包括容器技术(如Docker)、容器编排系统(如Kubernetes)、服务网格(如Istio)、不可变基础设施、声明式API等。这些技术共同支持云原生应用的开发、部署和运行。

图片

企业进行基于云原生的整体应用架构设计,包括在我们规划云原生架构的时候,云原生里面的核心技术组件,它之间的关联和协同关系。

首先云原生的整体应用架构设计,企业进行云原生架构转型的时候,它不是简单的实施一个底层的云原生技术平台,而是整体企业应用架构的转型,特别是基于云原生技术平台的能力,怎么样去构建企业核心的业务能力中心。

基于这个业务能力中心能够快速敏捷的去构建上层的业务应用,云原生整体的应用架构设计,还是可以把它分为三层,底层的技术平台层,中间的能力层,上层的敏捷应用层。

图片

对于底层的技术平台层又分为两个部分,第一个是标准的云原生的技术平台,里面就会包括低代码开发平台,容器云平台,DevOps平台,包括类似于消息、安全、缓存各种技术服务,也包括了微服务的开发引擎,包括后期应用上线以后的微服务的治理和管控平台。

当然,对于技术平台,我们仍然会有一个偏数据类的技术平台,这个技术平台就是类似于偏解决存储问题的数据湖,也包括了类似于基于开源的Hadoop大数据的技术平台,它会提供一整套的数据开发工具、数据采集集成工具、数据建模和数据分析工具。

在技术平台上面就是能力层,我们的核心的目标是需要去构建一个业务能力中心和数据能力中心。业务能力中心的核心的重点就是我们希望把可共享的业务能力都统一放到我们的能力中心,然后开放层可共享的业务服务给上层的业务应用用。对于业务能力中心的构建,既可以是全新的,基于微服务架构和领域建模的思路,去构建全新的业务能力中心,当然也可以是对传统已有的单体架构应用进行改造,暴露可共享的业务服务,接入上层的业务能力聚合网关。

图片

对于数据能力中心,它一样的会涉及到数据采集存储层、数据资产层和上层的数据服务能力开放。但数据能力中心同时要起两个关键的作用,第一个作用就是数据能力中心中的数据服务层,它可以开放可共享的数据服务能力,给上层的业务应用用,也可以业务能力中心的各个微服模块用。同时它又可以暴露相应的接口给上层的olap的数据分析类应用。

到了应用层,我们更希望是通过底层我们的业务能力聚合网关暴露的各式各样的API能力接口,能够快速的通过组合编排的方式去构建我们上层的业务能力应用。这个就是我们基于云原生的整体的应用架构。

图片

就单纯来看云原生技术平台里涉及到的关键的技术组件就包括了底层的容器云平台,中间支撑过程层的DevOps持续集成和交付平台,也包括了上层的低代码开发平台。那么这三者之间究竟应该怎么样更好的集成呢?

首先,低代码开发平台用云原生架构技术平台规范体系里面标准的微服务开发框架去开发应用,同时开发完成的应用它本身也是微服务架构的应用。在代码开发应用的时候,我们希望进行横向分层解耦,低代码开发平层既可以开发后端的微服务的能力中心,也可以去开发上层的应用,同时应用和底层的能力之间,我们可以通过类似于API接口编排工具去实现灵活的组装。

第二个点我们希望它能够直接使用云原生提平台提供的类似于缓存、类似于消息、类似于数据库等各种技术服务能力。只有用了这些技术服务能力以后,那么低代码开发平台开发的应用,最终部署交付到生产环境以后,它本身的高可用扩展性就具备了。代码开发平台开发完的应用本身它也要结合DevOps平台来实现整个编译、构建、打包部署的流水线。代码开发平台开发完成的应用能够快速的部署和交付到我们的生产环境,自动集成底层的容器云的托管运维服务,同时最终交付完的应用。我们还能够实现底层容器云平台的微服务治理管控能力,低代码开发平台开发完的微服务应用,能够统一的纳管到我的云原生技术平台的微服务治理中心。

总结一下,在云原生技术实践里面,容器云底层的中间件技术服务能力,微服务的开发框架、治理框架,DevOps的过程支撑平台,上层的微服务低代码开发平台,之间就会高效的融合衔接为一个整体,只有这样才能够真正的开发出弹性、高效、松耦合的上层的业务应用,或者是业务能力中心。

责任编辑:庞桂玉 来源: 数字化助推器
相关推荐

2022-06-01 11:14:22

云原生安全架构设计

2023-12-01 18:06:35

2021-07-07 17:26:20

云原生云原生架构阿里云

2023-08-30 16:22:03

云原生云计算

2011-08-09 09:46:53

iPhoneASIFormData架构

2020-10-21 10:04:56

云原生应用架构

2022-07-27 12:20:14

云原生应用安全DevOps

2020-08-06 08:16:26

Kubernetes架构开源

2022-02-28 10:05:12

组件化架构设计从原组件化模块化

2023-01-05 08:12:11

分层应用代码

2023-11-27 17:37:57

高性能云原生数据库

2024-05-07 08:07:30

云原生

2022-08-24 16:47:01

云原生安全通信

2020-08-06 08:26:22

Kubernetes架构开发

2018-11-08 10:25:10

物联网云平台IOT

2013-05-27 10:58:28

Tumblr架构设计雅虎收购

2011-08-12 13:30:27

iPhoneASIFormData架构

2010-08-10 10:10:28

系统架构

2023-08-28 16:12:36

架构微服务数字化

2023-05-12 08:06:46

Kubernetes多云架构
点赞
收藏

51CTO技术栈公众号