什么是云原生架构
云原生架构包含了一组应用的模式,用于帮助企业快速,持续,可靠,规模化地交付业务软件。云原生架构由微服务架构,DevOps 和以容器为代表的敏捷基础架构组成。
一、云原生介绍
CNCF给出了云原生应用的三大特征:
1.容器化封装:以容器为基础,提高整体开发水平,形成代码和组件重用,简化云原生应用程序的维护。在容器中运行应用程序和进程,并作为应用程序部署的独立单元,实现高水平资源隔离。
2.动态管理:通过集中式的编排调度系统来动态的管理和调度。
3.面向微服务:明确服务间的依赖,互相解耦。
云计算提供了对无限IT资源的按需付费的商业模式,但从技术架构上看,还需要一个用于构建和运行云原生应用的平台,来实践敏捷开发、DevOps、容器编排,微服务和容器化等理论和方法。从业务角度看,云原生是一种针对IT资源的按需付费的商业模式;
从技术角度看,云原生分两大部分,一部分是遵循微服务化和容器化原则的云原生应用,另一个部分是用于构建和运行云原生应用的云原生平台。
云原生应用和云原生平台,共同构成了一个云原生的完整体系,在这个体系上,可以实践敏捷开发、DevOps、容器编排,微服务和容器化等理论和方法。
二、云原生应用
1.微服务
是将大型应用作为小型服务集合进行开发的架构方法,其中每个服务都可实现业务功能,在自己的流程中运行并通过 HTTP API 进行通信。每个微服务都可以独立于其它服务进行部署、升级、扩展和重新启动,通常作为自动化系统的一部分运行,可以在不影响最终客户的情况下频繁更新正在使用中的应用。
最佳实践:
Spring Boot
Spring Cloud
Jhipster
2.容器化
与虚拟机相比,容器能同时提供更好的效率和启动速度。每个容器都具有唯一的可写文件系统和资源配额。创建和删除容器的开销较低,在单个虚拟机上能通过容器化充分利用物力资源,这使的容器成为部署微服务的完美工具。
最佳实践:
Docker Image
OCI