前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes助力Nubank一周部署200次

Kubernetes助力Nubank一周部署200次

作者头像
CNCF
发布2020-07-15 17:18:46
3230
发布2020-07-15 17:18:46
举报
文章被收录于专栏:CNCFCNCFCNCF
  • 部署从90分钟减少到15分钟
  • 成本效率提高了30%
  • 每周可部署200次

行业:金融服务

地点:巴西

云类型:公有、多云、混合

挑战:效率、速度

产品类型:安装程序

使用的CNCF项目:Fluentd、Kubernetes、Prometheus

挑战

过去几年中,随着 Nubank 客户基数达到 2300 万,工程团队从最初的 30 人增至 520 人,这家金融科技初创企业面临不可变基础设施带来的挑战。“我们的部署要靠旋转整个堆栈,或克隆整个基础设施才能迭代所有开发,” Nubank 工程总监 Renan Capaverde 说,“因此,随着时间推移,会变得越来越慢,越来越痛苦。”

解决方案

公司在早期就已经使用了 Docker 容器。“我们确信,Docker 对我们大有裨益,我们希望进一步容器化,” Capaverde 说。选择一个编排器是接下来要做的工作,团队最终选择了 Kubernetes。Nubank 云原生平台包括监控用 Prometheus、Thanos 和 Grafana,还有日志用 Fluentd。

影响

开发者体验大大改善;生产环境的开发时间从 90 分钟减少到 15 分钟。今天,Nubank 工程师一周能部署 200 次。此外,团队估算 Nubank 的成本效率提高了大约 30%。

Nubank于 2013 年创立于巴西,作为一家金融科技初创企业,Nubank 不会被历史遗留的基础架构所累。

公司在早期就使用了 Docker 容器, 在 AWS 上运行差不多所有的基础设施。

但这并不意味着 Nubank 不会遇到问题。过去几年中,随着 Nubank 客户基数达到 2300 万,工程团队从最初的 30 人增至 520 人,这家金融科技初创企业面临挑战。“我们使用的是不可变基础架构,但我们的发展非常、非常迅猛,” Nubank 工程总监 Renan Capaverde 说,“我们的部署要靠旋转整个堆栈,或克隆整个基础设施才能迭代所有开发。因此,随着时间推移,会变得越来越慢,越来越痛苦。”

此外,还有其他痛点,包括应用软件的负载均衡,在 AWS 中添加新的安全组规则的难度等。

“最终,我们确信,Docker 对我们大有裨益,我们希望进一步容器化,”Capaverde 说。选择一个编排器是接下来要做的工作。Nubank 的数据基础设施团队已经在 Mesos 上运行了一个 Spark 集群,团队考察了几种不同的技术,包括 Docker Swarm。最终,“还是觉得 Kubernetes 是正确的选择,”他说,“Kubernetes 有大量优质的抽象方法,还有很多来自社区与 CNCF 云原生计算基金会的支持,以及 Google 部署 Borg 的全部专业知识。”

Nubank开始向 Kubernetes 迁移时,“我们首先想要实现的就是助力开发者运行应用软件,” Capaverde 说,“我们的应用都是云原生应用,对项目来说这是很好的架构,可按需进行扩展。”

最初,团队考虑过在开发者环境中使用 Minikube,用 Kubernetes 做测试和 staging,然后在生产环境中做架构分区。后来,他们觉得先迁移 staging 环境,就能在早期加速采用 Kubernetes。但这样会在 staging 阶段导致一个 Kubernetes 集群用于所有分区,出于单点可能失败的考虑,以及团队缺乏 Kubernetes 相关经验,最终放弃了该计划。

“我们为 Kubernetes 部署了 kops 解决方案,采用 kops 确认逆向工程,试图了解 Kubernetes 的具体情况,以及配置的复杂细节,”Capaverde 说,“我们自己做的自动化,所以有自己的 Kubernetes 发行版,不是 kops,也不是 Kube-aws。”

后来,“我们看到了 Kubernetes 项目的发展方向,”他说,团队开始使用 kubeadm 来创建。“我们用生产工具创建新的集群,这样就能了解整体运行状况,”软件工程师 Yago Nobre 说。大约 20 个客户参与了新分区测试,几个月后,“在这个点上,我们确信解决方案的效果,然后开始一个一个地迁移其他分区。”

