借助现代安全科学,实现STRIPD和LYFT平台

2020-08-04 12:57:57

雅各布·斯科特(Jacob Scott)是一名经验丰富的工程师,也是弹性工程社区的热情参与者,他花了很多时间照顾推动高增长初创公司以及Lyft和Strip等独角兽公司的技术系统。他对如何将现代安全科学的知识应用于真实的、复杂的社会技术系统充满热情。

无懈可击的SRE Darrell Pappa最近采访了Jacob,深入了解他的研究如何影响了他迄今为止的职业生涯和经历,特别是在他最近在Strip担任的职位上,在那里他帮助运营互联网的经济基础设施。

雅各布·斯科特:在冠状病毒期间,实际上有一些有趣的适应能力实验室和从事件中学习的东西,关于“它是如何进行的”这个主题。当你遇到某人时,通常是这样的:你好吗?我很好。我想在这种情况下,我很好是有帮助的。嗯,我很好。是吗?这个世界正处在一个奇怪而不幸的地方,但考虑到它所处的位置,我过得相当不错。你自己呢?

达雷尔·帕帕:是的,特别是在这种情况下,这肯定是很有挑战性的,但我很高兴我们能建立联系。我想首先介绍一下您的背景和您迄今为止旅途中的一些亮点,作为我们的开场白。

雅各布·斯科特:很久以前,我实际上是一名理论计算机科学家,研究近似算法、组合优化。我在大学时曾在那个领域做过研究。我上的是研究生院。我从硕士学位退学。然后在2008年,当我从研究生院毕业,开始我的工业生涯时,我加入了Palantir。加入这是一家有趣的公司。那是一位不同的总裁,不同的时代,但随着当今社会和技术的交汇处发生的一切,反思一下在一家处于社会和技术中心的公司工作真的很有趣。

从2008年到2013年,我在那里,看到它的人数从100-200人增加到1000多人。我是Java的后端多面手,经常是各种项目的技术负责人或首席工程师。在Palantir毕业后,一位研究生院的朋友说服我加入一家初创公司,担任一名非常早期的工程师,对销售和营销数据进行产品化机器学习,为许多中小企业解决了同样的问题。那真是太有趣了。我有一个横向投资组合,因为没有那么多工程师--也许最多有10到20名工程师--所以我在那里做了很多工作。它是Python而不是Java。我做了很多Postgres的工作,数据管道,外部数据集成,各种随机的事情。

雅各布·斯科特(Jacob Scott):是的,其目的是优化学习新体验。这是我的一种方法。谁知道什么会让我最精力充沛、最有成就感?但是如果我做三角测量,我会通过做一些不同的事情学到更多。你不仅在技术上学到了很多,而且还了解了这个行业是如何运作的,硅谷是如何运作的。

在我的职业生涯中,无论是在Palantir,还是在Infer、Lyft和Strip,我的职业生涯中都有一件有趣的事情,那就是业务和技术之间的关系。黑客新闻(Hacker News)上总有人说,那么,你为什么不用这个呢?或者,我可以和我的朋友在周末造出这个东西。但你不一定能建立起支持部门、数据科学部门、监管合规部门,这些都是你真正拥有一家运转企业所需的。当你在成长,你是硅谷的宠儿,你赚了很多钱,你就能吸引所有合适的人。这能把你所有的船都吊起来。

我在帕兰提尔呆了大约五年,据推测是四年。我离开了Infer,最后去了Lyft。在INFER,如果你有AWS root[访问]和登录,如果你是最早建立TSDB,基本可观测性堆栈的人之一,你就这么做了,希望网站不会崩溃。我带着这样的背景去了Lyft。

Lyft显然已经建立了一个非常复杂的可观测性服务网络。马特·克莱因(Matt Klein)写信给Lyft的特使,他在Twitter和AWS上看到了很多帮助告知这一消息的东西。他和Lyft的团队一起写了这篇文章,看到这项技术很有趣。帕兰提尔来得很早,可能是2008年初到2013年。人们在做任何有意义的事情。那么推论是很小的。莱夫特有个事故计划。但是,尽管采取了复杂的措施,事件仍会发生。无论它们是否与您的项目相关,它们都会与您的所有权范围重叠,使事情有点脱轨。

