Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Lambda and Serverless Cloud


Published on

IoT track

Published in: Business

AWS Lambda and Serverless Cloud

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Adrian Hornsby Solutions Architect with AWS AWS Stockholm Summit, May 4, 2016 Getting Started with AWS Lambda and the Serverless Cloud Nils Undén, CTO, eBuilder
  2. 2. What is serverless computing? • VMs • Machine as the unit of scale • Abstracts the hardware • Containers • Application as the unit of scale • Abstracts the OS • Serverless • Functions as the unit of scale • Abstracts the language runtime
  3. 3. How do I choose? • VMs • “I want to configure machines, storage, networking, and my OS” • Containers • “I want to run servers, configure applications, and control scaling” • Serverless • “Run my code when it’s needed”
  4. 4. Microservices and AWS Lambda AWS Lambda + Amazon API Gateway is the easiest way to create microservices • Event handlers one function per event type • Serverless back ends one function per API / path • Data processing one function per data type
  5. 5. Agenda Overview Use cases Recent launches Best practices
  6. 6. AWS Lambda: Serverless computing Run code without servers. Pay only for the compute time you consume. Be happy. Triggered by events or called from APIs: • PUT to an Amazon S3 bucket • Updates to Amazon DynamoDB table • Call to an Amazon API Gateway endpoint • Mobile app back-end call • And many more… Makes it easy to: • Perform real-time data processing • Build scalable back-end services • Glue and choreograph systems
  7. 7. Continuous scaling No servers to manage Never pay for idle – no cold servers (only happy accountants) Benefits of AWS Lambda
  8. 8. Pay-per request • Buy compute time in 100 ms increments • Low request charge • No hourly, daily, or monthly minimums • No per-device fees Never pay for idle! Free Tier 1 million requests and 400,000 GBs of compute every month, every customer
  9. 9. Using AWS Lambda Bring your own code • Node.js, Java, Python • Bring your own libraries (even native ones) Simple resource model • Select power rating from 128 MB to 1.5 GB • CPU and network allocated proportionately • Reports actual usage Flexible authorization • Securely grant access to resources, including VPCs • Fine-grained control over who can call your functions Flexible use • Call or send events • Integrated with other AWS services • Build whole serverless ecosystems
  10. 10. Using AWS Lambda Programming model • AWS SDK built in (Python and Node.js) • Lambda is the front end • Use processes, threads, /tmp, sockets normally Stateless • Persist data using Amazon DynamoDB, S3, or ElastiCache • No affinity to infrastructure (can’t “log in to the box”) Authoring functions • Author directly using the console WYSIWYG editor • Package code as a .zip and upload to Lambda or S3 • Plugins for Eclipse and Visual Studio • Command line tools Monitoring and logging • Built-in metrics for requests, errors, latency, and throttles • Built-in logs in Amazon CloudWatch Logs
  11. 11. But what *is* AWS Lambda? Linux containers as an implementation, not a programming or deployment abstraction • Process and network isolation, cgroups, seccomp, … Predictive capacity management • Purpose-built, massively scaled language runtime delivery service Swagger interpreter (API Gateway)
  12. 12. Amazon API Gateway: Serverless APIs Internet Mobile apps Websites Services AWS Lambda functions AWS API Gateway cache Endpoints on Amazon EC2 Any other publicly accessible endpointAmazon CloudWatch Amazon CloudFront Amazon API Gateway
  13. 13. Benefits of Amazon API Gateway Create a unified API front end for multiple microservices DDoS protection, monitoring and throttling for back- end systems Authenticate and authorize requests
  14. 14. AWS Lambda, API Gateway regions Available regions
  15. 15. Use cases
  16. 16. Lambda: Use cases Serverless app ecosystems Data processing Back ends
  17. 17. Use case: Data processing Example: Amazon S3 bucket triggers Amazon S3 bucket events Original object Compressed object 1 2 3 AWS Lambda
  18. 18. Why functions are the right answer Amazon DynamoDB Call Events Feedback loop
  19. 19. Use case: Automatically scalable back ends 1. AWS Mobile SDK + Amazon Cognito for mobile app Or AWS IoT for devices 2. Amazon API Gateway (if you want your own endpoint) 3. AWS Lambda runs the code 4. Amazon DynamoDB holds the data AWS Lambda Amazon DynamoDB
  20. 20. Use case: Serverless web app architecture 1. Amazon S3 for serving static content 2. AWS Lambda for dynamic content 3. Amazon API Gateway for https access 4. Amazon DynamoDB for NoSQL data storage Dynamic content in AWS Lambda Data stored in Amazon DynamoDB API GatewayStatic content in Amazon S3
  21. 21. Use case: New app ecosystems: Alexa apps + Slack = serverless bots! Alexa, tell Slack to send, “I’m giving the demo now.” Message retrieval through scheduled polling Kevin says, “Break a leg!” Message upload (via Slack API) Team (channel users) Slack
  22. 22. 22Commercial in confidence 
  23. 23. 23Commercial in confidence eBuilder’s Effortless Device Care solution creates effortless device self-service for mobile operator customers! Manage warranty repair Manage non-warranty repair Book and pay for Express Services Upgrade or trade-in my device Sell my device Recycle my device Manage insurance repair USE AND RESOLVE REPAIR AND RENEW Proactive diagnostics Trouble- shooting Warm handover to Assisted Care Manage protection Remote assist Startup and usage Tips Backup Restore Backup Restore eBuilder Efficient Device Care and an end-user with a smartphone issue
  24. 24. Our AWS PaaS Usage Journey (14m) WHY? Scalable B2C + Global deployment + Startup = All-in on AWS PaaS #1 Microservice Architecture: EC2, DynamoDB, S3, Route53, CloudFront, ELB #2 Cognito-security, API Gateway, SNS, SQS #3 Mobile Analytics, AWS Lambdas, Redshift Event-driven architecture: Lambdas + Kinesis Streams HOW? NEXT?
  25. 25. What is appealing to us in Lambdas? #1 Delegate more to AWS - Simplify deployment and management #2 Cost efficiency - pay for actual usage not for statically allocated resources #3 Functional approach - Helps promote well-structured system design
  26. 26. What are our use cases for Lambdas? mobile client mobile analytics api gw lambdas dynamodb sns topic sqs queue s3 MicroService implementation Event de-duplifier and broadcaster Event processor dynamodb
  27. 27. What are our experiences so far? #4 Using JavaScript both on Device (React) and on Backend (Lambda) helps create full-stack developers #2 Some activation latency to consider (we have seen 2s at worst) - operationally very effective: (latency of 394ms @ 95% for API-gw + 3 Lambdas + Dynamo) #3 Lots of activity around automation - we started with Apex, now using Serverless framework #5 Nice fit with Domain Driven Design (DDD): Lambdas + Kinesis streams #1 Insufficient data as of now to compare operational costs with static EC2:s
  28. 28. Recent launches and best practices
  29. 29. re:Invent 2015 • Python • Scheduled functions • Longer running times (5 min.) • Versioning Recent launches 2016 • Higher code storage limits (from 5 GB to 75 GB) • VPC • New region: Frankfurt • Node.js 4.3.2 • Swagger API import • 1-minute schedules • AWS CloudFormation support for API Gateway.
  30. 30. Function schedules: The how-to guide  How can I keep a function warm (no cold starts)? Schedule it!  How can I poll a queue (like SQS)? Schedule a function to read the queue.  How can I get more timers? Have one scheduled function async invoke other functions.  How can I get granularity finer than 1 minute? Run a background timer in your scheduled function.
  31. 31. Function versioning: The how-to guide  How can I get mutable configuration info? Read it (e.g. from DynamoDB) during function initialization. Wrap your config in a function and call it from your published code.  How do I “roll back” in AWS Lambda? Using aliases, just switch what the alias points to. (As a collection, add API Gateway stages or CloudFormation.)  How do I do blue/green deployments? AWS Lambda handles fleet deployments, but if you want to shape traffic, put a second “traffic cop” function in front.  How can I lock a client/device onto an old version? Point them directly to that version’s ARN.
  32. 32. AWS Lambda VPC basics • All Lambda functions run in a VPC, all the time • You never need to “turn on” security – it’s always on • You can also grant Lambda functions access to resources in your own VPC • How: Add VPC subnet IDs and security group IDs to the function config • Typical uses: RDB, ElastiCache, private EC2 endpoints • Allows access to peered VPCs, VPN endpoints, and private S3 endpoints • Functions configured for VPC access lose internet access… • unless you have managed NAT or a NAT instance in the VPC • …Even if you have “Auto-assign Public IP” enabled • …Even if you have an internet gateway set up in your VPC • …Even if your security group allows all outbound traffic
  33. 33. AWS Lambda VPC feature: Best practices  VPC is optional – don’t turn in on unless you need it.  The ENIs used by Lambda’s VPC feature count against your quota. Ensure you have enough to match your peak concurrency levels (we’ll consolidate where we can). DO NOT delete or rename these ENIs!   Ensure your subnets have enough IPs for those ENIs.  Specify at least one subnet in each Availability Zone Otherwise, Lambda will obey, but can’t be as fault-tolerant.
  34. 34. The serverless compute manifesto Functions are the unit of deployment and scaling. No machines, VMs, or containers visible in the programming model. Permanent storage lives elsewhere. Scales per request. Users cannot over- or under-provision capacity. Never pay for idle (no cold servers/containers or their costs). Implicitly fault-tolerant because functions can run anywhere. BYOC – Bring your own code. Metrics and logging are a universal right.
  35. 35. Join the serverless revolution!
  36. 36. Product manager or business analyst? Check out for scenarios and customer stories.
  37. 37. Developer? Go to the AWS Lambda console, create a function, and run it. (The first million invokes are on us!)
  38. 38. Add an event source or an HTTP endpoint.
  39. 39. Build a mobile, voice, or IoT back end with a few lines of code.