Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What can you do with Serverless… in 2020?

What can you do with Serverless… in 2020?

Serverless Italy Meetup, April 2nd, 2020

Danilo Poccia

April 02, 2020
Tweet

More Decks by Danilo Poccia

Other Decks in Programming

Transcript

  1. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Danilo Poccia
    Principal Evangelist, Serverless
    @danilop
    What Can You Do with Serverless
    …in 2020 ?
    © 2020, Amazon Web Services, Inc. or its Affiliates.
    Danilo Poccia
    Principal Evangelist, Serverless
    @danilop
    What Can You Do with Serverless
    …in 2020 ?

    View Slide

  2. © 2020, Amazon Web Services, Inc. or its Affiliates.
    © 2020, Amazon Web Services, Inc. or its Affiliates.
    https://danilop.net
    https://github.com/danilop/danilop-personal-page

    View Slide

  3. © 2020, Amazon Web Services, Inc. or its Affiliates.
    How does Serverless work?
    Storage
    Databases
    Analytics
    Machine Learning
    . . .
    Your
    unique
    business
    logic
    User uploads a picture
    Customer data updated
    Anomaly detected
    API call
    . . .
    Fully-managed
    services
    Events
    Functions

    View Slide

  4. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Serverless in December 2014… and the first half of 2015
    Thumbnails Generators!
    S3 Bucket Lambda Function
    S3 Bucket

    View Slide

  5. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Serverless in the first half of 2015
    Static
    Content
    Generators!
    S3 Bucket Lambda Function
    S3 Bucket

    View Slide

  6. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Serverless in the first half of 2015
    Dynamic
    Websites & Apps!
    Browser
    JavaScript
    DynamoDB
    Table
    S3 Bucket
    Lambda Function
    AWS SDK
    Lambda Invoke

    View Slide

  7. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Serverless in the second half of 2015… and later on!
    APIs!
    ”Alexa!” & IoT
    Microservices
    DevOps
    Browser
    Web APIs
    Amazon Echo
    IoT Devices
    Services
    Data Streams
    DynamoDB
    Table
    S3 Bucket
    Lambda Function
    API
    Gateway
    Schedule

    View Slide

  8. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Over the years, customers shared some concerns…
    New
    Paradigm
    Scalability Costs
    Latency
    Language
    Support

    View Slide

  9. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Observability Configuration
    Management
    Function
    Invocations
    Execution
    Environment
    Service
    Integrations
    So what have we been focusing on?

    View Slide

  10. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Latency
    Observability
    Configuration
    Management
    Function
    Invocations
    Execution
    Environment
    Service
    Integrations
    Language
    Support
    Costs
    Scalability
    New
    Paradigm

    View Slide

  11. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Function
    Invocations

    View Slide

  12. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Function
    Invocations
    AWS Lambda
    Asynchronous Invocations
    (Event)
    Max event age
    Max retry attempt
    Destinations
    (to Lambda, SNS, SQS, EventBridge)

    More controls for async
    and event-driven apps
    Scalability
    New
    Paradigm

    View Slide

  13. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Configuring Async Invocations

    View Slide

  14. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS Lambda – Destinations for Async Invocations
    Amazon S3
    Amazon SNS
    Amazon SES
    Amazon
    EventBridge
    Amazon
    CloudWatch Logs
    AWS Config
    Amazon
    CloudFormation
    AWS CodeCommit
    AWS Lambda
    Amazon SNS
    Amazon SQS
    Amazon
    EventBridge
    Lambda
    Function
    onSuccess
    onFailure

    View Slide

  15. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Function
    Invocations
    Costs
    Scalability
    New
    Paradigm
    Kinesis / DynamoDB Streams
    Parallelization factor
    (no need for fan-outs)
    Failure-handling

    Easier to scale streaming analytics and
    manage errors when processing a stream

    View Slide

  16. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Kinesis / DynamoDB Streams Controls

    View Slide

  17. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Function
    Invocations
    Latency
    Costs
    Amazon API Gateway
    New “HTTP APIs”

    Cheaper and faster APIs
    Reduce costs by up to 70%
    Reduce latency by up to 50%

    View Slide

  18. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Amazon API Gateway – HTTP APIs

    View Slide

  19. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Function
    Invocations
    Costs
    New
    Paradigm
    Application Load Balancer (ALB)
    Weighted Target Groups

    Fine-grained deployments with ALB, too
    Stickiness!
    Create rules depending on Host, HTTP
    header/method, Query string, or Source IP
    Simpler migrations to serverless

    View Slide

  20. © 2020, Amazon Web Services, Inc. or its Affiliates.
    ALB Weighted Target Groups

    View Slide

  21. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Execution
    Environment
    Language
    Support
    Runtimes
    Node.js 12
    Python 3.8
    Java 11
    .NET Core 3.1
    Custom Runtimes (Rust, Swift, …)
    [email protected] now supports
    Node 12.x & Python 3.8

    Use your favorite programming language
    Easier to migrate existing apps

    View Slide

  22. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Execution
    Environment
    Latency
    Scalability
    VPC to VPC NAT

    Integrate VPC resources in serverless apps
    Use new services with Lambda functions
    (e.g. ElastiCache)

    View Slide

  23. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Execution
    Environment
    Latency
    Costs
    Scalability
    AWS Lambda
    Provisioned Concurrency

    No more “cold starts”
    Real-time apps and games
    Applications with a slow initialization
    Download config/data on /tmp

    View Slide

  24. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS Lambda – Provisioned Concurrency
    We do the initialization,
    you are responsible for the
    first invocation of the handler
    Avoid lazy initializations
    Integrated with
    CloudWatch
    Application Auto Scaling
    and AWS CodeDeploy

    View Slide

  25. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Execution
    Environment
    Costs
    Scalability
    New
    Paradigm
    AWS Step Functions
    Express Workflows

    Build more modular apps
    Separate business process flow
    from implementation

    View Slide

  26. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS Step Functions – Express Workflows

    View Slide

  27. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS Step Functions – AWS Toolkit for Visual Studio Code

    View Slide

  28. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Service
    Integrations
    Costs
    Scalability
    New
    Paradigm
    Amazon Relational
    Database Service
    (RDS)
    RDS Proxy

    Using relational databases
    in serverless apps is much easier
    AWS Secrets Manager stores the user name
    and password for the database

    View Slide

  29. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Amazon RDS Proxy – How It Works
    Preview

    View Slide

  30. © 2020, Amazon Web Services, Inc. or its Affiliates.
    RDS Proxy + Amazon Aurora Serverless =
    Sample workload using Aurora Serverless PostgreSQL

    View Slide

  31. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Service
    Integrations
    Costs
    New
    Paradigm
    Amazon EventBridge
    Schema Registry
    Rules can now be triggered
    by CloudWatch Alarms

    Building event-driven apps with
    IDE integration
    Integrating PaaS solutions with your apps

    View Slide

  32. © 2020, Amazon Web Services, Inc. or its Affiliates.

    View Slide

  33. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Service
    Integrations
    Scalability
    New
    Paradigm
    Amazon Athena
    Create user defined functions (UDF)
    using Lambda functions
    Run federated queries

    Using SQL for analyzing… almost anything!

    View Slide

  34. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Amazon Athena – Create your own data connector
    Preview

    View Slide

  35. © 2020, Amazon Web Services, Inc. or its Affiliates.
    New
    Paradigm
    AWS Amplify
    Native iOS/Android
    Mobile Backends
    Amplify DataStore

    Mobile backends for native apps
    Persistent on-device storage to write, read,
    and observe changes online or offline, and
    seamlessly sync to the cloud as well as
    across devices
    Service
    Integrations

    View Slide

  36. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Latency
    Scalability
    AWS AppSync
    Pure WebSockets
    GraphQL Info Object (New)

    Real-time apps
    More efficient resolvers
    Service
    Integrations

    View Slide

  37. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Enhanced Real-Time Experience on AWS AppSync

    View Slide

  38. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Configuration
    Management
    New
    Paradigm
    AWS AppConfig
    For EC2, containers, on-premises, Lambda,
    containers, mobile apps, IoT devices
    Application
    Environment
    Configuration Profile

    Releasing configurations changes
    with fine-grained controls

    View Slide

  39. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Configuration Management for Lambda Functions
    Environment
    Variables
    Parameter Store
    AWS Secrets
    Manager
    AWS AppConfig
    In the function configuration
    For function-specific configurations
    Part of AWS Systems Manager
    Can be shared across multiple functions
    For secrets, can automate rotating secrets
    Integrated with the new RDS Proxy
    Part of AWS Systems Manager
    Full control during the roll out of configuration changes

    View Slide

  40. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Observability
    Costs
    Scalability
    New
    Paradigm
    Tracing – AWS X-Ray
    Trace Maps – for single requests
    Simplified identification of service
    disruption – in Service Maps
    SNS/SQS support (added in July/August)
    Amazon API Gateway (since 2018)
    AWS AppSync (new)

    More and easier observability

    View Slide

  41. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Observability
    Costs
    Scalability
    New
    Paradigm
    Monitoring
    CloudWatch Embedded Metric Format
    Percentiles on CloudWatch metrics
    CloudWatch Synthetics
    CloudWatch ServiceLens
    CloudWatch Anomaly Detection
    (added in September)

    More visibility into your
    application behavior

    View Slide

  42. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Using CloudWatch Embedded Metric Format

    View Slide

  43. © 2020, Amazon Web Services, Inc. or its Affiliates.
    CloudWatch Synthetics – Monitor Application Endpoints

    View Slide

  44. © 2020, Amazon Web Services, Inc. or its Affiliates.
    CloudWatch ServiceLens
    CloudWatch metrics and logs + AWS X-Ray traces

    View Slide

  45. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Using CloudWatch Anomaly Detection Alarms

    View Slide

  46. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Editing the Anomaly Detection Model

    View Slide

  47. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Observability
    Configuration
    Management
    Function
    Invocations
    Execution
    Environment
    Service
    Integrations
    Latency
    Language
    Support
    Costs
    Scalability
    New
    Paradigm

    View Slide

  48. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Observability Configuration
    Management
    Function
    Invocations
    Execution
    Environment
    Service
    Integrations
    Lots of concerns have been addressed…

    View Slide

  49. © 2020, Amazon Web Services, Inc. or its Affiliates.
    More tooling available

    View Slide

  50. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Compute Savings Plans
    Simplify purchasing with a flexible pricing model applying to
    Amazon EC2, AWS Fargate, and AWS Lambda usage
    Recommendations in AWS Cost Explorer
    Any instance family, any region
    VMs, Containers, and Functions
    Flexibility

    View Slide

  51. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Serverless Lens in AWS Well-Architected Tool N
    ew

    View Slide

  52. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Photo by Scott Blake on Unsplash
    Some Examples

    View Slide

  53. Siemens employs 377,000 people who
    speak almost 50 different languages
    3 euros per interview
    Amazon Translate
    +
    Amazon Comprehend
    +
    Amazon SageMaker
    “By using AWS Lambda functions,
    we are running translations with
    just three lines of code”
    Siemens Employee Surveys
    less than one euro per interview
    Case
    Study

    View Slide

  54. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Roomba Vacuum Cleaners

    View Slide

  55. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Roomba Vacuum Cleaners

    View Slide

  56. © 2020, Amazon Web Services, Inc. or its Affiliates.
    fractional delivery
    Run simulation
    jobs and add logs
    to S3 bucket
    Lambda function
    FanOut Step Function
    parallel jobs
    Lambda function
    If successful, get output
    If failed, get execution history
    Start AWS RoboMaker
    Update Amazon DynamoDB
    with job IDS
    Aggregate
    Results
    Parse
    Logs
    logs in
    S3 bucket
    Amazon Simple
    Storage Service
    (Amazon S3)
    Amazon
    DynamoDB
    AWS
    RoboMaker
    Check simulation
    job status
    Trigger Lambda
    every 2 minutes
    Amazon CloudWatch
    Event Time Based
    Send task
    success/failure
    heartbeat
    Controller Step Function FanOut Tests Step Function
    AWS Step Functions workflow AWS Step Functions workflow
    Start controller
    execution and
    wait to finish
    1
    2
    3
    4
    5
    6

    View Slide

  57. © 2020, Amazon Web Services, Inc. or its Affiliates.
    So, what can you do with serverless, now?
    ✓ Web/Mobile/IoT backends
    ✓ Batch/streaming analytics
    ✓ DevOps & IT automation
    ✓ Voice/text chat interfaces
    ✓ Real-time apps, multi-player games
    ✓ Complex async jobs/tasks/activities
    ✓ Reduce costs even more
    ✓ Reduce complexity
    ✓ And much, much more!

    View Slide

  58. © 2020, Amazon Web Services, Inc. or its Affiliates.
    What Can You Do with Serverless
    …in 2020 ?

    View Slide

  59. © 2020, Amazon Web Services, Inc. or its Affiliates.
    What Are You Going to Build
    …in 2020 ?

    View Slide

  60. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Thank you!
    @danilop Please give me your feedback!

    View Slide