特斯拉Cybertruck上市,起售价6万美元; 快手推出独立“短剧App”西番;魅族正式宣布要“造车” -极客们已经知道
06-17
编者注:受到无服务器云计算模式的启发,作者根据软件基础设施现状提出了多项未来新一代软件基础设施改进方向和思路。
软件基础设施(我包括任何以 *aaS 结尾的东西,或类似的东西)是一个令人兴奋的领域,特别是因为(尽管“新鲁特”可能会说)它每年都在变化变得更好!我喜欢从事快速变化的事情。
在过去的几个月里,我一直在思考未来 5-10 年内我想去哪里,并且我在脑海中制定了一个愿望清单(但这都是我个人的偏见)!你可能不同意。
没关系——这些基本上是我所做的预测,或者至少是一个愿望清单。
如果其中一些(但不是全部)正确也没关系。
让我分享细节。
为娱乐而制作的软件 您知道蹩脚的软件对用户来说是如此明显,以至于您想知道为什么要发布它吗?一个超级缓慢的触摸屏界面,或者一个预订软件,它迫使你跳进跳出可能的日期,并在它告诉你是否有空之前填写一堆信息。
我们都见过这样蹩脚的设计,而且它们通常都是同样的“垃圾”:感觉好像没有人真正使用这个产品,然后说,嘿,这有点烦人,也许我们应该做得更多直觉的 ?在 99% 的情况下,我认为他们最终会遇到这种情况,因为有人有很长的需求清单,但清单上没有任何内容可以确保产品体验是愉快的。
比如,有人从一堵便签墙开始,上面写着“作为一个用户,我想......”我认为这是合乎逻辑的 - 你可以定义一个要求,即用户应该能够执行 x,y, z,但你不能定义体验不应该很差。
无论如何,我认为这适用于 90% 的软件基础设施产品。
我的意思是,作为用户,我可以在 AWS 中构建一个静态网站,但在控制台中需要 45 个步骤,如果您以前从未做过,其中 12 个步骤会非常令人困惑。
它做起来也非常慢,每次我犯错误时,我都会陷入某种奇怪的状态,也许我会破坏一些东西,我可能必须重新开始。
可悲的是,这就是软件基础设施的现状。
最优秀的公司如何打造消费级产品有很多值得学习的地方。
他们如何使用数据来识别用户体验差距并不断尝试进行更改以使用户体验更轻松。
我非常希望自然选择会青睐易于上手且使用起来有趣的产品。
第一步是我们只需要更多的替代品,而不仅仅是几个大型垄断企业。
我们等不及了。
真正的无服务器(云计算) 10 年来我们对云计算的研究进展如何?大多数公司(至少是我交谈过的公司)都在云平台上运行他们的东西。
那么为什么该软件仍然表现得好像云不存在一样呢?对于云平台的最终用户来说,集群这个词已经不合时宜了!我已经在云中运行了一些东西,并且随时都可以使用弹性资源。
为什么要考虑底层资源池?就帮我维护一下吧。
我不想在加载之前配置任何内容。
我不想为闲置资源付费。
让我为我实际使用的任何资源付费。
Serverless 并不意味着它是一个可以按需启动并可以在空闲期间将其实例状态保存到磁盘的虚拟机。
我可以继续列出更多,但我不会。
我梦想一个真正的无服务器世界。
例如,我不想考虑未来的资源需求,我只想让事情能够神奇地处理它。
好消息是我认为我们实际上每年都在离这个梦想更近!这样做的美妙之处在于许多配置内容神奇地消失了。
大多数初创公司的竞争优势是通过业务逻辑而不是容量规划和容量管理来提供业务价值!不仅如此,从资源利用的角度来看,多租户实际上是真正的“免费午餐”,因此任何汇集资源的机会都代表着真正的双赢。
在世界各地的大型数据中心,它很大 - 取决于您是谁,但您可能会对大量碳排放的节省或业务净利润率的提高感到兴奋(我想我都喜欢这一切! )我所说的快速并不是指快速,而是指快速的服务请求。
我们的软件在这方面做得很好!老实说,我认为它的强大程度令人震惊:您可以在边缘运行函数并在全局范围内获得毫秒响应时间。
无法加快的任务是建设数字服务基础设施。
如果我在 AWS 控制台中进行更改,或者向 Kubernetes 添加新的 Pod,或者其他任何方式,我希望这一切都能在几秒钟内完成。
我不要求毫秒!请使其至少少于一秒。
如果我们可以在几毫秒内处理请求,那么我毫不怀疑我们可以做到。
我们拥有基本上可以立即启动虚拟机和容器的技术。
速度很重要,因为这对工程师来说是严重的时间浪费。
我觉得我已经浪费了几年的时间来关注一些基础设施的变化才开始。
我稍后必须回到这个话题,因为我认为这是一个重要的话题!临时资源 我使用过的几乎所有基础设施都将资源视为无限期存在的东西。
如果我在云中创建一个数据库,它将永远存在,除非我做任何事情,否则它将永远使控制台混乱,我将永远为此付费。
我以前也觉得这个很好啊!我的理由是,如果您想运行测试套件,只需自己在本地(也许在容器中)运行数据库即可。

