对“云原生”的初印象

一、背景

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

二、云原生的概念了解

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

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

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

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

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

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

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

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

三、用大白话再解释一遍

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


1. 像搭积木一样做软件

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

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


2. 一键打包,随处运行

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

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


3. 自动伸缩,省心省钱

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

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


4. 开发运维一条龙

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

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


5. 天生为云而生

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

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


一句话总结:

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

四、部署一套云原生架构

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

相关推荐
张张张3124 分钟前
4.2学习总结 Java:list系列集合
java·学习
KATA~7 分钟前
解决MyBatis-Plus枚举映射错误:No enum constant问题
java·数据库·mybatis
桃子酱紫君8 分钟前
华为配置篇-BGP实验
开发语言·华为·php
QTX1873020 分钟前
JavaScript 中的原型链与继承
开发语言·javascript·原型模式
xyliiiiiL22 分钟前
一文总结常见项目排查
java·服务器·数据库
shaoing24 分钟前
MySQL 错误 报错:Table ‘performance_schema.session_variables’ Doesn’t Exist
java·开发语言·数据库
The Future is mine1 小时前
Python计算经纬度两点之间距离
开发语言·python
Enti7c1 小时前
HTML5和CSS3的一些特性
开发语言·css3
腥臭腐朽的日子熠熠生辉1 小时前
解决maven失效问题(现象:maven中只有jdk的工具包,没有springboot的包)
java·spring boot·maven
爱吃巧克力的程序媛1 小时前
在 Qt 创建项目时,Qt Quick Application (Compat) 和 Qt Quick Application
开发语言·qt