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

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
13130 次点击
所在节点    程序员
113 条回复
ga6840
2020-11-11 20:24:18 +08:00
@namelosw 自己的项目用 k8s 会不会有些复杂,docker swarm 能不能满足你的需求?能否指点一二
namelosw
2020-11-11 20:30:30 +08:00
@ga6840 K8S 用托管的挺简单的, 自己搭集群就坑爹了, 大的 AWS Azure GCP 都有, 小的 DO Linode 也有. Kubernetes 主要是上手有点复杂, 一旦会了其实挺简单的, 比如项目上用, 或者学习目的正好会了可以用用. 会用了之后还可以用 Pulumi 简化一下.

Docker swarm 感觉有点鸡肋, 没深入用过. 不过 side project 应该都行, 用自己熟悉的就好.
不过我觉得 Heroku 能解决的话还是 Heroku 这种最省事.
如果说轻量的 alternative 的话, 听说 Nomad 挺好的, 好像还不用 Docker, 不过我也没用过.
ga6840
2020-11-11 20:56:54 +08:00
@namelosw 学习了。我只是还不清楚除了之前 Docker Swarm 技术层面不太稳定以外,还有什么原因让大家一直留在 K8S 平台。我感觉 Google 高层能同意让 K8S 开源出来,直接威胁到自家的云服务,目的是什么还是不太清楚。只要 K8S 继续这么复杂,只要 G 家有所保留(比如不会开源 Borg ),就说明还有更好的开源产品有机会出现。
namelosw
2020-11-11 21:15:18 +08:00
@ga6840 Kubernetes 我感觉现在比较有吸引力是生态已经起来了. 比如你说的 Prometheus Grafana acme 啥的都几个操作就 setup 好了.

我觉得倒不是 Swarm 本身有啥问题, 而是比较鸡肋. 我感觉很多人应该跟我一样, 简单的就用最简单的 Heroku 或者 SSH 上直接 shell 一下, 再重的场景的直接 Kubernetes 因为正好已经熟悉了, 实际上几个文件很快也就弄好了. 一旦大部分人都熟悉 Kubernetes 之后, Swarm 这个不上不下的定位就很尴尬.
GoLand
2020-11-11 21:40:31 +08:00
这么复杂一个人弄得过来吗?我那个老板服务器都不舍得开,我说要个 2c4g 的,给我压到了 1c2g 。。我也就一切从简了。
服务器:阿里云 Ubuntu 1c2g
数据库:阿里云 MySQL 1c1g
鉴权:应用比较特殊,APP 不鉴权,管理后台 JWT
后端:Python flask
部署:直接用 docker-compose 跑,外面挡一层 NGINX 做转发
其他就 Sentry 看报错,grafana + influxdb 做监控
DiamondYuan
2020-11-11 22:25:48 +08:00
服务器:腾讯云 4C8G
数据库:mongodb
后端:nodejs and serverless
部署:githubaction + (docker-compose + serverless)
日志: aliyun + datadog
前端: ts + react
CDN 七牛
ga6840
2020-11-11 23:36:37 +08:00
@namelosw 但是据说 Swarm 内存占用少,因为不需要再套一层。依赖也少了,不用一箩筐的把 k8s 全家桶全部引入。还有听说 Swarm 部署应该比 k8s 快。因为还没自己搭建过 k8s, 也暂时停留在从各种渠道了解的大致情况。
namelosw
2020-11-12 00:00:58 +08:00
@ga6840 唉…… 部署速度其实是很小的一部分, 编译, docker build, pull image, CI 等等其实都很费时间. 我感觉这一套东西最重的一层其实是 Docker…
johnsona
2020-11-12 00:22:37 +08:00
jwt 无法 revoke,退出登陆都做不了,我见一次说一次,你如果保存 jwt 就又是 session 了
mingl0280
2020-11-12 01:49:28 +08:00
@ga6840 我连一劳永逸的一劳都不想做……我这玩意儿直接 ssh 推送到服务器上挂了就挂了呗……
ga6840
2020-11-12 02:33:52 +08:00
@johnsona 退出登录是做不了。但是保存 jwt 和 session 不一样,session 是每个用户都要存一份信息,jwt 全局只有一个 token 。当然,为了安全这个 token 需要比较长的而已。
ga6840
2020-11-12 02:36:03 +08:00
@mingl0280 那只能说明你的应用不需要这些。我搭个静态博客也不用这些。但你可以来试试搭建一个百万文档以上的搜索应用
IDAEngine
2020-11-12 02:54:35 +08:00
azure 一把梭,爽
johnsona
2020-11-12 02:54:59 +08:00
@ga6840 jwt 也是每个用户一个 jwt,不然你拿到 jwt 怎么识别这个用户是谁,只是 jwt 你不存而已,算哈希验证合法性而已
CismonX
2020-11-12 03:34:54 +08:00
业余项目都是单纯为了自娱自乐做的玩具,功能简单,技术栈基本谈不上

如果非说要有技术栈的话,无非是 ISO C + POSIX.1 那一套,偶尔调一些 platform specific API 和第三方库。加上 Autotools 用来构建,DejaGnu 写测试,Troff 或者 Texinfo 写文档

也有其他语言写的项目,也基本同理,遵循小而丑(😂)的原则
xuanbg
2020-11-12 08:09:01 +08:00
@johnsona jwt 只适合不需要鉴权的 2C 系统或者轻量级的 2B 系统。像我这种权限上千个的,只能自己造轮子。硬要用 jwt 简直是自己找死。几百 K 的 payload 你敢用?
kiddingU
2020-11-12 09:23:03 +08:00
@ga6840 选择 kong 的原因是可以很方便的管理自己网关,同时有很多系统自带插件,同时自己开发插件也是很方便的,性能上来说,本事就是基于 openresty 开发的性能还是很强的
cloudhuang
2020-11-12 09:28:53 +08:00
> Gateway: OpenResty (为了实现动态的服务发现,通过 docker service label 实现)

朋友,这块可否详细点说说,谢谢。
ychost
2020-11-12 09:30:09 +08:00
OS: Mac OS
数据库:mysql/odps/redis/greenplum
鉴权:JWT/Cookie
前端:Vue2
后端:Java/Node
Gateway: 公司内部提供( vipserver )
容器编排: 公司内部提供( sigma )
CI: 公司内部提供( Aone )
编排自动化 /自举 /Dashboard:自己写的(叫做 Calabash )
监控:Grafana
存储同步:No
TLS 以及自动更新证书: Let's encrypt + acme.sh
hahaba
2020-11-12 09:39:43 +08:00
要啥技术栈,客户要啥需求,一边 github 一边 google,然后 copy&run 就可以了

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

https://tanronggui.xyz/t/723960

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

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

© 2021 V2EX