这对于某些事情来说很好,但我开始认为这可能很糟糕:构建您自己的基础设施副本需要大量工作,以便您可以在本地运行它。
开发到生产的增量变得更大。
云基础设施的工作方式与本地基础设施的工作方式之间始终存在细微的差异。
许多云基础设施都是专有的,不可能在本地运行!我最深切的愿望是让创建临时资源变得容易。
您的测试套件需要数据库吗?以某种方式在云中创建它,以便在测试套件完成后可以对其进行“垃圾收集”。
针对您的云基础设施运行测试!我愚蠢的看法是,我觉得过去 5 年的争论已经进行了这样的事情:(明确地说,我在这篇博文中提倡的不一定是立即在用户面前推出新版本,尽管出于本博客文章中未涵盖的原因其他原因我通常支持这一点:去阅读慈善专业的帖子我的意思是 - 让我在构建和测试我的过程中尽可能多地使用类似生产的基础设施。
代码)。
结合之前关于让我快速创建资源的观点,关于临时资源的观点就变得强大了一倍。
代码开发的一般模式是基础设施与逻辑分离,逻辑独立测试。
为了简化一点,你可以想象一组嵌套迭代(循环)的开发过程,其中每次迭代的循环时间在每个级别上呈指数级恶化:循环级别越远,我们的执行成本就越高,反馈周期变得越慢。
这与生产力有着极其密切的关系!需要注意的关键是将焦点从外循环转移到内循环的重要性。
将迭代速度减慢一个数量级会对完成工作产生巨大影响。
拥有快速配置云基础设施资源的能力,将使我们能够将许多基础设施问题从最外层循环转移到最内层循环。
这使您可以在几秒钟或至少几分钟内获得反馈,而不是几个小时或更长时间。
代码不是配置。
我可以想到至少有 4 种与基础设施交互的方法:本地配置,然后运行一些与系统对话的命令行客户端 API,你必须自己构建客户端。
第一个很棒,但通常仅用于入门。
一旦您设置了图形界面的东西,您通常不会对图形界面的东西进行更改,并且可能仅将其用于监控等。
本地配置似乎是下一步的一般步骤。
这暂时没问题,但有一半的时候你会意识到:我实际上希望这个框架由更高级别的另一个框架控制。
在这种情况下,您有两个(都不好)选择:公开两个框架的配置,或者让最外层的框架动态生成另一个框架的配置。
您需要动态生成资源,可能通过 for 循环或其他方式。
现在,您突然从 YAML 转移到使用 Jinja 或 Handlebars 等生成的 YAML。
慢慢地,您开始向这些模板语言添加自定义功能,以便更轻松地生成配置。
最终,它演变成一个超级定制的 DSL,拥有自己的文档。
这太烦人了!十有八九,我更喜欢通过一个漂亮的小客户端库访问所有内容。
反过来,这个库可以是可靠 API 的简单包装器。
现在我可以编写自己的 for 循环了!我可以动态生成东西!我不必学习自定义 DSL!世界再次变得快乐。
为生产力而生 我想把它总结为一个元点,它本身并不是一个真正的点,而更多的是一种心态的改变,也许是所有其他点的必然结果。
该基础设施感觉像是为了解决可扩展性和可靠性问题而构建的。
这里有一些令人惊叹的基础设施,我对它感到敬畏——建造它一定经过了多少深思熟虑。
但很少有东西是为了优化开发人员的生产力而构建的。
我认为从长远来看,“获胜”工具通常是直接为此优化的工具。
事实上,这不仅仅是生产力,还有质量,这些工具将质量与生产力的权衡推向“向上和向右”:我的观点是,新的权衡曲线可以让您“兑现”更多的改进。
:也许纯粹是因为更高的质量,也许纯粹是因为更高的生产力,也许两者兼而有之。
对我来说,这代表着未来5-10年的巨大机遇和差距。
我迫不及待地想让工程师将生产力提高一个数量级。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-18
06-17
06-18
最新文章
Android旗舰之王的过去与未来
智能手表不被开发、AR眼镜被推迟,Meta的产品经历了一波三折
为什么Cybertruck是特斯拉史上最难造的车?
更新鸿蒙3后,文杰允许你在车里做PPT了
新起亚K3试驾体验:追求“性价比”,韩系汽车仍不想放弃
阿维塔15登场!汽车配备了增程动力,理想情况下会迎来新的对手吗?
马斯克宣布创建 ChatGPT 竞争对手! OpenAI的CEO给他泼了冷水, GPT-5可能会发生巨大变化
骁龙无处不在,是平台也是生态