非理性繁荣!

如何投资于技术基础设施。金沙手机客户端

5月19日,2019.申请下基础设施

我在6月12日以光速演讲,2019年Stripe如何投资于技术基础设施金沙手机客户端,这篇文章概述了演讲的内容。我对这次谈话很兴奋,因为它整合了我之前写过的很多观点,我发现它一直都很有用!这不是成绩单,这次演讲将更多地以具体的例子为基础,而不是大纲。


我是威尔·拉尔森,今天我要和大家谈谈投资技术基础设施,金沙手机客户端特别是关于Stripe如何改进了我们投资技术基础设施的方法。金沙手机客户端这里的想法代表了我们在组织上学到的很多东西,就我个人而言,在基础设施工程团队中确定优先级并执行计划。

如果这是对的,你会带着三四个有用的工具离开,和你的团队一起计划和优先级。

简单介绍一下我的背景知识:

  • 我工作在条纹我们的任务是提高互联网的GDP,过去三年我一直在那里领导基金会的工程团队,我们从事基础设施建设,数据,以及内部和外部开发工具。
  • 条纹之前,我在超级,启动SRE和平台工程小组。
  • 就在几周前,我出版了一本书,一个优雅的难题,这涵盖了我今天要讨论的几个观点。

话题

我们今天要讲的,在大约五分钟的时间里,是:

  • 介绍自我介绍,什么是红外线,为什么重要呢
  • 基金会:强迫vs自由,短期与长期
  • 消防:从固定火源中挖出
  • 投资:应用产品管理
  • 原则注意你的言行举止
  • 统一的方法:用户,基线和时间
  • 关闭例如你现在在哪里?从哪里开始

好了,让我们开始吧!

什么是技术基础设施?金沙手机客户端

在过去的工作,我偶尔会遇到一些看“基础设施”的人就像“我的团队不想做的任何事情”,但这是一个令人惊讶的流动性定义。让我们做得更好。

技术基础设施是我们用来创建的软件和系统,金沙手机客户端发展和经营我们的业务。这次演讲更精确的定义是,“许多团队用于关键工作负载的工具。”

技术基础设施的一些例子包括:金沙手机客户端

  • 云服务:AWS,Azure,GCP
  • 开发者工具:构建,编译器、部署、编辑器,Git,Github
  • 路由和消息传递:特使,gRPC,节俭
  • 数据基础设施:卡夫卡,Hadoop气流,TensorFlow
  • 胶水:厨师,高,傀儡,起程拓殖
  • 更多的东西也有资格!

正如你所看到的,我们正在研究一个广义的定义。

为什么基础设施很重要?

这种基础设施是完成真正杠杆化工作的难得机会。如果你的构建速度快5分钟,每天做一百个建筑,这样你就节省了8个小时的时间,可以用来做一些更有用的事情。

基础设施建设不善的后果同样深刻。如果你构建了不可靠的软件,您的用户将无法利用您所构建的内容。您和您的同行将花费您的时间来减轻和纠正事件,而不是构建用户会喜欢的东西。

当然,我的观点受到我的经历的影响,但我坚信在每一个成功的背后,scale公司是一个优秀的基础设施团队,他们在做着了不起的事情。否则,企业根本无法在规模上取得成功。

基金会

在我们讨论如何投资和发展之前,对于我们来说,有一个关于我们被要求做的工作类型的共享词汇表是很有帮助的。每家公司都有自己的委婉说法,像“KTLO”,“研究”,“原型”,“技术债务”,“批判”“最重要的”,等等。

一旦我们掌握了这些词汇,我们将开始讨论Stripe的基础设施团队多年来遇到的具体挑战和限制,以及我们如何适应和克服每一个问题。

强制投资和自由投资之间的权衡。

第一个重要的区别是强迫可自由支配工作。强迫工作是必须发生的事情,可能是由一个关键的发射驱动,一个company-defining用户,一个安全漏洞,性能下降,等。可自由支配工作更加开放,这是一种你可以从所有可能性中选择的工作:新产品,重写,引入新技术,等。

长期和短期投资之间的权衡。

第二个区别是短期长期工作。短期本周可能需要修补所有服务器,以防出现新的安全漏洞。长期可能是构建自动化和工具来降低计算实例的p99年龄,这将使将来部署补丁更快更安全。

