停机威慑:TrustPilot Sre使用基础架构作为代码,以防止站点中断
通过用户群,不羞于讲述公司对他们的运作方式,商业评论网站TrustPilot的技术团队仅意识到经常性和长时间的停机时间不太可能被忍受。
不是由依靠网站指导购物的消费者,也不是在其发布的审查中使用反馈的业务,并改善他们向公众提供的服务。
“我们的最终产品是数字 - 它是一种软件 - AS-Service(SaaS)产品,所以如果我们倒闭,我们的客户不能使用该网站,所以我们必须在所有时间 - 这是至关重要的,” Morten Reinholdt Boelskifte,TrustPilot的网站可靠性工程(SRE)经理,请每周告诉计算机。
据该公司自己的用户统计,该网站是4500万个用户生成的4.3万家公司的审核,这些公司每月浏览超过30亿次的消费者在世界各地的消费者。
“我们的目标是四个正常运行时间和可用性,”Boelskifte补充道。“我们每月都在打它吗?大多数时候,是的。“
通常情况下,在减轻停机时间风险时,准备是关键,这是一个例子,这就是DrivePilot的技术团队为他们最大的两个最大的用户交通发行事件中的两个人准备好 - 黑色星期五和网络星期一。
“我们为目前的建设是最新的,”Boelskifte说。“这就是[我们基础设施]的那种球场必须能够支持。
“每次都在临时,我们为团队内部做准备,并通过确保他们负责的辛勤网站,并准备好应对预期的预期当黑星周五命中时的需求。
“有时它可以在仔细检查其体系结构方面是否正确设置,并且可能涉及负载平衡和测试服务以确定潜在的弱点。”
TrustPilot操作基于云的微服务的架构,该架构包括600个inpidual服务,依次跨网站的控制300或SO功能。
“我们是多云,因为我们都在亚马逊Web服务[AWS]和Google云平台[GCP]中,”Boelskifte说。“我们有多个地区和环境。
“我们主要在AWS中,但大多数大数据存储在GCP中,也是我们的机器学习模型,因为他们使用大数据来运行查询。TrustPilot的大多数面向消费者的一部分都在AWS中。“
每个站点功能都是由一个独特的软件工程师团队照顾,他们都以“完整的堆栈所有权”为基础,并且统称为部署生产代码每周约200次更改。
“这些可以是错误修复,但也可以提出要求,我们可以迅速贯彻更改,因此如果我们执行没有成功或工作的部署,我们可以快速实施修复,”他说。
在含有这么多移动部件的基础设施内进行的这种高吞吐量,Boelskifte表示,试验和测试程序在适当的情况下,以最大限度地减少由流氓码制造成生产的中断的风险。
“我们也有一个不成文的规则,以至于我们在星期五没有部署,因为它可能更多的是一个击中和运行,因为如果出现问题,它可能会影响该网站也在周末,”他说。
SRE团队也接受了自动化和基础设施原则作为代码(IAC),以帮助简化和简化某些过程 - 这么多,以至于其一些特色团队也遵循西装。
这意味着它已从依赖于手动流程转移,以通过朝着更软的软件定义的设置来提供和管理潜在的服务的技术堆栈。
“当我们开始时,有一点学习曲线,球队的产出略微下降,”博斯基斯基雷斯略微下降。“但是用基础架构作为代码,可以说出你得到的福利是你添加的投资总和。所以你投资它的越多,你就越可以从中收回。“
作为IAC的福利队的一个例子,Boelskifte引用了最近探讨了该公司升级政策的工作,这决定了应对解决停机事件的责任进行管理。
“我们设法在七行代码中进行整个变化,我们花了大约五分钟才能写作,而在过去的情况下,它将花费大约半天或全天做,因为我们只是人类,而且可以制作错误,“他说。
该公司也是PageRduty的SaaS的事件监控平台的Avid长期用户,它一旦他们正在开始展示其行为的任何服务,这就是他们的工作团队就表现出他们不是,也许是。
然后,PageRduty系统将发出事件警报,根据关键任务方式进行分类,因为其特征团队响应。
“我们称之为P1S,P2S和P3S,其中第一个是最重要的是响应的绝对是至关重要的,这通常是为了一个真正爆发的事件而被保留,”Boelskifte说。
当警报命中时,PageRduty将其传递给相关的功能团队来处理。如果在一段时间内没有响应,则它是怨恨的,但也升级到SRE团队的成员来处理。
“下一步,如果没有一个特征团队的回应和SRE不做,那就是警报升级到副主席,”他说。“这一切都在PageRduty中设置。”
设置还允许人们定制警报,以便通过电子邮件,短信或电话或三个组合来收到它们,或者根据自己的偏好。
“没有收到警报的东西更加紧张,因此以适合用户的方式接收它是非常强大的方式,”Boelskifte说。
对于希望在TrustPilot的脚步声追随的组织以及他们同样高的正常运行时间预期,Beelskifte表示,对IAC的举动应该是一个首要任务。
“对我们来说,这是我的团队真的热衷于做的事情,我们将决定一起下去这条路线,”他说。“滚出并不容易,因为您有一个学习曲线,因为您可以使用语言掌握以及它如何影响基础架构。
“这取决于你作为组织的选择如何选择接受它。您可以尝试自己做一切,依赖于像Python这样的编程语言,或者您可以选择将Retraform的基础架构中已建立的设置作为代码软件。
“仍然有一个学习曲线,用于弄清楚系统如何在执行x,y和z时如何做出反应。在这里,我们将IAC视为常规软件,因此您必须测试您所说的发生,实际上。“