云原生架构设计原则及典型技术
云原生是面向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径,帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度。代表技术包括不可变基础设施、服务网格、声明式 API 及 Serverless 等。


从产业效用方面来看,云原生极大的释放了云的红利,云原生充分继承云的设计思想,未来应用将更多基于云上进行本土应用开发,即云原生应用更加适合云的架构,而云计算也为云原生应用提供较好的基础支撑,如资源隔离机制、分布式部署、高可用架构等方面,通过新的架构、技术保障应用系统变得更加健壮,可以说云原生最大程度发挥了云的优势。云计算的拐点已至,云原生成为驱动业务增长的重要引擎。
从技术特征方面来看,云原生架构具备以下典型特征:极致的弹性能力,不同于虚拟机分钟级的弹性响应,以容器技术为基础的云原生技术架构可实现秒级甚至毫秒级的弹性响应;服务自治故障自愈能力,基于云原生技术栈构建的平台具有高度自动化的分发调度调谐机制,可实现应用故障的自动摘除与重建,具有极强的自愈能力及随意处置性;大规模可复制能力,可实现跨区域、跨平台甚至跨服务商的规模化复制部署能力。
从应用价值方面来看,异构资源标准化,容器技术有效解决了异构环境的部署一致性问题,促进了资源的标准化,为服务化、自动化提供了基础。



云原生架构设计原则
云原生架构本身作为一种架构,也有若干架构原则作为应用架构的核心架构控制面,通过遵从这些架构原则可以让技术主管和架构师在做技术选择时不会出现大的偏差。

技术往往是把“双刃剑”,容器、微服务、DevOps、大量第三方组件的使用,在降低分布式复杂性 和提升迭代速度的同时,因为整体增大了软件技术栈的复杂度和组件规模,所以不可避免地带来了软件 交付的复杂性,如果这里控制不当,应用就无法体会到云原生技术的优势。

云原生关键技术及成熟产品


容器:云原生世界技术爆炸的奇点

1 安全容器
容器技术的采纳率连年提升,已经开始进入企业的生产环境。以 Docker 为代表的普通容器通过 Namespaces 和 cGroups 实现的隔离,共享内核的机制使得隔离性具有天然的缺陷无法根除,在多租户场景下安全问题更加凸显。
2 Serverless 容器
FaaS(Function as a Service)平台提供的是函数级别的 Serverless 化部署,且应用场景多依赖于其绑定的触发器,对函数的执行有一些配置限制,并且不支持进程常驻。传统的应用大都是单体应用或者微服务应用,在迁移到 FaaS 平台时,需要拆分函数,迁移成本较高。
Serverless 容器,可以很好地弥补 FaaS 的不足,Serverless 容器可以支持进程常驻的服务形态,不限运行时长,并扩大 Serverless 的应用场景。Serverless 容器支持服务的形态,传统的单体应用或者微服务应用,几乎可以无缝迁移到 Serverless 容器平台上。
3 裸金属容器
容器服务最早部署形态是基于 IaaS 虚拟机,以虚拟机节点作为容器集群的计算节点,并基于此构建容器的网络、存储和编排能力,这样的堆叠架构虽然可以让整个软件栈分工明确、边界清晰,但是带来了较大的性能损耗和功能冗余。此外如果用户对实例安全隔离性要求较高,就需要借助虚拟化技术,而虚拟化平台不能很好支持该能力。基于以上痛点,在裸金属服务器上搭建容器服务成为一些对性能和实例隔离性较高用户的选择。
微服务

从软件架构的演化来看,微服务架构的出现是用户需求、开发周期以及市场规模变化下的必然发展。在单体架构中,应用大多数通过瀑布式模型进行开发,计划、开发、测试、上线等阶段单独进行,以整个应用为单位进行开发、维护。这种开发模式与印刷术出现之前的手写时代相似。
手写卷很难根据场景复用,有按需更新或修改的部分则需要整体重构。借由类比,单体架构的优点和缺点都十分明显:在小型应用中整体从设计到上线的速度很快,其中的管理工作简单;但是在需要更新和修改的情况下,应用整体高度聚合,各部分高耦合,牵一发而动全身,常常需要整体重新开发。

Serverless

