<p><b>Learn to build, secure, deploy, and manage your serverless application in Golang with AWS Lambda </b><p><b>Key Features</b><p><li>Implement AWS lambda to build scalable and cost-efficient applications in Go<li>Design and set the data flow between cloud services and custom business logic<li>Lea
Hands-On Serverless Applications with Go
โ Scribed by Mohamed Labouardy
- Publisher
- Packt
- Year
- 2018
- Tongue
- English
- Leaves
- 457
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
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.
โฆ Table of Contents
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 VOLUMES
<p><b>Build robust and reliable Java applications that works on modern infrastructure, such as containers and cloud, using the new features in Quarkus 1.0</b></p> Key Features <li>Build apps with faster boot time and low RSS memory using the latest Quarkus 1.0 features </li> <li>Seamlessly integrate
earn how to deploy and maintain high-performing, resilient serverless applications using Knative KEY FEATURES โ Understand the benefits of using Knative as the framework for your serverless applications. โ Stay up-to-date with the latest features and capabilities of Knative. โ Harness Knative's capa
Learn how to deploy and maintain high-performing, resilient serverless applications using Knative Description As cloud computing has become increasingly important in modern development workflows, developers have begun to look for ways to harness its full potential. Serverless architecture is one
<p><b>Choose the right architecture and design it using design patterns to create a serverless application that cuts costs and is easily scalable</b></p> Key Features <li>Design enterprise ready serverless applications that effortlessly meet your customers' requirements </li> <li>Effectively de