这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
1 架构发展历程
单体应用:原始氏族时代,氏族内部有简单分工,氏族之间没有联系.
分布式架构:封建社会,每个家庭自给自足,家庭之间有少量交换关系.
SOA架构:前工业时代,企业提供各种成品服务,我为人人,人人为我,相互依赖.
微服务架构:后工业时代,有些企业聚焦提供水电煤等基础设施服务,其他企业在之上提供生活服务,依赖有层次.
2 企业级后端架构
2.1 云计算架构
2.1.1 私有云
私有云主要为企业组织内部提供云服务,不对公众开放 ,在企业的防火墙内工作,并且企业IT人员能对其数据、安全性和服务质量进行有效地控制。与传统的企业数据中心相比,私有云可以支持动态灵活的基础设施,降低IT架构的复杂度,使各种IT资源得以整合和标准化。
2.1.2 公有云
公有云一般可通过 Internet 使用。可能是免费或成本低廉的。这样的云有很多实例,可在当今整个开放的公有网络中提供服务。外部用户通过互联网访问服务,并不拥有云计算资源,意义在于可以以低廉的价格,提供有吸引力的服务给终端用户,创造新的业务价值。
在公有云中,用户不清楚与其共享和使用资源的还有其他哪些用户,整个平台是如何实现的,甚至无法控制实际的物理设施。
2.1.3 混合云
混合云是指公有云+私有云,即:将企业的IT分成两部分,分别部署到两朵云上。
通常,企业会将公开访问的应用部署到公有云上来降低成本,而将安全性要求更高、更关键或敏感的核心应用部署到自建的私有云上。
2.2 云原生架构
云原生架构,是一种创新的软件开发方法,专为充分利用云计算模型而设计。它使组织能够使用微服务架构将应用程序构建为松散耦合的服务,并在动态编排的平台上运行它们。因此,基于云原生应用程序架构构建的应用程序是可靠的,可提供规模和性能,并缩短上市时间。
传统的软件开发环境依赖于由单体架构驱动的所谓“瀑布”模型,其中软件是按顺序开发的。
- 设计师准备产品设计以及相关文件。
- 开发人员编写代码并将其发送给测试部门。
- 测试团队运行不同类型的测试来识别错误并衡量云原生应用程序的性能。
- 发现错误时,会将代码发送回开发人员。
- 代码成功通过所有测试后,将部署到测试生产环境并部署到实时环境。
如果您必须更新代码或添加/删除功能,则必须重新完成整个过程。当多个团队在同一个项目上工作时,相互协调代码更改是一个很大的挑战。它还限制他们使用单一的编程语言。此外,部署大型软件项目需要建立庞大的基础架构以及广泛的功能测试机制。整个过程效率低下且耗时。
由微服务架构增强的云原生应用程序利用高度可扩展、灵活和分布式的云特性,在持续交付环境中生产以客户为中心的软件产品。云原生架构的显著特点是它允许您抽象基础架构的所有层,例如数据库、网络、服务器、操作系统、安全性等,使您能够使用脚本独立地自动化和管理每一层. 同时,您可以使用代码立即启动所需的基础架构。因此,开发人员可以专注于向软件添加功能和编排基础架构,而不必担心平台、操作系统或运行时环境。