发布时间:2023-06-01 18:00
云原生(Cloud Native)是一个组合词。我们把它拆分为云和原生两个词来看。
“云”即在线网络,我们都知道传统的应用都跑在本地服务器上,而本地部署的传统应用可能需要停机更新,且无法动态扩展等,而‘云’表示应用程序运行在分布式的云环境中,支持频繁变更,持续交付。
‘原生’表示应用程序在设计之初就考虑到了云平台的弹性和分布式特性,就是为云设计的。
简单地把云原生理解为:云原生 = 微服务 + DevOps + 持续交付 + 容器化
微服务就是一种软件架构,使用微服务架构可以将一个大型的应用程序按照功能模块拆分成多个独立自治的微服务,每个微服务仅仅实现一种功能,具有很明确的边界。
使用微服务架构能够为我们带来如下好处:
容器技术是云原生的核心技术,容器是一种相对于虚拟机来说更加轻量的虚拟化技术。能为我们提供一种可移植、可重用的方式来打包、分发和运行程序。
容器的基本思想就是将需要执行的所有软件打包到一个可执行程序包。例如,将一个 Java 虚拟机、 Tomcat 服务器以及应用程序本身打包进一个容器镜像。用户可以在基础设施环境中使用这个容器镜像启动容器并运行应用程序。
Docker是目前应用最为广泛的容器引擎,容器化为微服务提供实施保障,起到应用隔离作用,K8S是容器编排系统,用于容器管理,容器间的负载均衡,Docker和K8s都采用Go编写,(K8s全称Kubernetes,由首字母K,结尾字母s以及中间的8个字母组成,所以简称为K8s)。
Docker的出现,进了容器化时代。
容器技术好处如下
容器大大简化了云原生应用程序的分发和部署,可以说容器是云原生应用发展的基石。
DevOps ( Development & Operations ,开发和运维)是软件开发人员和 IT 运维人员之间的合作过程,是一种工作环境、文化和实践的集合,目标是高效地自动执行软件交付和基础架构更改流程。开发和运维人员通过持续不断的沟通和协作,可以以一种标准化和自动化的方式快速、频繁且可靠地交付应用。
云原生应用通常包含多个子功能组件,devops可以大大简化云原生应用从开发到交付的过程。实现了真正的价值交付。
持续交付就是不误时开发,不停机更新,是一种软件开发方法,它利用自动化来加快新代码的发布。在持续交付流程中,开发人员对应用所做的更改可通过自动化被推送至代码存储库或容器镜像仓库。