了解更多关于应用程序开发的未来随着应用程序变得更大和复杂,开发人员面临着让应用程序更灵活地适应变化而不损害整个应用程序完整性的挑战。答案是微服务,这是一种新的软件架构,亚马逊或 Netflix 等巨头认为它对于保持其服务的功能性和实用性至关重要。看看微服务背后的原因以及为什么会改变应用程序的构建方式。
什么是微服务
许多应用程序使用了几十年的传统语言是单体架构模式。然而,随着新应用程序变得更大和复杂,开发人员面临着软件结构的新挑战。所以他们开始寻找一种新的方式来构建应用程序,这就是微服务架构的出现。“微服务”一词是由一个软件工程师团队在 2012 年创建的,但在 2014 年变得更加流行,当时另一位知名开发人员 Mártin Fowler 在他的出版物中经常使用这个概念。
根据微服务模式的作者 Chris Richardson 的说法:“微服务是一种将应用程序构建为服务集合的架构”。换句话说,它是将应用程序分解为几个部分。微服务是一种软件开发,其中软件由小型独立服务组成,这些服务通过定义明确的 API 进行通信。这些服务的所有者是独立的小团队。微服务架构使应用程序更容易扩展和更快地开发。微服务的目标是实现复杂应用程序的高效和快速交付。作为该架构一部分的服务具有特定的特征:它们可独立部署、高度可维护和可测试、松散耦合并围绕业务能力进行组织。
为什么微服务技术如此具有革命性?
单体结构意味着应用程序的所有组件(进程)都集成在一起,并且它们作为单个服务一起执行。如果进入应用程序的进程之一有高峰需求,则必须扩展整个架构。因此,随着代码的增长,扩展单体应用程序变得更加困难。微服务技术解决了这个问题。使用微服务时,应用程序是由独立组件创建的,这些组件将应用程序的每个进程作为服务执行。
即使这些组件/微服务相互独立,它们也可以使用轻量级 API 协同工作以实现相同的任务。通过使这些服务独立运行,它们可以被更新、部署和扩展以满足应用程序特定功能的需求。微服务架构的最大优势之一是它简化了在多个应用程序之间共享相似流程的能力。例如,微服务对于云中原生应用程序的开发和优化至关重要。简而言之,微服务技术允许开发人员以更快的方式分发优质软件。
微服务设备示例
通过采用微服务,企业试图在不断要求快速部署和产品可扩展性的苛刻市场中竞争。了解微服务强大功能的一个好方法是举一些例子,说明当今一些最重要的公司如何使用它们。
亚马逊
亚马逊是最早将他的架构迁移到微服务的公司之一。对于亚马逊来说,微服务是一项关键技术,可以处理每天与其应用程序、API 甚至网站相关的数百万个请求。亚马逊工程师承认,他们目前的系统无法通过单一架构进行管理。他们记得使用单一方案来应对不断变化的流量需求是多么困难。如今,微服务架构允许亚马逊每 11.7 秒持续部署一次应用程序。
易趣
eBay 是微服务效率的另一个很好的例子。该公司的主要应用程序使用了几个必须能够每天处理数百万个请求的微服务。根据 CTO Steven Fisher 的说法,eBay 基于 1000 项必须在系统内运行的服务。通过使用微服务,eBay 可以更轻松地添加新功能、分配新的开发工作并减少不必要的依赖关系。
网飞
每天,Netflix 平均收到 10 亿次调用其不同服务的电话。有了这些数字,Netflix 积累了 30% 的互联网流量。如果没有微服务架构,Netflix 都无法容纳如此多的请求。多亏了微服务,这家流媒体巨头能够通过其视频流 API 适应 800 多种类型的设备。对于每个用户请求,Netflix API 会向不同的服务器发出另外 5 个请求,以保持服务的连续性。
微服务如何与容器一起工作
由于微服务改变了开发和交付应用程序的方式,容器成为封装微服务和简化应用程序包的参数配置、维护和管理等功能的最佳方法。当你在容器中分配微服务时,硬件性能更好,更容易协调所有服务,包括存储、网络连接和安全。容器和微服务为在云中开发原生应用程序奠定了基础。因此,这两种技术的集成有助于现有应用程序的改造和优化。容器有助于创建基础设施的可复制副本、任务自动化、节省设置大量应用程序的时间,并且它们可以更快地识别哪些组件需要预防和纠正措施。
微服务架构还是单体架构?
很难说哪种架构是最好的,因为它们都用于不同的目的并具有不同的好处。实际上,一切都取决于项目的复杂程度以及开发人员想要的方式。确实,微服务正在以多种方式改变应用程序的开发。然而,这项技术仍处于第一阶段,并且在某种程度上可能具有挑战性。例如,由于分布式部署,测试可能非常复杂。微服务需要大量内存,将应用程序碎片化到多个服务中可能会花费大量时间进行规划。这就是为什么许多人认为微服务构建一种艺术。
微服务的未来
随着物联网的兴起,由于编码、部署和扩展的灵活性,微服务似乎是大多数开发人员实施应用程序的解决方案。根据国际数据公司 (IDC) 的数据,由于速度更快、成本更低和无限增值的承诺,预计 2020 年 90% 的新企业应用程序将采用微服务。由于“最佳实践手册”将帮助开发人员实施,微服务的可用性也应该很快得到改善。此外,共存微服务和单体架构的更好环境将成为可能。专家认为,微服务将更多地参与容器化。