BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

无服务器架构在混合环境下的挑战

| 作者 Manuel Pais 关注 8 他的粉丝 ,译者 张健欣 关注 0 他的粉丝 发布于 2017年12月7日. 估计阅读时间: 4 分钟 | QCon北京2018全面起航:开启与Netflix、微软、ThoughtWorks等公司的技术创新之路!

亲爱的读者:我们最近添加了一些个人消息定制功能,您只需选择感兴趣的技术主题,即可获取重要资讯的邮件和网页通知

Sam Newman是一位独立咨询顾问,也是《Building Microservices》这本书的作者。他在伦敦举行的Velocity大会上发表演讲,讨论了关于在一些同时依赖无服务器架构和传统基础设施的混合系统中所面临的挑战。尤其是,Newman重点讨论了无服务器架构如何改变了我们关于系统弹性的概念,以及两个体系同时存在于一个高负荷系统内会发生怎样的冲突。

系统弹性在传统服务系统中依赖于状态来控制(例如,在任何时间点用数据库连接池,来及时调节和控制访问数据库的请求数量)。在这种系统中,系统稳定性通过控制输入负载并把这些负载均衡到多个系统实例中来维持。但是,在短暂的函数(lambdas)中没有地方来存储这些控制状态,因此在函数随着负载自动扩展与后端数据库扩展之间需要一个平衡机制。

自动扩展的云数据库,例如亚马逊的DynamoDB或者谷歌的Bigtable,很适合无服务器架构。但是Newman指出,大多数系统依赖传统数据库,因此简单地在一个遗留的系统中嫁接无服务器函数可能会导致严重的后果。Newman强调,即便是作为无服务器架构典范之一的Bustle也面临过许多前所未有的挑战。尽管他们特意给任意一个Redis节点设置了一个1000 lambda连接数的限制(可以处理10倍那个数量的连接),但是他们仍然发现一些失效的节点,因为据传闻说,lambda函数似乎在连接停止后也会保持连接存活长达3分钟。Bustle的工程师不得不深入研究Redis内部工作机制来修复这个问题(强制这些僵尸连接更快地超时)。Newman说,这也突出了无服务器架构系统与非无服务器架构系统在处理负载和系统弹性的方式上的不协调。

Newman提到的另一个挑战是,通常被用在微服务中来处理失败的下游服务,能够有效降低负载从而让整个系统更具弹性的断路器(circuit breakers),是依赖于维护跨多个请求的状态来实现的。例如,一旦下游服务恢复稳定,断路器就能够自我关闭。

Newman讲到,服务网格(service meshes),例如Istio或者Linkerd,也许能够帮助解决这些问题。它们可以作为持久化的状态代理,而这些状态能够协调微服务函数间的负载。

最后,从安全角度来看,函数是运行在容器中的,因此很容易受到攻击,因为一个容器可以侵入到另一个运行在同一台主机上的容器。但是,如果函数运行所在的容器存活的时间很短,这种攻击就会变得很困难,因为不能在函数结束后进行攻击。诸如Guy Podjarny等安全专家警告说,无论如何,无服务器架构都将安全隐患转移到了应用层级别,并且如果没有正确的安全措施,一长串的函数链调用很可能会受到攻击

Newman也提到了许多人在选择一家FaaS(Function-as-a-Service)供应商时所关心的问题,而这些问题也涵盖在最新的InfoQ eMag中。将讨论内容从如何锁定一家供应商,转变为理解(以及接受)每个FaaS实现在提高运行速度(负载越少速度越快)和迁移成本(跨FaaS供应商的工具集越相似,成本就越少)之间的权衡,是解决这个问题的关键。

查看英文原文:Serverless Challenges in Hybrid Environments


感谢罗远航对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT