如何把一个开源项目的发布做好,让用户能快速无障碍的部署?

2015-03-02 16:19:50 +08:00
 jamiesun
在开发项目ToughRADIUS的过程中,这个问题坑了我不少时间。

因为以前长时间做企业项目,实施部署运维都是专业技术人员进行,我只要按规范给他们文档和培训就可以,很少存在这个问题。

但是当我直接对用户做版本发布时,完全不一样了。

这是个AAA项目,用户群体一般就是宽带运营,虚拟专用网运营等,不得不说,咱们国家的民营是当着老板,操着心运营商的心,跑着业务员的路,最后还要干技术网管的活。

最初,我直接提供源码包,在源码包下提供一些启动脚本,linux下提供sh,windows下提供bat或exe,这是比较简单的模式。用户下载,安装数据库,建库建表,配置,启动。不过除了懂技术的能搞定外,数据库,建表建库难道一大部分人。还不说需要安装各种依赖,比如要命的MySQLdb依赖。

然后我尝试着提供Linux在线一键安装脚本,并简化配置,并把建库建表过程通过内置程序解决,用户都不需要知道sql的存在。这个一键安装脚本是一堆流程化的linux指令,这个带来了巨大的工作量,我在vps上用docker容器最多一天测试20次以上,跑10几个G的流量,虽然在一个干净的centos里运行无误,但是用户的环境难料,经常还是莫名其妙的问题,当然最大的问题还是mysql。

接着我又尝试了docker+自动脚本来提供,但是docker本身是个普通用户难以理解的东西,很快我就放弃了。

很多人希望提供iso的安装版,不过难的是我现在还搞不定iso,参考了不少文章,按照有些针对centos mini版做iso定制的流程试了下,没搞定。ubuntu下好像有个将整个系统直接转iso得模式,还没有来得及试试。

最终我也想明白,linux本身对普通用户就是一个难以驾驭的东西,加上各种不同发行版操作的差异要人命。试图去解决这样的问题还不如提供商业模式的有偿服务。

最后,我对项目结构进行了极大简化,移除那些用户难以理解和操作的东西,将项目作为一个python标准模块发布,并提供sqlite配置支持开箱即用的模式,在windows下通过py2exe进行打包,对配置文件支持默认查找路径。

window下可以实现只要会安装360软件就会用的程度。真正开箱双机鼠标就能用。linux以python标准模块方式,依靠pip强大的功能,让有点技术能力的人操作。以后有机会可以做做有偿技术支持。


@phuslu 感谢https://github.com/phuslu/pybuild这个项目给我带来的帮助,解决了我在py2exe打包时碰到的难题。

如果有朋友对linux可引导iso镜像定制比较在行的希望可以交流交流。

最近看了下openwrt的资料,对python支持不错,连twisted这样的模块都有完整支持,集成进去应该没有太大问题。

https://github.com/talkincode/ToughRADIUS

这是项目的地址,项目采用BSD许可协议,欢迎各路朋友 star,fork。还有不少后期开发计划,最近正在准备和一些国内厂商做对接支持,个人有点独力难支,有兴趣的朋友欢迎加入。
2025 次点击
所在节点    问与答
8 条回复
kslr
2015-03-02 16:57:46 +08:00
菜鸟管他呢
icedx
2015-03-02 16:59:54 +08:00
不需要 开源免费 部署服务收费 妥妥的
learnshare
2015-03-02 17:02:59 +08:00
基本上每个平台都有应用商店/包管理工具,这个是最简单的发布和安装渠道。

对于非大众用途的东西,本来门槛就高,让他下代码、编译、配数据库,也是很难简化的工作。
ksc010
2015-03-02 17:03:55 +08:00
尝试打包可执行文件(不过这样也遇到过不能执行的问题)
python的话 是不是可以使用 virtualenv
jamiesun
2015-03-02 18:07:13 +08:00
@ksc010 你是说virtualenv做二进制打包,这个应该可以,不过也需要目标系统统一。
ipconfiger
2015-03-02 18:16:39 +08:00
再开一个快速部署第一个项目的开源项目
msg7086
2015-03-03 04:15:33 +08:00
为什么要用户去部署呢?难道不能部署在你自己的服务器上然后卖订阅?
jamiesun
2015-03-03 08:33:54 +08:00
@msg7086 好提议,时机成熟可以这么搞

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

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

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

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

© 2021 V2EX