简介
云原生首次由 Netflix 在 2013 AWS re:Invent 上的 “Web-scale application” 上提出。
云原生是在云上构建高可用、可扩展的 Web 级应用的蓝图。
云原生确保在快速交付新功能时,不会影响服务的可用性,从而能够快速响应客户不断变化的需求。
云计算
云计算是在由云服务商管理的计算资源上运行应用程序,从而不用我们自己购买和管理计算机硬件。
第一步往往是将单体式应用迁移到云上,这样团队就不需要管理硬件资源了。
云计算可以快速配置新的计算资源,并且轻松实现扩容。
如果仅仅将应用在云上运行并没有让它云原生。
云原生必备条件
对于应用架构,云原生应用被划分成若干小的、独立的服务,被称为微服务。
传统的服务是在一个程序中部署所有的应用功能,当规模变大时,变得很难开发、测试和部署。
通过使用云原生方法,开发者将功能拆解为若干个微服务,这些服务松耦合,通过标准 api 进行交互。
云原生服务被打包成容器
对于大型的云原生应用,需要进行容器编排。
常用的容器编排工具是 Kubernetes:
开发流程使用 DevOps
云原生由于采用了微服务架构,因此需要开发和运维团队高度的合作,同时需要对自动化开发和部署流程进行深度投入
DevOps(开发运维一体化)是一种开发实践,它强调开发团队与运维团队之间的协作、沟通与自动化,以实现云原生应用的快速且可靠交付。
Devops 的关键组成部分是 CI/CD,它能够让团队自动化软件开发和部署流程。
CI (Continuous Integration 持续集成) 指的是定期合并代码到共享仓库,同时运行自动化测试来确保代码按照预期执行。
CD (Continuous Delivery 持续交付) 指的是自动将软件部署到生产环境,通常使用自动化部署流水线来实现。
采用云原生开放标准
随着云原生的不断成熟,逐步产生了一些标准和最佳实践。
最佳实践1:采用 Kubernates
最佳实践2:采用分布式 trace 系统,它能够在请求传递的多个链路中追踪请求。
最佳实践3:采用 Service Mesh,它通常用来管理微服务中服务和服务之间的通信




