当我们把这些想法结合起来的时候,事情就变得很有趣了。

2×2网格o长期和短期vs强制性和可自由支配的投资。

现在我们有了这个网格,工作存在于两个连续体中。你可能会说这些组合并不存在,但我确定他们都有它们都很常见:

  1. 被迫的,短期-各种形状和大小的紧急情况。
  2. 被迫的,长期-为将来需要大量投资的强制性工作作准备。承认这类作品在某些文化中具有颠覆性,但它是真实的,为其存在创造可见性是正确投资基础设施的一个核心方面。
  3. 可自由支配的,短期-这些往往很小,用户反馈驱动的调整避免了可用性,有针对性的矫正可靠性。
  4. 可自由支配的,长期-经常对现有系统进行世代改进,比如从批处理转换到流计算范式,从一个整体到一个SoA,等等。

您可以将每个项目绘制到这个网格中的某个位置,你可以在网格中绘制团队。为了策划一个团队,你只要把团队项目的所有向量加起来。

这就引出了一个有趣的问题,你在哪里想要您的团队或组织要在这个网格中吗?

团队主要做长期和自由的工作。

很多人都是这样的团队最初我认为他们想加入。然而,完全缺乏强迫和短期工作通常意味着很少甚至没有人使用您的软件,或者这些用户和开发人员之间的反馈循环是完全缺失的。

你经常在被描述为“研究团队”的团队中看到这种情况。

团队主要做强迫和短期工作。

这是另一个常见的例子,通常是资源不足的团队,从一个火堆跳到另一个火堆,努力稳定今天,梦想在遥远的明天有所创新。

没有多少人想加入这些团队,但有时人们会后悔离开他们,因为这些团队对他们的工作有独特的优先级和领导欣赏。

平衡短期和长期工作的团队,固定和自由支配项目的组合。

这就是我认为的团队应该努力生存。你需要一些强迫的工作,因为这意味着人们在用你的系统做一些重要的事情。另一方面,你也想要一些自由支配的工作,以确保你投资于复利技术优势随着时间的推移。

好了,所以我们有一个心理模型,现在我们可以开始讨论Stripe的基础设施方法的演变。

消防

基础设施工程的一个重要方面,通常区别于产品工程,工作的百分比就是这么简单吗必须做的事情。最常见的情况是,当一个公司经历了多次停机,如Twitter的失败鲸时代

我确信Twitter上的大多数人并不想致力于稳定,但它已经到了不能优先考虑其他事情的地步。

团队主要做强迫和短期工作。

在我们的框架,这是一支被强迫控制的球队短期工作,它有很多不同的名字,消防是一个受欢迎的。


重点:

  • 把尽可能多的工作安排在未来,摆脱“被迫”工作。
  • 当你超载,这将会很难。最重要的问题是,是否有证据表明你正在挖掘——长期来看会更好——或者你是否落后了。
  • 开始挖掘,有时候你会有创造力,寻找更多杠杆化的方法,把约束条件推几次,以确保你不是刚性的。这里的目标是找到解决“强迫”问题的工作减少未来“被迫”的工作工作。
  • 即使是小的胜利也开始加剧挖掘。我的同事Davin出身低微的人说“航运是一种习惯”我非常同意!
  • 与航运相关的一个习惯是:少做!当乌玛Chingunde开始领导Stripe的计算工程团队,她集中力量巩固了一批优秀人才迁移工作越少越好,包括暂停一些。你只能从完成工作中获得价值,不是因为工作。
  • 其他时候你会发现"强迫"工作不可能被剥夺,再来看可靠性的例子,或者,如果你的钱快用完了,需要削减你的AWS账单。
  • 如果你不能减少强迫工作而你又落后了,你得租一条路出去。继续招聘,直到你看到你正在挖掘的证据。在你挖出来之前不要雇佣,这两种情况都会让你招兵买马扩大招聘需要扩大培训,放慢恢复的时间。

例子说:


相关文章:

投资

一旦你的团队完全从火灾中撤离,你有一个新问题:你可以做任何事情!把它描述成一个问题似乎是错误的,但我的经验是,当大多数基础设施团队从紧急情况下产生的非常明确的重点转变为从被强迫的暴政中解脱出来的令人压抑的广泛机会时,他们确实在挣扎。短期工作。

团队主要做长期和自由的工作。

