功能管理:PowerSchool 的无风险迁移和发布

演讲讲述了PowerSchool如何借助AmazonWebServices和LaunchDarkly实现软件发布流程现代化,通过功能标志管理和分阶段迁移降低风险,提升开发效率与客户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键字: [Amazon Web Services re:Invent 2023, LaunchDarkly, Feature Management, Derisk Releases, Launchdarkly, Powerschool, Migrations]

本文字数: 1500, 阅读完需: 8 分钟

视频

如视频不能正常播放,请前往bilibili观看本视频。>> https://www.bilibili.com/video/BV1BC4y1c7R2

导读

了解 PowerSchool 如何使用亚马逊云科技和 LaunchDarkly 使其软件发布流程现代化,同时减少 100,000 多行代码,为数百万用户提供无缝的客户体验,并提高开发人员的工作满意度。LaunchDarkly 还帮助 PowerSchool 避免了大爆炸式迁移的困难,并逐步将某些数据和服务迁移到 Amazon DynamoDB。现在,PowerSchool 可以在几分钟内发布新功能,同时保持良好的客户体验。在本讲座中,您将了解如何使用 LaunchDarkly 和 Amazon DynamoDB 逐步迁移到面向服务的架构和微前端,还将探讨如何使用功能标志、Amazon Lambda 和 Amazon S3 安全高效地发布功能。本讲座由亚马逊云科技合作伙伴 LaunchDarkly 为您带来。

演讲精华

以下是小编为您整理的本次演讲的精华,共1200字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。

演讲者首先提出了一个问题:为何发布软件如此具挑战性?多数工程师都明白,推出新功能或更新往往伴随着风险。可能会出现一些意外的错误或服务中断,导致客户停机时间和不满情绪。这可能迅速演变为收入损失和企业声誉受损。通常,企业会将诸多变更合并至每年一到两次的大型发布中。然而,这往往在出现问题时加剧问题,因为开发人员需要排查大量新的代码来寻找问题的源头。此外,这还会减缓创新速度,因为有价值的新功能被堵在发展通道中。因此,许多团队只能接受现状,而不引入新的工具和流程。这导致了技术债务的停滞和累积。

为了阐述这一观点,演讲者展示了一个典型的缺陷发布过程的图表。开发团队创建一个功能并启动CI/CD管道进行构建和部署。当出现不可避免的错误时,值班人员会在凌晨2点接到电话并开始紧急处理,包括参与Slack频道、回复支持票据和在周末进行诊断。随后,团队需决定是回滚该功能还是推送修复方案。无论如何,一切都将放缓。

LaunchDarkly致力于通过允许团队频繁且稳定地发布小批量代码来解决这些问题。特性标志提供了对影响范围的粒度控制,允许您将新功能针对特定用户。这将任何问题的影响范围限制在您的用户基础的5%或10%。您还可以运行由LaunchDarkly驱动的实时实验以衡量新功能是否有效。总之,这意味着开发人员能花更少的时间调试,而更多时间构建客户所需的功能。

尽管旧的模型使得开发者在与它共事的过程中感到疲惫不堪,但LaunchDarkly已经取代了其地位,成为了其中的核心组件。通过使用旗帜功能进行部署,一旦出现任何问题,就可以实现自动回滚。这样一来,就不需要度过那些令人紧张的周末紧急时刻。当扩大覆盖范围的条件成熟时,可以通过逐步扩大到更大比例的用户(如25%、50%、75%)来实现逐步扩大受众范围。团队可以自由地为不同用户定制体验。在整个过程中,他们可以通过实验来衡量每次发布的商业影响。将移动设备和网页发布统一到一个系统中后,整个流程变得更加顺畅。

为了展示这些理念在实际应用中的效果,演讲者还邀请了来自PowerSchool的首席架构师亚当·希利(Adam Hiley)分享他的团队是如何利用LaunchDarkly将关键的大型应用程序迁移到微服务架构的。PowerSchool为北美超过13,000所学校和地区的4500万名学生以及90个国家的K-12学校提供软件服务。

由于教育组织有严格的季节性活动和日程安排要求,计划外停机可能会对依赖PowerSchool工具的教师和学生造成严重干扰。因此,亚当强调,为了确保关键活动的顺利进行,高置信度、低风险的发布至关重要。

与许多其他公司一样,PowerSchool自2002年起从一个小型工程团队开始,最初采用了单体架构。随着他们发展到支持数百万用户,开发者生产力在庞大复杂的代码库的重压下逐渐减弱。随着团队规模的扩大,协调开销呈指数级增长。在评估了这些动态之后,亚当的团队决定转向更分布式、面向服务的解决方案。然而,他们希望避免引发巨大风险的“大爆炸”重写。

相反,他们制定了一个逐步迁移的蓝图,重点关注四个关键步骤:

  1. 微前端 - 将用户界面与单体应用解耦,以防止其阻碍发布。使用独立的前端服务呈现UI。

  2. 领域API - 逐步将业务逻辑提取到新的后端微服务中。这样一块一块地拆分单体应用。

  3. 数据迁移 - 借助亚马逊云科技的Lambda和Step Functions,客户可以轻松地进行基于基础的数据迁移。重新运行迁移过程以解决影响个别租户的问题变得简单。

  4. 分层发布策略 - 通过使用功能标志以受控的阶段推广新架构。从内部测试开始,然后是早期访问群体,分阶段可用性,以及快速的回滚选项。这种方法允许先在高影响力领域实施,而不是全面采用微服务。团队的注意力集中在逐步解开遗留系统的纠缠,并逐步改进累积。LaunchDarkly作为一个连接器,通过集中式功能标志链接不同的服务。这些标志控制功能、数据迁移以及最终向最终用户的展示。

亚当详细解释了蓝图的各个方面:

微前端至关重要,因为保留与UI的耦合将破坏任何架构迁移。PowerSchool通过嵌入式轻量级前端服务来呈现新的用户体验,这些服务嵌入了旧的单体UI。LaunchDarkly的功能标志驱动用户细分,将流量引导到遗产或新前端。重要的是,单体和微服务都引用相同的标志,以保持一致性。

对于数据迁移,PowerSchool利用无服务器亚马逊云科技栈,包括Lambda、EventBridge、S3和Step Functions来进行信息的导出、转换和导入。事件触发器连接这些管道,使系统之间的松散耦合保持不变。同样,LaunchDarkly提供一个全面的集中发布管理。该团队设计用于在出现问题时针对特定客户或群体重新运行迁移。

在整个分层发布过程中,功能标志对谁看到什么提供了精细的控制。对于像PowerSchool这样的在线教育公司来说,这种级别的自定义非常宝贵。由于学校在不同的日历上运营,并在一年中的不同时间有独特的需求,因此标志允许根据需要进行功能定位。团队可以逐渐扩大曝光,以便尽早捕获错误并减轻风险。

通过逐渐从单体应用中提取领域,PowerSchool提升了生产力、速度和开发者满意度。截至2022年,开发人员已采用这种方法删除了这些单体应用中的超过150,000行代码——这是传统系统提交率的两倍多。架构师会预先全面考虑发布过程,而非将其与技术支持工作分开。LaunchDarkly的功能使得工程师能够在确保安全的情况下进行大胆的更改,同时提供企业级控制。结果就是更快的创新和更可靠的软件。

总的来说,演讲者进行现场演示,展示了LaunchDarkly的新“发布管道”功能。该功能提供了对Kubernetes集群上诸如测试和生产等环境的特性标志配置的可见性。团队可以立刻看出哪些标识已在不同集群上激活。在各阶段实施检查,以确保遵循正确流程。这些管道将最佳实践编码并自动化受控推广。

演示还强调了复杂的“迁移标志”来协调从旧到新基础设施的过渡。流量安全地通过金丝雀阶段转移,允许在每个步骤中进行测试和指标收集。LaunchDarkly根据规则和群体自动管理整个进程。这减轻了工程团队的负担,但仍然对重大迁移提供粒度控制。

总之,像LaunchDarkly这样的现代功能管理解决方案对于降低主要发布的风险是必不可少的。像管道和迁移标志这样的强大功能将复杂、有风险的更改转变为一系列递增的步骤。即使软件稳定性得到提高,开发速度也会显著增加。任何希望发展关键任务系统的组织都应该评估这些技术。它们代表了安全、快速软件交付的未来。

下面是一些演讲现场的精彩瞬间:

作为LaunchDarkly公司的高级技术市场营销工程师,彼得·麦卡罗恩(Peter McCarron)专注于优化开发者体验。

在一场演讲中,他讨论了意外错误和可怕软件发布的挑战,这些挑战可能对客户产生负面影响。

他强调,大多数系统目前都处于单体架构和微服务架构的混合状态,并分享了一种随着团队规模的扩大如何拆解单体的方法。

为了降低风险,他建议在迁移到新架构的过程中采用渐进式的变更方式。

此外,他还强调了在生产环境中使用虚拟数据进行测试的重要性,以便在实际客户发布功能之前提高信心。

最后,他介绍了如何使用LaunchDarkly将新功能有控制地推广给特定用户群体(如学校和地区)的方法,从而使部署能够与客户的季节性需求保持一致。

总结

该视频探讨了如何在软件发布和迁移过程中利用功能开关和分阶段实施来降低风险。PowerSchool的Adam分享了他们将模块从传统的单体系统逐渐迁移至新型微服务架构的过程。为了实现这一目标,他们采用了LaunchDarkly的功能开关,从而可以为特定用户提供基于新服务的早期访问体验。这样,他们可以收集反馈、发现并修复影响范围较小的错误,同时在必要时轻松撤销更改。在进行数据迁移时,他们从旧数据库中导出数据,进行转换,并分阶段将其导入新数据库——先进行影子写入,然后进行影子读取,最后将实时流量镜像到两个数据库中。同样地,功能开关允许他们控制对特定用户的发布。Peter随后展示了如何通过LaunchDarkly的发布管道在不同环境中测试新功能开关并将其提升至更高级别环境的方法。此外,他还展示了用于简化数据库迁移过程的新的迁移专用功能开关,可实现自动化阶段逻辑处理。

演讲原文

https://blog.csdn.net/just2gooo/article/details/134819416

想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!

2023亚马逊云科技re:Invent全球大会 - 官方网站

点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!

点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!

即刻注册亚马逊云科技账户,开启云端之旅!

【免费】亚马逊云科技“100 余种核心云服务产品免费试用”

【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”

亚马逊云科技是谁?

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值