How Serverless can boost your team productivity

Alex Di Mango
limehome-engineering
3 min readDec 13, 2022
Image from https://aws.amazon.com/blogs/compute/introducing-serverlesspresso-extensions/

As a rapidly growing hospitality start-up, at limehome we understood the importance of having a scalable and efficient infrastructure in order to meet the demands of our guests.

In order to achieve this, we have implemented both serverless technology and infrastructure as code.

Traditionally, this would require a team of dedicated DevOps engineers to manage and maintain our infrastructure. However, with the adoption of Serverless and infrastructure as code, we have been able to greatly reduce the need for a large DevOps team and have less anxiety for the people working on it.

Serverless allows us to run our applications without the need to worry about the underlying infrastructure. This means that we can focus on building and deploying our applications, without worrying about managing servers and other infrastructure components.

With infrastructure as code, we can define our infrastructure in code and then automate the provisioning and management of this infrastructure. This allows us to easily and quickly scale our infrastructure to meet the demands of our growing business and roll back easily in case of need.

This has had a huge impact on our team, as we no longer need to spend as much time and effort on managing our infrastructure. We can focus on delivering value to our guests and iterating on our applications, without worrying about the underlying infrastructure.

In addition, our team has less anxiety when it comes to deploying and managing our infrastructure. With Serverless and infrastructure as code, we have a predictable and reliable way of managing our infrastructure, which means that we can confidently deploy and scale without worrying about potential issues.

The main benefits we have seen from using serverless technology are:

  • Improved Developer Experience: More autonomy Less anxiety (#self-documenting)
  • Increased Deployment Frequency: we have weekly or daily deployment to production. Developers do not have to wait for the infrastructure setup. Easy to perform small infrastructure changes or spin up additionals environments for tests
  • Scalable Cost: Fewer resources for manual Ops tasks and effective pay-per-use model

After discussing the benefits of using lambdas, I would like to share some learnings on how to optimize their usage:

  • Reduce the number of non-production VPCs you create for your lambdas to save on NAT Gateway costs.
  • Define a default S3 structure, naming patterns, and lifecycle policy to make it easier to navigate and delete unnecessary objects.
  • Reduce the size of your lambdas, consider using Docker images on ECR, bundling and tree-shaking the code with tools like esbuild or Webpack, and creating and sharing Lambda layers for package dependencies. It’s generally quicker to deploy and rollback smaller Lambda’s
  • Setting the proper memory size for your Lambda functions, by experimenting with various memory configurations to find the right balance between performance and cost.
  • To improve user experience, look into reducing latency with new Provisioned Concurrency or the old warmup plugin, and ensure end-to-end observability with distributed tracing tools like Epsagon, Lumigo, and Serverless, as well as application monitoring tools like Sentry.

Overall, implementing serverless technology and infrastructure as code has been a game-changer for limehome. It has allowed us to easily and efficiently scale our infrastructure, while also reducing the workload and anxiety for our team. We are excited to continue leveraging these technologies as we continue to grow and expand our business.

By the way, check out the open roles in our Tech and Engineering team.

--

--

Alex Di Mango
limehome-engineering

I provide expert tech strategies and methodologies to scale organizations and manage cross-functional teams 🖖