Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/phodal/serverless

Serverless 架构应用开发指南 - Serverless Architecture Application Development Guide with Serverless Framework.
https://github.com/phodal/serverless

aws-lambda dynamodb ebook serverless serverless-aws-iot serverless-framework

Last synced: 28 days ago
JSON representation

Serverless 架构应用开发指南 - Serverless Architecture Application Development Guide with Serverless Framework.

Awesome Lists containing this project

README

        

Serverless 架构应用开发指南
===

> Serverless 架构是指大量依赖第三方服务(也叫做后端即服务,即“BaaS”)或暂存容器中运行的自定义代码(函数即服务,即“FaaS”)的应用程序,函数是无服务器架构中抽象语言运行时的最小单位。在这种架构中,我们并不看重运行一个函数需要多少 CPU 或 RAM 或任何其他资源,而是更看重运行函数所需的时间,我们也只为这些函数的运行时间付费。[^serverless]

[^serverless]: http://www.infoq.com/cn/news/2017/04/2017-Serverless

``注意事项``

在本系列的文章中,主要采用了 Serverless Framework 来简化开发和部署流程。

> Serverless Framework是无服务器应用框架和生态系统,旨在简化开发和部署AWS Lambda应用程序的工作。Serverless Framework 作为 Node.js NPM 模块提供,填补了AWS Lambda 存在的许多缺口。它提供了多个样本模板,可以迅速启动 AWS Lambda 开发。

Architecture
---

![Serverless Application Architecture](images/serverless-spa-architecture.png)

目录
---

