SparkFun 电子公司如何打造其开放硬件业务

尚无读者喜欢这篇文章。
neon sign with head outline and open source why spelled out

Opensource.com

在 SparkFun 电子公司,我们不出售软件,但我们拥有一支强大的软件开发团队。这些开发人员将一部分时间用于 SparkFun.com,这是一个电子商务平台,具有额外的内容和集成的社区元素。然而,他们的大部分时间都花在了 Sparkle 上。

可以将 Sparkle 称为基于网络的 ERP 系统。它是 SparkFun.com 底层相同数据库的另一种视图,但具有庞大的内部子系统,这些子系统可以完成所有工作,包括基本客户服务、运行发货仓库和运行制造车间。

Sparkle 及其运行系统充分利用了免费的开源软件。PHP 是核心语言。Nginx 是核心 Web 服务器,Varnish 用于缓存。一切都在 Debian Linux 上运行,数据存储在 MariaDB(MySQL 更开放的“表亲”)和 MongoDB 中,用于非关系型数据。缓存使用 MemcachedRedis。在客户端,jQueryD3Bootstrap 等库无处不在。在内部,MuninNagiosSambaPuppetCapistrano 等系统端工具(仅举几例)维持着系统的正常运行。

称其为开源堆栈是对它的低估。它是一个企业级的开源架构。甚至我们的电话也运行在开源电话框架 Asterisk 上。

现在,这一切都与业务的其他部分非常协调。SparkFun 多年来一直在推动开源硬件。由 SparkFun 工程师设计的产品以 Creative Commons 许可发布原理图和固件。对于 SparkFun 多年来生产的所有新电子产品,该公司没有持有一项专利。

以上所有这些都为我们具有开源意识的员工带来了温暖的感觉。作为一个组织,我们正在为开源社区做出贡献……对吗?嗯,前沿的开源硬件社区当然很享受来自 SparkFun 的大量新材料。然而,搜索 SparkFun 开发团队的开源软件,结果相对较少。

为了可视化网站上的任何类型的活动,我们有 Blode,我们类似 syslog 的事件广播守护程序。还有 StormFS,一个用于云存储的 FUSE 抽象层。当然还有 SparkLib,它是从 Sparkle 的其余部分命名空间划分出来的 PHP 库的适度集合。这些库虽然数量不多,但通用性足以让除我们之外的其他人也可能想使用它们。

这与 Twitter 发布 Bootstrap 并进而改变了互联网很大一部分快速前端开发的方式相去甚远。可以说,我们的开源软件尚未产生可衡量的影响。那么 Twitter 做对了什么?他们对现有的 CSS 框架不满意,因此他们投入开发人员资源来构建自己的框架。它很棒,而且他们不是在销售 CSS 框架,因此他们开源了它,并广受欢迎。

在 SparkFun,我们研究了基于网络的 ERP 系统,并对其越来越不满意。因此,我们决定构建自己的 ERP 系统,名为 Sparkle。它的某些部分非常出色,而且我们不是在销售 ERP 系统。我们会开源它吗?

我已经被问过很多次这个问题了。实际上,这是一个长期目标。它甚至每天都在影响着技术决策。然而,与 Bootstrap 不同,Sparkle 仍在从其过程根源发展成为一个干净、模块化、基于 MVC 的系统,该系统与其模式和特定用例的耦合程度较低。如果今天开源,对于想要为其蓬勃发展的业务使用开箱即用的 LAMP 堆栈 ERP 系统的人来说,它将过于晦涩难懂且无法使用。但是,重建它的各个部分以使其更通用,也会生成更干净、更易于维护的代码,因此这是一项值得追求的工作。换句话说,清理我们的代码库和使我们的代码库能够开源实际上是同一件事,因此我们将两者都做,并且每个人都赢。

与此同时,我们渴望回馈慷慨的开源社区的热情,因公司其他部门涌现的开源硬件而得到缓解——在 Sparkle 上进行开发不断提高了这一过程的效率。迄今为止,这种间接的贡献方式是将开发人员资源转化为有价值的开源材料,同时保持业务正常运转的最佳方式。

Sparkle 最终会走出 SparkFun 的围墙,走向更广阔的世界。我确实期待着有一天,一家新兴公司使用 Sparkle 模块来运行其制造车间或预测库存的使用趋势。然而,只有当我们发布的内容实际上是可转移的时,这种情况才有可能发生。因此,它还在等待。明天发布高质量的产品胜过今天发布噪音。

在这里查看我们的 Kickstarter 项目:这里

User profile image.
SparkFun 电子公司信息技术总监,前卡西尼成像团队图像处理器,数学和技术爱好者。在 Twitter 上关注:@Frencil

4 条评论

我认为开源硬件非常勇敢——与软件不同,硬件似乎对工作的投入更大,软件几乎可以被创建和销毁,而无需服务器和电力之外的实际世界投资。很高兴看到以如此有趣的方式完成这样的工作。

关于您在开源硬件方面的努力,我有一个问题。您链接到 CC BY NC SA 许可,由于非商业限制,该许可(严格来说)不是免费和开源许可。这是您目前用于开源硬件的许可吗?如果是这样,您是否计划切换到更符合 OSHW 定义的许可?

很高兴看到您在工作时思考这些决定将如何影响未来潜在的开源。如果我可以为您许个愿,那就是找到一种方法立即揭开盖子,并在公开场合完成所有重构工作。从一开始就保持开放是开源之道的一个定义原则,因为您永远无法捕捉到在幕后进行的思考和推理,以便在一个月或一年后透明地展示。所有在“大开放”之前发生的事情都将是随着时间流逝而消失的不可靠的知识,以及总是以“嗯,当我们在两年前举行内部会议做出决定时,我想我们当时在想……”开头的推理和解释。

我们的硬件使用 CC BY SA 3.0 许可,该许可允许商业用途。只有我们的图像有非商业性规定。这是因为如果第三方出于商业目的复制我们的硬件,它可能看起来与我们生产的产品不完全相同,因此他们有责任拍摄他们构建的产品的准确照片。

至于从一开始就保持开放,我看到了支持它的论点。然而,归根结底,这取决于确保我们的理想与实际情况相符。我们 ERP 系统的某些角落可能会因暴露源代码而带来非常实际的安全风险,仅仅因为它是没有以特别安全架构构建的遗留代码。其他角落有公司特定的帐户数据(例如,API 的密钥),这些数据尚未被分解并以更合理的方式存储。这些是保持封闭的最大因素,并且在所有这些问题得到解决之前,任何通过立即公开源代码来赢得良好声誉的潜力都无法超越我们的安全担忧。

感谢您对许可的澄清。这与 SparkFun 网站上显示的许可似乎一致,但在上面的文章中,当您写道“SparkFun 工程师设计的产品以 Creative Commons 许可发布原理图和固件”时,您链接到了 Creative Commons 许可的 NC 变体。也许值得修复一下?

我理解安全方面的担忧。我认为 Red Hat 在创建 Spacewalk 时也面临类似的挑战,Spacewalk 是 Red Hat Satellite 的开源版本。Satellite 在开源之前与财务等相关联。正如我所说,这更多的是一种“对你的祝愿”,而不是一条戒律。:) 也许,不过,您会找到尽早抽象出这些模块的方法,以便其他部分可以大规模地开源,或者其他什么方法。祝你好运!

SparkFun 团队做得太棒了!!!

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 3.0 Unported License 获得许可。
© . All rights reserved.