因此,我对有这么多聪明人--排名第二的拼车公司、筹集了大量资金、技术非常尖端--感到好奇,但这些事件有时会像这样:“我们没有这个图表,这个探测器,我们没有注意到这件事。”

事情还在继续。不像是严重的失败,不像500,所有的东西都被打碎了。但是,尤其是当你在处理机器学习时,可能会出问题,并对财务或用户造成影响。你可能会比你想要的更晚注意到这些灰色的失败,最终你会发生一起影响深远的事件。

你希望这件事不会发生,那么它就像,我们是如何走到今天这一步的?你怎么能理解如此巨大的成功和如此炙手可热的事实呢?这让我在Lyft移动团队。我最初加入是为了解决地图领域的问题,这对Lyft来说很有趣,因为时间和距离在你把哪个司机派给什么乘客方面起着重要作用,它们也在定价中发挥着作用。它们是低级乐高积木。我从那里转到一个专注于混沌工程和横切可靠性的团队,从事基于机器人的负载测试,这实际上是Lyft非常成功的可靠性来源。最终,在2019年夏天,我最终离开了Lyft,并幸运地花了大约6个月的时间探索弹性工程。

艾米·托比现在是无可指责的,她显然是那个社区的一员,令人惊叹。我真正感兴趣的是:无论是它的社会技术系统还是认知系统工程,还是现代安全科学和软件系统的交集,都有这种解释能力或有趣的观点可以说,“好的……。如果你从更大的意义上看这个动态系统,也许你会明白你是如何获得如此糟糕的突破的。去年夏天,谷歌怎么会停机6个小时呢?CloudFlare怎么能在他们的WAF规则中提供正则表达式炸弹呢?人们想要功能性,对吗?你不能完美地测试事物。

因此,在有幸在南方公园公地(South Park Commons)呆了一段时间后,我决定是时候重新应用这一切了。南方公园公地是旧金山的一个为介于两者之间的人设立的团体。因此,我在2月份及时加入了条纹公司,就在冠状病毒之前。-‍。

达雷尔·帕帕:不错。让你着迷的是什么,吸引你的是复原力工程。在我看来,它似乎扩展到了软件之外。艾米刚刚与新遗迹和杰西卡·克尔的沃德·坎宁安和蒂姆·蒂施勒进行了相关的小组讨论。

雅各布·斯科特:是的。我需要看看这个。我试图与更广泛的从事件中学习社区中的各种人保持在线对话,并将自己放在思考现代安全科学的基础上,将其应用于科技行业初创公司、独角兽等。弹性工程实际上是现代安全科学的一种味道。例如,还有一些高可靠性的组织。

弹性工程学是由霍尔纳格尔、伍兹、德克等科学家和研究人员组成的学术实践者的核心,他们撰写了关于弹性工程学的文章,并对其进行了数十年的研究。关于安全意味着什么,有一种不断发展的观点。莱韦森。它们都在工厂、汽车、医药、发电厂和软件系统中。我们希望系统做一些事情,而不是其他事情,有时是隐含的。这就是EDGE用例的来源。我希望A加B等于C。这就像,嗯,溢出、下溢、浮动、转换怎么样?我不想考虑这一点;推断我想要的是什么。但是电脑并没有那么聪明。

一般而言,当我想到弹性工程或现代安全科学时,它蔓延得非常快。它首先真正拥抱整体,一个系统的更大视野。

因此,与其说我想要一个服务网,不如使用特使。如果我有我的生成重试和断路器以及所有这些设置正确,并且我有正确的仪表板和所有这些东西,那么我将拥有一个可靠的系统。

复原力工程学会说,好吧,但是这些人是谁呢?谁会被寻呼?当他们被寻呼时会发生什么?仪表盘的人体工程学程度如何?你了解这些系统吗?如果企业有高优先级的功能请求,会占用资源吗?你计划部署特使,暂停得好吗?你能在这次迁徙中走到一半吗?你是在让自己陷入一种脆弱、脆弱、要么全有要么全无的境地?“。具体地说,弹性工程中的问题是我发现自己非常依赖的……一个是,“它在当时是怎么说得通的?”

‍,可能是认知系统工程。人们通常不会出现在工作中,把客户或他们同事的事情搞得一团糟。如果发生了什么不好的事情,那是因为有人试图做正确的事情,或者采取了一系列他们认为会有积极结果的行动,但事实并非如此。这对他们来说有什么意义呢?这是认知观。

