Course
Developing Serverless Solutions on AWS – Intensive Training («AWSS08»)
Course facts
- Applying event-driven best practices to a serverless application design using appropriate AWS services
- Identifying the challenges and trade-offs of transitioning to serverless development, and make recommendations that suit your development organization and environment
- Building serverless applications using patterns that connect AWS managed services together, and accounting for service characteristics, including service quotas, available integrations, invocation model, error handling, and event source payload
- Comparing and contrasting available options for writing infrastructure as code, including AWS CloudFormation, AWS Amplify, AWS Serverless Application Model (AWS SAM), and AWS Cloud Development Kit (AWS CDK)
- Applying best practices to writing Lambda functions inclusive of error handling, logging, environment re-use, using layers, statelessness, idempotency, and configuring concurrency and memory
- Applying best practices for building observability and monitoring into your serverless application
- Applying security best practices to serverless applications
- Identifying key scaling considerations in a serverless application, and matching each consideration to the methods, tools, or best practices to manage it
- Using AWS SAM, AWS CDK, and AWS developer tools to configure a CI/CD workflow, and automate deployment of a serverless application
- Creating and actively maintaining a list of serverless resources that will assist in your ongoing serverless development and engagement with the serverless community
Learn how to use AWS frameworks to deploy a serverless application in hands-on labs that progress from simpler to more complex topics. You will use AWS documentation throughout the course to develop authentic methods for learning and problem-solving beyond the classroom.
Course outline:
Day 1
Module 0: Introduction
- Introduction to the application you will build
- Access to course resources (Student Guide, Lab Guide, and Online Course Supplement)
Module 1: Thinking Serverless
- Best practices for building modern serverless applications
- Event-driven design
- AWS services that support event-driven serverless applications
Module 2: API-Driven Development and Synchronous Event Sources
- Characteristics of standard request/response API-based web applications
- How Amazon API Gateway fits into serverless applications
- Try-it-out exercise: Set up an HTTP API endpoint integrated with a Lambda function
- High-level comparison of API types (REST/HTTP, WebSocket, GraphQL)
Module 3: Introduction to Authentication, Authorization, and Access Control
- Authentication vs. Authorization
- Options for authenticating to APIs using API Gateway
- Amazon Cognito in serverless applications
- Amazon Cognito user pools vs. federated identities
Module 4: Serverless Deployment Frameworks
- Overview of imperative vs. declarative programming for infrastructure as code
- Comparison of CloudFormation, AWS CDK, Amplify, and AWS SAM frameworks
- Features of AWS SAM and the AWS SAM CLI for local emulation and testing
Module 5: Using Amazon EventBridge and Amazon SNS to Decouple Components
- Development considerations when using asynchronous event sources
- Features and use cases of Amazon EventBridge
- Try-it-out exercise: Build a custom EventBridge bus and rule
- Comparison of use cases for Amazon Simple Notification Service (Amazon SNS) vs. EventBridge
- Try-it-out exercise: Configure an Amazon SNS topic with filtering
Module 6: Event-Driven Development Using Queues and Streams
- Development considerations when using polling event sources to trigger Lambda functions
- Distinctions between queues and streams as event sources for Lambda
- Selecting appropriate configurations when using Amazon Simple Queue Service (Amazon SQS) or Amazon Kinesis Data Streams as an event source for Lambda
- Try-it-out exercise: Configure an Amazon SQS queue with a dead-letter queue as a Lambda event source
Hands-On Labs
- Hands-On Lab 1: Deploying a Simple Serverless Application
- Hands-On Lab 2: Message Fan-Out with Amazon EventBridge
Day 2
Module 7: Writing Good Lambda Functions
- How the Lambda lifecycle influences your function code
- Best practices for your Lambda functions
- Configuring a function
- Function code, versions and aliases
- Try-it-out exercise: Configure and test a Lambda function
- Lambda error handling
- Handling partial failures with queues and streams
Module 8: Step Functions for Orchestration
- AWS Step Functions in serverless architectures
- Try-it-out exercise: Step Functions states
- The callback pattern
- Standard vs. Express Workflows
- Step Functions direct integrations
- Try-it-out exercise: Troubleshooting a Standard Step Functions workflow
Module 9: Observability and Monitoring
- The three pillars of observability
- Amazon CloudWatch Logs and Logs Insights
- Writing effective log files
- Try-it-out exercise: Interpreting logs
- Using AWS X-Ray for observability
- Try-it-out exercise: Enable X-Ray and interpret X-Ray traces
- CloudWatch metrics and embedded metrics format
- Try-it-out exercise: Metrics and alarms
- Try-it-out exercise: ServiceLens
Hands-On Labs
- Hands-On Lab 3: Workflow Orchestration Using AWS Step Functions
- Hands-On Lab 4: Observability and Monitoring
Day 3
Module 10: Serverless Application Security
- Security best practices for serverless applications
- Applying security at all layers
- API Gateway and application security
- Lambda and application security
- Protecting data in your serverless data stores
- Auditing and traceability
Module 11: Handling Scale in Serverless Applications
- Scaling considerations for serverless applications
- Using API Gateway to manage scale
- Lambda concurrency scaling
- How different event sources scale with Lambda
Module 12: Automating the Deployment Pipeline
- The importance of CI/CD in serverless applications
- Tools in a serverless pipeline
- AWS SAM features for serverless deployments
- Best practices for automation
- Course wrap-up
Hands-On Labs
- Hands-On Lab 5: Securing Serverless Applications
- Hands-On Lab 6: Serverless CI/CD on AWS
This course includes presentations, hands-on labs, demonstrations, videos, knowledge checks, and group exercises.
This course is intended for the following job roles:
- Developer
- DevOps
Why should you attend this specific course? What are my benefits from taking this course? The Voice of the Instructor answers these questions. We have asked our instructor team to write a short text about WHY this course is very relevant for the respective job roles and what you can expect from attending the course. You can find this section in the course description under the «Additional Information» section.
We recommend that attendees of this course meet the following prerequisites:
- the following serverless digital trainings: AWS Lambda Foundations and Amazon API Gateway for Serverless Applications
and have attended the following course (or have equivalent knowledge):
Voice of the Instructor
«Developing Serverless Solutions on AWS» is another one of the three specific developer courses offered on AWS. While the sequence between this course and «Advanced Developing on AWS» (course three) is debatable, there's no doubt that this course addresses key serverless technologies on AWS. We'll delve into the AWS Lambda service, explore security services essential for secure interaction with solutions you build on AWS, event-driven development, orchestration, monitoring, and scaling serverless solutions.
This course is a continuation of the «Developing on AWS Associate Level» course, where you became acquainted with the fundamental concepts of developing on AWS. The level of detail on the services discussed in this course will be somewhat more extensive than in the «Developing on AWS» course. However, the focus will still gravitate towards understanding the concepts of the individual services we discuss. A certain level of knowledge is required to begin to comprehend the possibilities that AWS as a platform offers. We aim to help you reach that specific level of understanding. We expect you to attend this course after having completed the «Developing on AWS» course, or after having acquired some knowledge of AWS serverless services in another manner.
The emphasis of this course is not on coding, but rather on understanding the behavior of the AWS API regardless of the programming language used. We'd like to stress that on AWS, everything starts with the «Architecting on AWS» course. While open to interpretation and not to be taken literally, an understanding of the core AWS architecture is crucial whenever we try to build new solutions. This course is no exception. Regardless of what you choose to call the process of building serverless solutions on AWS, one thing is clear: there are many moving parts. Self-learning is not impossible but can be demanding in ways you may not anticipate. That's why we're here, to make the learning experience easier, faster, and even enjoyable! Our experienced trainers will guide you through the course content and do their utmost to help you navigate the obstacles you'd almost certainly face otherwise.
Join us for this three-day session and tap into the power of building serverless solutions on AWS.