云计算
指托管在外部数据中心并按使用量付费提供给用户的软件基础设施。公司不必为昂贵的服务器付费并进行维护。相反,他们可以使用云提供商提供的按需云原生服务,例如存储、数据库和分析。
云原生
是在 云计算环境 中构建、部署和管理现代应用程序的软件方法。CNCF 将不可变基础设施、微服务、声明式 API、容器和服务网格列为云原生架构的核心技术。
云计算 vs 云原生
云计算 是云供应商按需提供的资源、基础设施和工具。
云原生 是一种使用 云计算模型 构建和运行软件程序的方法。
我的观点:
- 云原生依托于云计算环境
- 云原生的价值不在于搭建各种云环境,企业内再怎么搭建私有云、K8S集群、工具链等,也赶不上公有云厂商的一键运维
- 云计算的优势在于外部数据中心、按量付费、免运维、快速部署
- 而云原生的优势就是在云计算环境上、借助云计算环境上的资源、基础设施等快速运维应用
- 为了避免云计算厂商技术锁定,推荐使用云原生业界通用的技术,如Docker、K8S、Istio等
- 如银行、政府等涉密项目,可以联合云计算厂商使用 专有云环境,充分发挥云计算的优势
云原生应用程序开发
描述了开发人员如何以及在何处构建和部署云原生应用程序。开发人员采用特定的软件实践来缩短软件交付时间,并提供满足不断变化的用户期望的准确功能。一些常见的云原生开发实践包括CI、CD、Devops、Serverless。
容器(如Docker)
为更轻量的虚拟化技术,将应用打包成容器,能够保持多环境运行的一致性,快速部署迁移。K8S 可以理解为负责集群节点编排、容器编排的平台,管理集群中的部署节点、容器的部署与调度编排、容器间的访问路由编排等。
Service Mesh服务网格(如Istio)
可以简单理解为K8S容器管理平台之上的微服务管理平台,不侵入代码(跨编程语言),通过Sidecar(伴生容器)的形式将原本微服务框架中的基础功能(服务注册发现、服务路由、流量分发、熔断、限流、监控、安全等)提取到基础设施层,但额外引入的Sidecar会增加集群的资源损耗、请求延时等。
Serverless无服务器
无服务器计算是一种云原生模式,云提供商完全管理底层服务器基础设施。开发人员之所以使用无服务器计算,是因为云基础设施会自动扩展和配置以满足应用程序要求。开发人员只需为应用程序使用的资源付费。当应用程序停止运行时,无服务器架构会自动移除计算资源。