Moving to Serverless with AWS Lambda
Published byO'Reilly Media, Inc.
What is this learning path about, and why is it important?
Building cloud-based applications using modern architectures such as microservices allows developers to be more flexible, agile, and quicker to respond to ever-changing user environments. But your development strategy is only as good as the infrastructure your applications run on. Serverless computing is a new way of building cloud-based applications that eliminates this weak link and removes the burden of setting up and maintaining a physical infrastructure. And one of the leaders in this area is Amazon Web Services (AWS) with its Lambda and other on-demand cloud services.
Serverless offers many benefits to development organizations and your business’ bottom line overall. For example, in a serverless architecture, you can build solutions such that they cost nothing to run if nobody is using them (excluding data storage costs). But, to become a successful serverless application developer, you need to fully understand what makes serverless solutions different to other forms of applications—beginning by dispelling the misconception that there are no servers in a “serverless environment.”
This learning path explains the basic concepts underlying serverless and explores how you can begin developing serverless solutions using AWS technologies. You’ll learn how AWS Lambda and associated AWS services enable the creation of serverless applications, using the Serverless Application Model (SAM) to create and manage serverless applications on AWS. You’ll also examine some basic patterns to consider when designing serverless applications. When you've complete this learning path, you will have the tools to start building simple but very powerful serverless applications, and you will certainly want to delve deeper into some of the more advanced and related topics. At the end, there are some suggestions on how to continue the journey into serverless application development.
What you’ll learn—and how you can apply it
- What is serverless computing?
- How AWS Lambda allows you to utilize serverless computing
- How to create basic applications using the Serverless Application Model (SAM)
- How to consider which basic patterns to use when designing simple serverless applications
This learning path is for you because…
- You're a backend developer and you want to enhance your skill set beyond microservices
- You're a DevOps practitioner who needs a more thorough understanding of the serverless space
- You're a frontend developer looking to build scalable backend systems
- You should have intermediate-level proficiency in Node.js, as examples will be given in Node.js, although proficiency in any runtime language supported by AWS Lambda is sufficient
- An AWS account with administrator permissions (this should not be a production or work developer account as the need to launch many different services may be required and the ability to work with IAM permissions is essential)
- You need to have some experience with the AWS CLI and the AWS CLI setup on your machine, or the ability to start up an EC2 instance with the CLI installed for the duration of the learning path—using Cloud9 here would be advantageous, too
Materials or downloads needed in advance:
- AWS CLI
- SAM CLI
- Node.js 8.10—or the latest node.js lambda runtime version
- If you would prefer to simply use an AWS Account, you can utilize a Cloud9 resource when taking the course
- AWS Lambda documentation
I'll provide context for the following hands-on exercises in this learning path, linked here for easy access but also available from within the learning path: