对“云原生”的初印象

一、背景

最近因为在工作中以及一些技术博客中听的比较火的一个关键词 "云原生",于是产生了好奇,云原生到底是什么东西?自己对云原生也是一个纯小白,于是带着这个问题去好好了解一下,什么是"云原生"。

二、云原生的概念了解

云原生是一种新的软件开发和部署方法 ,它的目标是在云计算环境中构建和运行可扩展、弹性、可观测和可维护的应用程序。这种方法的核心是将应用程序设计为弹性和可扩展的微服务,并将它们部署在容器中,以便于管理和快速部署。云原生应用程序通常使用现代的开发、部署和自动化工具,如DevOps、持续交付和自动化测试,以实现高效的开发和部署过程。 云原生的设计理念与云计算技术密切相关,它可以充分利用云计算提供的资源池、弹性扩展和自动化管理等特性,从而提高应用程序的可靠性、可扩展性和灵活性,并降低开发和部署的成本。云原生应用程序通常具有更好的性能、更高的可用性和更好的用户体验,是云计算时代的主流应用开发和部署方式。

我们来看看搜索引擎给的云原生的定义,其实对于新手小白来说是比较抽象,包括我自己看的也是云里雾里,我们试着来拆解一下云原生

(1)它是一种软件开发和部署方法,说明它并不是一种技术,而是一种技术体系,在这种技术体系中,目的是为了构件和运行一套可扩展性、弹性、可观测(监控体系)、可维护的应用程序

(2)它的核心是微服务,以微服务进行开展,这个对于Java程序猿还好理解,我们从一开始的单体架构,到集群架构,再到SOA架构,又到微服务架构,本质上其实就是提升自身能够支持更大的用户量以及更高的并发量

(3)具备持续部署,持续交付的能力,我们程序猿写完代码,是不是要把代码打包,以及部署, 如当代比较主流的DevOps技术体系以及容器化技术,可快速的伸缩容。

(4)利用云计算能力对应用程序进行赋能、弹性扩展以及应用监控,提升应用程序的可靠性、可扩展性和灵活性。

(5)通用化技术体系降低开发和部署的成本

这个时候,不知道小伙伴们是否理解,文字的表述能力是比较晦涩,这个时候在我的脑海有一张图,如下所示:这仅仅还是比较简单的云原生架构

三、用大白话再解释一遍

云原生的关键特点可以用更通俗的方式总结如下:


1. 像搭积木一样做软件

  • 模块化设计:把大软件拆成一个个独立的小功能(微服务),每个小功能只管自己的事,互不影响。

  • 灵活拼装:就像乐高积木,需要什么功能就组合什么模块,方便修改和升级。


2. 一键打包,随处运行

  • 容器化:把每个小功能连同它的运行环境一起打包(比如集装箱),装到哪都能用,不再担心"我电脑能用,你电脑用不了"。

  • 快速启动:像快递包裹一样,拆开就能用,几秒就能启动一个服务。


3. 自动伸缩,省心省钱

  • 想加就加,想减就减:人多了自动加服务器(比如双十一抢购),人少了自动缩容,不浪费资源。

  • 故障自愈:服务器坏了能自动换新的,用户完全感觉不到。


4. 开发运维一条龙

  • 自动化流水线:代码写完自动测试、自动发布,不用手动熬夜加班。

  • 随时更新:新功能可以像手机APP一样随时更新,用户无感知。


5. 天生为云而生

  • 用云如用水电:直接利用云计算的资源池,要多少算力随时取用,按量付费。

  • 跨云兼容:不依赖某一家云厂商,想搬家就搬家。


一句话总结:

云原生就是让软件像"智能机器人"------模块化设计、自动伸缩、快速迭代,天生适合云环境,省钱省力还抗折腾!

四、部署一套云原生架构

讲那么多,还不如自己上手玩一遍,后续有空需要搭建一套原云生架构,再完善下此博客,共勉共勉!

相关推荐
007php00712 分钟前
Docker、Ollama、Dify 及 DeepSeek 安装配置与搭建企业级本地私有化知识库实践
运维·服务器·开发语言·后端·docker·容器·云计算
众乐乐_200817 分钟前
JVM栈帧中|局部变量表、操作数栈、动态链接各自的任务是什么?
java·开发语言·jvm
魏翾蒨27 分钟前
VBA语言的数据可视化
开发语言·后端·golang
致奋斗的我们1 小时前
项目:利用rsync备份全网服务器数据
linux·运维·服务器·开发语言·github·rsync·openeuler
m0_748239331 小时前
深入解析Spring Boot中的@ConfigurationProperties注解
java·spring boot·后端
Bluesonli2 小时前
第 9 天:UE5 物理系统 & 碰撞检测全解析!
开发语言·学习·游戏·ue5·虚幻·unreal engine
魏翾蒨2 小时前
PHP语言的数据库交互
开发语言·后端·golang
关关钧2 小时前
【R语言】卡方检验
开发语言·r语言
q567315232 小时前
无法在Django 1.6中导入自定义应用
android·开发语言·数据库·django·sqlite
RangoLei_Lzs2 小时前
C++性能优化—AI润色版
开发语言·c++·性能优化