V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ga6840
V2EX  ›  程序员

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

  •  3
     
  •   ga6840 · 264 天前 · 9796 次点击
    这是一个创建于 264 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先说一下我的:

    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
    第 1 条附言  ·  264 天前
    更新一下,说说我的理由

    OS: Debian (个人比较熟悉,也比较稳定)

    数据库:Postgresql (我的场景用 DB 不过,硬要挑的话还是挑一个比较简单强大的。不选择 MariaDB 仅仅觉得纯 C 写的学术派引擎看上去更厉害)

    鉴权:JWT (不用维护 session,只用保存一个全局 token 减少后端负担,增加鲁棒性)

    前端:Vue3 + PrimeVue + Webpack (上了 vue3 的车主要是想尽可能减少 bundle size, 也考虑过 svelte 但是感觉不太习惯 rollup,希望观察一下他的生态发展)

    后端:nodejs + C + php (项目本身有历史 c, PHP 代码,nodejs 的话和前端代码可以更统一、依赖少)
    Gateway: OpenResty (为了实现动态的服务发现,通过 docker service label 实现)

    容器编排: Docker Swarm (小而没,就是有点担心背后的公司不太靠谱,社区不活跃。但是本人也实在没发现更简单好用、不用 lockin K8S 的编排系统。看了一下 nomad,感觉文档还是比较少,而且配置文件格式有点奇怪)

    CI: Github Actions (和 Github 结合的很好,通过 PAT 和 secret 很容易管理配置)

    编排自动化 /自举 /Dashboard:(因为追求最大程度的自动化,而且想自己掌握统筹容器的调用细节)

    监控:Prometheus + Grafana + node-exporter (比较通用而且简单,只是 Grafana 的 UI 有一些 bug )

    存储同步:rsync (我的场景还主要是处理文件,不喜欢 object 存储因为看起来不直观。rsync 简单足够应付我的场景,即使你用 minio 这类的,扩容也很难。但是 rsync + 服务发现用几行脚本就能做一个穷人够用的存储同步。 )

    TLS 以及自动更新证书: Let's encrypt + acme.sh (比较省心,除了 TLS 自举以外,工具都提供完整了,没什么需要自己额外做的)
    109 条回复    2020-11-15 00:35:36 +08:00
    1  2  
    caoyouming
        101
    caoyouming   263 天前
    docker 还是可以搞的,毕竟项目中如果要用到数据库之类的,docker pull 一个 redis 超级方便
    iwh718
        102
    iwh718   263 天前 via iPhone
    javascript:react redux rn 小程序
    swift:swiftui ios
    php:laravel
    其他:docker
    iwh718
        103
    iwh718   263 天前 via iPhone
    @lidashuang php 来啦😃
    towry
        104
    towry   262 天前
    rust+typescript+python
    treblex
        105
    treblex   262 天前
    os:服务端 debian 或者 ubuntu
    数据库:现在还是在程序 orm,暂时不打算深入( mysql sqllite
    前端:react vue
    后端:golang python
    客户端:fllutter dart,最近其实还学了一点点 swiftui

    这知识都学杂啦,也没啥拿的出手的业余项目
    自从学了 golang 之后有点万法归一的感觉,对于没用过的新语言也敢就着文档直接上手试了,不会之前那么抗拒
    cloudhuang
        106
    cloudhuang   262 天前
    @ga6840 我现在用的就是 traefik,但是比较简单。nginx 的话,可以使用 consul-template 的方式,不知道你说的 openresty 是不是就是采用这种方式?
    ga6840
        107
    ga6840   262 天前 via Android
    @cloudhuang OpenResty 的话更动态,会牺牲一些性能,这个和 traefik 差不多,但是独立性和可定制性好很多。但 nginx 生态圈最大的问题是母公司有点挤牙膏。。
    cloudhuang
        108
    cloudhuang   261 天前
    @ga6840 可以发一下这方面的链接吗?谢谢。
    ga6840
        109
    ga6840   261 天前
    @cloudhuang 没有收藏一些看过的。如果你想了解还是通过官方文档,OpenResty 的文档不是很详细,但是 Core module 在 github 链接里的 README 可以看一下。
    1  2  
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1025 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 17ms · UTC 19:38 · PVG 03:38 · LAX 12:38 · JFK 15:38
    ♥ Do have faith in what you're doing.