1.简介

云原生:是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(CloudNative)是一个组合词,Cloud + Native

  • Cloud 表示应用程序位于云中,而不是传统的服务器中;
  • Native 表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳的姿势运行,充分利用和发挥云平台的弹性+分布式优势。

云原生一直在发展变化中,没有确切的定义,我们通常将云原生定义为四要素:微服务 + DevOps + 持续交付 + 容器

总而言之,符合云原生架构的应用程序应该是:

  • 基于微服务架构提高灵活性和可维护性,
  • 借助敏捷方法、DevOps支持持续迭代和运维自动化,
  • 采用开源堆栈(K8s + Docker)进行容器化
  • 利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

2.云元素的四要素

在这里插入图片描述

  • 微服务:几乎每个云原生的定义都包含微服务,跟微服务相对的是单体应用。微服务的理论基础是康威定律,指导服务怎么切分,大概意思是组织架构决定产品形态。

    微服务架构的好处就是按功能切分之后,服务解耦,内聚更强,变更更易;另一方面也可以根据DDD来划分服务。

  • DevOps:这是个组合词,Dev + Ops,就是开发和运维合体,不像开发和产品,经常刀刃相见,实际上 DevOps 应该还包括测试,DevOps 是一个敏捷思维,是一个沟通文化,也是组织形式,为云原生提供持续交付的能力。

  • 持续交付:是不误时开发,不停机更新,小步快跑,反传统瀑布式开发模型,这要求开发版本和稳定版本并存,需要很多流程和工具支撑。

  • 容器化:Docker 是应用最为广泛的容器引擎,在思科、谷歌等公司的基础设施中大量使用,是基于 LXC 技术。容器化为微服务提供了实施保障,起到应用隔离作用,K8S是容器编排系统,用于容器管理,容器间的负载均衡,由谷歌开发,Docker 和 K8S 都是使用 Go语言 编写的,是非常好用的工具。

    (补充:LXC(Linux Containers)是一种基于Linux内核的容器化虚拟化技术。它允许在一个主机上运行多个相互隔离的Linux系统和应用程序实例。)

整理完毕,完结撒花~ 🌻





参考地址:

1.【云原生-介绍】到底什么是云原生?下一个内卷?https://blog.csdn.net/u010800804/article/details/120428072

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