手把手教学在云上部署一个twitter

寒冰雪

共 1293字,需浏览 3分钟

 ·

2024-04-10 22:25

简介

一个全部代码开源,学习云环境开发应用的bootcamp,成果是一个mini版的推。

项目内容

1. 准备工作

注册aws账号,多重认证保护账号安全,设置账单报警和预算。

2. 基础前后端功能+本地容器化

flask后端/react前端项目代码直接提供,自己操作的是将前后端项目用docker容器化。本地的(后面会上云)结构化数据库postgresql,Nosql数据库DynamoDB。整个项目用docker compose整合到一起。使用gitpod平台部署。

b3e324cb980a2fe04357da2cef150979.webpimage

gitpod 一个直连github代码,可以构建docker镜像,部署服务的平台

3. 监控报警

四种监控报警工具:X-ray和Cloudwatch是aws集成的,honeycomb和Rollbar是通用的云监控产品。

30f466bd9ec734207be1d78d725104cc.webpimage b1a315980b1111101efd3334e5b32c6d.webpimage

4. 认证授权

使用Amplify(工具包)和Amazon Cognito(服务)实现身份认证和授权。

5. 云数据库+Serverless

postgres数据库上云(用aws的),AWS Lambda(一个Serverless工具)结合Cognito实现发推认证。

DynamoDB Stream实现私聊功能,结合Lambda实现缓存(也可以用momento实现)。

504a79a9d89b7fd8ce166c56f0463f06.webpimage 5325dff656af5a87fe9ea9f235840f5f.webpimage

6. 镜像化项目部署

ECS Cluster(容器集群)和ECR Repo(镜像仓库),负载均衡,域名,解决跨域问题。Fargate镜像服务管理启动服务!

7. CDN内容管理和分发

实现个人信息管理,头像上传功能。图片存在S3 bucket,使用Amazon CloudFront作为CDN提供服务。

S3只适合个人/内部的文件管理,对外提供服务需要通过CDN。适合场景:

  • 对延时要求高。
  • 需反复下载相同的内容。

信息流推荐刚好就是这样的场景。

8. CI/CD

AWS CodePipeline, CodeBuild and CodeDeploy实现CI/CD。

9. 资源编排

AWS CloudFormation模板化云资源管理。

3f9259c7a2c9f71b2950e5c15f0d3cc6.webpimage

资源编排工具Terraform,通过把每一家云平台定义为一种provider的形式,只需要用一套代码就可以操作所有的云平台。

参考资料
  • 老师教学素材:https://github.com/omenking/aws-bootcamp-cruddur-2023
  • 学生作品:https://github.com/beiciliang/aws-bootcamp-cruddur-2023
  • 视频讲解:https://www.youtube.com/playlist?list=PLBfufR7vyJJ7k25byhRXJldB5AiwgNnWv


浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报