Hands-On Serverless Applications with Go
Build real-world, production-ready applications with AWS Lambda
Mohamed Labouardy
- 416 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Hands-On Serverless Applications with Go
Build real-world, production-ready applications with AWS Lambda
Mohamed Labouardy
About This Book
Learn to build, secure, deploy, and manage your serverless application in Golang with AWS Lambda
Key Features
- Implement AWS lambda to build scalable and cost-efficient applications in Go
- Design and set the data flow between cloud services and custom business logic
- Learn to design Lambda functions using real-world examples and implementation scenarios
Book Description
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.
What you will learn
- Understand how AWS Lambda works and use it to create an application
- Understand how to scaleup serverless applications
- Design a cost-effective serverless application in AWS
- Build a highly scalable and fault-tolerant CI/CD pipeline
- Understand how to troubleshoot and monitor serverless apps in AWS
- Discover the working of APIs and single page applications
- Build a production-ready serverless application in Go
Who this book is for
This book is for Go developers who would like to learn about serverless architecture. Go programming knowledge is assumed. DevOps and Solution Architects who are interested in building serverless applications in Go can also choose this book.
Frequently asked questions
Information
Assessments
Chapter 1: Go Serverless
- What are the advantages of using the serverless approach?
-
- NoOps: no management or configuration overhead and faster time to market.
- Autoscaling and HA: enhanced scalability and elasticity based on load.
- Cost-optimization: pay only for the compute time your consume.
- Polygot: leverage the power of nanoservices architecture.
- What makes Lambda a time-saving approach?
- How does serverless architecture enable microservices?
- What is the maximum time limit for an AWS Lambda function?
- Which of the following are supported event-sources for AWS Lambda?
- Amazon Kinesis Data Streams
- Amazon RDS
- AWS CodeCommit
- AWS CloudFormation
- Explain what a goroutine is in Go. How can you stop goroutines?
- What's Lambda@Edge in AWS?
- What's the difference between Function as a Service and Platform as a Service?
- What's an AWS Lambda cold start?
- Can AWS Lambda functions be stateless or stateful?
Chapter 2: Getting Started with AWS Lambda
- Which format is not supported by the AWS CLI?
- JSON
- Table
- XML
- Text
- Is it recommended to use the AWS root account for everyday interaction with AWS? If yes, why?
- What environment variables do you need to set to use the AWS CLI?
-
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_DEFAULT_REGION
- How do you use the AWS CLI with named profiles?
- Explain the GOPATH environment variable.
- Which command-line command compiles a program in Go?
- go build
- go run
- go fmt
- go doc
-
- build: It is a compile package and dependencies and generate a single binary.
- run: It i...