这篇文章将为大家详细讲解有关Serverless中微服务的优缺点和最佳实践分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Serverless是一种构建和管理基于微服务架构的完整流程,允许你在服务部署级别而不是服务器部署级别来管理你的应用部署。
它与传统架构的不同之处在于,完全由第三方管理,由事件触发,存在于无状态(Stateless)、暂存(可能只存在于一次调用的过程中)计算容器内。构建无服务器应用程序意味着开发者可以专注在产品代码上,而无须管理和操作云端或本地的服务器或运行时。Serverless真正做到了部署应用无需涉及基础设施的建设,自动构建、部署和启动服务。
微服务的概念非常适合Serverless功能的结构,可以轻松实现不同服务在部署和运行时隔离。在数据存储方面,使用诸如DynamoDB之类的数据库,还使得每个微服务都能拥有独立的数据库,并在需要独立扩展它们时变得更加容易。
在我们深入研究细节之前,请考虑微服务对于你的特定项目和团队而言,其好处是否大于其缺点。请不要因为“微服务是趋势”,就要必须选择它。单体架构(Monolith)也有他的适用场景。
调用功能时,Lambda会检查microVM是否已激活。如果有空闲的microVM可用,它将用于服务新的传入请求。在这种特殊情况下,没有启动时间,因为microVM已经启动并且代码包已在内存中。这称为 热启动。
相反的方法-必须从头开始提供新的microVM来满足传入的请求-被称为 冷启动。
确定服务边界并非易事
更广泛的攻击面
服务编排开销
同步计算和存储并不容易
微服务(MicroService)是软件架构领域业另一个热门的话题。如果说微服务是以专注于单一责任与功能的小型功能块为基础,利用模组化的方式组合出复杂的大型应用程序,那么我们还可以进一步认为Serverless架构可以提供一种更加“代码碎片化”的软件架构范式,我们称之为Function as a Services(FaaS)。
而所谓的“函数”(Function)提供的是相比微服务更加细小的程序单元。例如,可以通过微服务代表为某个客户执行所有CRUD操作所需的代码,而FaaS中的“函数”可以代表客户所要执行的每个操作:创建、读取、更新,以及删除。当触发“创建账户”事件后,将通过AWS Lambda函数的方式执行相应的“函数”。从这一层意思来说,我们可以简单地将Serverless架构与FaaS概念等同起来。
关于Serverless中微服务的优缺点和最佳实践分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。