从架构角度谈谈云原生架构

1、云原生架构起源

随着云服务商的成熟,客户面临着将服务直接使用云平台的服务部署在云平台上,或者采用本地和云上混合部署的模式来对外提供服务,从解决方案的角度来说,采用云原生架构的优点有:
可以利用云服务的管理,方便的的针对特定服务进行收缩和扩容
可以利用云服务的成熟的监控,针对服务做全链路的监控
当然,采用云原生的架构也有缺点,比如:
数据的安全问题,怎么样保证数据不被泄露
数据迁移问题,如果要更换一个服务提供商怎么迁移,如果要不想使用云服务了,后续数据怎么迁移到本地,作为一个完整的解决方案,都需要对应的策略

2、云原生架构的适用场景

有服务需要动态伸缩,客户请求的峰值很高,平常的服务有没有什么压力
有容灾需求,从IT的角度来说自己搭建很麻烦
服务SAAS化,需要针对多个用户使用,希望扩容更加灵活,可以针对不同的客户有特殊的处理
一部分中等客户不希望搭建自己的机房来进行管理,希望直接使用云,系统有一定的规模,可能涉及到动态扩容

3、云原生架构的要点

3.1 云原生的能力

​容器化与编排
​能力:使用容器(如Docker)打包应用及其依赖,通过编排工具(如Kubernetes)自动化管理容器生命周期。
​示例:基于K8s的弹性扩缩容、滚动更新和故障自愈。
​微服务化
能力:将单体应用拆分为松耦合的微服务,每个服务独立开发、部署和扩展,这个能力本身是技术架构需要考虑的点,并不一定是云提供厂商提供的能力
​示例:使用Spring Cloud、gRPC或服务网格(如Istio)实现服务间通信。
​持续交付与DevOps
​能力:通过CI/CD流水线(如Jenkins、GitLab CI、Argo CD)实现自动化构建、测试和部署。
​示例:基于GitOps的声明式部署(通过Git仓库管理基础设施状态)。
​声明式API与自动化
​能力:通过声明式配置(如Kubernetes YAML、Terraform)定义系统目标状态,依赖工具自动调整实际状态。
​示例:使用Helm Chart管理K8s应用模板。
​可观测性
​能力:集成监控(Prometheus)、日志(ELK Stack)、追踪(Jaeger)实现全栈可见性。
​示例:通过Grafana Dashboard实时展示应用性能指标。
​服务治理与弹性设计
​能力:实现熔断(Hystrix)、限流、重试等容错机制,保障系统高可用。
​示例:通过Istio的流量管理策略实现金丝雀发布。
​无服务器(Serverless)能力
​能力:按需使用函数计算(如AWS Lambda)或事件驱动架构(如Knative),减少运维负担。
​示例:处理异步任务(图片压缩、数据处理)。
​多云与混合云支持
​能力:通过跨云编排工具(如Karmada、Cluster API)统一管理多云资源。
​示例:在AWS和Azure之间动态迁移负载。

3.2 设计思考

3.2.1 弱使用

使用情况:将云服务提供商当做一个虚拟主机+中间件提供商
考虑因素:使用云服务商动态增加虚拟机器的能力,另外使用中间件因为云中立的中间件集群和监控都比较完善
注意事项:
是否需要自己基于虚拟主机搭建自己的k8s或者ci/cd环境,还是利用云提供商的是一个考虑因素,从架构的角度来说,自己自己搭建k8s,使用云上的docker镜像仓库,本地打包到镜像仓库上去即可,CI/CD还是本地环境进行
关于云上承载的服务,建议纳入到统一监控当中,可以使用云上的,也可以自己搭建
优缺点:和云服务厂家的绑定比较少,是优点也是缺点,有 一些云服务需要数据和资源都在云服务厂商上才能使用,但是迁移云的时候相对比较轻量一些。

3.2.2 强使用

使用情况:将云服务提供商当做一个虚拟主机+服务编排+中间件提供商
考虑因素:使用云服务商动态增加虚拟机器的能力、服务编排的能力和中间件的能力
注意事项:
CI/CD是否也要使用云上的服务,这一部分可以不强绑定
统一监控怎么设计,在服务编排也使用云上服务的话,统一监控只能接入云上的监控平台
优缺点:这种场景下和云服务商的绑定比较死,要充分考虑到云上迁移的工作量

