云原生如何驱动世界最大散户股票投资平台 Zerodha
挑战
印度股票经纪公司Zerodha 是全球最大的散户股票投资平台,每天要处理800 万笔交易。该公司拥有一套复杂、综合的基础设施,严格监管的技术堆栈,最终用户应用程序和需要各种外部依赖的内部系统,公司需要一个“统一、集中的监控基础设施,在各种复杂环境中运行,” 首席技术官 Kailash Nadh 说。
解决方案
Zerodha 采用 Prometheus 进行监控,然后把很多服务从 VM 迁移至容器,随后再迁移到 Kubernetes。
影响
“Prometheus 保证我们有效监控关键的低时延金融系统,”Nadh 说。采用 Kubernetes,“我们实现了规模化和模块化,特别是在重大监管变化需要对系统做出重大改变的环境中。此外,我们能够更加高效地使用云资源了。”
一些数据
2019年处理了 10 亿笔散户交易
计算实例成本至少降低 50%
具备所有依赖的完整环境仅需数分钟即可创建,不再需要数个小时
印度股票经纪公司Zerodha是全球最大的散户股票投资平台,每天要处理 800 万笔交易。
“我们的使命就是方便普罗大众进行交易和投资,”首席技术官 Kailash Nadh 说。
鉴于这个行业的特点和交易规模,Zerodha基础设施需要涵盖公有云(大多数内部应用的 AWS)和多个数据中心的物理机,满足通过租赁股票交易市场线路和适配器实现资本市场互联的具体监管和技术要求。
自身的复杂性,加上严格监管的技术堆栈,最终用户应用程序和需要各种外部依赖的内部系统,公司需要云原生技术。
“我们需要一个统一、集中的监控基础设施,在各种复杂环境中运行,” Nadh 说,“Prometheus 能保证我们有效监控关键的低时延金融系统,帮我们集合并监控整个基础设施范围的指标。大量已有的导出器和自定义导出器带来的书写便利,让我们能在短时间内实现大范围覆盖。”
此外,Zerodha 已经开始将其服务从 VM 迁移到容器,并在 2020 年逐步迁移到 Kubernetes。因其所有应用程序是用 12 要素法、面向服务的基础设施开发的,所以迁移非常简单。公司有一套明确的流程,规定以其 CI/CD 流程推动生产变化,因此,基础设施团队从 GitLab 创建 CI 流水线入手。Zerodha 重点实践“基础设施即代码”,使用 Terraform、Packer 和 eksctl,在 AWS 上管理 Kubernetes 集群基础设施,并在 AWS(ECR)内部镜像仓库托管容器镜像(工件)。
“我们已经意识到不要创建一个ops vs. dev的分界线,”Nadh 说,“开发者在项目生命周期内承担所有责任,包括部署。我们用 Kubernetes 创建了标准部署模板,开发者能够用最小的 scaffolding 制作自己的部署,或让 DevOps 工程师直接参与制作部署。”
“Kubernetes 有助于我们标准化各个团队在各种不同堆栈部署应用程序的流程。”
— ZERODHA 首席技术官 KAILASH NADH
因此,部署推出更加快捷和频繁:凭借极少的人工干预,具备所有依赖的完整环境仅需数分钟即可创建,不再需要数个小时。“Kubernetes 有助于我们标准化各个团队在各种不同堆栈部署应用程序的流程,”他说,“我们实现了规模化和模块化,特别是在重大监管变化需要对系统做出重大改变的环境中。Kubernetes 还让我们实现了工作量的精细资源分配,计算实例的成本至少降低了 50%。
Zerodha 也采用了另一个 CNCF 孵化项目 NATS,“跨应用程序跨基础设施大量传输实时市场数据,”Nadh 说,“我们很多组件都需要 NATS 带来的轻松订阅和瞬间‘全自动魔法’启用备库。发现 NATS 之前很多年,我们尝试了至少 3 项别的技术。NATS 解决了我们用其他信息流和 PubSub 系统带来的所有问题。”
Zerodha 也正在准备采用 CNCF 其他项目,比如作为边缘代理用于应用程序间网络的 Envoy。 “我们用 Kong 作为内部 API 网关。但也在寻找能够处理重试和故障、负载平衡、跨基础设施发现的服务网格。Envoy 貌似能够满足所有需要,”他说,“我们也在考察 Istio控制平面和捆绑的 Jaeger,用于服务追踪。”
“云原生助力企业实现更快速的迭代和部署,也能更方便地管理明确定义的活动件。”
— ZERODHA 首席技术官 KAILASH NADH
在 Zerodha 看来,云原生产生的影响非常明显:“凭借高效低耗的现代化、可扩展基础设施和架构,我们能够把重点放在高品质的技术和产品上,借此跻身行业前列,打败超大型银行旗下的大型股票经纪公司,”Nadh 说,“我们使用自己的堆栈,就能实现前所未有的规模,同时处理 100 万个并发用户,这些用户通常每秒钟都会收到数千万的流媒体市场报价,完成数百万次低时延交易。2019 年,我们处理了 10 亿次散户交易,在全球股票经纪公司中可能独占鳌头。我们的日交易量约占印度所有散户股票市场交易量的20%。”
Zerodha 团队计划在不远的将来,着重将大多无状态工作量迁移到 Kubernetes 上,实施服务网格,采用更多云原生可观测性工具。公司已经看到了云原生的裨益,将继续沿着这条路走下去。
“云原生使公司能够进行更快的迭代和部署,并拥有易于管理的定义良好的移动部分,”Nadh说。“在云原生堆栈中运行应用程序,还可以帮助公司节省基础设施成本,因为它们能够更好地利用云资源,并动态伸缩。云原生技术已被证明是运行、管理和监控复杂应用程序堆栈的一种好方法。”