的确,我认为,大多数基础设施团队在长期运营中花费的时间很少,当他们遇到挫折时,他们可以自行决定。这些绊倒常常使它们回到温暖的地方,充满清晰的消防地狱。

如果你意识到了这种转变,你可以有意识地管理它,这是事情变得非常有趣的时候!你必须有意识地去做。


重点:

  • 你习惯了不用做太多工作就能分清轻重缓急:很容易就能发现火灾。现在已经不管用了,你必须非常有意识地决定要做什么以及如何去做。
  • 真的,你要做的是开始应用产品管理的基本原理:发现问题,优先考虑在他们,验证您计划的方法。
  • 发现。当你有多余的工程能力时,人们往往有一大堆他们想做的事情,许多团队会立即投入其中,但我认为,与这种本能作斗争,退后一步,进行深思熟虑的发现是有益的。

    撒一张很宽的网,不要过滤掉看起来不好的想法,捕捉尽可能多的想法。一些有用的技术:用户调查,咖啡聊天,用户组讨论,sla,达成一致同行公司聊天、学术和行业研究。

    如果没有人吵着要你尝试构建的东西——如果其他团队不因为你不能很快交付而感到沮丧——那么很有可能你正在解决错误的问题。

  • 优先级。你必须对问题进行排序。我更喜欢按投资回报排序,但是有很多选择。为了理解长期的ROI,你真的需要两件事:清楚地了解你的用户需要什么,以及你的团队希望完成的长期目标(也许三年左右)。

    如果你在没有用户声音的情况下进行优先排序,你的优先顺序错了。

  • 验证。一旦你选择了要着手解决的问题,你应该经过一个深思熟虑的阶段,试图反驳你的方法。你想找出最难的问题第一个,然后你可以用最少的投资来调整你的方法。晚发现问题很重要。更糟。

    这里为用户提供的一些技术是:嵌入用户团队/公司,建筑原型,首先解决最难的用户(不像有些人那样容易),有清晰的成功标准,并经常检查。

  • 必须保持足够的团队规模以保持创新。如果你的创新团队规模太小,或者无法胜任其他工作,他们不会成功的。我们对新团队的成功标准之一是他们立即进入创新模式,不是消防部门。我们通过我们的一致的团队规模评估方法
  • 作为一个推论,如果你没有很好地选择问题和解决方案,那么一个经营良好的公司会毁了你的团队。这是一个挣来的和维持的机会,有大量的自由支配预算。
  • 考虑让产品经理进入基础设施组织。不是每个团队都需要他们,但是,即使只有少数人能帮助从救火到创新的转变,也是非常有用的。

一些随机题外话与这个话题有关:

  • 何时使用云服务?当它们被商品化时。公司追逐收入和利润,通过竞争,商品利润被压缩,因此,公司会增加差异化的新产品以提高利润率,远离这些,你会受益的!
  • 什么时候应该运行自己的数据中心?当您有特殊的服务器工作负载,并且具有不同寻常的容量比时,例如,需要非常大量的硬盘。例如,谷歌允许您设计自己的SKU,但在这些服务器的下面,随着公司规模的扩大,你进入容量播种机的细节。经验法则是30%的成本运行它自己,但规模经济和竞争可能会进一步压缩这一点。另外,这是原始储蓄,忽视机会成本,如果你的公司在做一些有用的事情,这是一个重要的遗漏。
  • “技术移民”。你经常会看到人们从一家公司跳槽到另一家公司,带着他们的技术,你的整个创新预算都会被那些没有明确目标的变化所困扰。这一切都以眼泪告终。

例子:


相关文章:

原则

所以我们已经有了一个清晰的框架来让消防队伍撤离,帮助团队成功并保持创新模式的框架,所以理论上一切都应该很好。

平衡短期和长期工作的团队,固定和自由支配项目的组合。

但是,通常不会。

可能这是突然出现的一个明显但被忽略的可伸缩性问题。或者谁没有听说过一家或另一家公司在截止日期前放弃一切来履行其gpr义务?在这两种情况下,我发现长期来看,强迫工作没有资源,变成了意想不到的短期雪崩,被迫工作。

我们采用了一种我称之为“基础设施五项原则”的方法帮助我们以一种结构化的方式思考这些问题。


