无服务器计算是提高开发人员生产率的一个很好的方式,但有安全性问题,并且锁定的机率大。
无服务计算是一件很大的事情,有很好的理由。作为Pariveda公司解决方案架构师Phillip Manwaring建议的,无服务器计算是一个AWS Lambda,是开发人员专注于“封装业务逻辑和公开组织能力的短暂功能”的一种方式,从而构建“解决方案和服务”的样板。
换句话说:无服务器帮助开发人员专注于解决业务问题,而不是技术基础设施。这是一个好消息。但坏消息是,无服务器可以使事情变得更容易,一些开发人员可能发现自己对安全性做出了非常糟糕的决定。Redmonk公司分析师James Governor在最近的一篇文章中发表了这个观点,认为无服务器非常便捷可能导致“代码卫生不佳,这会导致更大的攻击面”。
(1)为了便捷而牺牲安全性
Manwaring表示,无服务器计算使人们“做正确的事情更容易”。此外,他继续说道,“通过帮助用户将其整体服务分解成微服务,使现有的产品团队规模更小,并减少了从创意到生产的应用程序所需的专业化程度,从而减少了支持这项工作人员需求作。”这真是太好了,是吧?正如Manwaring所说:
在无服务器的经济中,问题会发生在哪里,在实际使用之前,用户不需要支付功能?一件事,就像塑料用品一样,人们不太可能有效地处置它们。在微服务中,人们将可处理性视为一种美德,但是无服务器部署代码很容易,为什么要放弃它?当涉及安全性时,糟糕的代码卫生本质上会导致更大的攻击面,这是一件坏事。
他总结说:“事实证明,无服务器的便利性和低成本模式,可能导致懒惰,且安全性差。”但是,这并不是全部。
(2)供应商锁定
无服务器计算的最大问题之一是实际上没有服务器运行。用户只是建立在别人的服务器上,使用API调用,使用户更加深入该平台。如Simform Solutions公司的Rohit Akiwatkar所述:“在实施API的同时,放弃系统控制可能导致系统停机,强制API升级,功能损失,意外限制,以及成本变化。”
其好处是增加自由以获得更多的工作。其缺点是,用户获得了“更加完善”的平台控制权,没有能力轻易移动到竞争对手的云端。例如,如果要从微软Azure切换到AWS,则需要重写应用程序。
这并不是说开发商不应该利用无服务器可以提供的好处。他们应该利用。但它确实表明需要采取谨慎措施,以便保持安全和独立。