「Zeno」为应用提供构建到分发服务,让开发者专注迭代 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
neoz

「Zeno」为应用提供构建到分发服务,让开发者专注迭代

  •  5
     
  •   neoz
    oif 2022 年 2 月 13 日 11143 次点击
    这是一个创建于 1527 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Zeno 是什么?

    以「让开发者专注迭代」为目标通过尽可能少的配置和基础设施无感化( Serverless )提供从构建、部署、分发及后续运维能力。

    官网 Zeno.so

    解决什么样的问题?

    通常我们开发完 /迭代完一个应用会将代码推送到镜像仓库,然后通过 CI/CD 若干工具流程 (例如 GitHub Actions )最终部署到服务器上,而后由一系列运维操作让终端用户使用。在上述过程中,我们可能考虑到的问题点会有如下:

    • 服务器买 XX 云还是 YY 云好?哪家有优惠券?
    • 我的博客需不需要跑在 Kubernetes 上?来个集群?
    • 域名没备 X ,海外的话网络又不太好。emmmmm
    • 持续集成能不能少配置点

    在我业余时间的开发中也常常遇到上述类似等等一箩筐问题。。。有时候写完一个简易的服务后在部署、网络、持续集成上消耗大量的时间和热情,可能最后到头来东西没做成、热情散去。

    因此希望能够有这样一个东西:支持多种语言、框架使用尽可能少配置的提供构建、部署、分发、弹性能力。所以我做了 Zeno 来解决这些痛点,让开发者专注编码迭代。

    现阶段 Zeno 提供什么能力?

    通过 CLI 的方式提供 NodeJS ( SSG 、SSR )、Golang 、静态页面等从代码仓库(暂只支持 GitHub )拉取、构建、部署分发的能力。构建、部署、分发的部分由 Zeno 承载,每个用户将会有一定的免费额度(如果不够真有需要可以调整)。

    可以放比如博客、前端 Demo 、文档、简易 API (暂时也提供了一个五毛版的 MySQL 玩)等等

    社区

    有更多的疑问、想法欢迎加入讨论群组一起探讨~

    Zeno 当前是自己的一个业余项目,尚处于初始阶段,还有很多可改建的地方将会持续更新、完善。

    asciicast

    $ // 后续变更(由于暂未完全整合 Webhook 因此还需要手动 zeno deploy ,后面就直接 push/tag 了) $ git commit -m 'blah blah' && git push $ zeno deploy zeno-site 

    为什么不用某某服务 ?(仅个人主观观点)

    你会发现 Zeno 跟 Heroku 、Netlify 、Vercel 等很类似

    • 公有云:服务靠谱、文档全、价格贵、功能上倾向通用可能不是那么舒服。
    • Heroku 、Netlify 、Vercel 、CloudFlare Worker:也都很不错,但要么支持的应用不够丰富(比如 NodeJS only )亦或者在网络分发层受限于大中华局域网的原因很尴尬等等,当前也有加钱方案能够解决拉。

    话说回来即使有 AWS 的存在,GCP 也有搞头。每个东西都会有其面向的用户群,或大或小,解决痛点最重要。

    感谢你耐心的阅读

    第 1 条附言    2022 年 2 月 13 日
    抱歉,上文中的 Zeno 官网连接应为 https://zeno.so ,感谢 @chhpt 指出。
    41 条回复    2022-03-11 18:51:33 +08:00
    MorningBOBO
        1
    MorningBOBO  
       2022 年 2 月 13 日
    支持,试试看
    FarAhead
        2
    FarAhead  
       2022 年 2 月 13 日
    类似 https://fly.io
    自建有 Dokku
    neoz
        3
    neoz  
    OP
       2022 年 2 月 13 日
    @w7938940 嗯是的,当前还是有些许类似的方案,大家侧重点可能会有差异,比如 fly 更注重镜像的分发部署,Cloudflare Worker 更注重函数化等等
    Kilerd
        4
    Kilerd  
       2022 年 2 月 13 日
    文档页是啥软件构建的?
    neoz
        5
    neoz  
    OP
       2022 年 2 月 13 日
    @Kilerd 用的 https://github.com/shuding/nextra/ 个人觉得挺不错的
    linw1995
        6
    linw1995  
       2022 年 2 月 14 日 via iPhone
    有幸用过 zeno 部署静态网页,全程丝滑!!!体验很好
    zoharSoul
        7
    zoharSoul  
       2022 年 2 月 14 日
    类似 op 这种有开源的么
    neoz
        8
    neoz  
    OP
       2022 年 2 月 14 日
    @zoharSoul 暂时还没有遇到诶,期待大佬们搓一个大
    randomboi
        9
    randomboi  
       2022 年 2 月 14 日 via Android
    4040 了
    randomboi
        10
    randomboi  
       2022 年 2 月 14 日 via Android
    https://zeno.so/?ref=v2ex 好像有个 query 才会 404
    neoz
        11
    neoz  
    OP
       2022 年 2 月 15 日
    @randomboi 嗯是的,这个是因为文档的 i18n 做 rewrite 的时候没有处理到这个场景,最终拼错了,这两天提个 PR 给作者
    37Y37
        12
    37Y37  
       2022 年 2 月 15 日 via Android
    这个不错,支持 OP 做大做强
    lauix
        13
    lauix  
       2022 年 2 月 15 日
    非常棒,请问这种手绘流程图用什么工具画出来的?
    mywaiting
        14
    mywaiting  
       2022 年 2 月 15 日
    一直在关注这方面的开源实现,期待有个类似的开源产品
    neoz
        15
    neoz  
    OP
       2022 年 2 月 15 日
    @37Y37 感谢
    @lauix 用的是 tldraw.comhttps://github.com/tldraw/tldraw )挺不错的
    @mywaiting 如果有开源实现也是极其不错的,可以学习一波。不过如果作为使用方来说可能还是得 PaaS 会更加舒服,不过其中核心逻辑可以扭成一个类「 CI/CD 」的系统来开源就是了
    scyuns
        16
    scyuns  
       2022 年 2 月 15 日
    挺好的,尝试了一下 挺舒服的。目前用下来做静态博客没有问题
    Quarter
        17
    Quarter  
       2022 年 2 月 15 日 via iPhone
    404 了
    H00kran
        18
    H00kran  
       2022 年 2 月 15 日
    如果能集成一些云服务商的 Serverless 能力就好了
    neoz
        19
    neoz  
    OP
       2022 年 2 月 16 日
    @H00kran 有计划哦~ 一步步来
    levon
        20
    levon  
       2022 年 2 月 16 日
    部署即服务,希望能做好,发一个 jar ,后就自动分布式部,按需扩展
    ddzy
        21
    ddzy  
       2022 年 2 月 16 日
    404
    neoz
        22
    neoz  
    OP
       2022 年 2 月 16 日
    @Quarter @ddzy @randomboi 404 的问题在文档的依赖中 fix 了,目前更新解决了
    learningman
        23
    learningman  
       2022 年 2 月 17 日 via Android
    额和 vercel 不是一模一样的吗,vercel 不能在中国分发,你没有用户备案,你也不行啊。。。
    ppllss
        24
    ppllss  
       2022 年 2 月 17 日
    官方崩了老哥
    Cmdhelp
        25
    Cmdhelp  
       2022 年 2 月 17 日
    备案怎么解决
    性能怎么解决
    安全怎么解决
    备份怎么解决
    neoz
        26
    neoz  
    OP
       2022 年 2 月 17 日
    @learningman 如果只考虑 NodeJS 的话是的,但期望能够解决其他类型应用的部署,例如 Go 、Python 一类。然后关于分发的问题,是的,国内当前不支持服务商提供泛域给用户接入,所以无备案的情况我们在海外做入口,用户自带有备案域名可以在国内接入(不过这个还在 roadmap 中)。

    @ppllss 从目前来看是一个比较边界的偶发情况,我定位下

    @Cmdhelp 默认走海外,用户有备案域名可以选国内接入。性能取决于场景吧,如果是重度使用肯定是想要就能给。安全和备份我认为是比较属基础设施的部分会覆盖考虑到,所以并不期望抛给用户来扛。
    shunia
        27
    shunia  
       2022 年 2 月 17 日
    vercel 确实有两个小问题,一个是只支持前端部署,后端项目如果不能用 serverless 实现是不支持的。
    如果你的项目可以把这个部分填补上,并且做到和 vercel 一样丝滑,还能加上一些国产特性,肯定会有用户的。
    neoz
        28
    neoz  
    OP
       2022 年 2 月 17 日
    @shunia 大佬的分析非常精准,对于后端项目可能门槛可以宽松些,比如到无状态配合一些 DBaaS 是可以达成。做这个项目确实就是想填上这部分的坑,然后再解决下 DBaaS 的点。及时没办法抗住大的复杂的场景,但对于大多数应用是足够的。丝滑的部分目前的空间确实比较大,也是接下来 roadmap 的关注点,「尽可能的让用户专注迭代」。国产特性也是考虑的一个关键点,算是大多数小项目在落地一些服务时候的痛点。
    DiamondYuan
        29
    DiamondYuan  
       2022 年 2 月 20 日
    @shunia

    可以试试看 render.com
    easychen
        30
    easychen  
       2022 年 2 月 23 日
    @shunia vercel 是支持 serverless functions 的 https://vercel.com/docs/concepts/functions/introduction
    adamwhite
        31
    adamwhite  
       2022 年 2 月 24 日
    这个网站挺好看的... 不知是否是可以购买的主题?
    neoz
        32
    neoz  
    OP
       2022 年 2 月 24 日
    @adamwhite 感谢,使用 Nextra https://github.com/shuding/nextra/ 中的内置模板稍加修改即可。
    nightwitch
        33
    nightwitch  
       2022 年 2 月 26 日
    zeno 名字取得有点缺少辨识度,重名的项目太多了,要是以后考虑商业化的话可能要换个名字
    neoz
        34
    neoz  
    OP
       2022 年 2 月 27 日
    @nightwitch 感谢大佬提醒,确实会面临这样的问题
    Envov
        35
    Envov  
       2022 年 3 月 8 日
    能识别项目中的 DockerFile 吗
    neoz
        36
    neoz  
    OP
       2022 年 3 月 8 日 via iPhone
    @Envov 目前还没有,但是一个不错的方式,有些产品确实是直接以 dockerfile 来,方便进一步讨论吗
    Envov
        37
    Envov  
       2022 年 3 月 9 日
    @neoz dockerfile 中描述镜像地址、宿主主机启动容器的命令、还需要一个在线管理工具,来管理域名或者 ip 端口与容器的端口映射关系
    Envov
        38
    Envov  
       2022 年 3 月 9 日
    @Envov 或者直接在 dockfile 里面写构建流程,可以描述 git 拉取、构建、或者 bash 命令(移动构建文件夹)、发送通知(关注微信公众号)等等,只是一个思路
    neoz
        39
    neoz  
    OP
       2022 年 3 月 9 日
    @Envov 看了下描述的这个流程,其实会比较接近于「全手动」的感觉,是一种潜在的可能。只是对于这种完全开放的姿势来说,其实公有云的 Serverless 部分可能优势会大一些。
    lingyired
        40
    lingyired  
       2022 年 3 月 11 日
    @neoz 帖子最顶部的网址 404 ,为何不调整一下你们的官网让 https://zeno.so/?ref=v2ex 直接访问首页而不是 404

    我相信很多人点开这个页面就会优先打开最上面的首页,结果一看 404 估计就不再继续看下去了。
    neoz
        41
    neoz  
    OP
       2022 年 3 月 11 日
    @lingyired 感谢提醒。

    上次没有处理好,当前已处理,不过样式上还是会有问题得依赖 theme 去做下 fix (暂时不通过中间件处理)

    是啊,估计有的同学就。。后面有一波比较多的变更,到时候再发一贴新的,当前已经无缘编辑了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1684 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 92ms UTC 16:25 PVG 00:25 LAX 09:25 JFK 12:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86