对话Shopify:平台工程如何帮助其自动化应对流量高峰

2024-03-13 07:12

本文主要是介绍对话Shopify:平台工程如何帮助其自动化应对流量高峰,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文脱胎于 Obeservability Talk,完整内容请查看:

https://www.youtube.com/watch?v=6ShtsTTUizI

平台工程是近年来的热门话题。我们已经在 2023 年看到了开发人员们对它的追捧,预计在 2024 年后,我们也许会看到平台工程被广泛应用于企业生产。针对这一话题,我将向已经大规模实施该技术的公司学习——全球知名电商平台 Shopify。

在最新一期的 OpenObservability Talks 中,我们有幸邀请到 Shopify 的生产工程总监 Aparna Subramanian。在此之前,她曾担任 VMware 的工程总监,是混合云 Kubernetes 平台 Tanzu on vSphere 的创始成员之一。

01 Shopify 的业务规模

一开始,我们探讨了 Shopify 的庞大业务运营规模,Aparna 详细介绍了 Shopify 当前巨大的业务量,尤其是在“黑色星期五”和“剁手星期一”等重要电商营销节点。

她分享到,在这种高峰段期间,Shopify 的应用服务器每分钟要处理 5800 万次请求,数据库每秒要处理 1900 万次查询。如果查看一下他们的流基础设施,每秒大约也要处理 2900 万条信息流。这意味着 Shopify 平台工程团队需要管理规模庞大的基础设施

02 Shopify 平台工程的演进

接着,我们开始讨论 Shopify 最初是如何采用平台工程的。Aparna 带我们回到 2016 年,当时 Shopify 面临着多个团队以不同方式部署生产的挑战。也就是这时,Shopify 突然意识到,采用 DevOps 将运维所有权转移给了开发人员,却没有真正给予他们合适的工具和时间来解决这些问题。从而他们开始在团队内部对此进行改进,最终平台工程在 Shopify 诞生。

“Shopify 决定采用平台工程的方法。在这个平台上,所有这些工具都是为我们的业务定制的,为我们的开发人员定制的,并且有一种统一的方式将东西部署到生产中”,Aparna 解释道,并强调了统一高效部署策略的必要性

目前,Shopify 的平台工程采用分层模式。内部设置了一个基础架构小组,在该小组内有数据平台、可观测平台、有状态系统和流平台。还有生产平台,它是支持所有这些平台的底层,而这些平台则为应用开发人员提供支持。这样,Shopify 就能快速扩大规模。Aparna 介绍称,他们每天发布大约 1,000 个 PR,而应用程序本身每天要部署到生产中 107 次。

03 Kubernetes:Shopify 平台的支柱

随着 Kubernetes 的采用,Shopify 的云原生之路发生了关键性的转变,Aparna 解释了 Kubernetes 如何成为其运维的支柱,在整个团队中运行着约 400 个 Kubernetes 集群。她表明,在 Shopify 的一切都运行在 Kubernetes 上,包括他们的无状态工作负载、应用程序和有状态工作负载,即所有的数据库。

最突出的是“平台的平台(platform of platforms)”这一概念。尽管一切都统一在 Kubernetes 下,但 Shopify 的基础架构是分层的,由专门的平台团队负责和管理不同的层级,如数据库平台、流平台和可观测性平台。

04 平台和应用程序共享可观测性

Aparna 强调的成功关键因素之一是应用开发人员和平台工程师之间的明确责任分工。在 Shopify,每个人都负责监控,并随时待命,但应用程序开发人员负责应用程序部分,平台工程师负责平台和基础设施。

Aparna 表明,当出现问题时,他们会一起排除故障,找出应用程序的问题所在。值得强调的是,在出现故障时合理安排不同角色的分工可以以更为简洁的方式解决问题。

05 Shopify 内部开发者平台

在 Shopify,正如在其他许多企业内部看到的那样,通过产品的方法来实现平台工程。平台工程团队为公司内部的开发者社区开发产品,让应用程序开发者可以通过自服务完成一切

在可观测性方面,Aparna 分享道,平台工程提供了监控生产的所有工具。例如告警、可观测性、仪表盘、它们均可弹性伸缩,同时还有随叫随到的事件管理团队。

平台团队拥有并管理各自的平台,而应用程序开发人员则需关注自己的应用程序代码,并负责将其根据发布周期部署到生产中。

06 平衡平台的灵活性和抽象性

然而,在平台工程团队中不断遇到的一个核心挑战是如何平衡灵活性和抽象性。而对于 Shopify 是如何解决这个问题的,Aparna 表示这是一项 Shopify 正在进行中的工作。其实他们一开始在 Kubernetes 的基础上建立了一个抽象层,但实际的效果并不好。

