在这一集中,我们采访了Massdriver的首席执行官兼联合创始人Cory O'Daniel 。 Massdriver 可帮助工程师部署具有集成可观察性和安全性的最佳实践云架构,而无需成为 DevOps 专家。
在本次演讲中,我们讨论了 DevOps 和云计算的演变,以及为什么传统的 DevOps 实践对当今的许多初创企业来说效果不佳。我们还探索了生成人工智能对外星 DevOps 编程的承诺。
关键问题:
DevOps 编程主要涉及哪些行业?
如今的 DevOps 需要哪些改进?
您如何看待现在人工智能的民主化发展?
音频文字.
Erik:Cory,感谢您今天加入我们的播客。
科里:是的,非常感谢邀请我。
埃里克:这会很有趣。我在播客中涵盖了很多不同的主题。其中一些,我很满意。其中一些,有点超出了我的舒适区。我想这里有点偏僻,所以我很期待在这里接受教育。但是 Cory,也许一个不错的起点是您向我们介绍您非常有趣的背景,并分享您是从哪里开始进入 DevOps 主题和提高开发人员生产力的主题的。
科里:是的,所以,我在这个领域已经有一段时间了。我的背景最初是医疗保健信息系统。我是一名 HIPAA 安全分析师。在此之前,我其实对软件一点兴趣都没有。我做过一些软件开发是为了好玩,就像 90 年代的现代游戏一样。我写了一些软件来完成我的第一份工作。我把自己的工作自动化了,然后升职到了软件部门。我改变了职业。我本来是学物理的。所以,我进入了医疗保健,医疗保健 IT。我有一段时间是一名 HIPAA 安全分析师。然后我就开始爱上编写软件。因此,在 2005-2006 年间,我从佛罗里达搬到了南加州,加入了一家初创公司。我不知道是哪一个。我正打算去做。
我在这里的第一份工作是为一家公司工作。他们在数据中心。他们的租约即将到期,他们知道这一举动。这大约是亚马逊首次推出 EC2 的同一时间。因此,有一天,我的老板走进办公室说,“你在数据中心工作过,而且你写软件?”因为就像在运营团队工作的人一样,他们是软件团队的人。但我是坐在两者之间的一个人。他就像,“你想帮助我们弄清楚如何从数据中心迁移到这些云计算机,再到亚马逊销售吗?”我当时想,“你刚才说的这些对我来说都没有任何意义。亚马逊正在销售云计算机?”因此,我开始在云端工作。大约 11 年前我在一些 IaSQL 工作过,然后剩下的就只是历史了。在过去 16 年左右的时间里,我一直担任 DevOps 角色。
埃里克:好的。所以,你实际上很早就进入了,至少在迁移到云的过程中。然后在过去的 16 年里,我猜 DevOps 已经发展了很多。感觉在某些方面,它已经完全进化了。前几天我刚和一个朋友聊天。他说,有些领域的效率只比以前高 98%,因为有些事情你可以自动化。然后有些地方感觉并没有真正改变那么多。所以,如果你看看 DevOps 的前景,我们在什么地方可以说,好吧,我们今天非常高效,也许还需要逐步改进,但我们已经走上了一条好的道路?那么在 DevOps 中您仍然认为有很大改进空间的领域是什么?
Cory:老实说,我现在不是 DevOps 的粉丝。我这样做了,但我认为我们对它是什么有一种扭曲的看法。它最初是一种文化,在这种文化中,我们可以拆除运维和工程之间的孤岛。我认为这在很短的时间内是有道理的。当我在 2006 年、2010 年、2011 年的早期云工作时,并没有大量的云服务。这是有道理的。我们有软件。我们想引入变化。我们需要把东西放到云端。人们拥有东西是有道理的。
现在,随着云的扩散,没有任何云的目标是简单的。他们的目标是有能力。他们必须能够向所有人出售一些东西。在这样做的过程中,发生了几件事。第一,在云中管理和部署东西变得更加困难。与此同时,我们的软件变得更加复杂。我们的客户在第一天就要求一切都像 Facebook 软件一样工作,但他们已经不在了。我们拥有全球受众,而在 10 年前,您可能很难在您的网站上吸引 1,000 人。现在你可以非常快速地进行大规模开发。因此,我认为这两件事结合在一起,使这个世界不再真正适合 DevOps。
普通软件工程师没有任何云操作经验。 8% 的软件工程师拥有深厚的云运维经验。所以,这意味着当我们进行 DevOps 时,我们真正在做什么?如果我们要成立一家公司,或者如果我们要让软件开发人员离开新兵训练营,那么他们并没有在生产环境中工作过。运营就是生产经验。他们在做什么?他们在工作中学习,这很棒。这就是你学会做手术的方式。但是你不可能真正拥有良好的生产系统,让人们学习如何运行它。因此,我认为这种“现在每个人都在做 DevOps”的想法是行不通的。你看到它不起作用。这就是您开始看到 DevOps 事物的地方。你没有看到 DevOps 文化。我们都做了一点 DevOps,但你开始看到有 DevOps 角色的团队。这是 DevOps 最初的反论点。所以,行业表明这是行不通的。
那个团队是什么,那个团队是一个运营团队。确实如此。所以,让我们称之为它是什么。我们确实想拆除这些孤岛。但是我们尝试这样做的方式或说每个人都可以去管理云基础设施的方式,并不是这样做的方式。我对这个术语感到困惑。但与此同时,我也在做 DevOps。我是一名软件工程师。我拥有深厚的运营专业知识。我编写软件来自动化操作。但那是我使用软件来做我擅长的事情。
我不确定这是否回答了你的问题。但我觉得我们已经不在那里了。我认为 DevOps 的想法已经过去了,我们需要超越它。我们有太多的软件开发人员来到这个行业,无法继续这样做。如果您查看作为服务的普通平台的功能和云的功能,它们是非常独立的,并且没有介于两者之间的东西。通行证很容易和自以为是。云是复杂的,没有主见。我们需要建立系统——它介于两者之间,这样公司才能成长,而不会陷入困境。而且,工程师可以有效、安全地部署软件,而无需成为运维工程师。
埃里克:这是一个有趣的观点。我真的没有那样想过。但有一段时间云很简单,你可以与一个拥有多种技能的人弥合这两个鸿沟,而他们将扮演这个角色,这是有道理的。现在我们正处于这样一个地步,即由于性能和功能的增加,云变得更加复杂。同时,您确实拥有应用程序的激增,对吗?
我在物联网领域,所以我有很多客户——他们是工业公司。他们是化学公司。他们是生物制药公司。他们不是数据科学公司。现在他们正在构建对他们的业务和产品真正重要的软件。它是由了解客户的人驱动的。他们了解市场。他们是创新者,但他们不是 IT 人员。那么,鉴于我们的组织类型和我们拥有的资源,他们面临着这样一个挑战,即我们如何将它们组合成一个可扩展的包?所以,我认为这至少是我们在这里看到的挑战。不过,您需要解决这个问题。但也许传统的 DevOps 角色并不适合这些组织,并且可能不足以解决那里的挑战。
科里:是的,这很有趣。我看到了这个表情包,一条表情包推文。我不知道——最近互联网上出现了这件幽默的事情。就像,“建设未来的时间:一小时。弄清楚 IAM 的时间:三天。”实际上,IAM 就其本身而言,只是配置您的应用程序和人员访问云的方式的权限是复杂的——事实上我们现在有 IAM 工程师。那太疯狂了。那是狂野的。但这就是世界所在。这东西很复杂。
当您再次环顾四周时,会发现 8% 的工程师拥有这种深层云操作经验——这来自 Stack Overflow 调查。这不是来自一些奇怪的 Gartner 调查。这就是 Stack Overflow,软件行业的核心。它说 8% 到 10% 的人拥有这种技能。所以,当你想到这一点时,人们在哪里?他们在谷歌工作。他们在 AWS 工作。他们在 Apple 工作。他们与世界上最大的公司合作。当你环顾四周,我们其他人试图将东西部署到云中时,我们中的很多人都只是在猜测。而且你在薪水方面与地球上最大的公司竞争。
如果你有五名工程师的预算并且你需要开始将东西部署到云中,你会怎么做?你去雇一个运维人员吗?那不是很好地利用你的钱。这不是很好地利用那个人的时间。您是否会邀请一位可能没有这种经验的工程师说“去想办法”?好吧,现在你的功能速度下降了,如果有人试图弄清楚这些东西的话。另外,配置好吗?安全吗?它具有成本效益吗?我不知道。你最终会弄明白的。但与此同时,您客户的数据就在那里。我妈妈的数据,我们全家的数据都在里面。我们必须保护我们存储的这些信息。我不认为我们今天处理 DevOps 的方式可以做到这一点,我们会说,“嘿,每个人都可以做到。这很简单。”我认为,老实说,说任何人都可以做到,这低估了运营人员实际拥有的深厚专业知识。
埃里克:是的,我知道。这是一个有趣的观点。再次回到物联网主题,国会正在通过立法,基本上将责任从设备运营商推给 OEM。我的意思是,到目前为止的现状基本上是:有人制造了婴儿监视器之类的东西。他们将其投放市场,真正由设备所有者来保护他们的数据。现在他们推回了责任并说,“好吧。如果你把智能设备放在那里,你必须确保它符合某些安全标准。”你可以想象所有这些基本上都在查看他们的技术堆栈的公司,他们会说,“好吧。我们要怎么做呢?”现在我们已经有了成熟的技术堆栈。如果您是从头开始构建,也许这是一回事。如果你已经有了一个技术堆栈,并且你正试图开始在其中构建安全性,那么它会复杂 10 倍。
科里:是的,这很有趣。我觉得有一个新短语——它们不是新短语。它已经存在了几年。但我觉得这是一个刚刚开始被随意使用的短语。左移。我们向左移动操作。我们正在向左转移安全措施。当您查看 ML、ML ops 时,我们正在将它们的操作向左移动。除了专业知识,我们正在转移很多东西。进来说,“好的,DevSecOps,你在写软件。你的工作也是保护软件,你的工作也是操作软件。”没关系。你有什么时间开发功能?
我们所做的所有工程工作的另一端都有这个东西,它不利于安全和操作。那就是产品经理。如果你是一般的产品经理——比方说电子商务公司——他们看不到你的软件或负载均衡器快速处理大量流量。他们看不到您的数据库是安全的。他们看到按钮买了更多的东西。因此,他们的目标与安全和功能系统的目标不一致。他们的目标与转化率一致。所以,这是我看到的另一件事。很难转移所有这些责任,因为对于大多数组织而言,组织的其他人并没有真正看到这一点。或者你可能在谷歌工作并说,“好吧,谷歌确实如此。”就像,是的,谷歌确实如此。但是那里的 1,000 家 T 恤公司,医疗设备公司不一定看到这一点。如果产品经理看不到这项工作,那么工程师在做什么?他们只看到他们可以在产品中看到服务的工作。所以,这是另一个原因。我只是认为它并没有真正为我们的行业和所有行业服务,因为一切都开始成为一家软件公司。
埃里克:好的。好吧,有趣。那么请告诉我,Massdriver 在哪里适用? Massdriver 的价值主张是什么?在这个相对复杂的链条中,谁的价值主张是什么?
Cory:因此,根据组织的成长阶段,我们有两个价值支柱。我们要做的是在通行证和云之间着陆。我们正在尝试做的是本质上制作一个可定制的通行证,并且可以随着您的业务发展。从表面上看,如果你来到 Massdriver,并且你是一个没有任何操作经验的小团队,你看到的几乎是一种构建云基础设施的点击式方法。有很多人正在构建这种点击式构建云基础设施的东西。但是我们这样做的方式有点不同。
当您在 Massdriver 中看到某些东西时,它是非常面向用例的。我们并不是说,“抓住网络的 35 个组件并将它们连接在一起以构建网络。”我们正在从软件工程师的角度考虑您连接的事物。我需要一个网络。我需要一个数据库。路由表、子网——这些都不重要。我希望它是安全的。我希望它符合要求。我们正在谈论要求和政策。工程师们不一定想要云基础设施的详细信息。因此,开始配置连接到您的应用程序并让它们运行的安全且合规的东西变得容易得多。
现在,真正的魔力在于,随着您的业务增长 — 作为一名运维工程师,我走进了很多运行通行证的公司,他们已经到了需要迁移到云端的地步。那是一次昂贵的迁移。 Massdriver 的工作方式是,您连接在一起的那些包实际上只是包。在幕后,Massdriver 是一个巨大的云基础设施和应用程序包管理器。因此,当您的运营团队在四年后加入时,他们不必从某个地方迁移,它已经在您的云帐户中运行了。因此,我们将所有内容部署到您的 AWS 中,作为您的 GCP、本地 Kubernetes。现在我可以使用我熟悉的工具——Pulumi、Helm、Terraform。我可以将这些包定制到我的工程师中。没有什么变化。您绘制的图表看起来就像您在白板上看到的东西是他们如何配置基础设施。但作为一名运营人员,我可以完全控制它,当时机成熟时,能够需要微调基础设施,为平台添加新功能。
埃里克:这有多低代码?因为我猜,开发人员仍然在使用它,所以他们在这里确实具有基本的技术能力。但是,我也在想象我的一些客户,基本上是产品经理,他们在德国有一个 IT 团队。但我在中国。因此,他们经常试图弄清楚我如何迁移到中国的云,可以选择自己弄清楚,或者将其发回 IT 管道并等待三个月直到有人回答问题。
Cory:是的,所以,它的代码相当低。你可以从没有代码到你想要的代码。同样,如果你继续使用 Massdriver,你会看到其中一个盒子,当你连接在一起时,你会在白板上看到其中一个项目。背后有一个实际的源代码存储库。您可以直接访问该存储库并开始修改方式——比方说,Postgres 为 Timescale 工作或 EventBridge 在幕后工作。因此,您可以根据需要深入研究代码,也可以从用例的角度来看待它。我想要 Postgres。我希望它高度可用。我要备份 7 天。你正在从你需要的云的属性来看待它。
现在,当您部署应用程序时,它会在接近您的代码时进入编码部分。当您访问您的应用程序并连接到该数据库时,您可能会第一次看到代码。但那是在您的源存储库中。所以,你是说,你想在哪里安装那个环境变量?这是极低的代码。我们的客户通常看不到 TerraForm 或 YAML 或任何他们不想看到的东西。
另一方面,如果你是一个深度运营团队。抱歉,如果您的运营团队拥有深厚的专业知识,您可以对它进行微调。您可以从字面上向其添加功能。您可以扩展运行时,平台支持的应用程序。客户可以向其中添加自己的云。如果您想运行 OVH 或 Scaleway,您可以将其添加到您的筒仓中。现在 Massdriver 也支持该云。因此,它的范围很广,具体取决于您的专业知识水平和舒适度。
埃里克:明白了。好的。那你通常会和谁一起工作?我知道这是科技公司。合适的规模或成熟度水平是多少?是否有特定行业在市场上更具吸引力?
科里:是的,非常早期的创业公司。我们即将开始下一轮。这将是我们的第一个系列。所以,还处于早期阶段。我们主要关注初创公司和与我们年龄相仿的人。所以,pre-A 系列。这是我们最容易销售和迁移到平台上的东西。现在,话虽这么说,这真的很有趣,因为现在公司很快就变大了。我们有一些初创公司,好吧,那里只有三四个人。然后我们开始查看他们的流量概况,每小时有 800 万个请求。就像,好吧。这是一个小团队,但他们已经为大量流量提供服务。我们有另一家公司;它在平台上移动。他们正试图弄清楚如何将 20 TB 的数据从他们自己管理的这个旧环境迁移到 Massdriver。所以,他们是相当小的团队,但规模已经相当大了。
另一方面,我们有一些企业。我们拥有三大咨询公司之一。它正在将它用于一个小项目。老实说,有相当广泛的行业在使用它。但我们看到最多的公司是医疗保健公司。同样,因为我们做了很多合规性工作,即开箱即用。所以,SOC 2、PCI、HIPAA——我们默认在所有这些基础设施上做。因此,它可以使您真正接近合规性。在基础架构级别,您必须专注于您的应用程序。
然后我们真正看到很多兴趣的另一个地方是机器学习和人工智能。我的意思是,我们正处于机器学习和人工智能的第四次硅谷淘金热中。我们卖铲子。我的意思是,我们想做一些我们自己的机器学习和人工智能的事情。但是今天就像,当你看到很多团队并且你进入公司时收到这种赚钱的交易产品然后是 ML 团队,通常情况下,ML 团队没有大量的运营支持.他们正在自己弄清楚这些东西。因此,今天有公司来找我们,他们想要运行这个 ML 产品。他们一直在做模型训练,但他们不知道如何进行操作。他们在他们的机器上本地运行了一些东西。然后你想办法把它放到云端。然后我们甚至有一个 pass,这是一个非常早期的 pass,用于在 Massdriver 之上构建他们的 pass 的 ML 空间。因此,我们实际上看到了我们希望能够兑现的全部承诺。您甚至可以在平台上运行与通行证一样复杂的系统。
埃里克:这有点偏差。但我真的很想听听您对 GPT 或生成 AI 这个话题的看法。因为感觉它真的以一种实际上不是的方式民主化了对机器学习的访问——我的意思是,两年前,你需要一些数据科学家和相当多的投资才能让一些东西起步。现在您需要一个想法和一个相当称职的开发人员,然后您就可以开始构建应用程序了。但是,就像你说的那样,这些应用程序可以开始扩展,你可能开始处理大量数据、高用户群等。但是,您如何看待现在正在演变的这种人工智能访问的民主化?
科里:是的,这真的很有趣。我认为这非常令人兴奋。我肯定玩过 ChatGPT 和 Jasper 以及其他几个,尤其是在我薄弱的领域。我是一名技术 CEO,但这是我第一次担任 CEO。我没有太多的营销经验。所以,我一直依靠 Jasper 和 ChatGPT 来重写我的一些副本。有趣的是,就像——我觉得,哦,这听起来不错。然后我读了它,我觉得,这听起来不太好。它很好,也很罗嗦,但它并不是一个很好的营销手段。所以,我认为它有很多新奇之处。
我考虑过这个问题,可能大约一个月前,当人们惊慌失措时——在 ChatGPT 之前,有图像。艺术家就像,“哦,他们会从我们这里拿走艺术。不会再有艺术了。”这是它不能画手的东西。它可以画出各种奇怪的东西,但它不能画出人的手。然后同样的恐慌开始发生。我觉得当 ChatGPT 出来时,就像是,“哦,作家要做什么?不会再有作家了。”就像,好吧,是的,如果你是在食谱网站上写关于某人祖母的食谱之前的七段的作家,是的,那个人失业了。但是当你谈论作者和制作电影的人时,我觉得很多人类体验,尤其是在写作中,都是曝光和体验。
有趣的是——以一位优秀的作家为例。他们接触过写作。他们读过一些书。他们接受过一些教育,也有过自己的生活经历。这两件事塑造了他们的存在,让他们写得很好。当您查看 ChatGPT 时,它是零经验和 100% 曝光率。因此,您会因为这些关于人类行为的淡化想法而感到沮丧。我的意思是,ChatGPT 就像是穿着紧身衣的大脑。这不是很人性化。感觉不是很人性化。因此,在软件方面,我有点担心。我们已经看到了副驾驶、自动驾驶等奇怪的东西,不管它叫什么。它有时会做一些奇怪的评论。它是用我们放在那里的东西训练出来的。因此,它是通过开源进行训练的。当您开始研究基础架构时,它是根据什么进行训练的?
我承认。作为运营工程师,我们所做的很多事情都是商品。但是你在公众中看到的东西并不好。假设您在 AWS 文档上训练它。他们很难跟上。我感觉我大部分时间都在读白皮书,我正在配置一些东西,一遍又一遍地阅读它。到处都有各种各样的规则。就像,如果你选择了这个,你就不能这样做。你必须为此设置 IOPS,yada,yada,yada。很难理解。我不知道 AI 会明白这一点。
更糟糕的是,当您开始查看我们所做的许多 IaC 时——比方说,我们正在编写 TerraForm 来自动化我们的一些基础设施。 TerraForm 是云 API 之上的抽象。然后是这个开源注册表,您可以在其中共享这些模块。这是 Massdriver 工作原理背后的很多内容。我们也有这些模块。但是当你去 TerraForm 注册表时,他们是一群组织——比如说,1000 家公司——都共享同一个模块,他们都对它发表了自己的意见。因此,您会发现实际上没有任何专业知识。
你去看看,比方说,用于建立网络的 TerraForm 模块。它是底层 TerraForm 代码的重新实现,是它调用的 API 的重新实现。当您查看某些东西时,例如 TerraForm 注册表上的 VPC,有 180 个输入。当您查看 AWS 的 API 时,有 20 个关于什么是网络的输入。因此,我们通过让每个人都对他们的组织如何处理商品的定制意见,使它变得过于复杂。这就是 ChatGPT 将要接受的训练。它将学习所有运营的淡化经验,所有公司都在努力做到这一点,这只是目前最模糊的配置。 VPC 有 180 个输入。您甚至如何以这种方式设计一个好的 VPC?因此,如果没有真正将专业知识融入到正在接受培训的事物中,它只会学习 API 的样子。它不会学习如何很好地配置它们。它不会了解 SOC 2 是什么或不是什么。它只是要学习,哦,我可以用一些数字和字母点击这个 API,它会响应 200 okay。
所以,我不担心。我觉得每隔十年,我们都会担心一些东西会从软件工程师手中夺走软件,而某些东西会取代我们。我认为我们还没有。它会在 2400 年之前发生吗?或许。但十年前,我们还担心 Dreamweaver。十年前,他们担心 Fortran 或类似语言。我们总是担心会出现一些事情,让它变得如此容易,以至于其他人都能做到。我不认为 ChatGPT 会抢走运维工程师的工作。
埃里克:是的,这是一个有趣的观点。前几天我在听一个播客,有人在描述 DALL-E,它擅长什么,不擅长什么。它擅长的是,如果你去一个美术馆,你看到他们用来描述一幅画的文字,他们可能会说这是这个时期的文艺复兴时期的画,他们会用某种方式来描述它。但他们不会说,“女人在男人的左边。太阳在照片的右上角。”所以,人类所做的就是去说,“我要你和两个人合影。女人在男人的左边。太阳在左上角。”而 DALL-E 就像是,“我不知道该怎么办,因为我从来没有见过一张带有 alt 文字的图片以这种方式描述它。”但是如果你去说,“嘿,我想要一张文艺复兴时期的照片,达,达,达,”它会有点明白,因为它看到了一堆例子——所以,它有一些擅长的事情.
我们现在正在做一个小项目,我们基本上是在使用 API 来总结一堆法规。翻看规定,找关键词,合理总结就可以了。之所以可行,是因为它在我们提供的文本中非常严格地定义了一个过程中非常狭窄的部分。我们基本上只是向它提供 20,000 个文档,然后说,“这就是你要处理的文本。”这就是我现在觉得适合的地方。所以,对于软件工程来说,可能也是一样的。会有一些特定的工作会做得很好。但是,整个操作流程非常复杂。它有一定的艺术性。我们会看看它是否会到达那里。但在这一点上,我们似乎还有路要走。
Cory:是的,这也会很有趣,尤其是当我们看到代码时。如果它正在编写代码并为我们做事,那是一回事。 AI 模型可以只是我的 CMS,还是它会生成我必须运行的代码?如果它正在生成我现在必须运行的代码,那么我们编写的所有代码大部分都是由人类阅读的。这就像我们写了一些代码,但我们的队友正在阅读它。那么问题就像,好吧,它可以编写可编译的代码。它能写出高效的代码吗?那么它能写出人类可读的代码吗?所以,我们不想要的是,好吧,我在 20 秒内写完了代码。但是调试出现中断的生产错误需要 24 小时,因为我们无法理解它输出的内容。
所以,这才是真正的担忧。就像,什么是好的代码?我觉得 Twitter 上到处都是关于我们甚至不擅长编写代码的笑话。每个人总是有冒名顶替综合症并说,“哦,我不擅长这个。反正我们都只是在猜测。”好的。因此,我们将在数百万人只是猜测的行业中训练那个东西。那太棒了。
埃里克:对。哦,那好吧。所以,有点偏差。现在让我们回到产品上。所以,如果我们看一下 Massdriver,您在网站上描述它的方式是三种不同的——我不知道我们是否会称这些模块或功能。但它是设计、连接、观察。你能带我过去吗?这里要做的三大工作是什么?
Cory:是的,我们实际上正在做一些改变。所以,当它出来的时候,它可能会有所改变。最初的想法——这让我们大吃一惊。同样,这是由运营团队构建的。所以,这三位联合创始人似乎都在运营领域工作了很多年。当我们开始做这件事时,我们的想法是人们不一定喜欢做云操作。但这就像我共事过的很多人一样,我是开发团队的运营人员,他们不喜欢做 DevOps,或者他们不想做 DevOps 的东西。我的偏见总是,哦,人们对此并不兴奋。人们不想这样做。这有点复杂。
我们开始看到的是,没有很多人有这方面的经验。有一种本地偏见,比如,哦,我认识运营工程师。每个人都知道如何在云中工作。但是当你接触到更多的软件工程师观众时——从新兵训练营出来的人,从大学出来的人——没有人在那里教生产。没有人教如何运行我们的软件。他们教你如何编写软件。单独写作很难教。因此,当我们构建它时,最初,它就像是,好吧,它非常高级。就像,嘿,你可以连接所有这些东西。我们开始看到的是,我们的客户进来了,他们说,“我们从网络开始。”就像,“好吧。我不记得 CIDR 范围是如何工作的。我不记得子网是如何工作的。”
实际上,如果您知道自己在做什么,我们最初的产品很容易制作原型。因此,我们已经开始稍微偏离这一点。可能在它上线时,我们正在将视角从您的应用程序端转移到关注点,然后您可以告诉我们您需要什么。我的应用程序需要事件总线。它需要 Postgres。然后我们可以为您生成基础设施。因此,我们现在仍然非常有那个设计阶段或从应用程序的角度而不是网络的角度进行设计。今天,你去添加一个网络。您添加一个集群。你连接它。您添加一个数据库,并将其放在您的网络上。您添加一个应用程序,并将其连接到数据库中的集群。它正在运行。从字面上看,我们的销售人员可以在 10 分钟内让 Kubernetes、Postgres 和 Redis 在负载均衡器上运行一个应用程序。其中七分钟是 Postgres 部署。所以,这是设计阶段。
连接只是字面上的连接。连接实际上是我们的知识产权。同样,当您看到画布时,会看到一些方框,它们是基础设施的实际部分。然后是它之间的线条。这些盒子只是 IaC。那是真正的代码,由这方面的专家编写。他们将其发布到我们的包管理器中。当您拖动它时,它会提供它。您也可以编写自己的包。魔术发生的地方是线条。当你将这些盒子连接在一起时,每个盒子都有——我们有一个云类型系统,它描述了云和用例以及事物在云中的运作方式。当您拖动其中一个框时——无论是您自己编写的还是由 Massdriver 编写的——如果您说出类型是什么,它就会出现。
你可能有 Postgres。那是一种类型。那就是你要找的东西。它是 Massdriver 中非常面向用例的类型。但如果您在 AWS 上,它可能是具有 15 个副本和一些路由器角色和一些 IAM 的 RDS。如果您在 GCP 上,它可能是具有三个实例的 CloudSQL。盒子里面的东西并不重要。只要您获得高度可用的 Postgres,您就可以使用软件开发人员。我们有这个类型系统。然后这些线是直接有向图。因此,我们知道您部署了什么,无论我们是否编写了该程序包。我们知道依赖方向。我们用它来做一些事情,比如自动化 IAM。您可以毫不费力地获得 Massdriver 的最小特权原则。我们可以看到您的应用程序正在使用 S3。我们可以看到您已设置要写入 S3。我们将为您的应用程序生成一个 IAM 角色。我们将生成足够的策略让您能够写入该存储桶。如果您说您对存储桶进行读写操作,我们会生成足够的策略供您对存储桶进行读写操作。同样,如果您从应用程序到 Kubernetes 集群画一条线,它会配置您的持续交付。
同样,在这些框的后面是世界上所有的代码。如果你想要它,就像你通过画一条线来获得开箱即用的持续交付。如果你说,“它没有按照我想要的方式工作。我想做一些更有趣的 AB 东西,”然后你可以分叉捆绑包并修改 AV 规则的工作方式和 rollout 规则的工作方式以实现持续交付。当您从数据库到应用程序画一条线时,它会将数据库凭据直接注入到运行时、环境变量和您的应用程序中。这是您在使用 Massdriver 时第一次真正敲代码的地方。你是说,我会将这些连接路由到你的应用程序环境中。
但很酷的是,如果你真的只想要 Postgres,你可以把 Postgres 拖上去。您将您的应用程序连接到它并进行部署,您将获得经过 SOC 2 扫描、HIPAA 扫描和 PCI 扫描的内容。如果它在云端,它是在云端的安全扫描中完成的。 IAM 是根据最小特权原则实现自动化的。安全性,如凭证,它们唯一存在的地方是在您的应用程序运行时中。您不必设置 HashiCorp Vault。您不必设置 Secrets Manager。您不必在直接注入应用程序运行时的 last 密码中添加内容。这才是真正的魔法。那是连接部分。
然后观察是,如果你不能说出其中发生了什么,它就不是一个平台。因此,我们默认设置了自动监控器和警报。我们有一个类似于 PagerDuty 的警报系统。如果出现问题,您会在电子邮件中收到警报。你点击链接。我们不会去 Datadog,而是会查看一堆日志,试图找出到底发生了什么。我们带您回到图表,突出显示出现问题的基础设施部分。然后你的警报就在那里。我们也刚刚推出了自动化指标。因此,现在您所有云数据的指标都会实时流回。您的图表现在是您配置基础设施的仪表板,也是您能够获得警报的地方。因此,您可以查看系统的完整运行状况并直接从平台解决任何问题。
埃里克:明白了。然后,在您的网站上,您还可能在连接方面进行了一些详细介绍。所以,你有这个——也许这会在你发布下一个更新时改变——四个支持的平台。即 AWS、GCP、Azure 和 Kubernetes。七种支持的数据存储:Postgres、MongoDB 等。然后是这 58 个生产就绪的最佳实践包。我想这个平台非常直观。数据存储也是如此。生产就绪的最佳实践捆绑包,这意味着什么?
Cory:Massdriver 中的所有内容都是捆绑包。如果您在 Massdriver 中部署您的应用程序,它就会变成一个包。我们所做的就是获取——任何被部署的东西,我们都会围绕它打包 IaC 或围绕它的基础设施代码。即使您在 Kubernetes 中运行 Docker 容器,它仍然有一些云 IaC。您的应用程序至少需要一个角色,它可能还需要一些其他资源,例如服务帐户等。 Massdriver 中的所有内容都是捆绑包。您在画布上看到的所有连接在一起的框都是捆绑包。因此,数据库是捆绑包。您可以添加新的数据库支持。实际上,我认为我们默认在 Mass Driver 中有 7 个数据库。我认为总共可能有 13 种变体。有像 RDS。有无服务器 Postgres、MySQL 等。
其余的捆绑包是诸如队列、API 网关、lambda、网络、机器学习工作区之类的东西。因此,这几乎是您在云中想到的所有高级概念。同样,我们非常以用例为导向。我们有一个网络。我们没有子网和路由器表模块。我们有一个模块可以用尽可能少的参数描述网络的整个概念。
埃里克:好的。我很好奇,你对如何发展它的思考过程。我想我已经看到了一些东西,平台——也许比你的平台更面向应用程序的平台。但在某些情况下,他们会识别出更精通技术的客户,并且基本上是在构建所谓的捆绑销售。因此,他们可能会构建一个您没有的新捆绑包,并且他们会针对特定情况对其进行自定义。然后在某些情况下,公司将其引入并将其客户的工作重新包装为产品。在某些情况下,他们还允许他们的客户从中获利,并说,“我几乎为该平台创建了一个新的扩展。”
我不确定这在这里是否有意义。我更多地考虑垂直行业,他们可能会在平台上构建一些用于质量检查的东西,然后说,“我想把它作为一个新模块添加到平台上。”然后我想另一种方法是你等待客户出来并发送请求并说,“嘿,你能帮我们解决这个问题吗?”你以这种方式有机地成长。路径是什么?因为我猜,你今天有 58 个。我敢肯定,这会逐周上升。那么,那里的模型是什么?
Cory:是的,就增加更多功能而言,我们有一些增长。我们实际上有两个工作流。我们拥有具有所有功能以及 UI 和 CLI 的平台。这是一个重要的注意事项。我们也有 CLI。我们是 API 优先的。我们不是您可以做任何事情的周期之一。它实际上是幕后的 GraphQL API。您在 UI 中看到的任何内容,实际上都可以在 GraphQL API 中执行更多操作。我们首先发送图表。但你也可以做 GitOps。有些团队不使用 GitOps。您可以在 Massdriver 中执行 GitOps。您碰巧将这个可爱的图表作为 GitOps 模型的一部分。
就我们如何添加更多捆绑包而言,第二个工作流是捆绑包开发。我们以几种方式构建它们。当我们第一次制作 Massdriver 时,还没有捆绑包。我们来到了我们的第一个客户,比如列表、平台。您编写一些 TerraForm 或 Helm。你在平台上发布它。它就像 TerraForm 云,只是您可以将其可视化。它为您执行所有这些安全措施。我们的客户说,“我们不知道如何构建云基础设施,所以我们不会编写 TerraForm。”我们就像,“你是什么意思你不知道怎么写?”
我们的第一批客户之一,他说,“我不知道他妈的 CIDR 范围是什么。他是一家非常大的公司的 CTO。”就像,好吧,人们真的不一定具备这种专业知识才能开始使用该平台。因此,我们开始构建这些捆绑包,以便人们有一个起点。有趣的是,我们实际上构建了一堆这样的包,因为我们使用 Massdriver 来运行 Massdriver。我们基本上只是拿走了我们运行软件的所有私有包,然后我们首先发布它们。好的是,我们经历了所有这些安全扫描,所有这些合规性扫描,所有这些努力使他们按照参考架构进行最佳实践,因为我们都是在平台上工作的偏执狂操作人员。突然之间,我们拥有了所有这些功能。客户说,“哦,这太棒了。我可以在五分钟内运行一个 Kubernetes 集群和我的 Postgres。我只需将我的应用程序附加到它,它就可以运行了。”就像,哦,人们想要捆绑功能。所以,我们开始倾向于这一点。
我们实际上每周花一天。每个星期五,团队中的每个人都开始处理捆绑包。所以,今天是 Bundle Dev Friday。我们确实在星期五走私。我们实际上是每周工作四天的想法的忠实拥护者。所以,我们现在只剩下四天半了。因此,在周五的半天时间里,我们进行捆绑式工作。这有两个目标。一个是只是为了获得平台的更多功能。我会喜欢它——实际上,当有人来到这个平台时,我确实喜欢它,他们可以构建他们需要的东西,而且他们不必考虑操作。那太棒了。那太棒了。这正是我们想要传达给那个人的。他们开始专注于他们的软件。他们开始专注于运送客户价值。当他们为运营团队做好准备时,他们的运营团队会非常兴奋,因为他们拥有合规性安全性 TerraForm,并且它在他们的云中运行,而不是被困在过去。
我们对构建捆绑包所做的另一件事是确保体验良好。这就像我们可以整天去 UI 连接东西,然后看到,哦,UI 工作得很好。能够画东西真是太好了。但我知道,在某个时间点,会有操作人员为他们的工程团队处理这些捆绑包。我想确保开发人员的操作体验与其开发人员在 UI 中的用户体验一样好。我们在捆绑开发方面所做的另一件事就是不断尝试使构建东西变得更容易。我们现在有一些工具可以从 TerraForm 注册表中获取 TerraForm 模块,从中自动生成 Massdriver 包,并将其发布到平台中。所以,如果您有现有的 TerraForm 并且想在 Massdriver 中运行它,您可以运行这个工具,它会打包它。
现在,我们为什么要这样做?因为 Massdriver 包是您的 IaC 工具。另外,它是 UI 中的丰富验证。因此,您实际上甚至可以控制 Massdriver 的用户界面。你可以做枚举。您可以添加规则以确保人们输入有效值等。这就是我们种植它们的两种方式。现在我们也有企业客户来了。有时我们会想,好吧,作为未来的一部分,我们需要这个功能。你今天没有捆绑包。因此,我们将优先构建类似的东西。这就是我们很多实际的 Azure 东西的来源。我们遇到了一位客户,他说:“我们在 Azure 上运行。”所以,我们就像,“好吧。好吧,我们将构建一堆 Azure 模块。”他们就像,“它会带你永远。”我们在一周内完成了。因此,它表明扩展平台是多么容易。
埃里克:自从你在周五提到了这个捆绑包和你每周工作四天半的时间,我对此很好奇。我的意思是,当我查看您网站上的“关于我们”页面时,您真的会感觉到这里的人喜欢在那里工作,并且您拥有围绕此的文化。我们公司也在努力解决这个问题。我还认为,咨询业以糟糕的工作与生活平衡而著称。找年轻人,让他们工作直到他们流血。然后他们转向可以真正过上体面生活的地方。在 IT 行业,我想,传统上,您也有这种 996 的生活方式。我认为,对于很多人来说,这已经行不通了。但是你仍然有一个高压环境,高性能环境。那么,作为一家与团队一起管理工作与生活平衡的科技公司,您如何管理这一点?
科里:我的意思是,在某些时间点,人们的工作时间肯定超过四天半。我认为当你在工作与生活之间取得很好的平衡时,你可以依靠它。当人们对上班感到兴奋时,如果他们不得不工作到很晚,就不会再累了。但是我们确保不会发生类似事情的方法之一是,A,我们非常直言不讳地让他妈的下线。就像我团队中的一个人一样——如果他听到这个,我想他会确切地知道我在说谁——我在晚上 7 点看到他。有时我会想,“你为什么上网?去和你的家人出去玩。离开这个网站。去做点什么。”因此,我们鼓励人们在一天结束时离开——一天。
第二,我认为我们对待工作的方式也非常不同。我们遵循 Basecamp 的 Shape Up。我们不会做这样的事情,“嘿,这张票有多少分?是五分还是七分?中分吗?大分吗?你有一个截止日期。”相反,我们所做的是,我们知道我们想要将什么放入产品中。我和我的联合创始人想出了多少天的努力是值得的。我们的意思是,“嘿,这值得你花三天的时间。花三天时间研究它。三天后,如果它看起来不错,我们会把它投入生产。如果不好,我们”我们将尝试确定我们认为还需要多长时间,以及是否值得付出更多努力。”激励措施更加一致。而不是说,“嘿,这是七点。你必须在星期五之前完成它,”这些甚至都没有意义。但是如果我告诉你,“嘿,这三天的努力是值得的。让我们看看我们是否能做到这一点,”它会改变我们工作的方式。我不知道。我们发货很快。
这真的很有趣。作为 CEO 和开发产品的人,我偶尔会觉得我们进展缓慢。我觉得它有时是冰川。但这很有趣。就像一年前、一年零两个月前,您无法删除基础架构映射驱动程序。没有侧边栏。没有公共捆绑包。你必须自己写。在不到一年的时间里,我们建立了一个警报系统。我们构建了一个自动化的指标摄取系统。我们构建了一个与 IaC 无关的供应引擎。我们自己构建了平台。我们已经构建了独立于 IaC 的包管理器。所以,当你看到我们在一年内建造的东西数量时,我们已经运送了这么多东西,真是令人震惊。因为我们的一个产品中有大约六项业务价值的软件。
因此,我认为这只是给人们时间来真正拥有这种自由。当他们周一早上出现时,他们很兴奋,因为他们有两天半的假期。他们又不是周六工作到下午 6 点,也没有见到家人。我真的认为,只是对你所做的工作感到兴奋,而不是做一些工作,这才是最大的不同。
埃里克:是的,我同意。如果您有动力并与您喜欢共事的人一起工作,您可以完成大量工作。如果你筋疲力尽,而且你的头脑不太正常,你可能会浪费大量时间。您觉得自己只是需要打发时间,或者您必须参加每次会议,因为这就是您获得 FaceTime 的方式。是的,这是有道理的。
我想在这里谈的最后一件事,Cory。也许您还想分享其他一些事情。但我在这里议程上的最后一件事是你的定价。我一直认为了解公司定价模型背后的逻辑很有趣。你的看起来很直接。它看起来像是每月云支出的百分比,介于 10%、20% 之间,类似这样。也许首先,你可以描述它到底是什么。但是我对你如何选择定价模型的思考过程很感兴趣。
Cory:目前,我们的定价是您的托管云支出的 30%——因此,Massdriver 在您每月支付首笔 500 美元后管理的内容。我的目标是,我希望该平台对没有大量云支出的任何人都可以访问和免费。如果您的云支出每月低于 500 美元,Massdriver 始终免费。我们所做的事情真正糟糕的是,我永远无法真正为您提供免费的托管体验。 Heroku 可以做到这一点。好吧,实际上,Heroku 不能。他们正在夺走你。但有些人实际上可以免费为您提供计算。我们不能,因为我们在您的云帐户中运行。运行 Massdriver 需要支付基本费用,因为您无需支付 AWS、GCP 或 Azure。
我希望人们能够了解云,而这很难做到。如果我以前从未做过,就很难在 AWS 上运行。我不想说的是,你必须为 AWS 付费,你必须为某些 Massdriver 付费。所以,我们在那里有那个上限。这就像,如果它低于 500 美元,你就永远不会收到 Massdriver 的账单。之后,它是每美元 0.30 美元或 30%。如果您的云帐户每月账单为 501 美元,则 Massdriver 账单为 0.30 美元。因此,目标是可以很好地扩展。如果您每月花费 10,000 美元的云支出,那么 Massdriver 的账单就是 3,000 美元。
结果如何?就像,好吧,它比操作人员便宜。如果您每月查看 3,000 美元,那么您仍然处于那个点,那就是每年 36,000 美元。如果你去美国雇一个运营人员,你说的是 150 美元,180 美元只是薪水,在福利之前,在所有业务之前。然后能够充分利用具有深厚专业知识的人,甚至找到那个人——他们知道 Mongo。他们知道 RDS。他们知道你的语言。他们知道你的堆栈的一切。这将很难找到。因此,如果我们可以帮助您达到无需引入具有深厚专业知识的昂贵人员就可以交付软件的地步,而您还没有准备好,那将是一个好处。
真的,我们看到的是,大多数人,他们会达到这个目标——我们有一个滑块上升到 10,000。这通常是人们要求我们提供固定定价的时候。所以,我们很乐意招人——固定定价对我们来说更好看。如果我去找我的 VC,我说我有 ARR 而不是每月账单,那看起来很棒。我们希望以固定价格吸引人们。因此,如果担心这 30%,我们会很快找到一个有效的百分比并将其锁定。这对我们的大多数客户都有效。其他所有人都处于该使用基础消费范围内。
埃里克:明白了。是的,这是有道理的。好的。 Cory,还有什么我们还没有触及但对人们理解很重要的吗?
Cory:是的,关于平台,我想我们想做很多。老实说,我真的只是对更多的人在云方面获得深入的专业知识感兴趣。我最近写了一篇文章。如果您在云中搜索 Elephant,它位于 Microsoft 博客上。我受邀写一篇关于云的未来的思想文章。这就是我对存在的恐惧。我们正在建设,或者不建设。我们培养了很多软件工程师。我们很多。软件工程职位的增长率是美国其他任何职位的五倍。我们培养的软件工程师是我们培养医生的五倍。我们正在培养更多的软件工程师,而不是律师。有些人可能会说这是好事或坏事。我不知道。陪审团对此没有意见。
我们正在培养更多的软件工程师,但我们不再培养那么多的医生和所有这些专家。所以,问题是,现在你开始看起来像是五年后,就像我们行业的很大一部分只有五年的经验,不到两年的经验。我们只是在不断培养越来越多的工程师。我们有很多人没有这种生产经验,很多人没有深厚的经验。所以,我很担心这最终会发生什么。它是什么? 67 年前,有一位软件工程师。现在软件工程师的数量比澳大利亚的人口还要多。太疯狂了。软件工程师的数量比地球上几乎任何其他工作都要多。
当你像 2050 年那样思考时,我们确实拥有人工智能。也许它正在帮助医生做手术。伟大的。编写该软件的人上了 12 周的学,然后从新兵训练营出来。但是那个医生上了八年学,做了住院医师。因此,考虑专业性和软件开发真的很有趣。我们是一个爱好者行业,我们已经成长了很多。我们非常接近我们的工作方式。但我们已经到了地球上每个行业都是软件公司的地步。我认为我们需要开始以更专业的态度对待软件。
我很想看到,如果在 2050 年有真正的医疗软件工程职业道路,那就太好了。让人们获得一些专业知识。我认为我们需要同样的东西来进行操作。必须有人操作这些系统,而我们在这方面没有做足够的培训和教育。因此,我很乐意谈论它。如果有人想在 Twitter 上联系我并谈论我们如何让更多的人获得运营专业知识,但我们没有足够的知识——每个人都必须在某个地方运行他们的软件。所以,这是让我担心的事情。所以,如果你想谈论它,请联系我。因为我很想找到解决办法。
埃里克:是的,太棒了。好吧,伙计们,那就是 massdriver.cloud。科里,感谢你今天的时间。对此,我真的非常感激。
科里:是的,非常感谢。