3.2.3 小结

在弱使用和强使用的场景下,整体的监控以及服务失败后如何处理这二个方面,非常影响我们的选择,可以直接选择云上的服务,但是迁移到另外一个云可能又不太一样,完全搭建自己一套也是一种选择,但是可能工作量又比较大。

4、云原生架构中的混合云和云中立

4.1 云中立

从开发的角度来说,一旦使用了云服务,可能就和这些服务提供商有了强绑定,比如:如果使用了对象存储,那么各家的对象存储还是有细微的差异,这种差异针对上层程序员来说非常不友好;另外,一旦涉及到迁移到另外的云上,这个改动是特别大。
从架构的角度来说,尽量的提供一个抽象的中间服务来屏蔽这些底层服务的不同,尽量让上层服务不要使用这种云厂商特定的接口API,这种设计的思路就是云中立设计的思路,典型的场景是针对各个云提供商的对象存储做一层封装适配供上层服务使用。

4.2 混合云部署

典型的,在to B的案例中,实际上从提供解决方案的角度,希望一部分不随着客户变化的服务放在云端,另一部分定制化服务放在客户本地,这种混合云的方式。
这种方式下,需要客户的角度要考虑是否有数据泄露的问题,包括数据存储的安全性,是否可以存在云端,是否足够的安全措施;本地和云端通信的安全性,可靠性等。

知乎本人文章地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zcanpro搭配USBCANFD-200U在新能源汽车研发测试中的应用指南(周立功/致远电子)

——国产工具链的崛起与智能汽车测试新范式 引言:新能源汽车测试的国产化突围 随着新能源汽车智能化、网联化程度的提升,研发测试面临三大核心挑战:多协议融合(CAN FD/LIN/以太网)、高实时性数据交互需求、复杂工况下…

【Verilog】实验十 带倒计时交通灯控制电路设计

目录 一、实验目的 二、实验环境 三、实验任务 四、实验原理与实验步骤 1. 实验原理 2. 实验步骤 五、实验思考 代码 TOP.v trafic2_2.v shumaguan.v clk_div.v 一、实验目的 1. 掌握同步有限状态机的设计方法。 2. 采用状态机的设计方法,设计实现带倒…

Linux : System V 共享内存

