目前,越来越多的企业已经在大规模开始拥抱云,在云环境开发应用、部署应用、发布应用。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 是大势所趋
1. 云计算带来的是成本的节约和业务的敏捷性
特别是使用云计算所提供的基础设施,费用会更加低廉。随着云计算的不断发展,企业越来越倾向于使用 IaaS(基础设施即服务)和 PaaS(平
台即服务)来构建应用程序。这种应用可以利用云计算的弹性和可伸缩性,同时还能满足云环境下的容错性。
2. 很多企业倾向于使用微服务架构来开发应用
微服务开发快速、职责单一,能够更快速地被客户所采纳。同时,这些应用能够通过快速迭代的方式得到进化,赢得客户的认可。Cloud Native 可以打通微服务开发、测试、部署、发布的整个流程环节。
3. 云供应商为迎合市场,提供了满足各种场景方案的 API
例如,用于定位的 Google Maps,用于社交协作的认证平台等。将这些 API 与企业业务的特性和功能结合在一起,可以让它们为客户构建独特的方案。所有整合都在 API 层面进行。这意味着,无论是移动应用还是传统的桌面应用都能无缝集成。所以,采用 Cloud Native 所开发的应用都具备极强的可扩展性。
4. 软件不可能不出故障
传统的企业级开发方式需要有专职人员来对企业应用进行监控与维护。而在 Cloud Native 架构下,底层的服务或 API 都将部署到云中,相当于将繁重的运维工作转
移给了云平台供应商。这意味着客户应用将得到更加专业的看护,同时也节省了运维成本。
如何实现 Cloud Native
那么如何来实现 Cloud Native 呢?其实这是一个非常大的话题,比如,作为开发者,你需要了解目前市面上流行的云供应商,了解微服务、SOA,了解 HTTP 和 REST,了解领域驱动设计(DDD),了解CI\CD和TDD,了解两个披萨,了解分布式的常用架构和模式等等。这里每一样都是一个庞大的课题,还好目前市面上已经有了一些资料可供学习,比如《Cloud Native 分布式架构原理与实践》,可以非常全面的指导开发者轻松入门 Cloud Native。