简述什么是 Cloud Native

简介: Cloud Native(云原生)是以云架构为优先的应用开发模式。目前,越来越多的企业已经在大规模开始拥抱云,在云环境开发应用、部署应用、发布应用。未来,越来越多的开发者也将采用 Cloud Native 来开发应用。

Cloud Native(云原生)是以云架构为优先的应用开发模式。目前,越来越多的企业已经在大规模开始拥抱云,在云环境开发应用、部署应用、发布应用。未来,越来越多的开发者也将采用 Cloud Native 来开发应用。本书是国内第一本 Java 领域 Cloud Native 著作。

那么为什么Cloud Native模式会越来越流行?Cloud Native与微服务有什么区别?何时选择使用Cloud Native?等等,这些问题将在本文一一解答。

什么是 Cloud Native

Cloud Native (国内译为“云原生”),最早是 Matt Stine 提出的一个概念。与微服务一样,Cloud Native 并不是一种具体的技术,而是一类思想的集合,包括DevOps、持续交付(Continuous Delivery)、微服务(MicroServices)、敏捷基础设施(Agile Infrastructure)、康威定律(Conways Law)等,以及根据商业能力对公司进行重组。Cloud Native 既包含技术(微服务,敏捷基础设施),也包含管理(DevOps,持续交付,康威定律,重组等)。所以,Cloud Native 也可以说是一系列Cloud技术、企业管理方法的集合。

Cloud Native 具备有以下特性:

  • 以云为基础架构
  • 云服务
  • 无服务
  • 可扩展
  • 高可用
  • 敏捷
  • 云优先
  • 等等

下图是《Cloud Native 分布式架构原理与实践》书中所罗列的 Cloud Native 云架构模式。可见 Cloud Native 体系是非常庞杂的。

Cloud Native 模式

随着云计算的不断发展,企业开始采用基础架构即服务(IaaS)和平台即服务(PaaS)服务,并利用它们构建利用云的弹性和可伸缩性的应用程序,同时也能够满足云环境下的容错性。同时,云环境更加便宜和经济,因此,未来云环境会被作为企业部署、个人开发的优先选择。Cloud Native 的出现恰逢其时, 其架构可以指导企业或者个人轻松实现云应用开发或者云部署。

Cloud Native 与微服务的关系

在“简述 Microservices(微服务)”一文中,已经对微服务的概念做了简单的论述。

微服务架构风格其本质是把大的应用拆分成为小的服务(微服务)。微服务是单一应用的形式, 因此可以独立部署和运行在其自己的进程中。微服务一般采用轻量级的机制进行通信(一般是 HTTP 资源 API),因此可以不限制技术栈。微服务是围绕业务能力来构建,因此更加聚焦业务能力,能够把握住领域边界,放置需求的蔓延。微服务其固有的特性,方便通过全自动部署工具来实现独立部署,因此非常适合在云环境中进行部署。

在 Cloud Native 中,倾向于使用微服务来构建应用。同时,Cloud Native因为是以云环境为优先的,非常适合微服务的部署和管理。

