一文读懂什么是云原生|推荐收藏

news2024/9/30 11:30:56

Forrester数据显示,在2021年,全球云原生应用持续上升,组织中容器和无服务器技术的使用率在一年内都增长了75%以上。

Gartner预测,到2025年,将会有超过95%的新数字工作负载被部署在云原生平台上。

“未来的软件一定是长在云上,企业也必将长在云上。”随着“上云用数赋智”成为大势所趋,云原生这一提出不到十年的概念迎来了爆炸式增长。

  01  

何为云原生

“云原生”顾名思义,就是“生在云上、长在云上”。

早在云原生概念被提出前,企业中就已有相关实践。

比如,谷歌在2004年就开始使用了容器技术,2006推出的进程容器(Process Container),就是一种具有“云原生”特征的技术实践;2009年,Netflix等厂商就开始开始启动上公有云战略,将 IT 基础架构从自己的数据中心迁移到公共云上之外,并通过微服务架构,用较小的易管理软件组件替换单体程序。

业界公认的云原生概念,是在2013年由Pivotal公司的Matt Stine首次提出的,他将其定义为一系列云计算技术和开发管理方法的合集,包括DevOps、持续交付、微服务(MicroServices)、敏捷基础设施(Agile Infrastructure)和12要素(The Twelve-Factor App)等等。

2015年,云原生领域最具话语权的组织CNCF(Cloud Native Computing Foundation)成立,该组织对云原生的最初定义主要包含三个方面:应用容器化;面向微服务架构;应用支持容器的编排调度。2018年,随着云原生生态的壮大,CNCF更新了对云原生的定义:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。

  02  

详解云原生的核心技术与架构

由此可见,云原生从诞生起便不仅仅只是一项技术或一个产品,而是一种系统化方法论和技术的集合。

经过不断地演进与发展,目前云原生的核心主要是微服务、容器、服务网格、不可变基础设施和声明式API这五大关键技术。

1.微服务

微服务区别于单体应用而生。传统的单体应用由于耦合度高、扩展性差、迭代缓慢等缺点,已无法适应移动互联时代用户体量以及访问量几何式倍增、用户需求快速变化的现状。微服务便应运而生,其本质上是对传统的单体应用根据业务领域和模块进行划分、解耦,拆分成一个一个单独部署、运行的微小应用。

例:单体销售系统重构微服务商城系统

2.容器

容器是是一种轻量级、可移植、自包含的软件打包技术,能够使应用程序在几乎任何地方以相同的方式运行。开发人员只要编写一次应用程序,无须任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上等任意位置运行。这种级别的可移动性,对于开发进程和供应商兼容性而言意义重大。

3.不可变基础设施

基础设施的不可变性是指运行服务的服务器在完成部署后,就不再进行更改。如果需要以任何方式更新,修复或修改某些内容,则会根据具有相应更改的公共镜像构建新服务器以替换旧服务器。

不可变基础架构的好处包括基础架构中更高的一致性和可靠性,以及更简单,更可预测的部署过程,它可以缓解或完全防止可变基础架构中常见的问题,例如配置漂移和雪花服务器。

4.服务网格

服务网格是指用以处理服务与服务之间通信的基础设施层。在实践中,它是一组和应用服务部署在一起的轻量级的网络代理,并且对应用服务透明。

5.声明式API

声明式API是一种能够一次处理多个写操作、具备Merge能力的API。区别于命令式API直接发出的让服务器执行的命令,声明式API声明的是期望的状态,系统将不断地调整实际状态,直到与期望状态保持一致。

基于云原生技术的一组架构原则和设计模式的集合便是云原生架构。云原生架构可以帮助企业和开发充分利用云平台所提供的平台化能力和弹性资源能力,让开发人员将精力聚焦于业务。

云原生架构的架构原则如下图所示,通过遵从这些架构原则可以让技术主管和架构师在做技术选择时不会出现大的偏差。

  03  

