Serverless Architecture

             - with 
            
                AWS Lambda
            
        

Why Serverless

modularized

Atomic Unit

of a running script

Logic
Execution

API Gateway

AWS Lambda

Features

  1. Python / NodeJS / Java8 runtime
     
  2. 🕒 Cron like execution
    (CloudWatch events)
  3. Pay-as-you-go
     
  4. Can access VPC Finally
     
  5. Auto Scalling
     
  6. Latency: so far so good

When

Serverless

When to use 💚

👍 Stateless

👍 Short Job

👍 Event-driven stuff, e.g. Time-based / webhook

👍 Spike Patterns of usage

👍 Simple program with less dependency

👍 ad-hoc scripts with need to modify and version

👍 Need Real quick set up, quicker than Knubertes

 

When NOT to use 💔

🙅 Stateful e.g. Session servers

🙅 Long running (=>$$)

🙅 Cache is important -> can use external elasticCache

🙅 High CPU/Memory Usage (Max 1.5GB per process)

🙅 Complex gcc / machine drivers etc

🙅 High frequency self-trigger (max @1min event now) -> Use SNS/Celery!

🙅 Need DAG Job dependencies   -> Use airflow!

🙅 Strong fault tolerance /monitor req -> Use Celery / Gearman!

🙅 Layman stuff -> Use Zappier / IFTTT!

 

 

🙋Use Cases

  • Auth

  • Point to point Data Sync among 3rd part services/ platform

    • E.g. App -> Salesforce

    • Daily Logentries, GA -> ReportingDB

      • Pagination with external state

  • Integrate with Amazon Kinesis for data analytics

    • As simple as marshalling / aggregating & send reporting db

  • Scraping

  • Simple API, Slackbot etc..

 yet some other pain points

  • Overhead to setup proper VPC subnet
  • Tedious to package
  • Libraries like Pg8000 (Postgres driver) tested well on local/ec2 but failed
    • hard to reproduce the environment
    • Just give up and switch lib
      Old school Cloudwatch events and loggings
  • AWS UI is just...well

Apex /      

 

 

 

        serverless/serverless 

to the rescue

Cost Structure

(memory type * exe time,
roughly 3M * 1s call <$20 USD)

Ecosystems

  • Integrations with

    • API Gateway, another Lambda...

    • Kinesis, Redshift, S3...

AWS

Others

  • your own dockerized arch

  • Non tech oriented Data integrations

  • Xplenty, Zapier/IFTTT

Made with Slides.com