一、云原生在什么背景下诞生?
随着云计算平台的成熟发展,越来越多的应用基于云端构建,随着云化的发展,云计算平台为企业解决了基础设施按需分配以及运维上的需求,但是在云环境下随着应用程序越来越庞大、功能越来越复杂、发布周期越来越短,怎么保证能够做到敏捷开发并保证其可用性呢?云原生基于此背景下被提出,围绕着云环境下构建和运行应用程序提供了一个完整的体系和方法论。
二、什么是云原生?
云原生(CloudNative)是一种构建和运行应用程序的方法,是一套技术体系和方法论。
云原生可以简单概况为:DevOps + 持续交付 + 微服务 + 容器。
云原生范畴:
方法论与原则 | 12要素、声明式API |
---|---|
流程规范 | DevOps、持续交付 |
软件架构 | 微服务、服务网格(Service Mesh)、无服务(Serverless) |
基础设施 | 容器、Kubernates |
工具集 | Prometheus、Envoy、Jaeger |
云原生与传统应用有比较明显的区别,云原生更倡导敏捷、自动化、容错,而传统应用则大多还处于人工运维阶段。
传统应用 | 云原生应用 | |
---|---|---|
架构方式 | 单体架构 | 微服务架构 |
部署方式 | 物理机(虚拟机)部署,与机器、网络资源强绑定 | 容器化部署,屏蔽硬件差异 |
运维方式 | 人工部署、运维 | 自动化部署、自动化运维 |
开发模式 | 瀑布模式开发 | 敏捷开发,DevOps、持续集成 |
扩展性 | 运维手工扩容 | 动态扩缩容 |
可用性 | 故障后可能影响业务 | 无状态,面向失败编程 |
可靠性 | 本地资源,故障率高 | 云资源,可靠性高 |
打赏