一、云原生定义

云原生是一种构建和运行软件应用程序的现代方法,它利用了云计算的灵活性、可扩展性和弹性。云原生包括当今软件开发人员用来为公共云构建应用程序的各种工具和技术,而不是适合本地数据中心的传统架构。

构建和运行软件的云原生方法是由一群通常被称为“云中诞生”的公司开创的,例如流媒体巨头 Netflix 和 Spotify、叫车公司 Uber 和住宿预订平台 Airbnb。此后,其他寻求类似数字敏捷性和颠覆性竞争优势的公司也采用了云原生方法。

云原生计算基金会 (CNCF) 对云原生的定义更加狭隘,专注于应用程序容器化——将应用程序分解为微服务并打包在轻量级容器中,以便在各种服务器上进行部署和编排。

用 CNCF 自己的话来说:“云原生技术使组织能够在公共、私有和混合云等现代动态环境中构建和运行可扩展的应用程序。”

云原生应用程序开发通常包括将微服务、云平台、容器、Kubernetes 、不可变基础设施、声明式API 和持续交付技术与devops和敏捷方法等技术相结合。

详细的教程请参考:
https://jimmysong.io/kubernetes-handbook/
或者
https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition
或者
https://www.infoworld.com/article/3281046/what-is-cloud-native-the-modern-way-to-develop-software.html

二、通俗解释

1. 定义

关于什么是云原生的概念的争论其实还在进行,目前在业界具有广泛影响力的云原生计算基金会CNCF给出了定义,如一所示。
在这里插入图片描述

2. 技术和应用

它包含了业界当前一些热门新的技术:微服务、docker容器、DevOps、CICO
在这里插入图片描述

这些通过云云原生技术构建出来的应用被称为云原生应用 。它底层的基础架构的耦合比较轻。因此易于迁移,并且可以充分利用云所提供的能力。——因此云原生下构建的应用程序从开发、部署、管理等方面相对于传统的应用程序更加高效和便捷

3. 技术全景图

这是CNCF提供的云原生技术全景图,云原生的生态十分繁荣,涉及的技术栈庞大复杂,以下收集了和云原生相关的工具、平台和项目,并随着行业发展在不断丰富壮大。
在这里插入图片描述

4. 技术板块

这个庞大的技术体系主要分成了七大技术板块,其中有六大重要的技术值得关注:微服务、容器、无服务架构、服务网格、云和DevOps

  • 微服务: 倡导应用化整为零,将应用松散解耦,实现各个功能的独立开发和部署
  • 容器: 是一种轻量级的虚拟化技术,本质上是与系统其他部分隔开的一系列进程。
  • 无服务架构: "无服务器”并不意味着未来不在需要服务器,而是不再关注底层的服务架构,开发人员只需把关注的点放在跟业务更相关的业务逻辑的实现上
  • 服务网格: 服务网格可以看做更加智能的代理软件。在容器和微服务的基础上,通过服务网格可以让用户更精细更智能的去管理服务之间的通讯
  • 云: 云是一种提供资源的网络,是云原生技术的根基,云原生的一切是建立在云之上的。
  • DevOps: DevOps 一词的来自于Development 和 Operations 组E.突出重视软件开发人员和运维人员的沟通目作,通过自动化流程来使得软件构建,测试,发布更加快捷,频繁和可靠。

以上六大技术相互联系,其中云是其他技术的基础:

  • 为上层应用运行提供了计算网络存储等技术架构资源;
  • 容器位于云的基础架构和应用之间,解耦了应用和基础架构资源;
  • 在应用层面用户可以根据场景来选择微服务架构或者是无服务架构;
  • 在复杂的架构场景中,通过服务网格可以对服务组件的通讯进行管控;
  • 最后通过DevOps构建一个应用架构不断选代更新的正向的循环
    在这里插入图片描述
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