关键字: [Amazon Web Services re:Invent 2024, 亚马逊云科技, Microservices, Right-Sizing Microservices, Business Context, Operational Complexity, Service Granularity, Value Mapping]
微服务的心智模型导致一些开发者过分强调他们系统中服务的数量。在本次讨论中,我们将学习如何更好地权衡服务的大小、范围和数量,并考虑现实环境中的实际情况,在服务消费配置/角色与服务规模、部署和运维复杂性之间取得平衡。正确处理这些因素可以简化系统的实现、部署和运维。它允许团队使用真实数据来驱动服务拆分,并根据观察到的瓶颈和扩展需求让服务自然演化。
以下是小编为您整理的本次演讲的精华。
在现代软件架构领域,微服务概念获得了广泛关注,承诺敏捷性、创新性和弹性。然而,正如Todd Golding在亚马逊云科技 re:Invent 2024大会上精辟阐述的那样,实现微服务真正价值的道路并非一刀切的方法。相反,它需要对组织的独特环境有深入的理解,并采用数据驱动的方法来权衡这些服务的规模。
Golding与微服务的历程可以追溯到这种架构范式的早期,见证了它的兴起和后来的广泛采用。他回忆起当时提及微服务会引起困惑,这与现在它已成为现代应用程序开发的基石形成鲜明对比。然而,在这种快速采用的同时,Golding观察到了一种令人担忧的趋势——组织在没有完全理解应该塑造其实施的背景因素的情况下,盲目地采用微服务。
展开剩余88%Golding感叹道:“我看到一些组织采用了微服务的方法论,接受了微服务的价值主张,然后照搬了别人的做法,照搬了所谓良好微服务架构的示例,然后就开始在组织内部大肆推行,问东问西,我们的微服务在哪里?我们在做什么?我们如何复制其他实施中的种种优点?”他强调了盲目复制模式而不考虑组织独特情况的弊端。
Golding的核心观点在于,虽然微服务背后的原则是合理的,但这些服务的大小和粒度应该根据组织的具体需求进行调整。“我觉得在某种程度上,我们在做什么以及为什么要这样做,以及适合我组织的微服务风格的这种背景意义有些丢失了,”他断言,强调了背景意识的重要性。
Golding的观察源于他与那些陷入不合适的微服务架构后果的组织的接触。“我仍然发现,当我走进这些组织时,他们已经构建了大量基于微服务的解决方案,但现在又在解构它们,因为它们为组织增加了太多复杂性,或者他们没有看到预期的价值,他们所做的权衡与他们看到的价值并不相符,”他分享道,强调了需要采取更加细致入微的方法。
为了应对这种复杂性,Golding引入了“价值图”的概念——一种基于四分位的方法,根据业务关键性、吞吐量和变更频率,可视化微服务的潜在价值。处于高价值象限的服务,具有高业务关键性、高吞吐量和频繁变更的特点,是更细粒度微服务的绝佳候选者。相反,处于低价值象限的服务,具有适中的扩展特征和不频繁的变更,可能会从更粗粒度的方法中获益。
Golding解释道:“在y轴的顶部,这是我们最关键的业务运营所在,这是我们需要高吞吐量的地方,这是系统需要高效快速扩展的地方,因为它必须能够快速做出反应和响应。这正是微服务的最佳切入点,因为我们想充分利用高效扩展、本地化弹性等微服务架构的所有优点。”他阐述了价值图坐标轴背后的理念。
然而,Golding的方法不仅仅是分类,他还深入探讨了影响微服务规模的因素。规模效率是一个关键考虑因素,包括服务对需求波动作出水平和垂直扩展的能力。“如果你看左边这个服务,它包含了所有这些操作,但其中一个操作遭到了猛烈的冲击。为了让这一部分服务获得更多的扩展能力,唯一的办法就是为整个服务添加更多的扩展单元,即使服务的其他部分几乎没有被使用,但为了让这一维度的服务扩展,我不得不大规模扩展,这可能导致扩展效率低下,”Golding解释道,强调了在负载分布不均的情况下,粗粒度服务可能存在的低效问题。
存储扩展是另一个关键因素,它解决了在微服务架构中管理数据的挑战。Golding生动地描绘了这种情况:“如果我有这个订单微服务,它是一个相对粗粒度的服务,运行在某些存储计算资源上,比如RDS或其他服务,我已经根据这个环境的大小来确定了RDS实例的大小,即计算资源的大小。而在另一边,我在这个粗粒度模型中决定了所有这些不同类型的数据。”他强调了考虑底层存储服务及其有效扩展能力的重要性,可能需要将服务分解以实现最佳存储扩展。
容错性是构建弹性系统的基石,Golding也强调了这一点。“这就是所谓的舱壁模型,我们谈论的是船只,船只有一系列舱壁,如果船只受到撞击并在舱壁上留下一个洞,只有那个舱壁会进水,但不会让整艘船沉没。我们希望将同样的模型应用于我们对微服务的一切思考中,选择一种粒度和大小,如果某个服务发生故障,我们可以采用回退机制,实施其他技术来防止整个系统瘫痪,”他解释道,强调了权衡服务规模以实现有效故障隔离的重要性。
性能瓶颈是软件系统中一个永恒的挑战,Golding也对此进行了阐述。“然后就是显而易见的性能瓶颈问题了,对吧?我遇到了这个瓶颈,但如果我有这个大型服务,我知道这个服务的SLA根本无法满足需求。这是否是一个将其分解为不同微服务的机会?当然,这只是微服务演化的一个经典案例,但我们也必须承认,一些服务的规模在过程中会发生变化,”他指出,微服务通过分解可能有助于缓解性能瓶颈。
Golding的方法还考虑了微服务架构带来的运营复杂性。“但你也会看到一些组织会说,‘我们有多少个代码库?我们如何管理跨库的版本控制?’随着微服务的爆炸式增长,即使在DevOps领域,团队也会开始说,’哇,这里有太多的移动部件了,每次我们添加更多服务时,感觉都变得更加沉重了’,”他警告说,强调了在获取微服务优势与引入的运营开销之间保持平衡的必要性。
在整个演讲中,Golding倡导了一种渐进式的微服务方法,从粗粒度服务开始,根据运行系统的实时洞察和数据,逐步将它们分解为更小的微服务。“对我来说,这种渐进式模型的优势就在于此,因为在现代化的过程中,我们肯定不希望一开始就全部分解为微服务,然后一次性发布。我们有一个遗留的单体应用,我们使用了绞杀模式,我们看到很多人在讨论如何从系统中抽取出一部分服务,我的系统的一部分运行在这些较小的服务中,其余部分仍在单体应用中运行,然后我只需不断迭代,”他解释道,强调了采用微服务需要采取迭代、数据驱动的方法。
Golding强调了对系统进行检测以收集性能配置文件和其他指标的重要性,这些指标可以为微服务的权衡提供依据。“对我来说,这些都应该融入到你的运营经验中。我觉得这不仅仅是架构师在一旁做的事情,他们只是在查看数据,试图问自己服务规模是否合理。运营团队也应该对服务规模有切身利益。他们应该关注是否遇到了问题、挑战、扩展问题,而微服务往往就是问题的症结所在,分解可能会带来瓶颈或扩展问题。我希望这一点能够以一种让运营团队思考的方式呈现出来。他们不会主导分解的过程,但他们仍然可以提供数据,告诉你这里存在挑战,”他断言,强调了架构师和运营团队之间协作、数据驱动的方法的重要性。
在整个演讲中,Golding一再重申了在微服务架构方面,上下文和数据驱动决策的重要性。他警告不要追逐拥有大量微服务的“闪亮物体”,而是鼓励组织专注于实现价值并最小化复杂性。“不要追逐闪亮物体,对吧?不要试图成为拥有200个、500个或者自豪地宣称自己的架构拥有多少微服务的公司。追求价值,明白这个权衡故事没有绝对答案。我无法告诉你一个公式,哪些应该小,哪些应该大,它们应该有多大或多小。这一切都必须由上下文驱动,”他强调,突出了细致入微、以上下文为导向的方法的重要性。
Golding的观点引起了观众的共鸣,为经常讨论的微服务主题带来了一种新鲜视角。他的见解揭示了权衡这些服务所固有的复杂性,强调了对组织独特环境的整体理解,以及采用数据驱动的决策方法的必要性。
随着软件行业不断发展,Golding所倡导的原则无疑将塑造组织处理微服务架构的方式。通过融入上下文、数据驱动决策和进化思维,组织可以驾驭微服务的复杂性,发挥其真正潜力,实现这些架构范式所承诺的敏捷性、创新性和弹性。
总之,Todd Golding在亚马逊云科技 re:Invent 2024大会上的演讲为经常讨论的微服务主题提供了一种细致入微的视角。他强调了根据组织的独特环境来权衡这些服务的重要性,而不是盲目地遵循一刀切的方法。Golding引入了“价值映射”的概念,这是一种基于四象限的方法,根据业务关键性、吞吐量和变更频率来可视化微服务的潜在价值。
他深入探讨了影响微服务大小的因素,如规模效率、存储扩展、容错能力、性能瓶颈和运营复杂性。Golding倡导了一种渐进式方法,从粗粒度服务开始,根据运行系统的实时洞察和数据逐步将其分解为更小的微服务。
在整个演讲过程中,Golding强调了对系统进行检测以收集性能概要和其他指标的重要性,这些指标可以为微服务的权衡提供信息。他警告不要追逐拥有大量微服务的“闪亮物体”,而是鼓励组织专注于实现价值并最小化复杂性。
Golding的观点引起了观众的共鸣,为经常讨论的微服务主题带来了一种新鲜视角。他的见解揭示了权衡这些服务所固有的复杂性,强调了对组织独特环境的整体理解,以及采用数据驱动的决策方法的必要性。
随着软件行业不断发展,Golding所倡导的原则无疑将塑造组织处理微服务架构的方式。通过融入上下文、数据驱动决策和进化思维,组织可以驾驭微服务的复杂性,发挥其真正潜力,实现这些架构范式所承诺的敏捷性、创新性和弹性。
下面是一些演讲现场的精彩瞬间:
Todd Golding是亚马逊云科技的一位拥有11年经验的解决方案架构师,他介绍了自己的角色,即帮助组织在亚马逊云科技上构建和交付SaaS解决方案。
演讲者警告不要盲目采用微服务,而应考虑其实际价值和必要性,并举例说明一个组织在没有适当理由的情况下确定了200个潜在的微服务。
从系统构建、运行和工作的实时洞察中获得的反馈,对于优化服务分解和重组以实现最大业务价值是非常宝贵的。
亚马逊云科技的现代化演进方法允许组织逐步从单体遗留系统过渡到微服务架构,从而实现更快的上市时间和更好的业务价值实现。
强调构建微服务性能概要的重要性,以获得有意义的洞察并评估它们是否实现了目标、规模适当并提供了预期价值。
强调在确定微服务的正确大小和分解时,基于上下文和数据驱动决策的重要性,而不是盲目遵循趋势或僵硬的公式。
演讲者Todd Golding是一位亚马逊云科技解决方案架构师,他讨论了根据组织的具体情况和需求适当调整微服务规模的重要性。他认为,盲目地将系统分解为大量小型微服务的传统方法可能会导致不必要的复杂性和运营挑战。相反,他倡导采用更加深思熟虑和数据驱动的方法来确定服务的适当粒度。
Golding强调了三个关键点:1)调整微服务规模时应考虑运营复杂性、弹性特征、业务压力、发布频率和团队结构等因素。2)组织应创建一个“价值映射”,将服务粒度与关键业务运营、吞吐量需求和部署频率相匹配。3)调整微服务规模的过程应该是渐进式的,服务应根据实际数据和运行系统的反馈来赢得更细粒度的权利。
最后,Golding敦促组织不要追逐大量微服务的“闪亮物体”,而应专注于通过根据特定情况调整服务分解来实现价值。他强调了收集运营数据的见解并随时间采用迭代方法来正确调整微服务规模的重要性。
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。做为全球生成式AI前行者,亚马逊云科技正在携手广泛的客户和合作伙伴,缔造可见的商业价值 – 汇集全球40余款大模型,亚马逊云科技为10万家全球企业提供AI及机器学习服务,守护3/4中国企业出海。
发布于:新加坡瑞和网配资提示:文章来自网络,不代表本站观点。