人们通常不会出现在工作中,把客户或他们同事的事情搞得一团糟。如果发生了什么不好的事情,那是因为有人试图做正确的事情,或者采取了一系列他们认为会有积极结果的行动,但事实并非如此。这对他们来说有什么意义呢?这是认知观。

另一种是“安全II”的观点,即工作就是工作。基于什么导致晋升,我们看到的领导层不仅说了什么,而且做了什么……人们每天都会决定走捷径。如果有一个激进的截止日期,要做什么权衡。很多时候会导致成功,有时会导致失败,但这并不是说,有人在一天开始时抛硬币说,我要做成功的工作或失败的工作。他们确实做到了,所有这些潜在的变量最终都以某种方式结束了。

我认为这来自瑞安·基钦斯(以及整个从事件中学习的社区),在那里我们得到了完美风暴的想法,或者说“九是有用的”这句话。从可靠性的角度考虑您会遇到什么样的事件,或者您想要改进或避免什么。有一种观点认为,在一些最引人注目的事件中,50件事情一下子出错了,它们不会再以同样的方式出错。这是关于促成因素,而不是根本原因。

从可靠性的角度考虑您会遇到什么样的事件,或者您想要改进或避免什么。有一种观点认为,在一些最引人注目的事件中,50件事情一下子出错了,它们不会再以同样的方式出错。这是关于促成因素,而不是根本原因。

我不知道这是什么时候转变的……显然,像约翰·奥尔斯帕这样的人已经在这方面工作了很长一段时间,越来越多的人在SREcons和其他地方就这类事情发表演讲。现在有趣的挑战,也是我很感兴趣的一项在我的工作中体现出来的挑战,就是如何从这个角度出发,并将其映射到如何在实际系统中评估一个过程或结果的成功。从理论上讲,我对安全不那么感兴趣。如果你在谈论医院的安全,理论上的医院安全是很有趣的,但如果你真的能想出如何获得更好的结果,那就更好了。

达雷尔·帕帕:当然可以。我觉得SRE在某种程度上打开了一些关于理解人类方面的对话的大门,它似乎是一个很好的门户,可以拓宽到像弹性工程这样的巨大领域。我在试着弄清楚你在哪里定义边界?它似乎可以基于心理学的广泛感觉继续推动和发展,并延伸到我们如何深入研究分布的因果。你能分享一下如何将其具体应用于该领域吗?

雅各布·斯科特:是的。这是一个很好的问题。存在最佳实践的谬误,也就是说,成功的组织所采用的和有效的是高度特定于上下文的。就应用程序和你在哪里划定这些界限而言,这将取决于许多因素:例如,你在公司的什么位置,你的领导层对可靠性的看法。

这是一个很好的挑战,从抽象的角度来理解这一点。理查德·库克(Richard Cook)和约翰·奥尔斯帕(John Allspaw)给出的建议--我已经开始接受--是“乘风破浪”或“从小处着手”。你可以做的一件很清楚的事情是从事故中学习,这与弹性工程是相交的。Etsy汇报促进指南是一个很好的起点。自适应能力实验室博客有很多关于从事件中学习意味着什么的很好的资源,而不是在组织中使用无懈可击的事后检查的许多其他方式。

因此,与其阻止某事或告诉人们他们正在做的事情是错误的,不如试着在你的组织中找到一群好奇的人,然后在讨论中发挥带头作用,探索观点。

这让我想起了Expedia的Subbu Allaramaju中一些我认为非常有趣的事情。他回顾了Expedia发生的所有事件,并对它们进行了分类。恢复力工程要反思的一件有趣的事情是混沌工程和从事件中学习。它帮助你引导你的学习能力,通过这种认知方式:如何成功地确保这一事件不会变得更糟。

如果这次事件牵涉到一名新员工,而不是介入的资深资深人士,那又有什么不同呢?事实是,您正在查看一个真实的事件,使其特定于您的组织的上下文。而这实际上是一件真实发生的事情,这是一个如此丰富的来源。如果你看一看混沌工程或其他方法,比如持续验证,就会发现有一种高级模式,你会试图让事情总是有一点失败,这样你就可以更好地理解这些工作模式是什么。但是,如果你想一想混沌工程游戏的日子,你会给系统施加压力,你会做出一个假设,你会试着看看当你让它以某种方式失败时会发生什么。这是一个假设性的失败,无论是在质量保证方面还是诸如此类的方面。

