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

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
  • 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