来说说自己业余项目的技术栈

2020-11-11 11:57:24 +08:00
 ga6840
先说一下我的:

OS: Debian
数据库:Postgresql
鉴权:JWT
前端:Vue3 + PrimeVue + Webpack
后端:nodejs + C + php
Gateway: OpenResty
容器编排: Docker Swarm
CI: Github Actions (目前只是自动构建容器并推送)
编排自动化 /自举 /Dashboard:自己写的(叫做 Calabash )
监控:Prometheus + Grafana + node-exporter
存储同步:rsync
TLS 以及自动更新证书: Let's encrypt + acme.sh
12507 次点击
所在节点    程序员
113 条回复
ga6840
2020-11-11 15:22:53 +08:00
理解,我也同意有些场景不需要容器。但我自己的感觉是加了容器以后我的维护复杂度减少了,看上去系统依赖了容器,但是维护起来反而容易。
ga6840
2020-11-11 15:26:13 +08:00
@caicaiwoshishui 是的,一个个人的搜索的项目,目前需要至少 12 个 VPS 。Docker 镜像国内用 uhub, 国外的话用 DockerHub, 不行备用 fallback 到 ghcr 上。本来很倾向 ghcr 的,但是貌似他家 beta 阶段过了以后的价钱很贵,而且实际使用当中 push 的速度经常比不上 DockerHub 。目前看上去够用,自建镜像好像还没有需求。
ga6840
2020-11-11 15:27:23 +08:00
@skypyb 是个搜索引擎,一个节点肯定不行。即使你不要可用性,sharding 也是必须的。
skypyb
2020-11-11 15:29:02 +08:00
@ga6840 搞这么多节点, 每年要花的钱也不少吧。 是项目有盈利么
debuggerx
2020-11-11 15:31:11 +08:00
开发 os:deepin
服务器 os:debian
数据库: mysql + pgsql
鉴权:JWT
前端:React Next.js
UI 框架:Material-UI
移动端:flutter
桌面端:PyQt Electron
小程序:Taro
Gateway: nginx
后端: Node python go java
ga6840
2020-11-11 15:37:49 +08:00
来说一下为什么我要这么多的机器。首先,个人资金有限,考虑到项目不盈利,目前也不会投入太多成本。在这个条件下,我个人倾向最便宜的节点然后跑集群。比如 Linode 5$ 的节点跑四个(在我这个场景下)绝对比 20$的节点快。

但是单个节点的能力很有限,那么我需要很多服务和 sharding 的话就要很多节点。

我现在最小系统就有好多服务:gateway, calabash, 用户数据库,鉴权服务,calabash UI, 登录 UI, prometheus, grafana,corpus 同步服务( 4 个节点 4 个服务),爬虫( 4 个节点 4 个服务),索引器( 4 个节点 4 个服务),索引同步服务( 4 个节点 4 个服务),corpus 发送到索引器 的 feeder 服务,搜索服务( 4 个节点 4 个服务),搜索 mpirun 进程服务。最少 3*4 个节点了。
ga6840
2020-11-11 15:41:22 +08:00
@skypyb 国外的 VPS 一个月 5 刀,而且我的提供商 Linode 提供了赞助。我之前的运维栈也是纯脚本,把爬虫和索引都放在本地,这样的话一个月 4 个节点就够了,也就是 20 刀。目前为了支持在线自动爬虫和索引更新,一个月花费是有点贵,但是也是可以靠自己的零花钱养的。当然,更好的服务上去了以后,也希望能找机会开始 monetize.
hpan
2020-11-11 15:42:37 +08:00
@ga6840 敢问 lz 业余做的啥项目?
ga6840
2020-11-11 15:44:29 +08:00
@mingl0280 不管是 Jenkins 还是 Docker 都是为了省时间、一劳永逸,怎么大家精神负担很重啊。公司玩自动化肯定也想节省各位时间的,只不过节省出来的时间是不是让你 996 就是另外一回事。大家看来被渣干了……
ga6840
2020-11-11 15:45:21 +08:00
@hpan Approach0,一个数学公式搜索引擎。
Nillouise
2020-11-11 15:52:48 +08:00
直接 docker-compose 不行吗?要用 Docker Swarm 做弹性扩展?
cassyfar
2020-11-11 15:56:44 +08:00
@ga6840 有一说一,你这个项目挺有意思的
hbolive
2020-11-11 16:08:19 +08:00
你们都太高达上了。。业余的还怎么复杂。。
coderunI
2020-11-11 16:12:38 +08:00
简单一点不好吗?
ga6840
2020-11-11 16:15:58 +08:00
@Nillouise docker-compose 可能不够灵活,不过和 Docker swarm 结合的很好。目前我还不觉得有必要用,因为我都是直接通过 docker-cli 或者 API 调用 docker 。 可以不用增加 docker-compose 这一层。当然,没有用过就不发表太多意见。
ga6840
2020-11-11 16:17:43 +08:00
@coderunI 欢迎提建议
yEhwG10ZJa83067x
2020-11-11 17:00:00 +08:00
我比较感兴趣的,美工设计原型这种你们怎么做的?
ga6840
2020-11-11 17:14:46 +08:00
@justrand 自己的项目自己随便写,全靠 UI 组建。
namelosw
2020-11-11 19:44:55 +08:00
Stack: Rails / Phoenix / Node
前端: 不用 / React / Preact
DB: SQLite / Postgres
CI: 不用, 一个人自己跟自己还需要集成嘛…… 写个 shell 我自己就是 CI
部署: Heroku / Kubernetes + Pulumi
监控 Gateway TLS 啥的, Heroku Kubernetes 都有现成的

大部分的选择都有简单复杂两个选项, 一般从简单的开始.
zzzzzzggggggg
2020-11-11 19:55:11 +08:00
业务项目都这么厉害,主业应该更厉害吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/723960

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX