快速基础设施:在欧洲建立对讲系统的 5 个经验教训
已发表: 2022-05-0612 月,我们宣布了欧洲数据托管,这是 Intercom 有史以来最大的基础设施项目之一。 随着我们继续在全球范围内扩展对讲机,我们在构建基础设施时学到的经验非常宝贵——截至 2022 年 4 月,我们还在澳大利亚托管对讲机。
到目前为止,Intercom 一直是托管在 AWS 的单个区域中的多租户应用程序。 然而,长期以来,我们一直在与我们的客户和潜在客户讨论欧洲数据托管问题——我们知道我们必须交付什么以及我们必须解决的问题:对讲机,但数据存储和处理在欧洲。
我们知道什么——我们不知道什么
我们从很多“已知的知识”开始; 我们知道必须解决的问题,例如多区域软件部署。 我们也发现了一些“已知的未知数” ; 我们需要解决但还不知道如何解决的问题——比如将新区域整合到我们的计费系统中。 我们也确信有很多“未知的未知数”等待被发现。 这些未知的未知因素使我们很难估计该项目需要多长时间,或者我们需要多少人投入其中。 范围太广,无法与我们过去承担的其他项目或工作相比,成功之路也不清楚。
我们早期做的一件事是与之前从事过此类项目的类似公司的团队交谈。 在许多情况下,这些项目被证明是这些公司有史以来最大的一些项目,他们的大部分工程团队花费了六个多月的时间才完成。
“在大流行期间,我们不愿放慢研发团队的速度——因此我们制定了项目计划,以反映我们喜欢在 Intercom 工作的方式”
一些公司甚至在此过程中重新构想了他们的架构。 我们不愿意做出如此规模的改变并放慢我们的研发团队的速度(在大流行期间!),所以我们制定了项目计划来反映我们喜欢在 Intercom 工作的方式。
这意味着尽管项目规模庞大,但要快速行动。 在长期优化的同时快速行动,以及采用我们的“快速发货、早发货、经常发货”的原则,帮助我们不仅让产品落地,而且最终比我们计划的更快地交付给我们的客户为了。
第 1 课:开始构建 - 快速
我们对快速行动的奉献使我们上了第一课,这个决定真正开启了这个项目的开始。 在最近的Intercom on Product 播客中,我们的联合创始人 Des 谈到了那个古老的绝地钟形曲线模因,以及它通常如何应用于初创公司的速度。 大多数初创公司都会经历“安装更多流程”阶段,直到他们最终意识到他们只需要尽快行动。 运用速度和忙碌将帮助我们找出那些“未知的未知数”,并在遇到它们时找到解决方案。
所以我们的前 CTO 和联合创始人 Ciaran Lee 决定我们才刚刚开始。 我们将开始建设,并且非常非常快地进行,有一个专门负责该项目的小型临时团队——在指导下,失败是完全可以的。
“被允许失败改变了我们对项目的态度”
如果我们的方法不起作用,我们将获得宝贵的经验教训,使我们能够为将来可能起作用的事情做计划。 在最好的情况下,我们会快速构建一些运行良好的东西,这样我们就可以开始弄清楚如何将它交到客户手中。 允许失败改变了我们对项目的态度,使我们能够开始前进。 我们没有从一开始就试图预测问题并展望未来以保证成功,而是开始构建,直到遇到问题,然后找到解决方案。
同样重要的是要注意,我们并没有构建以后可以用作构建块以供以后完整实施的原型——我们正在构建真实的东西,在我们进行的过程中弄清楚事情。 因此,我们保持的势头最终对项目的成功至关重要。
第 2 课:坚持你的原则
一旦我们开始建造,我们的工程原则就帮助我们保持快速发展。 我们可以通过多种方式在欧洲构建对讲机,包括重新设计我们的架构,但为了符合我们“技术上保守”的原则,我们选择采用与构建现有生产环境相同的方法。

“我们不只是复制和粘贴,而是缩小和简化”
我们几乎没有在我们的欧洲扩建项目中引入任何新的软件、服务或方法。 同时,我们极大地简化了我们的架构,采用了我们美国基础设施的元素,并以一种更易于使用的方式在我们的新环境中重用它们。 我们不只是复制和粘贴,而是缩小和简化,符合我们“保持简单”的原则。
第 3 课:在需要时改变规则
我们需要在我们的计划流程和团队结构方面留出很大的灵活性,以便让这个项目配备人员并开始,改变“规则”,同时确保让每个人都了解我们在做什么。 我们建立了一个临时项目团队,其中包括来自现有团队的经验丰富的工程师来开始该项目的工作。
当然,这个决定有一些后果:团队的能力较低; 项目成员必须跨越多个每日站立会议; 和其他项目必须被取消优先级。 这绝不可能是我们所有项目的默认方法,但是当我们知道我们需要实现什么,并且我们想立即开始时,尊重我们的流程以促进进步是有意义的。
第 4 课:尽可能在本地工作
这可能是我们为保持项目快速推进而做出的最重要的决定。 尽管作为项目的一部分涉及对讲机的所有部分,但我们决定不跨多个团队进行工作,而是将尽可能多的工作保留在我们的特设项目团队本地。 除了避免更广泛的规划流程外,这意味着我们不必要求我们的研发团队来促进我们的功能在欧洲的部署。 我们只是通过默认方式自己完成工作,从而避免了无数次会议、文档和 Slack 消息。
“我们承担了问题的责任,并授权自己在这方面取得进展”
我们承担了问题的责任,并授权自己在此问题上取得进展,通过最大限度地减少对不从事欧洲项目工作的团队的干扰,最大限度地降低对讲机的总体成本。 在某些情况下,我们确实不得不向有专业知识的人寻求帮助,我们给一些团队带来了一些惊喜——但总的来说,这是一个非常成功的方法。
第 5 课:保持时间灵活
在我们建立基础设施并确保 Intercom Europe 正常运行后,我们进入了项目的不同阶段,并与 Intercom 的多个团队合作,以协调面向客户的发布。
我们的发布阻碍主要是我们自己的内部流程,以及一些我们认为对发布并不重要的面向客户的集成。 所以我们问自己,我们是否可以在没有WhatsApp 等功能的情况下启动并在我们进行时填补这些空白? 真正阻碍我们的是什么?
“通过查看时间表并评估剩下要做的事情,我们认为我们可以将发射推迟到 12 月”
我们的项目计划在 1 月启动,但通过查看时间表并评估剩下要做的事情,我们认为我们可以将其推迟到 12 月。 我们需要客户支持、销售、分析、营销、法律、研发和其他方面的帮助,但每个人都齐心协力快速行动。
我们有一个 Slack 频道,显示我们的销售团队何时使用该平台与客户达成交易,从而为 Intercom 带来实际收入。 在这些最后阶段争取采用的回报在这个渠道中变得很明显——它结合了我们为实现这一目标而投入的所有工作的价值。 遵循我们现有的时间表会容易得多,但通过推动我们自己,我们设法比计划提前一个月将其交到客户手中。
我们的学习将帮助我们更快地前进
这是一个非常令人兴奋的项目——我为我们所做的工作感到自豪,并且我们将项目对整个 Intercom 团队的影响降到最低。 仍有许多正在进行的工作,但我们从经验中吸取的教训是非常宝贵的,因为我们建立了我们的澳大利亚托管服务并继续在其他司法管辖区开发基础设施。
了解有关使用 Intercom 的欧洲数据托管的更多信息