简述什么是 Cloud Native

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

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

什么是 Cloud Native

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

Cloud Native 具有有如下特性:spring

  • 以云为基础架构架构

  • 云服务app

  • 无服务运维

  • 可扩展分布式

  • 高可用spring-boot

  • 敏捷微服务

  • 云优先

  • 等等

下图是《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),了解CI\CD和TDD,了解两个披萨,了解分布式的经常使用架构和模式等等。这里每同样都是一个庞大的课题,还好目前市面上已经有了一些资料可供学习,好比《Cloud Native 分布式架构原理与实践》,能够很是全面的指导开发者轻松入门 Cloud Native。

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

参考引用

相关文章
相关标签/搜索