SVS315: Best Practices for Growing a Serverless Application

Resources for SVS315: Best practices for growing a serverless application

So your serverless proof of concept became an MVP (minimum viable product) and launched to your customers with great success. Now you need to grow and expand that serverless application in functionality and complexity to deal with increased business needs. How should you think about tackling challenges such as when to break apart functions, create new APIs, and create new AWS Lambda “microservices” to overcome organizational challenges? How can you use features of AWS to help facilitate this? In this session, learn how to tackle the real scaling challenges, not getting your application to handle more requests, but getting your team to scale its development and do less while seeing more of the benefits of serverless.

Challenge 1: The Lambda-lith

The serverless LAMP stack part 6: From MVC to serverless microservices

In this post I show how to move from using a single Lambda function as scalable web host with an MVC framework, to a decoupled microservice model.

Challenge 2: The mono-repo

Best practices for organizing larger serverless applications

This blog post provides recommendations for designing and managing code repositories in larger serverless projects, and best practices for deploying releases of production systems.

Challenge 3: Enforcing security best practices

Castle-and-moat vs Zero trust

Build micro-perimeters to enforce strict verification of every person or service.

Delegate permission management to developers by using IAM permissions boundaries

As your organization grows, you might want to allow trusted employees to configure and manage IAM permissions to help your organization scale permission management and move workloads to AWS faster.

Using Lambda layers to simplify your development process

This post explains how layers work, and how you can build and include layers in your own applications.

Challenge 4: Managing multiple AWS accounts

Cross-account deployment using CodePipeline

Use a single pipeline to deploy a microservice into multiple accounts; for example, a microservice must be deployed to environments such as DEV, QA, and PROD, all in separate accounts.

Cross-account lookup

During deployment, a resource deployed into one AWS account may need to refer to a resource deployed in another AWS account.

Cross-account communication

Microservices executing in one AWS account may need to communicate with microservices executing in another AWS account.

Simplifying cross-account access with Amazon EventBridge resource policies

This blog post shows you how to use EventBridge resource policies to publish events and create rules on event buses in another account.

Resources for growing your serverless applications

Code examples

Use these code examples to help implement some of the best practices described in this session

Presented by:

Benjamin Smith

Benjamin Smith

Ben is a senior developer advocate for Serverless Applications at Amazon Web Services based in London, UK. Prior to joining AWS Ben worked in a number of different technical roles specializing in workflow Automation and web development.

Follow on LinkedIn