手把手教学在云上部署一个twitter
共 1293字,需浏览 3分钟
·
2024-04-10 22:25
一个全部代码开源,学习云环境开发应用的bootcamp,成果是一个mini版的推。
项目内容1. 准备工作
注册aws账号,多重认证保护账号安全,设置账单报警和预算。
2. 基础前后端功能+本地容器化
flask后端/react前端项目代码直接提供,自己操作的是将前后端项目用docker容器化。本地的(后面会上云)结构化数据库postgresql,Nosql数据库DynamoDB。整个项目用docker compose整合到一起。使用gitpod平台部署。
image❝gitpod 一个直连github代码,可以构建docker镜像,部署服务的平台
3. 监控报警
四种监控报警工具:X-ray和Cloudwatch是aws集成的,honeycomb和Rollbar是通用的云监控产品。
image image4. 认证授权
使用Amplify(工具包)和Amazon Cognito(服务)实现身份认证和授权。
5. 云数据库+Serverless
postgres数据库上云(用aws的),AWS Lambda(一个Serverless工具)结合Cognito实现发推认证。
DynamoDB Stream实现私聊功能,结合Lambda实现缓存(也可以用momento实现)。
image image6. 镜像化项目部署
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模板化云资源管理。
image❝参考资料资源编排工具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