Nubank云原生平台上还包括监控用 Prometheus、Thanos 和 Grafana,还有日志用 Fluentd。

“有了 Kubernetes 和金丝雀部署,撤销一个变更容易了很多,因为部署更快了。大家部署得更频繁,信心也更足。” — NUBANK 工程总监 RENAN CAPAVERDE

为了帮助工程师使用新的平台,团队在第一年举办了全公司范围的培训活动。同时开发了叫做 NuCLI 的命令行界面,包括 500 多个自动化快捷方式,比如从应用软件或硬件部署提取日志。“这种抽象更加简便,在迁移初期,能够缓解大家缺乏 Kubernetes 专业知识的问题,” Capaverde 说。

最初阶段,Nubank 作为一家 Clojure 商店,总是有 CPU 设置和 JVM 的问题,资源配置上总要采取保守方法,才能避免风险,运行得更快一些。这样就无法带来 Kubernetes 能够解决的成本节约效应了。大约过了一年半时间,团队进一步调整了横向扩展和预算,估算 Nubank 的成本效率提高了大约 30%。

但这仅仅是开始而已。“我们正在收尾一次新的 Kubernetes rollout,移至 1.16,还有一个能和 JVM 更好整合的新版本内核,这样 JVM 就能受益于容器支持标签了,同时还能调整应用程序的请求和范围,” Capaverde 说。

此外,还有其他好处。“Kubernetes 有大量优质的抽象方法,如就绪探针和存活探针,” Capaverde 说,“不需要启动,我们采用蓝/绿部署策略。我们有 400 多个微服务,所以你可以想象我们必须等着 EC2 实例才能启动、然后启动容器时的部署情况。有了 Kubernetes,只需要启动容器就好了。”

因此,生产环境的部署时间从 90 分钟减少到 15 分钟。Nobre 说,这就是“最大的好处,因为这样能提升开发者的体验。” 现在,Nubank 工程师每周能部署 200 次。“对银行来说,你可能觉得这有点过于疯狂,” Capaverde 笑着说,“但实际上并不疯狂,因为有了 Kubernetes 和金丝雀部署,撤销一个变更容易了很多,因为部署更快了。大家运送得更频繁,信心也更足。”

“从 staging 迁移到 prod 迁移期间,我们得到了很多反馈信息,因为大家都在用,所以我们能改进基础设施、工具和进入生产环境前的一切。” — NUBANK 软件工程师 YAGO NOBRE

Kubernetes还帮助 Nubank 拓展到其他国家,2019 年最先拓展到墨西哥。“如果你的所有工作都在云上完成,我们就需要设置新的 AWS 账户,了解新的 AWS 账户有什么局限,” Capaverde 说,“用 Kubernetes 抽象方法更便于迭代基础设施和应用程序,速度更快,开发基础设施也更简单。”

在过去 3 年中,Nubank 已经由 5 人组成的 Kubernetes、Kafka、监控和其他任务平台团队发展成为 50 人的专业基础团队,团队中不乏拥有丰富 Kubernetes 经验的成员。

在发展过程中,他们已经积累了一些经验教训,可以和要使用 Kubernetes 的机构分享。“开始迁移的时候,就开始分享经验,让大家都参与进来,” Nobre 说,“从 staging 迁移到 prod 迁移期间,我们得到了很多反馈信息,因为大家都在用,所以我们能改进基础设施、工具和进入生产环境前的一切。”

在 Capaverde 看来,“人们说起 Kubernetes 就像是在谈论一种包治百病的良方。而事实恰恰相反:Kubernetes 是一只野兽、一个大怪物。它的确能帮到我们很多,但你必须要了解它、控制它、驯服它。”

这是一个持续的过程。摆在 Nubank 面前的,是要在服务间沟通和安全性,以及提高资源使用效率等方面做出决策。“我们的发展非常喜人,” Capaverde 说,“所有的决策都把重点放在长期的可扩展性和创建正确的抽象方法上。这样,我们下一个阶段就要应付更多增量,而非颠覆了。所以,持续进步、实现目标也更容易了呢。”

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档