If you follow me on Twitter or know me in person, you will know I love Serverless architecture. Not the serverless framework but serverless architecture deployed to AWS Lambda. Over the past few years I’ve been building multiple successful and unsuccessful side projects using with serverless and I’ve always ignored the headaches as I told myself that the upside of “pay for what you use” and autoscaling was worth dealing with the downsides.
EnaLog is built completely with serverless and deployed using AWS SAM, don’t get me wrong SAM takes away a lot of the headaches with serverless and makes deployment a breeze. But, there are a number of things that I don’t want to keep battling:
Yes, they are not new and yes I’ve used them before. I decided to build new projects with FastAPI and deploy them in containers. And even with 0.5vCPU and 1GB of RAM they consistently outperform the serverless projects.
Deploying in a containerised environment to AWS doesn’t solve everything, there is still some headaches around CI/CD which I have to
configure myself now. I can’t just run sam deploy
anymore, but this isn’t a big deal and for the better DX it’s a tradeoff I’m willing
to make.