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.

Serverless Architecture

265 views

Published on

Learn about what a serverless architecture is, why they are growing in popularity, and who the key players are in a serverless API build on the AWS platform. Then get started building your own servless API!

Published in: Technology
  • Be the first to comment

Serverless Architecture

  1. 1. MAKE NEXT POSSIBLE Ⓡ Kenzan Providence Hack Nights October 26th, 2017 Serverless Architectures in Modern Applications
  2. 2. 2 What Are Serverless Architectures? They are not actually “serverless”... Instead, serverless architectures remove the need for managing and handling the servers where the application or services run. Server management is handled by third parties for you!
  3. 3. 3 What Are Serverless Architectures? They are not actually “serverless”... Instead, serverless architectures remove the need for managing and handling the servers where the application or services run. Server management is handled by third parties for you!
  4. 4. The Benefits of Serverless Serverless architectures have a lot of upside, not least of which is $$ saved. No Server Maintenance Flexible Scaling High Availability No Idle Capacity Lambda Costs vs EC2: https://www.trek10.com/blog/lambda-cost/
  5. 5. The Current Shortcomings of Serverless Serverless architectures are still new, and there are some growing pains. Limited Execution Duration Statelessness Limited Run-Time Support Cold Start Time Logging & Debugging
  6. 6. When Does a Serverless API Make Sense? A serverless API is a good choice when you want low server maintenance and low cost, with a microservice application of moderate security, that is not exceptionally sensitive to latency.
  7. 7. How Do Serverless Architectures Work? Let’s go over the key components of a serverless architecture, AWS style. 7
  8. 8. The Overall View
  9. 9. Route 53 is a DNS service that allows you to assign a custom domain name to your web IP address. This is an optional piece of the serverless configuration but is commonly used. API gateway assigns a default route to your API that can be used without extra configuration. We won’t be using this in our example today but it is an important AWS service to know about. Route 53 The Resource Router
  10. 10. AWS API Gateway is integral to designing a serverless web API. A series of configuration that handling API routing and Lambda execution. Can be configured with a swagger.yaml file. The API Gateway performs a series of tasks: - Authorizes incoming requests - Routes incoming requests - Formats responses into HTTP response format for consumption by the client - Handles errors responses from the Lambda functions AWS API Gateway The Gatekeeper/Router to the Microservices
  11. 11. Without access to your servers, you must secure your resources through IAM policies both at the API Gateway level and the Lambda level. Many options to secure traffic including: - JWT tokens - IP Address - Headers - Cookies API Gateway allows for custom, dynamically generated IAM policies provided by custom authorizers. AWS Identity Access Management (IAM) The Security Around the Gateway
  12. 12. The basic component of Function-as-a-Service (F.a.a.S) architecture. Lambdas are the holding place and configuration for code that will be executed in any one of many servers in the cloud. Can be configured with unique IAM roles, environment variables, memory, timeout, and more. Currently support the following runtime environments : - Node.js 6.10, Edge Node.js 4.3, Node.js 4.3 - C# - Java 8 - Python 3.6 & 2.7 AWS Lambda Functions The Serverless Functions Where the Code is Run
  13. 13. AWS DynamoDB is a No-SQL database that is commonly paired with serverless frameworks because of it’s similar benefits : - Fast & Consistent Performance - Highly Scalable - Fully Managed - Event Driven Programming (Integrates with Lambda function to process DB events) - Flexible - Integrates with IAM for security and access control We will not be using this in our example today but it is a good technology to know about. AWS DynamoDB The Database Layer
  14. 14. DIY Serverless Framework Let’s get started building our own serverless web API! 14
  15. 15. 15 Step 1: Download the Repository This is going to be our client code, server code, and configuration. This is the jumping off point for our serverless web API. Repository URL www.github.com/mschmidt712/serverless-counter Repository Holder Username: mschmidt712 Repository Name: serverless-counter
  16. 16. 16 Step 2: Install Dependencies and Run UI Here we will get the UI for our application up and running. This is going to be a simple web application that allows the user to increment and decrement a counter. Install Dependencies yarn install or npm install Run UI npm start
  17. 17. 17 Step 3: Sign in to AWS Console Immediately, the application is configured to run off of a pre-made serverless backend. Let’s start the process of building our own to hook up to.
  18. 18. 18 Step 4: Create the Lambda Functions To speed up the process of building the backend, the code for each lambda function is located in the serverless-counter repository under the server folder
  19. 19. 19 Step 5: Create the API Gateway The suggested route to configure the API gateway is using a swagger.yaml file. For this exercise we will use the swaggerWithApiGatewayExtensions.yaml file to save some configuration time.
  20. 20. 20 Step 6: Configure the API Gateway As you will see, the API Gateway requires a large amount of configuration. We’ll walk through that now.
  21. 21. 21 Step 7: Deploy Your API Once the configuration is done your API is ready to deploy!
  22. 22. 22 Step 8: Connect Your API to Your Counter Now that your API is deployed, you will be given a unique url to access it. Copy/Paste this url into the appConfig.json file in the UI and watch your API go live.
  23. 23. 23 Questions? Resources Introduction to Serverless Computing with AWS Lambda: https://www.contino.io/files/Contino-Introduction-to-Serverless- Computing-with-AWS-Lambda.pdf Amazon Docs for Lambdas: https://aws.amazon.com/lambda/ Amazon Docs for API Gateway: https://aws.amazon.com/api- gateway/ Serverless Framework: https://serverless.com/ How to Build a Serverless API with AWS API Gateway (python): https://www.twilio.com/blog/2017/06/build-serverless-api- amazon-web-services-api-gateway.html Serverless Architectures (denser informational blog): https://martinfowler.com/articles/serverless.html
  24. 24. 24 Backup Slides
  25. 25. 25 Step 4: Create the Lambda Functions Uploading the Lambda Code.
  26. 26. 26 Step 4: Create the Lambda Functions Configuring the Lambda function.
  27. 27. 27 Step 4: Create the Lambda Functions Testing the Lambda function after creation.
  28. 28. 28 Step 6: Configure the API Gateway Configuration of the Method Request.
  29. 29. 29 Step 6: Configure the API Gateway Configuration of the Integration Request.
  30. 30. 30 Step 6: Configure the API Gateway Configuration of the Integration Response.
  31. 31. 31 Step 6: Configure the API Gateway Configuration of the Method Response.
  32. 32. 32 Step 7: Deploy Your API Creating the deployment stage for the API.

×