软件基础架构2.0:愿望清单

2021-04-20 08:44:39

软件基础架构(我包含以* AAS结尾的一切,或者与它远程类似的东西)是一个令人兴奋的领域,特别是因为(尽管新Luddites可能会说),但每年都会保持更好!我喜欢使用这么快动的东西。

在过去的几个月里,我想到了很多关于它在接下来的5 - 10年的地方,并且愿望清单在我的脑海中形成了很多。它非常自以为是!如同,您可能不同意这些。那个'很好 - 这些都是从根本上预测i' m制作,或者至少是一个愿望清单。如果我'米对一些但不是所有这些。让'潜水潜水。

你知道蹩脚的软件如何以如此公平的方式对用户显而易见的方式,你想知道为什么是发布的?触摸屏界面,' s超级滞后,或者预约预约应用程序,迫使您进出可能的日期并在它告诉您之前填写所有信息并填写它'可用。我们看到那样的janky的东西,他们一般都以同样的方式看来:它感觉就像没有人在建造之后实际使用该产品,并且嘿,这是有点讨厌,也许我们应该使它更直观吗?

在99%的病例中,我想到了他们在这种情况下最终结束了,因为有人拼出了一个长期的要求检查表,但清单上没有任何东西可以确保经验令人愉快。喜欢,有人从一个充满帖子的墙上开始了“作为一个用户,我想..."我逻辑地思考是有道理的 - 你可以定义用户应该能够做x,y,z,但你可以' t定义了这个经验' t吮吸。

我的意思是作为一个用户,我可以在AWS中设置一个静态网站,但控制台中需要45个步骤,如果您以前从未这样做过,其中12个非常令人困惑。而且它也是超级慢,做到了,随时我犯了错误,我最终以一些奇怪的状态结束,也许我可能会打破一些东西,我可能必须重新开始。它' S SAD这是当前的基础设施状态。

有很多东西要从最佳公司建立消费品的方式。他们如何使用数据来识别摩擦点,并不断尝试改变以使事情更容易。在这里,我有很多希望,自然选择将有利于易于开始和利用乐趣的产品。第一步是,我们只需要更多的替代方案,而不仅仅是少数大半垄断。等待。等等。

我们是,如什么,10年进入云采用?大多数公司(至少我谈论的)在云中运行他们的东西。那么为什么软件仍然表现得好像云不存在?

单词群集是云中的最终用户的一个字母!我已经在云中运行的东西,在那里,在那里的云中已经运行了所有的弹性资源。为什么我必须考虑潜在的资源池?只是为我保持它。

我不想支付空闲资源。让我支付实际使用的任何资源。

无服务器不会均衡它' s一个突破性的VM,它在空闲期间将其实例状态保存到磁盘。

我可以继续,但我赢了#39; t。我梦想着一个真正无关的世界。如同,我不想想想未来的资源需求,我只想让事情神奇地处理它。好消息是我认为我们每年居住地越来越靠近这个梦想!

这样的美丽是,很多配置的东西神奇地消失了。大多数初创公司的竞争优势是通过业务逻辑,不容量规划和容量管理提供业务价值!

不只是那种,但多租户实际上是从资源利用率的角度来看真正的“免费午餐”,因此池资源的任何机会代表了真正的双赢讨价还价。在全球范围的规模数据中心,它' s大 - 这取决于你是谁,但你可以对CO2的GIGATON令人兴奋,或者增加公司净收入利润率(我想我喜欢两者!)

我不吝啬地吝啬,快速服务请求。我们有软件,做到这一点!老实说,我认为它展示了它的思想吹来的好处是:你可以在边缘运行功能,并在毫秒的顺序获得世界各地的响应时间。

速度与#39;■没有建立基础架构。如果我在AWS控制台中进行了更改,或者我向kubernetes添加新pod,或者,我希望在几秒钟内发生这种情况。我不要求毫秒!只是请至少让它不到一秒钟。如果我们可以以毫秒为单位服务,那么我毫无疑问我们可以在那里得到它。我们有技术基本上瞬间启动VM和容器。

速度很重要,因为这是工程师的严重浪费时间。我觉得我觉得浪费了几年,盯着一些基础设施的改变才能踢进去。我' ll在一秒钟内回到这个主题,因为我认为它'这是一个重要的一个重要!

几乎所有基础架构I' ve与对待资源合作,因为意味着无限期存在。如果我在云中创建一个数据库,它将坚持下去,除非我做任何事情,否则它会永远杂乱,我将永远为它付钱。

我曾经认为这很好!我的理由是,如果你想运行考试套件,只需在本地运行数据库,也许在容器中。这对一些东西来说很好,但是我来思考它&#39可能很糟糕:

它'很多工作要建立自己的基础架构的副本,以便您在本地运行它。

发展 - 生产的三角洲变得更大。在那里'当您在本地运行时,云Infra如何工作vs的微妙差异。

我的深度愿望是让您轻松创建临时资源。您是否需要测试套件的数据库?在云中以某种方式在云中创建它,以便在完成测试套件后收集垃圾。运行您对云Infra的测试!

我愚蠢的是我觉得在过去5年中的辩论大致如此:

(待100%清除,我'在本博客文章中倡导,虽然我一般支持此博客文章中未涵盖的其他原因阅读慈善专业的一切。我'我说 - 在整个建筑和测试代码的过程中尽可能多地使用生产类似的基础架构。)

关于临时资源的重点与前一点有关让我快速创建资源的前一点,这一点变得越来越强大。代码如何构建的一般模式是基础架构已经从逻辑解耦,逻辑独立测试。略微简化,您可以想到一组嵌套循环的开发过程,其中每个循环的循环时间在每个级别都呈指数级差:

在每个循环级别,赌注更高,反馈周期变慢。这与生产力具有极强的关系!要注意的关键是要将外部环路转移到内部环路的关键项。通过数量级的迭代速度下降,对完成事物的影响剧烈影响。

快速短暂的云越云缺水资源将让我们从最外面的循环到最内循环移动很多基础设施问题。这使您可以在几秒钟内或至少几分钟,而不是几个小时或更长时间获得反馈。

至少有4种方法可以想到您可以与基础架构进行交互:

第一个很棒,但通常只用于入门。一旦您设置了一些东西,您通常会将其移开,以便更改更改,并且可能仅将其用于监控等。

本地配置似乎是下一步一般。这一段时间很好,但你意识到这一点的一半

实际上,我希望这个框架是由另一个框架控制的框架。在这种情况下,您有两个(两者坏)选项:框架的公开配置,或者对其他框架动态生成配置。

现在突然,您将从Yaml到Yaml使用Jinja或Supplbars或其他任何内容移动到Yaml。慢慢地,开始向这些模板语言添加自定义功能,以使其更容易生成配置。最终,它具有自己的文档进入自己的超级定制DSL。

这是超级烦人! 10次​​10​​次,我更愿意通过一个漂亮的小客户端图书馆获得一切。此库可能又可以是Solid API周围的简单包装器。现在我可以写自己的循环!我可以动态生成东西!我不必学习自定义DSL!世界再次是一个快乐的地方。

我想在一个' t的荟萃点上包裹起来,它本身就是一个人,但更多的心态变化,也许是所有其他观点的必然结果。

基础设施感觉就像它'已经建立起来以解决硬可扩展性和可靠性问题。有一些惊人的恐惧和我的令人惊叹的恐惧和#39;令人敬畏,令人敬畏有多少难以思考。但事情很少是为了优化开发人员的生产力。我认为长期来看,“Win”的工具通常是直接优化的工具。实际上它不仅仅是生产力,它也不只是质量,这些工具推动了质量生产率的权衡“向上和向右”:

我的观点是,新的权衡曲线让您以不同的方式“兑现”改进:可能纯粹是更高的质量,可能纯粹是更高的生产力,也许有点兼而有之。

对我来说,这代表了未来5 - 10年的大规模机会缺口。 我可以等待工程师释放另一种生产力级的工程师。 那里的软件等待建成了! 标记:软件,基础设施,经济学,编程