首先是云,其次是无服务器

首先是云,其次是无服务器

原文:https://medium.com/hackernoon/cloud-first-serverless-second-1c086f282326

或者“为什么抽象不总是一件好事”

我开发合适的 web 应用程序(不仅仅是编写网页)的第一次经历是使用 perl 脚本生成静态网页。没错。我用 perl 和 HTML 2 做过 web 开发。一点都不“好玩”。它是非标准的,其他开发人员很难修复或改进。

在接下来几年的网络开发中,各种标准化和“开发方式”应运而生。这些演变成了框架。第一次碰到框架是用 fusebox 和 ColdFusion(不好意思骂人)。这意味着我们可以围绕一些东西标准化,人们可以更容易地接受这些想法。这些最初的框架擅长于代码/文件结构,而不是其他任何东西,并允许团队更容易地一起工作。

快速部署工具:Rails 和 Django

然后出现了其他语言和框架,突然之间,你可以开始开发可以在互联网上的 VPS 上运行的 web 应用程序,它具有 256MB 的 RAM,而不需要拥有/租用数据中心的空间。

这些框架经过多年发展成为快速部署工具,如 Ruby on Rails 和 Django。它们对开发人员来说是很棒的,因为它通过给你一些样板代码减少了开发初始原型的时间,多个开发人员可以在论坛和团队中理解并帮助你。

您可以通过在 CLI 中键入一行来启动一个项目。

这改变并简化了开发世界。

这意味着人们不需要知道你为什么以某种方式做事。

这就是为什么我们现在有像堆栈溢出这样的东西。

换句话说,让没有经验的人可以做以前只有有经验的人才能做的事情

这就产生了一个问题。

开发者失去了对复杂性的控制。

铁路问题

这不一定是件坏事。抽象出复杂性并不是错误的做法。在以前需要多行代码和特定环境的地方创建一个命令是一个有用的工具。

但它只是一个工具

有时您仍然需要知道该工具做了什么以及为什么。

否则你会像 Rails 一样遇到问题。

Ruby on Rails 变得非常流行,很大程度上是因为 Twitter 使用它来构建最初的原型,并利用一个新生的 AWS EC2 服务来运行它。

后来人们开始玩 Rails,他们成为了使用 ruby 的“Rails 程序员”。

语言实际上是次要的。

现在,在 rails 环境中出现问题之前,这不是问题。类似于主要版本切换。

因为如果你有“做 rails 的 ruby 程序员”,那么这种转变就没什么大不了的。人们知道这种语言,并把他们的想法移植到新的框架中。

但是如果你有“学过 ruby 的 rails 程序员”,那么你最终会遇到一些人,他们不明白为什么有些事情已经改变了,因此厌倦了,把他们的玩具扔出了婴儿车。

问题是社区是围绕着工具而不是语言成长起来的。

为什么这篇文章对无服务器开发人员很重要

无服务器是关于云

这是关于了解云,它能做什么,以及它如何能比以前做得更好。

最先获得无服务器想法的人是那些长期从事基于云的开发的人。

这些人通常是系统管理员出身,他们唯一的主要工具通常是 ssh,他们知道什么是 awk 和 sed,以及如何使用正则表达式…

对于没有服务器的人,我的观点是:

不要只学习工具——要学习工具基础

陷入为什么使用 Lambda 函数比 EC2 实例或 docker 容器更好。

所有这些工具(顺便说一下,其中一些非常好)都是对云的抽象。

如果我们不解释这些工具是做什么的,以及它们为什么要这样做,我们将会给自己造成巨大的伤害。

因为我们最终会构建“无服务器开发人员”而不是合适的云原生思考者。

无服务器的当前工具

令我如此沮丧的原因是,目前大多数“无服务器”工具实际上只是功能部署的抽象。

老实说,部署这个功能是最简单的事情

结构化代码和文件是有用的,但是没有有用。

如果这些是唯一能吸引注意力的工具,那么作为一个社区,我们就真的有麻烦了,因为我们可能只是在创建一个“无服务器的 Rails”。

如果我们创建一个“无服务器 Rails ”,我们这些推动更广泛对话的云原住民将会迷失在噪音中。

不利的一面是,一旦出现问题,整个概念就会被破坏。

无服务器的下一件大事

接下来 6 个月关于无服务器的大讨论是关于工具的,因为目前,我们有许多允许部署的抽象,也有许多可能在未来引起问题的抽象(只考虑简单的用例)。

我们需要的是在社区中定义我们需要的工具种类(这要困难得多)。

请不要构建另一个功能部署工具。我们不需要它!

我们需要的工具是关于基础设施、部署、服务管理、测试…

事实是,有很多很棒的工具存在…

…对于云

无服务器只是高级云开发。开发这些功能是比较容易的。

难的是围绕它的基础设施。

挑战在于从这个世界的 Ruby on Rails 中吸取教训,而不仅仅是抽象为 Rails 而忘记了云。

因为如果我们忘记了云,我们最终得到的东西将远不如它应有的价值。

所以,对我来说,这是关键:

云第一,无服务器第二

谢谢

感谢Florian mot lik对本文的评论改进。他太棒了!看看他的帖子。

黑客中午是黑客如何开始他们的下午。我们是 AMI 家庭的一员。我们现在接受投稿并乐意讨论广告&赞助机会。

要了解更多信息,请阅读我们的“关于”页面 , 喜欢/在脸书给我们发消息,或者简单地说, tweet/DM @HackerNoon。

如果你喜欢这个故事,我们推荐你阅读我们的最新科技故事趋势科技故事。直到下一次,不要把世界的现实想当然!


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除