在动态基础之上构建容错的应用堆栈
英国金融科技公司Bink的使命是重新想象忠诚度计划--使其对每个人都更容易,包括银行、商店和客户。为了实现这一目标,Bink开发了一个解决方案,将客户的支付卡与任何忠诚度计划联系起来,并在人们每次购物时识别忠诚度积分,只需一次点击就能将购买和奖励计划联系起来。
该解决方案的基础是一个可扩展的专有平台,符合银行对安全和责任的标准。由于拥有豪华的绿地,Bink工程团队利用多个CNCF项目,包括Kubernetes、Linkerd、Fluentd、Prometheus和Flux,构建了一个性能良好、可扩展、可靠和安全的技术栈,同时减少了由瞬时网络问题引起的应用问题。
零售业忠诚度的愿景
像大多数初创公司一样,基础设施主要由一个人建立。预算很紧张,但他们知道他们必须建立一个可以与公司一起成长的东西。最初,Bink有三个裸机Ubuntu 14.04实例上的网络服务器,运行少数uWSGI应用程序,在NGINX实例后面进行负载平衡 - 没有任何形式的自动化。
2016年,他们开始将Bink的应用程序转换为Docker容器,并摆脱了现有的将代码SFTP到生产服务器上并重新启动uWSGI池的方法。为了实现这一点,他们在Chef中建立了一个容器协调工具,动态地将主机端口分配给容器,并更新NGINX的proxy_pass块以通过流量。这个方法运行得很好,直到他们意识到Docker在他们老化的Ubuntu 14.04基础设施上引起了许多内核恐慌和其他问题。
大约在同一时间,该团队得到了正式批准,以评估从他们的数据中心迁移到云端,因为他们的需求已经远远超出了数据中心所能提供的范围。
迁移到Kubernetes并寻找一个服务网状结构
2017年左右,Monzo的工程师在KubeCon 上发表了关于他们最近经历的一次故障和Linkerd扮演的角色的演讲 。"不是每个人对这些事情都是透明的,我真的很欣赏他们分享发生的事情,这样社区就可以从他们的失败中学习--对Monzo团队这样做大加赞赏!"Bink的基础设施负责人Mark Swarbrick说。
将他们的软件堆栈迁移到云原生平台上是一个没有头脑的问题。然而,架构的某些部分并不像他们所希望的那样具有性能或稳定性。Linkerd使他们能够在堆栈的正确层次上实现连接和重试逻辑,给他们提供所需的依赖性和可靠性。突然间,关于他们是否能在云中使用他们的软件堆栈而不需要大幅提升的问题就消失了。Linkerd表明,将逻辑放在连接层是正确的方法,使他们能够专注于产品创新,而不是担心网络或连接不稳定。
云原生的力量
"快三年了,一个三人团队正在支持我们的内部构建的平台,能够每天处理数百万的交易--这真正证明了云原生生态系统的惊人技术!"Mark Swarbrick说。"Bink公司基础设施主管Mark Swarbrick说。
从整个堆栈来看,云原生技术--特别是CNCF项目--使Bink能够建立一个云端的平台,根据需要进行扩展,同时使他们能够密切关注性能和稳定性。该平台经过负载测试,可以在15分钟内完成全面的灾难恢复,从短暂的网络问题中轻松恢复,并且能够快速有效地进行问题的根本原因分析。
想听更多吗?阅读 Bink的案例研究 ,深入了解他们的云原生平台的开发和实施。