这不是我想要的Serverless
Posted 分布式实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这不是我想要的Serverless相关的知识,希望对你有一定的参考价值。
我拒绝接受由供应商执掌“serverless”发展轨迹的现状,大家需要一个标准。我有一个目标,一个基于个人想法的目标。最后一个纯粹出于个人嗜好,接受它或是提出你的建议。
坦白说,我个人并不喜欢AWS,Azure和GCE对于serverless的描述。我喜欢这些供应商,我认为它们的平台是令人叹为观止的,但我是一个发自内心的纯粹主义者。我认为要落实serverless,必须为其开发一个开放标准。
当前的FaaS(Function as a Service)根本没有做到这些。它们都在其生态中提供了框架,你只需要在此完成工作。
我们需要一个开放标准,但是它应该是怎样的呢?好吧,首先,我们需要建立关于其如何工作的基本准则。
在支持多任务处理时,它必须是安全的
它需要足够快
对于数据格式需要一致认同
它必须是语言无关的
它需要在任何地方运行
在现有的产品中,上述内容得不到任何保证。我需要想象一个拥有上述一切的世界。
这并不意味着我们无法开发一个工具以使我们的工具容器化,使之得以在数毫秒内启动,并使所有的功能遵循相同的隔离。
或许unikernel才是答案,而非容器,或许仅需一台经过调整的Linux服务器,使其高效地隔离每个进程,不赋予它们文件访问权,仅允许向外的TCP连接。
Serverless方法的理念就是生成、执行和销毁,对我而言,这是一种获取数据的好规范。
如果你深究云供应商的FaaS实现,你会发现它们仅提供2个变量。其一是“event”,它们不关心内部有什么。其二便是“context”,它将请求置于上下文中。与可执行程序中通过STDIN发送标记和环境变量相比,这并没有什么不同。
考虑更加简单的STDIN/STDOUT确实给了我们很大的自由。它允许我们的方法是语言无关的,并且通过Linux强大的管道命令,我们便可构建非常健壮的功能链了。
当前市场中,我认为存在2种相对理想的格式,Cap'n Proto和Protobuf。前者允许快速传送大量数据,后者则允许向现存载荷拼接数据。从目前来看,我无法确定哪一个才是更加理想的选择,抑或是可能会出现更加优秀的方案。但有一点我很清楚,如果我们建立了进程间共享数据的标准,那么完全可以在之后构建可替换的部分(标准)。
这是一个正在进行中的思想性项目,我期望收到建议。下一篇文章和一个假想的系统相关,它能够实现理想的serverless生态系统。
本文为翻译文章,原文链接:http://container-solutions.com/not-serverless-ordered/
etcd为分布式系统提供可靠、高效的配置管理服务,在Docker、Kubernetes、Mesos等平台中扮演了越来越重要的角色。作为2013年开始的项目,它还很年轻,官方文档中缺乏实现上全面、系统的介绍,本课程深入浅出地介绍了etcd的实现,并为运维和二次开发提供了系统的指导和建议。
点击阅读原文链接可直接报名。
以上是关于这不是我想要的Serverless的主要内容,如果未能解决你的问题,请参考以下文章