国外手机交友APP Tinder向Kubernetes迁移的过程

Tinder决定转向Kubernetes以实现容器化和低接触式运维,解决扩展和稳定性问题。在迁移过程中面临了包括DNS、集群管理和负载均衡等挑战。通过标准化构建流程、自定义Builder容器以及采用Envoy实现负载均衡,最终成功迁移200多个服务到Kubernetes,运行在1000个节点的集群上。这一过程中,Tinder工程师团队积累了在Kubernetes上进行容器化和部署的经验,显著提升了效率和成本效益。

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

640?wx_fmt=jpeg

Tinder是国外的一款手机交友APP,作用是基于用户的地理位置,每天“推荐”一定距离内的四个对象,根据用户在 Facebook 上面的共同好友数量、共同兴趣和关系网给出评分,得分最高的推荐对象优先展示。

为什么

640?wx_fmt=png

大概两年前,Tinder决定转向Kubernetes。Kubernetes通过不可变部署推动Tinder Engine向容器化以及低接触式运维发展。应用程序的构建、部署以及基础架构都可以由代码定义。

我们还致力于解决扩展以及稳定性的挑战。当扩展变得至关重要时,我们通常在等待新的EC2实例上线的这几分钟里备受煎熬。容器能够在几秒中内,而不是几分钟,完成调度并且上线,这对于我们很有吸引力。

一切并不容易。2019年初的迁移里,我们的Kubernetes集群一团乱麻,并且遇到各种问题,流量,集群大小以及DNS等。我们解决了这些有意思的问题,迁移了200多个服务,并且运行了一个大规模的Kubernetes集群,一共有1000个节点,15000个Pod以及48000个运行着的容器。

怎么做的

640?wx_fmt=png

从2018年1月份起,我们就开始实验迁移的各个阶段了。首先将所有服务容器化,并且部署到一系列Kubernetes预生产环境上。从10月份起,我们开始系统性地将所有遗留服务迁移到Kubernetes上。第二年3月份,迁移工作结束,Tinder平台全都跑在了Kubernetes上。

为Kubernetes构建image

640?wx_fmt=png

在Kubernetes集群里运行着超过30个微服务的源码仓库。这些仓库里的代码是不同语言编写的(比如,Node.js,Java,Scala,Go),同一种语言还有多个运行时环境。

build系统设计成可以为每个微服务做完整自定义的“build上下文”,通常包括Dockerfile以及一系列shell脚本。虽然内容都是全自定义的,这些build的上下文是遵循标准化的格式编写的。这样标准化的build上下文使得单个build系统可以处理所有的微服务。

640?wx_fmt=png

图1-1 Builder容器的标准化构建流程

为了达到运行时环境的最大一致性,我们在开发和测试阶段使用相同的构建流程。当想设计一种方案来保证跨平台的build环境的一致性时,我们遇到了独特的问题。最终,所有build流程都在一个特别的“Builder”容器内执行。

Builder容器的实现要求一系列高级Docker技术。Builder容器继承本地user ID和secret(比如:SSH key, AWS认证

·后台细致详尽的站点统计信息,使系统管理员的工作变得更加轻松方便 ·提供多个自定义模板 ·优化搜索引擎,包括meta标签和URL重写的选项 ·可添加多个管理员和指定超级用户 ·多达上百的网站全局设置项目选项,使系统更易操控 ·分销会员管理和分销会员统计 ·网站横幅广告Banner管理 ·强大的扩展搜索选项,可选使用十几个搜索条件 ·安装向导会自动检查服务器环境的兼容 ·安装很简单,能检查MySQL登录参数并允许轻松地从任何以前的版本升级 ·SMTP邮件的选项既能在安装过程中指定,也可以很容易的通过直接编辑config.php文件来修改 ·系统内置Flash即时消息程序,在线会员可轻松交流 ·可和FlashChat聊天系统phpBB论坛系统很好的整合 ·允许会员迅速提高他们的会员资格,各会员可使用级别比较功能比较图表 ·理员可以很容易地指定任会员资格类型,并创造新的或删除现有的类型 ·我的配对功能允许任何会员查看他们的搜索首选项符合他们的搜索匹配 ·通过管理面板,所有网页和新闻项目可以很容易地使用所见即所得的编辑器(HTMLArea)修改 ·易用的通讯功能可让管理员发送邮件到任何一组会员 ·通过管理面板中配置多个付款方法 ·可创建模板内显示的即时投票 ·管理员组包括强大的档案管理,按姓名/性别/级别以及更多选择方式,激活或停用任何会员资料和编辑会员资料信息 ·通过快速搜索可以随意查看会员照片缩略图和资料信息 ·简单和高级搜索选项,可按国家、 城市、 邮政编码、高度、体重等多种条件搜索 ·快速轻松地编辑任何部分问题、 热键问题、 添加新的问题、启用/禁用问题等 ·可选择或全部安装十多个增加各种功能的插件和二十多种文字语言
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值