本文是系列文章的第一篇,后续文章包括
过去十年,应用的构建方式不断改变。随着应用的功能愈加丰富,并对企业运维方式带来显著影响(在许多情况下,应用就是业务本身)。一种新型架构应运而生,提供了更高的可扩展性、可移植性、弹性和敏捷性。为了支持现代应用的目标,相关基础设施也必须随之演进。Kubernetes 等平台在释放现代应用的潜力方面发挥了重要作用,其本身就是一种新的基础设施管理和服务范式。
之前围绕单体应用而建立的技能现已无法满足需求,为了帮助社区成员与时俱进,我们制作了一系列视频来让大家了解有关现代应用的核心概念。本文将重点回顾系列视频中的一些要点。
在前三个视频中,我们详细介绍了现代应用的定义。
有人可能根据名称想当然地认为,现代应用就是最新应用。但实际上,现代应用是相对于单体应用而言。单体应用由单个或区区几个部分组成,不仅部署方式僵化,而且依赖关系较弱。相比之下,现代应用包含一系列微服务。单体应用可能会将所有功能内置到一个全面服务中,而微服务则会将服务分解成多个可单独运行的较小功能。
现代应用具有 4 个主要特征。
- 可扩展性确保应用能够满足不断扩大的用户群的需求,无论是突发需求还是长期增长的需求。
- 可移植性确保应用可从它的底层环境中移植,同时仍能保持其所有功能和管理平面功能。
- 弹性确保系统内的故障无伤大体,或者将对应用用户造成的干扰降到最小。
- 敏捷性确保应用能够轻松适应代码或基础设施的快速变化。
现代应用遵循 6 项设计原则。
- 中立性支持应用在任何平台上自由运行。
- 合理利用开源软件通常有助于您快速开发应用,并在需要全面支持时采用该软件的商业版本。
- 代码定义能够提高配置的统一性,摆脱需要专业知识的僵化接口。
- 自动化 CI/CD 流程可确保快速集成和部署代码,从而在不断改进的同时,最大限度地减少和避免故障。
- 安全开发确保将应用安全防护集成到开发流程中,并在将代码部署到生产环境之前对其进行全面测试。
- 分布式存储和基础设施可确保应用不受任何物理限制,并能够让组件适得其所。
这些视频可帮助大家为了解现代应用打好基础。该系列的后续视频将定义现代应用平台的基本技术组件。