无服务器是一种架构理念,其核心思想是将提供服务资源的基础设施抽象成各种服务,以 API接口的方式供给用户按需调用,真正做到按需伸缩、按使用收费。这种架构体系结构消除了对传统的海量持续在线服务器组件的需求,降低了开发和运维的复杂性,降低运营成本并缩短了业务系统的交付周期,使得用户能够专注业务本身。在无服务器架构的理念和方法下,有很多种无服务器的技术形态,目前成熟落地的有 3 种形态,函数即服务(FaaS)、后端即服务(BaaS)和Serverless 容器。
云原生芯片
云原生技术的应用普及对云计算的上下游技术也产生了革命性的影响,芯片技术首当其冲。引发芯片云原生化演进的原因主要有两个,一是应用负载模型的精细化、动态演进,要求芯片内核技术升级。从架构设计上,芯片内核的线程处理分割需要更加细粒度,独立内核需要有独享的二级缓存,来能够最大程度的去适应云原生环境中需要平行扩展的微服务化应用,为用户提供更高性价比的服务;二是超大规模数据中心和边缘数据中心的需求猛增,这两类数据中心在延时、散热、功耗等需求与传统数据中心不同,这对 CPU 的部署密度和能耗的要求越来越高,基于 ARM架构的芯片成为云原生芯片的主要发展方向,比较典型的产品有阿里云的倚天 710 芯片、AWS 的Graviton 系列芯片等。
云原生网络
云原生网络的基本目标是满足云原生服务的网络端点和服务间的互通性、安全性和负载均衡要求。Kubernetes 已经成为容器编排的事实标准,容器网络也需与 Kubernetes 的调度机制相匹配。
容器网络接口 CNI(Container Network Interface) 是现行的网络接口标准, CNI 接口只实现创建、删除容器时的调用方法,其他所有的网络能力都交由网络厂商实现增值服务,这在一定程度上加速了网络方案的繁荣,但是给用户的方案选型造成了较大困扰。大部分的用户场景都是基于网络的通讯协议进行方案选择,根据网络协议的不同,可将网络方案分为路由模式、Overlay和 L2 方案三种。

自 CNI 标准发布到 2020 年,云原生网络已经演进近 6 年时间。也积累了大量的用户落地案例和大规模的实践案例。
云原生数据库
数据库技术是信息技术领域的核心技术之一 , 几乎所有的信息系统都需要使用数据库系统来组织、存储、操纵和管理业务数据。


云原生数据库是云计算发展到成熟阶段,数据库针对云计算架构所作的定制化改造。在传统数据库的系统架构下,必须是紧耦合的设计方式,才能最大效能地发挥系统的优势。


