我目前正在开发一个应用程序,99% 的时间都在处理前置 markdown 文件(有些东西必须与 RDS 之类的数据库通信)。
在本地,我有一个文件夹存储所有用户数据,如下所示:
- user_1
- project_A
- file1.md
- file2.md
- project_B
- user_2
- project A
每个项目都有自己的 git 存储库,以便跟踪文件之间的变化并为用户提供更改历史记录(通过使用应用程序自动生成提交)。
我过去主要使用基于 AWS-Lambda 的堆栈,虽然 Lambda 支持 EFS,但从我的研究来看,它似乎不适合与 git-repos 一起使用。
相反,推荐的解决方案似乎是拥有一个带有附加 EBS 的 EC2 实例,但我对一些事情感到疑惑(因为我以前从未使用过这种设置):
- 并发性:假设服务器(在本例中为 Node Fastify)本身可以处理许多并发请求,那么文件系统如何能够同时处理许多项目的并发 git 操作?
- 优雅部署:通过 Fargate 的 ECS 实例是否会获得所有正确的关闭命令,以便该过程可以及时完成提交,或者某些存储库是否会在部署期间损坏?
- 可扩展性:小型 ECS 实例可以处理多少 FILE 吞吐量?添加第二个 ECS 实例是否会影响文件访问(如果两个实例尝试写入同一个存储库怎么办)?
还有其他注意事项或我遗漏的东西吗?除了使用 git repo 之外,还有其他替代方案吗(我确实必须支持多设备编辑和离线同步支持,因此在后台使用 git 对我来说是最直接的解决方案)。
提前谢谢了!