目前,业界针对微服务有非常多的成熟方案,比如Spring BootSpring Cloud等,都可以简化微服务的开发工作。这微服务方面,笔者也撰写了一些列的免费教程(https://waylau.com/books/),读者朋友可以作为参考。

为什么我们需要使用 Cloud Native?

云计算的第一个浪潮是关于成本节约和业务敏捷性,尤其是云计算的基础设施更加廉价。

很多企业倾向于使用微服务架构来开发应用。微服务开发快速,职责单一,能够更快速的被客户所采纳。同时,这些应用能够通过快速迭代的方式,得到进化,赢得客户的认可。Cloud Native 可以打通微服务开发、测试、部署、发布的整个流程环节。

云供应商为迎合市场,提供了满足各种场景方案的 API,例如用于定位的 Google Maps,用于社交协作的认证平台等。将所有这些 API 与企业业务的特性和功能混合在一起,可以让他们为客户构建独特的方案。所有这些整合都在 API 层面进行。这意味着,不管是移动应用还是传统的桌面应用都能无缝集成。所以,采用 Cloud Native 所开发的应用都且具备极强的可扩展性。

软件不可能不出故障。传统的企业级开发方式,需要有专职人员来对企业应用进行监控与维护。而在 Cloud Native 架构下,底层的服务或者是 API 都由将部署到云中,等价于将繁重的运维工作转移给了云平台供应商。这意味着客户应用将得到更加专业的看护,同时,也节省了运维成本。

因此,云是大势所趋。快来拥抱Cloud Native!

如何实现 Cloud Native

那么如何来实现 Cloud Native 呢?其实这是一个非常大的话题,比如,作为开发者,你需要了解目前市面上流行的云供应商,了解微服务、SOA,了解 HTTP 和 REST,了解领域驱动设计(DDD),了解CICD和TDD,了解两个披萨,了解分布式的常用架构和模式等等。这里每一样都是一个庞大的课题,还好目前市面上已经有了一些资料可供学习,比如《Cloud Native 分布式架构原理与实践》,可以非常全面的指导开发者轻松入门 Cloud Native。

在本文的最后也列出了一些学习资料,读者有兴趣的话,可以由点及面,慢慢扩展自己的知识体系。

参考引用

目录
相关文章
|
缓存 Java Shell
【alibaba/jvm-sandbox#06】事件监听的关键设计
介绍jvm-sandbox中事件机制的设计,通过用事件Id与事件之间的映射关系进行解耦,通过Spy类的静态方法携带事件Id进行核心事件逻辑的埋点注入
496 0
|
1月前
|
算法 NoSQL Java
Springboot3新特性:GraalVM Native Image Support和虚拟线程(从入门到精通)
这篇文章介绍了Spring Boot 3中GraalVM Native Image Support的新特性,提供了将Spring Boot Web项目转换为可执行文件的步骤,并探讨了虚拟线程在Spring Boot中的使用,包括如何配置和启动虚拟线程支持。
71 9
Springboot3新特性:GraalVM Native Image Support和虚拟线程(从入门到精通)
|
存储 缓存 分布式计算
Gluten + Celeborn: 让 Native Spark 拥抱 Cloud Native
本篇文章介绍了 Gluten 项目的背景和目标,以及它如何解决基于 Apache Spark 的数据负载场景中的 CPU 计算瓶颈。此外,还详细介绍了 Gluten 与 Celeborn 的集成。Celeborn 采用了 Push Shuffle 的设计,通过远端存储、数据重组、内存缓存、多副本等设计,不仅进一步提升 Gluten Shuffle 的性能和稳定性,还使得 Gluten 拥有更好的弹性,从而更好的拥抱云原生。
2274 4
Gluten + Celeborn: 让 Native Spark 拥抱 Cloud Native
|
Java 关系型数据库 Serverless
走向Native化:Spring&Dubbo AOT 技术示例与原理讲解
Java 应用在云计算时代面临“冷启动”慢、内存占用高、预热时间长等问题,无法很好的适应 Serverless 等云上部署模式,GraalVM 通过静态编译、打包等技术在很大程度上解决了这些问题,同时针对 GraalVM 的一些使用限制,Spring 和 Dubbo 等主流框架也都提供了相应的 AOT 解决方案。本文我们将详细分析 Java 应用在云时代面临的挑战,GraalVM Native I
206 0
走向Native化:Spring&Dubbo AOT 技术示例与原理讲解
|
存储 关系型数据库 数据库
分布式系统开发实战:CloudNative架构,Cloud Native成功案例分析
有非常多的公司在使用Cloud Native,这些公司包括国外知名企业如Amazon、Netflix等,也包括国内的知名企业淘宝。本节介绍这些企业如何从小企业转变成为Cloud Native的实践者?
|
Dubbo Java 应用服务中间件
走向 Native 化:Spring&Dubbo AOT 技术示例与原理讲解
走向 Native 化:Spring&Dubbo AOT 技术示例与原理讲解
690 1
|
SQL Java API
【java_wxid项目】【第六章】【Spring Cloud Gateway集成】
主项目链接:https://gitee.com/java_wxid/java_wxid 项目架构及博文总结:
|
Java Spring
《Spring Cloud Alibaba - 重新定义 Java Cloud-Native》电子版地址
Spring Cloud Alibaba - 重新定义 Java Cloud-Native
92 0
《Spring Cloud Alibaba - 重新定义 Java Cloud-Native》电子版地址
|
Java 程序员 网络安全
java版gRPC实战之七:基于eureka的注册发现
之前的服务端信息都是在配置文件中写入的,是时候用上注册中心了
326 0
java版gRPC实战之七:基于eureka的注册发现
下一篇
无影云桌面