Hands-On Serverless Applications with Go
Book information
Description
https://www.packtpub.com/product/hands-on-serverless-applications-with-go/9781789134612 Serverless architecture is popular in the tech community due to AWS Lambda. Go is simple to learn, straightforward to work with, and easy to read for other developers; and now it's been heralded as a supported language for AWS Lambda. This book is your optimal guide to designing a Go serverless application and deploying it to Lambda. This book starts with a quick introduction to the world of serverless architecture and its benefits, and then delves into AWS Lambda using practical examples. You'll then learn how to design and build a production-ready application in Go using AWS serverless services with zero upfront infrastructure investment. The book will help you learn how to scale up serverless applications and handle distributed serverless systems in production. You will also learn how to log and test your application. Along the way, you'll also discover how to set up a CI/CD pipeline to automate the deployment process of your Lambda functions. Moreover, you'll learn how to troubleshoot and monitor your apps in near real-time with services such as AWS CloudWatch and X-ray. This book will also teach you how to secure the access with AWS Cognito. By the end of this book, you will have mastered designing, building, and deploying a Go serverless application. Title Page Copyright and Credits Hands-On Serverless Applications with Go Packt Upsell Why subscribe? PacktPub.com Contributors About the author About the reviewers Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Reviews Go Serverless The serverless paradigm The cloud-computing evolution Infrastructure as a Service Platform as a Service Container as a Service Function as a Service Serverless architecture Benefits of going serverless Drawbacks of going serverless Serverless cloud providers AWS Lambda Source events Use cases Go serverless Summary Questions Getting Started with AWS Lambda Technical requirements Setting up the AWS environment The AWS command line Installing the AWS CLI AWS Management Console Configuration Testing Setting up the Go environment The runtime environment The development environment Summary Questions Developing a Serverless Function with Lambda Technical requirements Writing a Lambda function in Go Execution role Deployment package Uploading a ZIP file Uploading from Amazon S3 Event testing Summary Questions Setting up API Endpoints with API Gateway Technical requirements Getting started with API Gateway Setting up an API endpoint Debugging and troubleshooting Invoking the function with an HTTP request Building a RESTful API API architecture Endpoints design The GET method The GET method with parameters The POST method Summary Managing Data Persistence with DynamoDB Technical requirements Setting up DynamoDB Creating a table Loading sample data Working with DynamoDB Scan request GetItem request PutItem request DeleteItem request Summary Questions Deploying Your Serverless Application Lambda CLI commands The list-functions command The create-function command The update-function-code command The get-function-configuration command The invoke command The delete-function command Versions and aliases Versioning FindAllMovies v1.0.0 FindAllMovies v1.1.0 Semantic Versioning Aliases Stage variables Summary Implementing a CI/CD Pipeline Technical requirements Continuous Integration and deployment workflow Continuous Integration Continuous Deployment Continuous Delivery Automating the deployment of Lambda functions Continuous Deployment with CodePipeline and CodeBuild Source provider Build provider Deploy provider Continuous Pipeline with Jenkins Distributed builds Setting up a Jenkins job Git Hooks Continuous Integration with Circle CI Identity and access management Configuring the CI Pipeline Summary Questions Scaling Up Your Application Technical requirements Load testing and scaling Lambda autoscaling Downstream resources Private Lambda functions Concurrent execution Lambda throttling Concurrency reservation Summary Building the Frontend with S3 Technical requirements Single Page Application Developing web applications with Angular Generating your first Angular component Accessing Rest web services with Angular Cross Origin Resource Sharing S3 static website hosting Setting up an S3 bucket Setting up Route 53 Certificate Manager CloudFront distribution CI/CD workflow API documentation Summary Questions Testing Your Serverless Application Technical requirements Unit testing Automated unit tests Integration testing RPC communications Serverless Application Model Load testing Summary Questions Monitoring and Troubleshooting Monitoring and debugging with AWS CloudWatch CloudWatch metrics CloudWatch alarms CloudWatch logs Tracing with AWS X-Ray Summary Securing Your Serverless Application Technical requirements Authentication and user control access Securing API access User management with AWS Cognito Setting up a test user via the AWS Management Console Setup using Cognito Golang SDK Encrypted environment variables Data encryption at rest Data encryption in transit Logging AWS Lambda API calls with CloudTrail Vulnerability scanning for your dependencies Summary Questions Designing Cost-Effective Applications Lambda pricing model Lambda cost calculator Optimal memory size Code optimization Lambda cost and memory tracking Summary Infrastructure as Code Technical requirements Deploying AWS Lambda with Terraform Creating the Lambda function Setting up DynamoDB table Configuring API Gateway Cleaning up Deploying AWS Lambda with CloudFormation CloudFormation designer Deploying AWS Lambda with SAM Exporting a serverless application Summary Questions Assessments Chapter 1: Go Serverless Chapter 2: Getting Started with AWS Lambda Chapter 3: Developing a Serverless Function with Lambda Chapter 5: Managing Data Persistence with DynamoDB Chapter 7: Implementing a CI/CD Pipeline Chapter 9: Building the Frontend with S3 Chapter 10: Testing Your Serverless Application Chapter 12: Securing Your Serverless Application Chapter 14: Other Books You May Enjoy Leave a review - let other readers know what you think
Similar books
Pipeline as Code: Continuous Delivery with Jenkins, Kubernetes, and Terraform
2021 · PDF
Pipeline as Code: Continuous Delivery with Jenkins, Kubernetes, and Terraform
2021 · PDF
Pipeline as Code: Continuous Delivery with Jenkins, Kubernetes, and Terraform
2021 · EPUB
Building Distributed Applications in Gin: A hands-on guide for Go developers to build and deploy distributed web apps with the Gin framework
2021 · PDF
Building Distributed Applications in Gin
2021 · EPUB
MySQL® Notes for Professionals book
2018 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF