从工厂车间到个人博客:接地气的开源技术应用
上个月去南京溧水跑现场,帮朋友的工厂调数据采集系统。刚进门老板就拉着我吐槽,原来用的进口商业系统,每年光服务费就够发两个工人的工资,加一个小小的压力传感器测点,张嘴就要四千八。
别只盯大厂案例,小场景的开源才是真好用
他问我有没有便宜点的方案,我给他推了个国人维护的开源SCADA。整个搭下来,连硬件带人工,花了不到六千。他当时眼睛都直了,说原来还能这么玩?
很多人一提起开源技术应用,第一反应就是大厂的大数据平台、云原生架构,动辄几千个节点,好像跟小公司小项目不沾边。其实不对。你现在刷博客用的Hexo,搭网站用的WordPress,乃至小店里点单用的小程序后台,很多都是搭着开源框架做的。
我前阵子给自己做了个相册站,用了个开源的图床程序,一分钟搭完,一分钱没花,比买那些闭源的云存储服务划算多了。
工厂车间开源SCADA系统实时监控界面
对不对?开源的好处从来不是说它有多牛,而是它给了你选择权。原来商业软件卡你脖子,年年涨服务费,你敢怒不敢言,现在你有了替代品,哪怕自己改改,也能凑合用,成本直接砍到十分之一都不止。
踩过三次坑才摸清楚:开源应用的坑大多不在技术
当然,我不是说开源就是百试百灵的灵丹妙药。我踩过的坑,比我吃过的外卖还多。
前年给一个创业公司搭内部文档系统,我图方便,选了个GitHub上快两万星的开源知识库。搭起来十分钟,界面好看,功能齐全,我当时还觉得自己捡了宝。结果不到半年,公司要对接企业微信的单点登录,翻遍了文档和issue,发现这个项目一年半没更新了,作者原来创业做这个,后来公司被收购,作者去大厂躺平了,项目直接扔了。
最后没办法,只能整个迁移,折腾了整整三周,老板天天在我工位边上转,那脸色,比锅底还黑。
GitHub开源项目停更后的issue列表截图
说实话,很多人选开源项目,只会看星数多不多,是不是热门,这完全是误区。星数只能代表当初关注的人多,不代表它现在还能用来干活。我见过几千星的小项目,作者一直在更,issue提了两三天就有人回复,用起来比万星的停更项目舒服一百倍。
还有一个坑,就是乱改开源代码。很多团队拿到开源项目,上来就是一顿猛改,今天加个功能,明天改个逻辑,改到最后,跟原项目完全脱节,原项目更了新版本,你根本合并不进来,最后变成了自己堆出来的烂摊子,只能推倒重来。这个我也踩过,刚工作那会,年轻气盛,觉得原项目写的不好,自己改了几千行,最后出了问题,连我自己都看不懂当时写的啥。
开源不是免费午餐,要算清你自己的账
开源不是免费午餐,要算清你自己的账
很多人对开源技术应用最大的误解,就是开源=免费。这话对也不对。License钱确实不用给,但你要搭,要改,要维护,这些都是人力成本。
就说上次那个溧水的工厂,为什么用开源能用得舒服?因为他们厂有个运维小伙子,大专学的电气,平时就爱捣鼓Python,业余时间还自己给开源项目提PR,这点改配置改功能的活,他自己下班就能干,根本不用请外人。要是换个连交换机配置都弄不明白的工厂,你给他推开源,他也用不了,出了问题没人解决,最后还是得找商业软件买服务。
所以说,开源的边界很清楚。你的团队有没有能Hold住的人?这个东西是不是你的核心业务?出了问题你能不能扛?这三个问题想清楚,再决定用不用。
比如说,你就是个小工作室,做个官网,用开源的WordPress完全没问题,哪怕出问题,大不了回滚个备份,损失不大。但如果你是做金融支付的核心系统,你敢用一个没人维护的开源支付框架吗?我反正是不敢。出了问题,赔到你倾家荡产。
不过话说回来,现在很多开源项目的模式真的越来越成熟了。核心功能完全开源免费,企业需要技术支持、需要高级功能,再花钱买商业版,这个模式其实挺公平的。小团队用免费的够了,大公司花钱买服务,大家都不吃亏。
我前阵子用一个开源的低代码工具做个人工具站,核心功能完全够我用,一分钱没花,真的感谢作者。要是闭源,我这种小项目根本买不起License。
现在很多人说开源是未来,我觉得没错,但它不是什么高大上的概念,就是一帮程序员不想重复造轮子,把自己写好的东西拿出来,给大家用,你用得好,给我点个星,提个issue,甚至改改代码加个功能,大家一起把这个轮子磨得更好用。
你用对了地方,开源能给你省真金白银,能给你想不到的灵活度。用错了地方,就是一堆甩不掉的麻烦。反正我现在做项目,第一反应都是先翻一圈开源,有合适的就用,绝不自己从头造轮子。
省下的时间,周末去爬个紫金山,喝杯玄武湖边上的咖啡,不好吗?对吧。