重点:

  • 确定广泛的类别,这些类别捕获希望在基础设施中维护的不同属性。
  • 对于我们的基础设施团队来说,我们一直在使用:安全,可靠性、可用性,效率和延迟。给你的,可能会有些不同。
  • 对于每一个性质,您需要确定可接受性能的基线。例如,也许对于你的基础设施投资,你想设定一个目标,那就是每1000笔交易的成本不超过某个绝对值,或者你想要一个固定的收入与基础设施支出的比例。
  • 每次你做计划的时候,回顾你的基准线,以及与这些基准线相对的性能是如何变化的。
  • 然后展望未来一年和两年:那时你的趋势线是什么样的?
  • 如果你做得好,然后你的黄金,继续以创新为本。
  • 如果它走向错误的方向,然后做一个快速的头脑风暴会议,讨论进入一个好地方需要做哪些工作,然后粗略估算一下到达目的地所需要的时间。
  • 如果要花好几个季度才能做好,离截止日期只有几个季度了然后恭喜你:你发现了强迫,长期的工作!
  • 噢,是的,你必须分清轻重缓急,把事情做好。

例子:


相关文章:

统一的方法

到目前为止,我们已经讨论了相当多的内容!消防,创新,基线,等等。如果你和一个团队或一个较小的组织工作,然后,这可能足以指导您的基础架构团队在接下来的一两年中工作。

然而,当你负责与几十个基础设施团队协调一个组织时,事情变得相当复杂,这就是我们在去年年底面临的问题。

2×2网格o长期和短期vs强制性和可自由支配的投资。

挑战就是接受所有这些想法,找到一种方法为不同的团队提供有用的指导,这就解释了为什么有些团队将会处于创新模式,其他消防,以及其他中间的地方。

我们将要讨论的是Stripe的基础工程团队是如何代表Stripe的大约600名工程师进行我们的计划的,该团队由大约200名工程师组成。


重点:

  • “用户第一”是Stripe的工作原理之一,这也是我们开始计划的地方。在所有依赖你的用户中,哪5到10个最优先的问题是什么?
  • 我们为每个基础设施属性(安全性、可靠性、等),着眼于近期和长期的表现。为了保持这些基线,我们需要进行哪些项目和投资?
  • 我们选择两到三个“关键倡议”,这些都是大型项目,我们需要基金会组织的很大一部分合作才能取得进展。如果我们能做几个大项目,什么是最重要的?我们将这些限制在6个月内,以保持对新信息做出反应的灵活性——如果我们执行得很好,今天最大的机会不太可能是6个月后最大的机会!
  • 我们将40%的时间分配给用户提问(直接解决用户现有问题的事情),30%用于平台质量(维护我们的基线),30%的资金用于关键项目。
  • 用户要求和平台质量投资在单个团队级别上被优先考虑,在基金会领导层,重点计划被优先考虑。这种分解保持了团队的大部分自主性,同时也为高层领导提供了适应的预算。
  • 总的来说,工作很好!实现过程中最大的挑战是来自其他团队的计划外工作,这些工作超出了团队的“用户要求”。预算。
  • 不过,这种方法确实提供了一些工具,通常情况下,这是在关键的计划时间表上滑倒的形式。也就是说,毫不奇怪,不好玩,但这是一个足够大的预算,它让我们可以在一个地方明显地减少进度,而不是在许多较小的项目上削减预算,从而增加可预测性。
  • 这是最后一种方法吗?我想想象一下,但历史表明事实并非如此。我很高兴看到我们下一步将如何发展这种方法。

相关文章:

关闭认为

好吧,让我们回顾一下我们讨论过的内容。

没有一种投资基础设施的方法可以一直为你所用。识别一个有效的方法取决于识别你当前的约束条件,然后对它们进行适当的解释。虽然没有人能解决这个问题,但是有很多好的模式可以重用:

  • 如果你的团队是被迫的,短期工作,然后通过投资于你的卓越运营来挖掘。
  • 如果你的团队刚刚开始体验自由裁量的刺激,长期工作,然后投资于你的产品管理技能。
  • 如果你有自由支配的预算,但仍然发现自己在逃避一个问题,然后确定平衡方法的原则,并为每个原则设置基线。

像任何好策略,真正困难的部分是培养诚实的自我意识,认清自己的现状。一旦你了解了自己的处境,设计一个解决方案只需要彻底的思考,严格学习要求,并继续完善课程。