拥抱云原生

释放新生产力

越来越多的行业已入局云原生赛道。

根据全球企业增长咨询公司沙利文的报告,除互联网和信息服务等数字原生行业外,制造、政务、医疗等传统行业的云原生用户占比呈现较强的增长态势。据中国信通院调查,不同行业对云原生应用的核心诉求存在一定差异,细粒度、极致弹性、交付标准化、异构资源统一纳管、开放架构是企业对云原生的主要关注点。

云原生由数字化转型催生,同时,它又以其极致弹性、自动部署、开放共享、按需服务、自治管理、独立高效等特性,帮助政企数字化释放新生产力。

1、极致弹性

弹性计算是云计算的核心特征,也是云原生技术中容器的重要特征。云原生应用弹性,包括应用使用资源的弹性和应用实例弹性扩展的弹性。在单实例扩展资源遭遇瓶颈时,可以配合负载均衡机制实现容器实例的弹性扩展。如以Kubernetes为代表的容器来提供离散和可重用的功能,这些功能以良好描述的方式集成,甚至跨越多云等技术边界,这使得交付团队可以使用重复的自动化和编排来快速迭代。

2、自动部署

云原生方法远优于传统的面向虚拟化的业务流程,传统方法需要投入大量的精力来构建开发环境,以及软件交付过程中的其他不同环境。而云原生架构具备自动化和组合功能,并且依赖于可靠、经过验证和审核的已知良好流程的基础,交付十分敏捷,而不再需要人工干预重复执行。

3、开放共享

云计算可以分为IaaS、PaaS、SaaS三种类型,分别通过这三种类型实现资源共享、平台共享、应用共享。而云原生应用则是部署在IaaS或PaaS层,通过SaaS层提供开放式服务。

4、按需服务

云应用部署在云端,客户可以根据自己的需求,通过网络访问,自助使用服务,不需要联系云应用管理人员。通常会有个云应用服务目录,每个应用服务都有使用说明,通过服务目录可以找到适合自己满足自身需求的应用。

5、自治管理

云原生应用的交付一定是按照标准交付,可以在云端任何支持标准的位置部署,这样就与位置和环境无关,同时构建应用所需要的依赖包、配置文件和后端服务等都是和应用构成一个整体,实现自治管理。使用容器的好处就是可以使得应用以标准化镜像的方式交付和运行,而用微服务实现云原生应用,也正是符合这一自治原则的。

6、独立高效

云原生带来了微服务化架构,一个微服务基本是一个能独立发布的应用服务,因此可以作为独立组件升级、灰度或复用等,对整个大应用的影响也较小,每个服务可以由专门的组织来单独完成,依赖方只要定好输入和输出口即可完全开发、甚至整个团队的组织架构也会更精简,因此沟通成本低、效率高。

云原生的这些特性极大地释放了云的红利,它能帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度,让企业在竞争激烈以及疫情等不确定背景下保持一种高速迭代、持续创新的能力,成为驱动业务增长的重要引擎。

  04  

挑战并存

落地云原生的一点建议

云原生带来的不仅仅是应用的云上部署,而是意味着全新IT的重塑,包括开发模式、系统架构、部署模式、基础设施、组织文化等一系列的自动化、敏捷化演进和迭代,这些为企业的数字化转型带来了更多可能性,同时也带来了诸多挑战。

要进行全面云原生化的转型并非易事,抛开最基础的技术和资金的挑战不谈,在云原生的落地推广阶段,企业还需解决人员的思维与认知更新、新老技术如何融合、多云资源的管理、如何保障信息安全等问题。

首先是人员的思维和认知方面。目前各行业对云原生的认知尚有待完善。云原生有着庞大的技术与方法论体系,各行业的云原生应该是以更加全面的视角覆盖应用全生命周期的体系,而不只是简单的技术堆叠。而且云原生的学习成本较高,从开发阶段贯穿到运维阶段,云原生引入许多复杂、全新的技术,不只是编程语言,还有从K8S管理到各种CI/CD工具,学习难度与成本相当高。

