一个无服务器架构的序列图

我想我应该和一个图表放在一起,展示一些我对一般服务器设施的看法。曾经的前同事迈克·罗伯茨(Mike Roberts)比我更了解无服务器架构的资料。然而可以指望的是,我可以直接用一张图表来替代我去描述无服务器是如何工作的。

端口,进程和所有这一切

关键(对我来说)是,部署到无服务器基础设施上的功能没有域名(甚至是内部名称),也没有TCP / IP地址,也没有监听端口。至少对我们来说,作为系统的用户,这是毫无疑问的——所有路由都对应独一无二的一个逻辑名称。如果我的无服务器功能需要zipCodeService,那么在能够调用它之前,这就是它需要知道的所有东西(以及用于查找的平台提供的API)。

这种设计是如此的平滑,以至于很容易就可以完全分离(共享的)环境,易于定义日常成本。这将包括每个开发人员的环境和大量的用于高吞吐量开发团队依赖的ci控制的自动化。

短暂的环境是有可能的,因为对于服务器来说,环境是“up”(根据某些定义),而不是使用的环境,这一点非常重要。使用无服务器的费用是有的,但是每个提供服务的环境功能处理程序都是细粒度的和可追踪的,这样您就知道您的钱花在了哪里。

回到命名依赖项,这是在无服务器基础设施中进行的同胞部署:不存在将被命名为包含环境的服务的概念。所以你不会看到一个zipCodeService_QA1函数。您的函数需要该服务通过一个规范名称(zipCodeService)查找,因为它不能从相邻的环境中使用同一个应用程序,因为它们是不可见的。

没有必要将其看作是一种侧防火墙约束能力(尽管也可能如此),因为没有对开发人员/部署人员的套接字的概念。没有服务器的基础设施中的函数没有这些功能。好吧,如果你为了某种目的而访问https://api.github.com之类的网站,那么就会有套接字,但这是一种不同的东西,而且会受制于自身最好/最坏的实践考虑。

我们行业的重要进展

这些内容和废弃名称:配置中的端口是我们行业的一个关键的提升。这就像一个限制的Unix问题已经被克服。虽然一个服务器上的两个进程仍然不可能监听同一个端口(比如端口443),但是现在它不重要了,因为我们有一个机制,可以通过最简单的东西(一个名称)有效地将应用程序的组件(函数)拼接起来。一个完全开放给我的命名创意的名字(如果它们的编号在1024以下,并且还与特定的目的相关联),那么端口就被限制了。

我们也不再考虑现在要考虑流程的问题,以及它们是否已经崩溃,不再接收请求。这里有一个非常棒的,但是漫无边际的,关于Smash Company的一些相关话题,你也应该阅读,因为它涉及到一些相同的东西,但却更广泛。

图表的注释

在上面的图中,我没有显示任何后端作为“生命的意义”调用的服务(Backend-as-a-Service,后端即服务,BaaS)片段,而是作为服务(函数即服务,FaaS)的功能,这是“无服务器”命题的一部分。

图表中没有展示的无服务器基础设施的特点(垂直虚线的右边):

1.在容器管理器的查找和函数处理程序的实例化过程中使用存储。

2.函数处理程序实例/容器在任何基础上的清除。

3.各级缓存。

4.甚至可能会有巨大的规模潜力来容纳下它本身和它里面的应用。

本文的版权归 用户1169992 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序人生

[技术与产品] Bower & Brunch

今天写作时间太短,稍微探讨一下bower和brunch这两个web前端assets management的利器。 Bower 管理dependency一直是程序...

3409
来自专栏JavaWeb

使用Spring profile 多环境配置管理

3478
来自专栏华仔的技术笔记

开源项目README目录规范

3867
来自专栏达摩兵的技术空间

bug常识入门

742
来自专栏北京马哥教育

Hadoop运维记录 | Zeppelin启用https和Hack内核的过程

本文是在工作过程中讲Zeppelin启用https过程和Hack内核以满足客户需求的记录。 原因是这客户很有意思,该客户中国分公司的人为了验证内网安全性,从国...

3379
来自专栏杨建荣的学习笔记

shell脚本心得(r2笔记58天)

零零星星的接触到写一些shell也有一些日子了,发现自己已经犯了不少的错误,自我总结下。 选择合适的shell shell本身有很多种,大体有如下的几种。 /...

2658
来自专栏张善友的专栏

持续集成及部署利器:Go

Go是一款先进的持续集成和发布管理系统,由ThoughtWorks开发。(不要和Google的编程语言Go混淆了!)其前身为CruiseControl,是Tho...

2345
来自专栏IT派

Python的10大集成开发环境和代码编辑器(指南)

使用IDLE或者Python Shell来编写Python是非常适合于简单程序的,但是这些工具往往将大型的编程项目变成一个个充满绝望和沮丧的“坑”。使用一款集成...

1356
来自专栏IT技术精选文摘

TencentHub的架构实现

TencentHub是一个集Docker镜像、二进制文件、helmcharts于一体的仓库存储服务。那么这一架构技术是如何基于Kubernetes 快速实现wo...

1096
来自专栏晨星先生的自留地

端口扫描器sunny girl

1403

扫码关注云+社区