* [Serverless 架构应用开发指南](http://serverless.ink/#serverless-架构应用开发指南)
* [Serverless 架构](http://serverless.ink/#serverless-架构)
* [什么是 Serverless 架构??](http://serverless.ink/#什么是-serverless-架构)
* [虚拟化与隔离](http://serverless.ink/#虚拟化与隔离)
* [为什么是花了 1000G ?](http://serverless.ink/#为什么是花了-1000g)
* [Serverless 是什么?](http://serverless.ink/#serverless-是什么)
* [事件驱动编程](http://serverless.ink/#事件驱动编程)
* [Serverless 的优势](http://serverless.ink/#serverless-的优势)
* [降低启动成本](http://serverless.ink/#降低启动成本)
* [实现快速上线](http://serverless.ink/#实现快速上线)
* [系统安全性更高](http://serverless.ink/#系统安全性更高)
* [适应微服务架构](http://serverless.ink/#适应微服务架构)
* [自动扩展能力](http://serverless.ink/#自动扩展能力)
* [Serverless 的问题](http://serverless.ink/#serverless-的问题)
* [不适合长时间运行应用](http://serverless.ink/#不适合长时间运行应用)
* [完全依赖于第三方服务](http://serverless.ink/#完全依赖于第三方服务)
* [冷启动时间](http://serverless.ink/#冷启动时间)
* [缺乏调试和开发工具](http://serverless.ink/#缺乏调试和开发工具)
* [构建复杂](http://serverless.ink/#构建复杂)
* [语言版本落后](http://serverless.ink/#语言版本落后)
* [Serverless 的适用场景](http://serverless.ink/#serverless-的适用场景)
* [发送通知](http://serverless.ink/#发送通知)
* [WebHook](http://serverless.ink/#webhook)
* [轻量级 API](http://serverless.ink/#轻量级-api)
* [物联网](http://serverless.ink/#物联网)
* [数据统计分析](http://serverless.ink/#数据统计分析)
* [Trigger 及定时任务](http://serverless.ink/#trigger-及定时任务)
* [精益创业](http://serverless.ink/#精益创业)
* [Chat 机器人](http://serverless.ink/#chat-机器人)
* [其它](http://serverless.ink/#其它)
* [迁移方案](http://serverless.ink/#迁移方案)
* [Serverless Framework](http://serverless.ink/#serverless-framework)
* [Apex](http://serverless.ink/#apex)
* [Apache OpenWhisk](http://serverless.ink/#apache-openwhisk)
* [Serverless 的 hello, world](http://serverless.ink/#serverless-的-hello-world)
* [Serverless 框架 hello, world](http://serverless.ink/#serverless-框架-hello-world)
* [一、安装 serverless 框架](http://serverless.ink/#一安装-serverless-框架)
* [二、设置 aws 凭证。](http://serverless.ink/#二设置-aws-凭证)
* [三、创建 hello-world 服务](http://serverless.ink/#三创建-hello-world-服务)
* [四、部署及测试:](http://serverless.ink/#四部署及测试)
* [AWS Lambda 动态编程返回 HTML](http://serverless.ink/#aws-lambda-动态编程返回-html)
* [将网站部署到 S3 上](http://serverless.ink/#将网站部署到-s3-上)
* [配置 serverless-finch](http://serverless.ink/#配置-serverless-finch)
* [静态内容](http://serverless.ink/#静态内容)
* [为基于 S3 的网站支持 CRUD](http://serverless.ink/#为基于-s3-的网站支持-crud)
* [概念:API Gateway 与 S3](http://serverless.ink/#概念api-gateway-与-s3)
* [基于 S3 的 Serverless CRUD](http://serverless.ink/#基于-s3-的-serverless-crud)
* [上传原理](http://serverless.ink/#上传原理)
* [Serverless S3 CRUD 示例](http://serverless.ink/#serverless-s3-crud-示例)
* [结合 DynamoDB 数据库创建 RESTful API](http://serverless.ink/#结合-dynamodb-数据库创建-restful-api)
* [Serverless DynamoDB 示例配置](http://serverless.ink/#serverless-dynamodb-示例配置)
* [Serverless DynamoDB 示例代码](http://serverless.ink/#serverless-dynamodb-示例代码)
* [Serverless DynamoDB 部署](http://serverless.ink/#serverless-dynamodb-部署)
* [Serverless DynamoDB 测试](http://serverless.ink/#serverless-dynamodb-测试)
* [其它操作](http://serverless.ink/#其它操作)
* [Express 实现 Serverless 的 React 服务端渲染](http://serverless.ink/#express-实现-serverless-的-react-服务端渲染)
* [Serverless + Express](http://serverless.ink/#serverless-express)
* [Express + React 进行服务端渲染](http://serverless.ink/#express-react-进行服务端渲染)
* [Serverless 的微信公共平台后台](http://serverless.ink/#serverless-的微信公共平台后台)
* [创建 Serverless 服务](http://serverless.ink/#创建-serverless-服务)
* [引入 node-wechat](http://serverless.ink/#引入-node-wechat)
* [配置 APP_ID 和 TOKEN 等](http://serverless.ink/#配置-app_id-和-token-等)
* [配置 Route 53 与 API Gateway](http://serverless.ink/#配置-route-53-与-api-gateway)
* [添加微信公众平号服务](http://serverless.ink/#添加微信公众平号服务)
* [部署](http://serverless.ink/#部署)
* [基于 Kinesis Streams 的数据流分析](http://serverless.ink/#基于-kinesis-streams-的数据流分析)
* [Amazon Kinesis Streams](http://serverless.ink/#amazon-kinesis-streams)
* [Serverless + Kinesis Streams](http://serverless.ink/#serverless-kinesis-streams)
* [Serverless 数据分析,Kinesis Firehose 持久化数据到 S3](http://serverless.ink/#serverless-数据分析kinesis-firehose-持久化数据到-s3)
* [Serverless Kinesis Firehose 代码](http://serverless.ink/#serverless-kinesis-firehose-代码)
* [安装及测试](http://serverless.ink/#安装及测试)
* [创建邮件发送 API](http://serverless.ink/#创建邮件发送-api)
* [Serverless Email 发送](http://serverless.ink/#serverless-email-发送)
* [Serverless Email 发送测试](http://serverless.ink/#serverless-email-发送测试)
* [创建自己的 Serverless 短链服务](https://www.phodal.com/blog/serverless-architecture-develoment-create-self-short-url-services/)
* [代码逻辑](http://serverless.ink/#代码逻辑)
* [创建首页](http://serverless.ink/#创建首页)
* [生成短链](http://serverless.ink/#生成短链)
* [解析出提交表单中的链接](http://serverless.ink/#解析出提交表单中的链接)
* [根据 URL 生成对应的短链](http://serverless.ink/#根据-url-生成对应的短链)
* [存储到 Dynamo 数据库中。](http://serverless.ink/#存储到-dynamo-数据库中)
* [返回短链给用户](http://serverless.ink/#返回短链给用户)
* [重定向短链](http://serverless.ink/#重定向短链)
* [部署及测试短链服务](http://serverless.ink/#部署及测试短链服务)
* [结合 Auth0 的登录、授权系统](http://serverless.ink/#结合-auth0-的登录授权系统)
* [Serverless Auth0 前端代码](http://serverless.ink/#serverless-auth0-前端代码)
* [Serverless Auth0 后台代码](http://serverless.ink/#serverless-auth0-后台代码)
* [serverless.yml 配置](http://serverless.ink/#serverless.yml-配置)
* [配置及部署](http://serverless.ink/#配置及部署)
* [清理](http://serverless.ink/#清理)
* [结论](http://serverless.ink/#结论)
* [在本地部署与调试](http://serverless.ink/#在本地部署与调试)
* [serverless-offline](http://serverless.ink/#serverless-offline)
* [本地搭建 serverless-offline 与 DynamoDB 环境](http://serverless.ink/#本地搭建-serverless-offline-与-dynamodb-环境)
* [本地测试 serverless-offline 与 DynamoDB](http://serverless.ink/#本地测试-serverless-offline-与-dynamodb)
* [如何编写 Serverless 应用的测试](http://serverless.ink/#如何编写-serverless-应用的测试)
* [Serverless 应用的测试](http://serverless.ink/#serverless-应用的测试)
* [步骤](http://serverless.ink/#步骤)
* [创建测试](http://serverless.ink/#创建测试)
* [运行测试](http://serverless.ink/#运行测试)
* [更准确的测试](http://serverless.ink/#更准确的测试)
* [结论](http://serverless.ink/#结论-1)
* [多个语言运行环境](http://serverless.ink/#多个语言运行环境)
* [Serverless 多个语言运行环境](http://serverless.ink/#serverless-多个语言运行环境)
* [部署及测试](http://serverless.ink/#部署及测试)
* [Serverless 开发物联网应用](http://serverless.ink/#serverless-开发物联网应用)
* [Serverless 框架安装服务](http://serverless.ink/#serverless-框架安装服务)
* [部署 AWS IoT Serverless 服务](http://serverless.ink/#部署-aws-iot-serverless-服务)
* [查看日志](http://serverless.ink/#查看日志)
* [使用 warmup 插件保活,避免应用冷启动](http://serverless.ink/#使用-warmup-插件保活避免应用冷启动)
* [使用 serverless-plugin-warmup 保持唤醒](http://serverless.ink/#使用-serverless-plugin-warmup-保持唤醒)
* [部署及测试](http://serverless.ink/#部署及测试-1)
* [结论](http://serverless.ink/#结论-2)
* [定时执行任务](http://serverless.ink/#定时执行任务)
* [Serverless 定时任务](http://serverless.ink/#serverless-定时任务)
* [rate 表达式](http://serverless.ink/#rate-表达式)
* [cron 表达式](http://serverless.ink/#cron-表达式)
* [部署](http://serverless.ink/#部署-1)
* [使用 Simulate 插件在本地运行 Lambda](http://serverless.ink/#使用-simulate-插件在本地运行-lambda)
* [serverless-plugin-simulate 插件](http://serverless.ink/#serverless-plugin-simulate-插件)
* [安装 serverless-plugin-simulate 及环境](http://serverless.ink/#安装-serverless-plugin-simulate-及环境)
* [运行及测试](http://serverless.ink/#运行及测试)
* [使用 GraphQL 实现更好的 API](http://serverless.ink/#使用-graphql-实现更好的-api)
* [GraphQL hello, world](http://serverless.ink/#graphql-hello-world)
* [更复杂的示例](http://serverless.ink/#更复杂的示例)
* [GraphQL 修改 DymanoDB 的值](http://serverless.ink/#graphql-修改-dymanodb-的值)
* [Serverless 应用示例:前端错误日志及事件收集系统](http://serverless.ink/#serverless-应用示例前端错误日志及事件收集系统)
* [Molog 使用](http://serverless.ink/#molog-使用)
* [Serverless 错误收集系统架构设计](http://serverless.ink/#serverless-错误收集系统架构设计)
* [架构设计](http://serverless.ink/#架构设计)
* [Molog 系统实现](http://serverless.ink/#molog-系统实现)
* [1\. 存储日志和事件](http://serverless.ink/#存储日志和事件)
* [2\. 读取日志](http://serverless.ink/#读取日志)
* [问题](http://serverless.ink/#问题)
* [Serverless 应用示例:二维码生成](http://serverless.ink/#serverless-应用示例二维码生成)
* [总览](http://serverless.ink/#总览)
* [生成应用](http://serverless.ink/#生成应用)
* [配置资源](http://serverless.ink/#配置资源)
* [生成二维码](http://serverless.ink/#生成二维码)
* [上传 AWS S3](http://serverless.ink/#上传-aws-s3)
* [优化二维码](http://serverless.ink/#优化二维码)
* [部署及测试](http://serverless.ink/#部署及测试-2)

License
---

[![Phodal's Article](http://brand.phodal.com/shields/article-small.svg)](https://www.phodal.com/) [![Phodal's Book](http://brand.phodal.com/shields/book-small.svg)](https://www.phodal.com/)

© 2017 [Phodal Huang](https://www.phodal.com). The **code** is distributed under the MIT License. See `LICENSE` in this directory.

© 2017 [Phodal Huang](https://www.phodal.com). The **content** is distributed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License. See `LICENSE` in this directory.

[待我代码编成,娶你为妻可好](http://www.xuntayizhan.com/blog/ji-ke-ai-qing-zhi-er-shi-dai-wo-dai-ma-bian-cheng-qu-ni-wei-qi-ke-hao-wan/)