目录 一 前言 二 共享内存概念 三 共享内存创建 四 查看共享内存 五 共享内存的删除 六 共享内存的关联 七 共享内存去关联 八 共享内存的使用(通信) 九 共享内存的特点 一 前言 共享内存区是最快的IPC形式(进程间通信&#xff1…

Spring Cloud 2023.x安全升级:OAuth2.1与JWT动态轮换实战

引言:当安全遇上云原生,零停机密钥轮换成为刚需 在微服务架构中,OAuth2.1与JWT已成为身份验证的黄金标准,但传统方案存在两大痛点: 密钥轮换风险:手动替换JWT密钥需重启服务,导致短暂鉴权中断&…

创建私人阿里云docker镜像仓库

一.登录阿里云 https://cr.console.aliyun.com/cn-hangzhou/instances 二.创建个人实例 【实例列表】 》【创建个人实例】 》【设置Registry登录密码】 三.创建命名空间 步骤:【个人实例】》【命名空间】》【创建命名空间】 注:一个账号最多可以创建3个命名空…

oracle基础知识视图的定义和应用

1.1 视图的定义 视图(View)是数据库中非常重要的内容,在实际开发中必须学会视图的编写。 用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。视图是可以嵌套的。 视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中…

边缘计算:工业自动化的智能新引擎

在工业4.0的浪潮中,工业自动化正经历着前所未有的变革。随着物联网(IoT)技术的普及,越来越多的工业设备被连接到网络中,产生了海量的数据。然而,传统的云计算架构在处理这些实时性要求极高的工业数据时&…

12-SpringBoot3入门-项目打包和运行

1、打包 1&#xff09;打包插件 pom.xml <!--SpringBoot应用打包插件--> <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plu…

【PCIE711-214】基于PCIe总线架构的4路HD-SDI/3G-SDI视频图像模拟源

产品概述 PCIE711-214是一款基于PCIE总线架构的4路SDI视频模拟源。该板卡为标准的PCIE插卡&#xff0c;全高尺寸&#xff0c;适合与PCIE总线的工控机或者服务器&#xff0c;板载协议处理器&#xff0c;可以通过PCIE总线将上位机的YUV 422格式视频数据下发通过SDI接口播放出去&…

PipeWire 音频设计与实现分析一——介绍

PipeWire 是一个基于图的媒体处理引擎&#xff0c;一个可以运行多媒体节点图的媒体服务器&#xff0c;是 Linux 的音频/视频总线&#xff0c;它管理 Linux 系统中&#xff0c;不同应用程序对音频和视频设备的共享访问。它提供了一个本地客户端音频 API&#xff0c;但也提供兼容…

使用卷积神经网络识别MNIST数据集

卷积神经网络 卷积神经网络本质是共享权重稀疏链接的全连接网络 编写步骤 构建一个神经网络&#xff0c;步骤是几乎不变的&#xff0c;大概有以下几步 准备数据集 #更高级的CNN网络 import torch import torch.nn as nn import torch.nn.functional as F import torchvisi…

力扣125.验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xff0c;如果它是 回文串 &#xff0c;返回 true &#xff1b;否则&#…

UR机械臂sim2real推荐包

推荐一个和ur机械臂配套的interface&#xff1a; ur_rtde Universal Robots RTDE C Interface — ur_rtde 1.6.0 documentation 也欢迎大家提供新想法和bug

CST学习笔记(三)MATLAB与CST联合仿真-远场数据批量导出

CST学习笔记&#xff08;三&#xff09;MATLAB与CST联合仿真-远场数据批量导出 一、直接数据导出 &#xff08;1&#xff09;打开远场&#xff0c;调至笛卡尔坐标系 &#xff08;2&#xff09;然后点击post processing → Import/Export → Plot Data (ASCII) &#xff0c;即…

蓝桥杯---BFS解决FloofFill算法1---图像渲染

文章目录 1.算法简介2.题目概述3.算法原理4.代码分析 1.算法简介 这个算法是关于我们的floodfill的相关的问题&#xff0c;这个算法其实从名字就可以看出来&#xff1a;洪水灌溉&#xff0c;其实这个算法的过程就和他的名字非常相似&#xff0c;下面的这个图就生动的展示了这个…

我与数学建模之启程

下面的时间线就是从我的大二上开始 9月开学就迎来了本科阶段最重要的数学建模竞赛——国赛&#xff0c;这个比赛一般是在9月的第二周开始。 2021年国赛是我第一次参加国赛&#xff0c;在报名前我还在纠结队友&#xff0c;后来经学长推荐找了另外两个学长。其实第一次国赛没啥…

利用 SSRF 和 Redis 未授权访问进行内网渗透

目录 环境搭建 ​编辑 发现内网存活主机 ​编辑 扫描内网端口 ​编辑 利用 Redis 未授权访问进行 Webshell 写入 步骤1&#xff1a;生成 payload 方式1&#xff1a;使用python生成 payload 方式二&#xff1a;使用 Gopher 工具 步骤 2&#xff1a;写入 Webshell&#xf…

【Vue2插槽】

Vue2插槽 Vue2插槽默认插槽子组件代码&#xff08;Child.vue&#xff09;父组件代码&#xff08;Parent.vue&#xff09; 命名插槽子组件代码&#xff08;ChildNamed.vue&#xff09;父组件代码&#xff08;ParentNamed.vue&#xff09; 代码解释 Vue2插槽 Vue2插槽 下面为你详…

ORB-SLAM学习感悟记录

orb特征点的旋转不变性 利用灰度质心法求出的质心后&#xff0c;与形心连线所形成的角度如下图所示&#xff1a; 这里容易对上图进行误解&#xff1a; 为了保证旋转不变性&#xff0c;这里注意ORB-slam是利用这个角度旋转坐标系&#xff0c;以新坐标系为标准从图像中采点进行…

搜索算法------深度优先搜索

1. 介绍 深度优先搜索&#xff08;Depth-First Search&#xff0c;DFS&#xff09;是一种用于遍历或搜索树或图的算法。这种算法通过尽可能深地搜索图的分支来探索解决方案空间&#xff0c;直到达到一个没有分支的点&#xff0c;然后回溯 1.1 原理 选择起始点&#xff1a;从…