一、创建后端服务需要的技术
Client客户端 -- Internet -- Server服务端 -- Database数据库
1. Backend Programming Language后端编程语言
计算机本身不能自动接收数据,这就需要后端编程语言去将Computer转换为Server,流行的后端编程语言。
- JavaScript(NodeJs)
- Python
- Ruby
- Java
2. Backend framework后端框架
直接使用后端编程语言比较复杂,使用后端框架可以编写更少的代码。
- ExpressJS -> JavaScirpt
- Django -> Python
- Rails -> Ruby
- spring -> Java
3. Package Manager包管理器
其他人编写的代码成为packages,去做常见任务:计算、与数据库通信、登录、身份验证。通常会使用很多包,为了管理这些package,使用包管理器。
- NPM -> JavaScript
- pip -> Python
- bundler -> Ruby
- Maven -> Java
4. Database数据库
数据库是一个通常运行在不同计算机上的软件,用于存储和管理数据
- MySQL
- PostgreSQL
- MongoDB
二、请求
请求名称
- request:前端 -> 后端
- response:后端 -> 前端
请求体
- Type:POST、GET、PUT、PATCH、DELETE、HEAD
- Domain name
- URL path
API:Application Programming Interface
- API命名规则:
- REST API:Representational State Transfer
- POST:create something
- GET:get something
- DELETE:delete something
- GraphQL API:用POST处理所有请求
- RPC API:remote procedure call:POST+更详细的path
- REST API:Representational State Transfer
三、Clouding Computing云计算
三个基础:IaaS、PaaS、SaaS
Iaas:Infrastructure as a Service即租用一堆计算机 VM:Virtual Machines LB:Load Balancer负载均衡机,用于在VM中均匀分配请求
PaaS:Platform as a Service用于上传后端代码,并设置所有虚拟机和负载均衡器
Microservices微服务
- eg:后端包含三个功能,保存订单、付款、发邮件。这个后端代码可能有数百万行代码,可以将其分为三个微服务,每个微服务有自己的后端,每个后端都有负载均衡器,有时还有自己的数据库。有助于将代码变得更小,更集中。
- 每个微服务不必使用相同的编程语言和数据库
- eg:Twilio提供了一个后端和一个用于发送邮件的API
SaaS:software as a Service当一家公司提供外部应用程序可以使用的后端和API时,这称为SaaS
四、Additional Technologies
- 主流数据库:MySQL、PostgreSQL、MongoDB
- blob store:aws、s3
- CDN:CloudFront存储和加载用户上传的图片
- Search Database:Elastic Search
- Cache:Redis缓存,来减轻主数据库的压力
- Analytical Database:snowflake这种Data Science进行数据分析
- Job Queue:RabbitMQ