V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
neoz
V2EX  ›  分享创造

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

  •  5
     
  •   neoz ·
    oif · 2022-02-13 18:52:49 +08:00 · 10308 次点击
    这是一个创建于 1047 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    我相信很多人点开这个页面就会优先打开最上面的首页,结果一看 404 估计就不再继续看下去了。
    neoz
        41
    neoz  
    OP
       2022-03-11 18:51:33 +08:00
    @lingyired 🙏 感谢提醒。

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

    是啊,估计有的同学就。。后面有一波比较多的变更,到时候再发一贴新的,当前已经无缘编辑了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5471 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:37 · PVG 11:37 · LAX 19:37 · JFK 22:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.