手把手教学在云上部署一个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




浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报