Serverless是一种构建和管理基于微服务架构的完整流程,其中应用开发不使用常规的服务进程,仅依赖于第三方服务(如AWS Lambda服务)、客户端逻辑和服务托管远程过程调用的组合,可以帮助开发者更快速地开发软件。Serverless意味无维护,有了Serverless,我们几乎无需DevOps了。本文作者讲述了他学习Serverless,尝试托管API的经历。
最近,我想更改CardGames.io上的API,同时尝试一下Serverless框架。因为在过去的几年中,Serverless一直是技术界的热门话题,而我喜欢靠尝新来保持自己的技术水平不过时,所以我决定花几个小时来学习Serverless,看看用它来托管我们的API是否可行。
原有设置
CardGames.io托管在AWS上。我们使用S3来存储HTML页面、CSS、JavaScript和图像。我们有一个使用C#编写的API,该API托管在Elastic Beanstalk上,使用运行 .NET Core和Docker的Linux服务器。最后,我们在S3的静态文件和API上都部署了CloudFront CDN。
下图是我们今年8月的EC2账单。我们还有其他一些实例,但对于API,我们使用m1.small实例(是的,我们可能应该使用t2.small)和经典负载平衡。把图中红框部分加起来可以得出该月的费用为164.21美元,我甚至包括了整个EBS的部分,主要是因为我不确定它的哪一部分属于我们运行的其他EC2内容。