当然,你可以在现场看到实况转播。在你们的事件中,你们有如此丰富的具体数据。这不再是抽象的。你的客户受到影响,有人在凌晨两点被寻呼。那是开始的地方。我考虑了很多关于高度对准、松散耦合和背压的问题。我认为弹性工程很有趣的一个地方是人们做出当地决策的地方。“我增加了这个系统的9。我在可靠性方面进行了投资。“。但是,是什么给了您信心,从而真正提高了客户看到的可靠性,或者提高了您的总体目标?

米奇·迪克森(Mickey Dickerson)在“寻找SRE”(Seeking SRE)一书中有一篇文章,其中存储团队工作了四分之一,真正提高了后端的可靠性。然后,应用程序团队将改善我们的延迟,我们不再需要进行这么多次重试,因为存储更可靠。你可以在这个复杂系统的其他部分消费产生的安全边际,在那里没有人能完全理解它。

在我看来,这似乎是最终目标之一:帮助理解当地的变化如何跟踪到端到端的结果。但这贯穿了整个组织的运作方式。因此,在社会或政治层面上,它变得非常复杂,而且也变得非常具体。如果你是某个渴望或以某种方式敞开心扉的高管,那么这可能会更容易。如果你正忙于赶在某个疯狂的最后期限前完成任务,你可能从中得不到太多。

它是领先和落后的指标。你训练并参加马拉松比赛,希望你的时间有所提高。找到志同道合的人,并在你可以预算或腾出时间用于领导工作的时间内从事件中学习。就结果而言,给出通用的最佳实践变得困难得多。你学到了很多东西,所以要密切关注组织中正在发生的事情,或者你什么时候能找到一条利用这些知识的途径。这就是“乘风破浪”的建议。

达雷尔·帕帕:我绝对同意,我觉得事件就是切入点。在某种意义上,大多数人可以走到一起,真正感受到同样的痛苦,这就是开始对话的地方。现在我想让我们回到你在Lyft的时候,在那里团队开发了一些真正尖端的解决方案来解决高度复杂的问题,这些问题来自于操作分布式系统。您在那里遇到的最有趣的技术挑战是什么?

Jacob Scott:一个非常有趣的技术挑战,特别是对于较大的组织来说,是基础设施团队和产品团队之间发生的这种分歧,例如迁移到Kubernetes是什么样子。如果您的团队负责提供有关网络、计算、存储和其他资源的强大技术原语,您是否应该这样做?

我会假设,在前寒武纪时代,高增长公司或任何十角兽公司经常出现的一种模式是,你的业务正在爆炸式增长,基础设施团队中有5个人,然后就是“不择手段”。这是非常多变的基础设施,许多宠物,而不是牛,因为在那段时间里它是工作的。但是,您可能会发现,这种配置管理或服务发现的属性并不安全,或者有点笨重。它可能在某种产品工程上为客户做得不够,而且拥有和运营它的人也不再对它感到满意。

但是,如何构建新的东西并保持旧的东西运行呢?因为所有产品都在那里运行。你如何同时交付客户真正想要的东西呢?从外部看,这是炒作的循环。这就像,好的,我是一名基础设施工程师。所以现在虚拟机都老旧了,我把它们放到容器里,让我们来做库伯内斯吧。库伯内斯会很棒的。它有它自己的惯性。但是你们提供给产品工程师的平台是什么呢?这会解决他们的业务问题吗?基础设施团队的价值实际上体现在它通过向客户提供功能的产品团队所产生的端到端影响。

库伯内斯会很棒的。它有它自己的惯性。但是你们提供给产品工程师的平台是什么呢?这会解决他们的业务问题吗?基础设施团队的价值实际上体现在它通过向客户提供功能的产品团队所产生的端到端影响。

当我在Lyft工作的时候,我也看到初创公司建造服务网状产品,比如建立在特使之上的控制机。然而,考虑到特使在Lyft的根基,我们的控制机是第一批飞机之一。我对它的看法和你对手机和固定电话的看法一样。如果你在拥有固定电话基础设施之前就有了手机,那你就是。

.