又是未来

又是未来

原文:https://medium.com/hackernoon/its-the-future-again-cd038b72dd0b

(带着歉意向 保罗·比格 和辅助从 科里·奎因[上周在 AWS](https://lastweekinaws.com/) )**

…因此,我只需要将我的简单 CRUD 应用程序分成 12 个微服务,每个微服务都有自己的 API,这些 API 调用彼此的 API,但可以灵活地处理故障,将它们放入 Docker 容器中,启动一个由 8 台运行 CoreOS 的 Docker 主机组成的机群,使用一个运行 etcd 的小型 Kubernetes 集群对它们进行“编排”,找出网络和存储的“未决问题”,然后我不断向我的机群提供每个微服务的多个冗余副本。就这样吗?

不,一切都变了。你现在需要使用无服务器。这是未来。

那是什么?

你说的一切在 [微服](https://hackernoon.com/tagged/microservices) 之后就烟消云散了!是不是很神奇?你只需要写一点代码,然后上传到为你运行它的服务上。

哦,就像 PaaS?

不,因为不涉及服务器,所以好多了。

没有服务器?代码在什么上面运行?

嗯,嗯,很明显,有服务器,但是你不需要担心它们。大部分是。直到你明白。

好的,所以我只是写我的 Ruby 代码—

不,露比已经死了。您必须使用受支持的语言之一。试试 JavaScript——JavaScript 的正确版本

好的,所以我只是用 JavaScript 重写所有东西,上传,然后它在网络服务器上运行——我的意思是,网络……什么的?

没有!没有网络服务器。您的代码只是作为函数运行。这样更简单。

好,我写函数,它监听请求?

绝对不是。它不听,显然你也不听。它响应事件而运行。事件驱动架构是新事物。没有人喜欢同步调用了。

那么它是如何被客户端调用的呢?

显然,您创建了同步调用您的函数的 REST HTTP 端点。它将你的代码保存在很好的独立单元中。

REST 不是被 GraphQL 取代了吗?

当然可以!为此,您可以跳过所有不同的端点,将所有内容都塞进一个函数中。

…我记得你说过不同的功能更好?总之,我上传代码,它运行,我在哪里部署我的数据库?

不,你不用部署你的数据库。您为数据库使用服务。如果你需要 SQL,上帝会帮助你——你的连接可能会在函数调用之间断开,所以只要你感冒了,它就会让你热起来。

冷暖启动?那些是什么?

你知道我说过你的函数是如何响应事件运行的吗?它在一个容器中运行——但是你不必担心这个。只是,有时同一个容器会被重复使用。但有时不会,然后需要更长的时间。如果它被重复使用,它会被冷冻在中间。

所以我的函数是一个 Docker 容器?

不!Docker 已经有三个炒作周期了!它只是一个函数。不要担心是什么在运行它。

好吧,回到我的数据库。我需要服务吗?为什么我不能用卡珊德拉?

卡珊德拉运行在服务器上!所有不属于你的功能的东西都需要来自服务。

但是我对我的数据库有非常特殊的需求。难道我不能使用队列、blob 存储、认证、监控和其他服务,而只使用服务器作为我的数据库吗?

没有!如果你只有一台服务器,一切都毁了!

好吧…所以我使用所有这些服务。当我在开发的时候,我如何在本地调试它?

哈哈哈,不能本地集成测试!反正本地调试只是勉强支持。真正的集成测试只能在部署的系统上进行。

好吧,那我该怎么部署呢?

嗯,你必须从十几个不同的固执己见的框架中选择一个。许多人选择无服务器。

我以为我们已经在讨论无服务器了。

不——听着,这真的很简单:无服务器框架,来自无服务器公司。显然这与一般概念不同,所以没有人会被弄糊涂。

好,我部署了我的每一个服务。我如何控制金丝雀和蓝绿部署?

嗯……

还有,编排是怎么处理的?我的微服务是怎么找到对方的?

嗯……我想人们正在努力。

为什么这样更好?

你没看见吗?没有维护服务器的运营开销,您可以自由地花时间解决所有这些棘手的问题!

让我看看我是否搞清楚了: 我需要用一种受支持的语言,将我的微服务(它已经是我原始应用的一小部分)变成更小的功能(除非我使用 GraphQL),这运行在我不需要关心的服务器上,除了我有时需要关心,特别是冷启动。我用服务替换了应用程序的所有其他部分,这些服务可能与我正在使用的东西相似,但是如果它们不同,我也没有选择。部署简单应用程序之外的任何东西都非常复杂,没有人知道如何正确地更新它们,本地调试几乎是不可能的。就这样吗?

是的!是不是很光荣?

我要回赫罗库。

注意:如果你看一下我的其他帖子 ,你会发现我相信,尽管有当前的缺点,无服务器架构实际上是未来!我总是很乐意指出不好的部分,但就总拥有成本和功能速度而言,无服务器完全值得麻烦。 [想了解更多请在 Twitter 上 Ping 我](https://twitter.com/ben11kehoe)


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