AWS Serverless at Qest
Why AWS?
- Customer-centric philosophy
- Lead in cloud & serverless
- Tooling & OSS
Serverless
- no servers to manage
- implicitly highly available & scalable
-
pay-per-request pricing model
-
logging & monitoring built-in
Pay-per-use pricing +
High-level tooling +
High-level services = Cloud-native Serverless
- Multiple environments / versions no longer cost more
- sandbox environment for each developer
- Velocity - focus on solutions, not server management
- production-grade prototypes
- Custom tooling & services on top of existing ones
- cloud as a framework
Basic serverless application components
Messaging
Compute
Storage
Identity
S3
DynamoDB
Lambda
SQS
SNS
Cognito
Integration
API Gateway
Cloudfront
Cognito UserPool
- Secure identity provider
- Deep integration with other services
Cognito IdentityPool
Enables user access to AWS resources for configured identity providers
AWS Lambda
- Hosted piece of code, that handles events
- limited time of execution (15min)
- Pricing in 100ms increments
- based on configured memory
- Many event sources
- Integration-specific return values
module.exports = async (event) => {
return {
statusCode: 200,
body: "success",
};
};
DynamoDB
- Infinitely scalable key-value database
- at consistent latency
- ideal for customer-facing scenarios
- Pay-per-request + storage
- Many weird quirks and specifics
- read docs first
-
DynamoDB Streams
- serves as an integration point
SNS / SQS
- SQS - fully-featured queue with unlimited throughput
- buffering
- offloading work
- SNS - notification system with pub/sub semantics
- organized into Topics
- integration
Serverless application design
Organizing application into contexts - custom sources of events.
Microservice Service Context
Case Study
Abaku
Integrating Service Contexts
- EventBridge
- Decoupling event sources / targets
- AWS Step Functions
- workflow orchestration
EventBridge
Step Functions
- Business use cases that cross contexts
- need to know the state even in case of a failure
- Pay for state transitions
- and underlying resources
Qest Serverless Workshop
By Vít Habada
Qest Serverless Workshop
- 609