有了这些经验,他们认识到把 Kubernetes 隐藏抽象起来并不是一个最佳方式。目前的平衡点是为大多数开发人员提供有意义的默认设置,以及让高级用户可以操作的清单

Aparna 认为,平台团队专注于提供一条 “黄金路径(Golden Path)”,同时鼓励开发人员对不断演进的平台提出改进建议并做出贡献。只有拥抱变化,才能期待开发团队能够真正突破界限。

07 处理流量高峰期的技巧

最后,针对 Shopify 如何为流量高峰期做好准备,Aparna 深入介绍了从容量估算到弹性测试的缜密规划。她分享了 Shopify 如何在这些情况下禁用默认的自动扩展,转而依靠超额配置来满足像“黑色星期五”和“剁手星期一”期间的极端流量

除了这些重大事件外,某些商家还可能推出闪购活动,从而产生流量高峰。让企业商家提前向 Shopify 预告,有助于为这一高峰期做好准备。但是,正如 Aparna 所说,“作为一个支持数百万商家的平台,我们没有办法让每个人都提前告诉我们”。因此,在大多数情况下,这些高峰期的处理都是完全自动化的。

这篇关于对话Shopify:平台工程如何帮助其自动化应对流量高峰的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/804038

相关文章

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

比较学习难度:Adobe Illustrator、Photoshop和新兴在线设计平台

从入门设计开始,几乎没有人不知道 Adobe 公司两大设计软件:Adobe Illustrator和 Photoshop。虽然AI和PS很有名,有一定设计经验的设计师可以在早期探索和使用后大致了解AI和PS的区别,但似乎很少有人会系统地比较AI和PS。目前,设计软件功能多样,轻量级和网页设计软件已成为许多设计师的需求。对于初学者来说,一篇有针对性的AI和PS比较总结文章具有非常重要的指导意义。毕竟

智慧环保一体化平台登录

据悉,在当今这个数字化、智能化的时代,环境保护工作也需要与时俱进,不断创新。朗观视觉智慧环保一体化平台应运而生,它利用先进的信息技术手段,为环保工作提供了更加便捷、高效的管理方式,成为推动绿色发展的重要力量。 一、智慧环保一体化平台的诞生背景 随着工业化进程的加快,环境污染问题日益严重,传统的环保管理模式已经难以满足现代社会的需求。为了提高环保工作的效率和质量,智慧环保一体化平台应运而

说一说三大运营商的流量类型,看完就知道该怎么选运营商了!

说一说三大运营商的流量类型,看完就知道该怎么选运营商了?目前三大运营商的流量类型大致分为通用流量和定向流量,比如: 中国电信:通用流量+定向流量 电信推出的套餐通常由通用流量+定向流量所组成,通用流量比较多,一般都在100G以上,而且电信套餐长期套餐较多,大多无合约期,自主激活的卡也是最多的,适合没有通话需求的朋友办理。 中国移动:通用流量+定向流量 移动推出的套餐通常由通用流量+定向

服务器雪崩的应对策略之----SQL优化

SQL语句的优化是数据库性能优化的重要方面,特别是在处理大规模数据或高频访问时。作为一个C++程序员,理解SQL优化不仅有助于编写高效的数据库操作代码,还能增强对系统性能瓶颈的整体把握。以下是详细的SQL语句优化技巧和策略: SQL优化 1. 选择合适的数据类型2. 使用索引3. 优化查询4. 范式化和反范式化5. 查询重写6. 使用缓存7. 优化数据库设计8. 分析和监控9. 调整配置1、

工程文档CAD转换必备!在 Java 中将 DWG 转换为 JPG

Aspose.CAD 是一个独立的类库,以加强Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。 Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格

基于Spring Boot构建淘客返利平台

基于Spring Boot构建淘客返利平台 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将讨论如何基于Spring Boot构建一个淘客返利平台。 淘客返利平台通过整合各种电商平台的商品信息,提供给用户查询和返利功能,从而实现流量变现。以下是实现一个简单的淘客返利平台的步骤。 1. 项目初始化 首先,使用Spri

IPD推行成功的核心要素(十一)技术规划与平台规划促进公司战略成功

随着外部大环境的影响,各企业仅有良好的愿望是不够的。预测并顺应新兴市场和技术的变化,变危机为转机,不断推出强大的产品才是一个公司持续繁荣的根本保障。而高效的产品开发往往是基于某些关键技术,针对市场推出的一个或几个产品系列,这些产品系列通常共用一些产品平台,共用一种或者几种关键技术。当一家企业进入了平稳发展期,已经建立了较为完善的管理制度和产品开发流程,但是依然认为竞争对手是那样强大,那样不可战胜。