其次是新旧技术的融合应用层面。目前许多企业倾向于对增量应用做云原生转型,但绝大部分的存量应用依旧在云下,是单体式架构。若想将所有存量应用从单体式重构成为分布式,需要按批次、慢节奏的逐步转型。而在转型分布式架构后,仍需选型应用层面的开发框架,做统一的技术栈管理。

然后是多云资源的管理方面。在公有云、私有云等多元化的云环境下,大家手头往往都有两套或者多套云资源,如何让这些割裂的云资源统一进行管理?如何基于一个平台让应用快速进行跨云迁移、发布?比如:开发在私有云,生产在公有云等这些问题伴随资源环境多元化问题会越来越突出。

最后是安全层面。云原生环境下,一些传统的安全工具无法适应新的云环境,无法有效保护跨集群、跨云的信息;此外,容器环境的快速发展迭代,也给安全保护策略的制定带来了难题;同时,虚拟化技术本身也对安全管控形成了一定的屏障。

对于要入局云原生的企业来说,首先要梳理好完整的云原生全景图,并对自身做好充分的现状分析,并基于业务目标梳理并制定平台与应用两方面的目标架构,制定可执行的分阶段的实施计划,并完善更新相应的安全保护策略与工具,从而在保障安全的前提下,将云原生的效能最大化。

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

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

相关文章

Qt第二十六章:QWidget、QMainWindow自定义标题栏

工具类(读者直接复制到项目中) class QCustomTitleBar:def __init__(self, window: QtWidgets):self.window window# 默认标题栏高度 必须设self.DEFAULT_TITILE_BAR_HEIGHT 40# 存储父类的双击事件self.mouseDoubleClickEvent_parent self.window.mo…

【数学】旋转后仍为函数图像问题

