1.1 云原生应用
1.1.1 什么是云原生应用
传统的软件开发流程是瀑布式的,开发周期比较长,并且如果有任何变更,都要重新走一遍开发流程。在商场如战场的今天,软件一个版本推迟发布可能到发布时这个版本在市场上就已经过时了;而竞争对手很可能由于在新软件发布上快了一步就抢占了客户和市场。
相比于传统应用,云原生应用非常注重上市速度。云原生应用是独立的、小规模松散耦合服务的集合,旨在充分利用云计算模型提高应用发布速度、应用灵活性和应用代码质量,并降低应用部署风险。虽然名字中包含“云原生”三个字,但云原生的重点并不是应用部署在何处,而是如何构建、部署和管理应用。通过表1-1,我们可以比较清晰地看出云原生应用与传统应用之间的差别。
表1-1 云原生应用与传统应用的差别
1.1.2 云原生应用开发和部署的四大原则
云原生应用所构建和运行的应用,旨在充分利用基于四大原则的云计算模型。
·基于服务的架构:基于服务的架构(如微服务)提倡构建松散耦合的模块化服务。采用基于服务的松散耦合设计,可帮助企业提高应用创建速度,降低复杂性。
·基于API的通信:即通过轻量级API来进行服务之间的相互调用。通过API驱动的方式,企业可以通过所提供的API在内部和外部创建新的业务功能,极大提升了业务的灵活性。此外,采用基于API的设计,在调用服务时可避免因直接链接、共享内存模型或直接读取数据存储而带来的风险。
·基于容器的基础架构:云原生应用依靠容器来构建跨技术环境的通用运行模型,并在不同的环境和基础架构(包括公有云、私有云和混合云)间实现真正的应用可移植性。此外,容器平台有助于实现云原生应用的弹性扩展。
·基于DevOps流程:采用云原生方案时,企业会使用敏捷的方法,依据持续交付和DevOps原则来开发应用。这些方法和原则要求开发、质量保证、安全、IT运维团队以及交付过程中所涉及的其他团队以协作方式构建和交付应用。
在了解了云原生应用开发和部署的四大原则后,我们接下来介绍云原生应用的构建之路。