云原生数据库在技术架构上的创新使得数据库具备了高扩展性、易用性、迭代快速、成本降低等特点,能够有力地支持企业向数字化、在线化、智能化演进。
相关文章:
云原生架构设计原则及典型技术
云原生是面向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径,帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度。代表技术包括不可变基础设施、服务网格、声明式 API 及 Serverless 等…...
【Linux】-- 工具介绍 vim_gcc/g++_gdb
目录 Linux中的软件管理工具 – yum 在Linux下安装软件的方式 认识yum 查找软件包 安装 卸载 lrzsz.x86_64 rz sz Linux中的编辑器 – vim vim的基本概念 vim各模式切换 vim命令模式命令 vim底行模式命令 gcc / g gcc / g的作用 gcc / g语法 预处理 编译 汇…...
JAVA SE: IO流
一、Java流式输入输出原理Java对于输入输出是以流(Stream)的方式进行的,JDK提供各种各样的“流”类,以获取不同类型的数据。可以理解为将管道插入到文件中,然后从管道获取数据。这个管道外边还可以套管道,外边的管道对数据进行处理…...
打破原来软件开发模式的无代码开发平台
前言传统的系统开发是需要大量的时间和成本的,如今无代码开发平台的出现就改变了这种状况。那么你知道什么是无代码开发平台?无代码开发对企业来说有什么特殊的优势么?什么是无代码平台无代码平台指的是:使用者无需懂代码或手写代码,只需通…...
06-redux中的hook
知识点06-redux的hook 在函数组件中要和redux连接,分为两个步骤 前提状态机已经主备就绪 注入store到根组件 在函数组件中,使用Provider包裹根组件,并将store注入这一步,依旧是不能少的 import store from "./redux/store…...
watch监听不到数组对象的变化
watch监听不到数组对象的变化一、利用索引直接改变arr的值二、修改数组的长度arr.length三、添加和修改对象属性和值Vue不能监听到数组和对象值的变化其实和双向绑定的原理有关。Vue双向绑定原理是利用js中的Object.defineproperty重定义对象的GET和SET方法,而同时这…...
言语理解与表达之语句表达
考点一语句填空提问方式:填入划横线处最恰当的一句是( )1.横线在结尾:总结前文提出对策2.横线在开头:需概括文段的中心内容3.横线在中间:注意与上下文联系把握好主题词,保证文段话题一致实例1和…...
2023年全国最新食品安全管理员精选真题及答案14
百分百题库提供食品安全管理员考试试题、食品安全员考试预测题、食品安全管理员考试真题、食品安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 131.食品生产企业在一年内()次因违反《中华人民共…...
【MySQL】约束
文章目录1. 约束2. 非空约束 NOT NULL3. 唯一性约束 UNIQUE4. 主键约束 PRIMARY KEY5. 自增约束 AUTO_INCREMENT6. 外键约束FOREIGN KEY7. 默认值约束 DEFAULT8. 小结1. 约束 为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面…...
C语言学习(三)
#include <stdio.h> int main(void){int a; scanf("%d",&a); printf("%d",a); return 0;} 正在上传…重新上传取消正在上传…重新上传取消&符号作用是把键盘中输入的值给变量a,使用scanf()时输入数值,需要按一下enter…...
TOUGH系列软件建模及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合
TOUGH2系列软件传统地下水模拟软件Feflow和Modflow不同,TOUGH2系列软件采用模块化设计和有限积分差网格剖分方法,通过配合不同EOS模块,软件可以处理各种复杂地质条件下,诸如地热能开发,非饱和带水气运移、油气运移&…...
k8s学习之路 | k8s 工作负载 ReplicaSet
文章目录1. ReplicaSet 基础概念1.1 RS 是什么?1.2 RS 工作原理1.3 什么时候使用 RS1.4 RS 示例1.5 非模板 Pod 的获得1.6 编写 RS1.7 使用 RS1.8 RS 替代方案2. ReplicaSet 与 ReplicationController2.1 关于 RS、RC2.2 两者的选择器区别2.3 总结1. ReplicaSet 基础…...
python实现半色调技术图像转换
半色调技术 半色调技术是一种将灰度图像转换为黑白图像的技术。它是通过将灰度图像的像素值映射到黑白像素值上来实现的。 比如说,在一块只能显示纯黑或纯白的屏幕上,如何将一张灰度图显示出灰度的效果,这时就可以用半色调技术实现。 如下…...
c++面试技巧-基础篇
1.面试官:简述C语言的优缺点。 应聘者:C语言的优缺点如下。 • C语言的优点:C语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地构…...
三八妇女节即将到来,跨境电商如何玩转节日营销?
随着国际妇女节的到来,跨境电商商家们都开始了为自己的店铺进行节日营销的准备。商家做节日营销的目的都是一样的,无非都是增加曝光率,拉动客流,增加营业额。但是每一个节日营销的形式是可以不一样的。今年有什么营销玩法呢&#…...
【Java学习笔记】10.条件语句 - if...else及switch case 语句
前言 本章介绍Java的条件语句 - if…else和switch case 语句。 Java 条件语句 - if…else Java 中的条件语句允许程序根据条件的不同执行不同的代码块。 一个 if 语句包含一个布尔表达式和一条或多条语句。 语法 if 语句的语法如下: if(布尔表达式) {//如果布…...
解析STM32启动过程
相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x…...
微信小程序开发自学笔记 —— 八、小程序基础库的更新迭代
小程序基础库的更新迭代 小程序基础库 小程序的运行环境是分成渲染层和逻辑层的,在渲染层可以用各类组件组建界面的元素,在逻辑层可以用各类API来处理各种逻辑,组件、API其实都是小程序基础库进行包装提供的,基础库的职责还要处…...
Mysql迁移Postgresql
目录原理环境准备操作系统(Centos7)Mysql客户端安装Psql客户端安装数据库用户空字符串处理成null导表脚本dbmysql2pgmysqlcopy测试在mysql中建表导表测试查看pg中的表原理 Mysql抽取:mysql命令重定向到操作系统文件,处理成csv文件; PG装载&a…...
关于信息安全认证CISP、PTE对比分析
CISP 注册信息安全专业人员 CISP-PTE 注册渗透测试工程师(以下简称PTE) 1 、发证机构 CISP与PTE的发证机构都是中国信息安全测评中心,政府背景给认证做背书,学员信息都在中国政府可控的机构手中; 如果想在政府、国…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