∣旋转后仍为函数图像问题NightguardSeries.∣\begin{vmatrix}\huge{\textsf{ 旋转后仍为函数图像问题 }}\\\texttt{ Nightguard Series. }\end{vmatrix}∣∣∣∣∣​ 旋转后仍为函数图像问题 Nightguard Series. ​∣∣∣∣∣​ ♣例1\clubsuit \textsf{例1}♣例1 f(x)ln⁡(x…

经典bloom算法(**布隆过滤器**)-levelDB拆分

bloom算法(布隆过滤器) 原理 先说一下什么是布隆过滤器,Bloom Filter是1970年由布隆提出的,它实际上是一个很长的二进制向量,和一系列随机值映射的函数,主要用于判断一个元素是否在一个集合中。 通常判断一个元素是否在一个集合…

Hasse diagram

In order theory, a Hasse diagram (/ˈhsə/; German: [ˈhasə]) is a type of mathematical diagram used to represent a finite partially ordered set, in the form of a drawing of its transitive reduction. Concretely, for a partially ordered set (S, ≤) one rep…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校学生宿舍管理信息系统3x4rz

做毕业设计一定要选好题目。毕设想简单,其实很简单。这里给几点建议: 1:首先,学会收集整理,年年专业都一样,岁岁毕业人不同。很多人在做毕业设计的时候,都犯了一个错误,那就是不借鉴…

記錄下用google colab 进行GPU(TPU)训练

文章目录温馨提示打开网站上传资源下载资源到google colab温馨提示 需要科学上网,没有的话可以点这个 https://shandianpro.com/#/register?codewCXwkCOU下个clashx进行 挂载 https://download.csdn.net/download/monk96/87231589 配置自行百度 打开网站 google…

Win11系统提示backgroundtaskhost.exe系统错误解决方法

Win11系统提示backgroundtaskhost.exe系统错误解决方法分享。backgroundTaskHost.exe是与Microsoft Cortana的虚拟助手相关联的关键系统进程。近期有Win11用户在电脑的使用中遇到了系统提示“backgroundTaskHost.exe – ApplicATIon Error”的错误,今天我们一起来看…

[附源码]计算机毕业设计JAVA学生考试成绩分析系统

[附源码]计算机毕业设计JAVA学生考试成绩分析系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

疫情可视化part3

前言 之前在part2中说的添加自定义主题配色已经开发完成了,除此之外我还添加了一些的3d特效。 前期文章 这是part1的文章:https://blog.csdn.net/xi1213/article/details/126824752这是part2的文章:https://blog.csdn.net/xi1213/article/…

[附源码]Python计算机毕业设计Django基于VUE的网上订餐系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【Linux】进程

1.linux操作系统要不要管理进程呢?必须要!!!!!!!!! 2.linux是如何管理大量进程的呢?先组织,再描述。 1.什么是进程 进程就是系统运行中…

WordPress批量修改数据库内文章内容文字关键字标题

WordPress网站内容标题文字一键修改,注意到了网站上很多要一个个的修改,那工作了巨大,怎么快速在数据库中用SQL命令批量替换呢? 通过数据库替换方法 1.进入宝塔面板-数据库-选择对应的数据库-管理数据库-登录进来。就可以直接对数…

2022年小美赛“认证杯”数学建模ABCD题初步分析选题建议

​ 2022年小美赛数学建模赛题已经发布: A题 翼龙是如何飞行的 B题 序列的遗传过程 C题 对人类活动进行分类 D题 是否应长期禁止野生动物贸易 总体来说,从赛题难度来看B>A>C>D,其中CD属于ICM交叉学科类赛题,难度系数相对…

腾讯云原生安全“3+1”一体化方案发布,重构云上安全防御体系

12月1日,2022腾讯全球数字生态大会上,以“安全守护,行稳致远”为主题的「云原生安全专场」顺利召开,论坛深入讨论了云原生安全的行业发展趋势、技术探索、产品创新和落地实践。 会上,腾讯安全发布了云原生安全“31”一…

java面向对象-----再谈方法

目录 方法的重载(overload) 可变个数的形参 方法参数的值传递机制 基本数据类型的参数传递 引用数据类型的参数传递 递归(recursion)方法 总结 方法的重载(overload) 重载的概念 :在同一个类中,允许存在一个以上的同名方法,只要它们的参…

基于粒子群优化的神经网络PID控制(Matlab)代码实现

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

“空间代谢组学“用于食管鳞状细胞癌早期筛查的研究

​ 代谢组学文献分享—研究背景 近几年代谢组学的研究如火如荼的开展,极大地促进了各学科的发展,如疾病诊断与治疗、营养学、环境毒理学、进化和发育及药物等;与此同时,质谱成像技术(mass spectrometry imaging, MSI…

动态规划思想

1.动态规划思想:因为计算量太大而提出的解放方式。将一件大的事情分成若干个小的事情。2.找一个最优的隐藏序列,结合动态规划思想,可以把这个隐藏序列分成多个时间步,如果每个时间步都是最优的,那么最终的这个序列就是…

软件测试流程分享

工作以来,大大小小参与的项目也有十几个了,涵盖财务类、保险类、OA办公类软件,从测试流程上看,基本也都大同小异,这里将常见的测试流程做一些梳理,供刚入行的朋友学习参考,也欢迎大家完善补充。…

GD32F30x系列ADC源码,对初学者参考价值巨大,(非常详细篇)万字源码

GD32F30x系列ADC源码【1】adc_reg.h [参考]【2】ctrl_adc.h [重点]【3】gd32f30x_dma_reg.h [参考]【4】mon_adc.h [参考 1]【5】rcu.h [参考]【6】ctrl_adc.c [重要]【7】mon_adc.c [参考1]【8】main.c [参考2]这篇文章必须配合这个连接文件一起看,即ADC手册 嵌入式…