Книги и журналы » Компьютерная литература » Веб-дизайн и программирование
Hands-On Serverless Applications with Go / Практические внесерверные приложения с GoГод издания: 2018
Автор: Mohamed Labouardy
Издательство: Packt
ISBN: 978-1-78913-461-2
Язык: Английский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 719
Описание: 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.
[hr]
Бессерверная архитектура популярна в техническом сообществе благодаря AWS Lambda. Go прост в освоении, прост в работе и легко читается другими разработчиками; и теперь он объявлен поддерживаемым языком для AWS Lambda. Эта книга — оптимальное руководство по разработке бессерверного приложения Go и его развертыванию в Lambda.
Эта книга начинается с краткого введения в мир бессерверной архитектуры и ее преимуществ, а затем углубляется в AWS Lambda на практических примерах. Затем вы узнаете, как спроектировать и создать готовое к работе приложение на Go с использованием бессерверных сервисов AWS без предварительных инвестиций в инфраструктуру. Книга поможет вам узнать, как масштабировать бессерверные приложения и работать с распределенными бессерверными системами в производственной среде. Вы также узнаете, как регистрировать и тестировать ваше приложение.
Попутно вы также узнаете, как настроить конвейер CI/CD для автоматизации процесса развертывания ваших функций Lambda. Кроме того, вы узнаете, как устранять неполадки и отслеживать свои приложения практически в реальном времени с помощью таких сервисов, как AWS CloudWatch и X-ray. Эта книга также научит вас, как защитить доступ с помощью AWS Cognito.
К концу этой книги вы освоите проектирование, создание и развертывание бессерверного приложения Go.
[spoiler="Примеры страниц"]

[/spoiler]
[spoiler="Оглавление"]
1. 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
2. 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
3. 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
4. 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
5. 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
6. 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
7. 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
8. Scaling Up Your Application
Technical requirements
Load testing and scaling
Lambda autoscaling
Downstream resources
Private Lambda functions
Concurrent execution
Lambda throttling
Concurrency reservation
Summary
9. 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
10. Testing Your Serverless Application
Technical requirements
Unit testing
Automated unit tests
Integration testing
RPC communications
Serverless Application Model
Load testing
Summary
Questions
11. Monitoring and Troubleshooting
Monitoring and debugging with AWS CloudWatch
CloudWatch metrics
CloudWatch alarms
CloudWatch logs
Tracing with AWS X-Ray
Summary
12. 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
13. Designing Cost-Effective Applications
Lambda pricing model
Lambda cost calculator
Optimal memory size
Code optimization
Lambda cost and memory tracking
Summary
14. 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
[/spoiler]