作者 | miukoo
来源 | CSDN博客
简单认识
云原生有一个简单的理解:云指的就是云服务器,原生指的就是云服务器中自带的应用软件。这些应用软件可以高效弹性扩缩容(指的就是增加或减少服务器的数量)后,自动适配新的服务器数量环境,而不需要运维或开发做什么。
应用场景
设想一种场景:有一个电商系统,其中包括商品浏览模块、商品购物车模块、商品支付模块,每个模块一共部署了10000台服务器,共计30000台服务器。那么双11的到来了,这些服务器肯定不够用,那么怎么安排才能满足双11的需求呢?那么可以把双11活动分解成:
活动前:双11前引导用户浏览商品,并把商品添加到购物车
活动中:双11开始,引导用户直接从购物车下单购买
按照上述分解之后,活动前的访问压力就集中到商品浏览、商品购物车模块,支付模块的压力相对就较小了,那么此时是否可以把支付模块的一半服务器分配给商品浏览和商品购物车模块使用呢?答案是肯定能的。反之活动中,购物车和支付模块的压力变大,我们可以同样把商品浏览模块的一半服务器分配给购物车和支付模块使用。通过以上的合理调配,你会发现我们没有增加新服务器,也能应对高并发。
云原生雏形
上述场景如果要实现,会关注到几个关键点,其实这些就是云原生的雏形特点。
程序首选要拆分成商品浏览模块、商品购物车模块、商品支付模块——这个思想后续发展成微服务
上万台的服务器,从机房到服务器的建设是相当大的一个工程,更廉价的方式就是使用——云(基础设施)
服务器可以任意调配,从10000台缩减到5000,并变成其它模块的程序——这个就是容器化技术的表现
云原生重定义
通过上述,我们知悉微服务、基础设施、容器化是云原生的组成。其实这是不云原生的全部定义,因为云原生重定义了互联网的软件架构趋势,发展快速且广范,毫不夸张的说云原生引起了新的互联网技术革新。因此它应该具有更强的定义:
核心组成
云原生涉及的领域还在高速发展,但上图6个方面普遍是行业内共识的内容,用公式来表达既:
云原生 =
容器(Containers)+ 微服务(Microservices)+无服务(Serverless)+服务网格(Service Mesh)+持续交付/集成(DevOps)+云基础(Cloud)
云原生带来的最大好处就是:能够快速交互结果、应对业务快速需求变化;具体两者区别如下: