概念
原生是指构建和运行应用程序以利用云交付模型提供的分布式计算。云原生应用程序的设计和构建旨在利用云提供的规模、弹性、弹性和灵活性。 根据云原生计算基金会 (CNCF) 的定义,云原生技术使组织能够在公共云、私有云和混合云中构建和运行可扩展的应用程序。容器、服务网格、微服务、不可变基础设施和声明式应用程序编程接口 (API) 等特性最能说明这种方法。 这些功能使松散耦合的系统具有弹性、可管理和可观察性。它们允许工程师以最小的努力频繁地进行高影响的更改。
CNCF Cloud Native Definition v1.0
Approved by TOC: 2018-06-11
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
解释
云原生是关于速度和敏捷性的。业务系统正在从支持业务能力演变为加速业务速度和增长的战略转型武器。立即将新想法推向市场势在必行。
同时,业务系统也变得越来越复杂,用户要求越来越高。他们期望快速响应、创新功能和零停机时间。性能问题、反复出现的错误和无法快速行动不再是可以接受的。您的用户将访问您的竞争对手。云原生系统旨在拥抱快速变化、大规模和弹性。
云原生支柱
云原生的速度和敏捷性源于许多因素。最重要的是云基础设施。

云:云原生系统充分利用了云服务模型。
Modern design:将如何设计云原生应用程序?你的建筑会是什么样子?会遵守哪些原则、模式和最佳实践?哪些基础设施和运营问题很重要?
Microservices:云原生系统采用微服务,这是一种用于构建现代应用程序的流行架构风格。

Containers:在任何云原生对话中听到容器这个术语是很自然的。
Backing services:云原生系统依赖于许多不同的辅助资源,例如数据存储、消息代理、监控和身份服务。
Automation:云原生系统采用微服务、容器和现代系统设计来实现速度和敏捷性。
云原生设计和传统设计
传统的单片设计:

云原生设计:

传统的企业应用程序是使用不太灵活的软件开发方法构建的。开发人员通常在发布大量软件功能以供测试之前进行工作。因此,传统的企业应用程序需要更长的部署时间,而且无法扩展。
云原生应用程序使用协作方法,并且在不同平台上具有高度可扩展性。开发人员使用软件工具在云原生应用程序中大幅度实现构建、测试和部署过程的自动化。可以立即设置、部署或复制微服务,这是传统应用程序无法实现的操作。
好处
提高效率
云原生开发带来了 DevOps 和持续交付(CD)等敏捷实践。开发人员使用自动化工具、云服务和现代设计文化来快速构建可扩展的应用程序。
降低成本
通过采用云原生方法,公司不必投资于昂贵的物理基础设施的采购和维护。这样可以长期节省运营支出。
确保可用性
云原生技术使公司能够构建弹性强且高度可用的应用程序。功能更新不会导致停机,公司可以在旺季纵向扩展应用程序资源,以提供积极的客户体验。
什么是云原生应用程序开发?
云原生应用程序开发描述了开发人员如何以及在何处构建和部署云原生应用程序。文化转型对于云原生开发非常重要。开发人员采用特定的软件实践来缩短软件交付时间,并提供满足不断变化的用户期望的准确功能。下面给出了一些常见的云原生开发实践。
-
持续集成
持续集成(CI)是一种软件实践,在这种实践中,开发人员可以频繁地将更改集成到共享代码库中,而不会出错。
-
持续交付
持续交付(CD)是一种支持云原生开发的软件实践。借助 CD,开发团队可确保微服务随时准备部署到云中。
-
开发运维
DevOps 是一种改善开发和运营团队协作的软件文化。
-
无服务器
无服务器计算是一种云原生模式,云提供商完全管理底层服务器基础设施。开发人员之所以使用无服务器计算,是因为云基础设施会自动扩展和配置以满足应用程序要求。开发人员只需为应用程序使用的资源付费。当应用程序停止运行时,无服务器架构会自动移除计算资源。
最近看到"Spring Boot 3.0.0-M5 原生支持"发布,记录一下什么是云原生。
内容参考微软和亚马逊的关于云原生的介绍。
网友评论