惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Forbes - Security
Forbes - Security
WordPress大学
WordPress大学
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
Spread Privacy
Spread Privacy
D
Darknet – Hacking Tools, Hacker News & Cyber Security
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
P
Privacy International News Feed
A
About on SuperTechFans
T
Tailwind CSS Blog
I
InfoQ
S
Securelist
云风的 BLOG
云风的 BLOG
罗磊的独立博客
Recent Announcements
Recent Announcements
T
The Exploit Database - CXSecurity.com
B
Blog RSS Feed
V
Visual Studio Blog
Know Your Adversary
Know Your Adversary
The GitHub Blog
The GitHub Blog
Jina AI
Jina AI
腾讯CDC
Cyberwarzone
Cyberwarzone
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
博客园 - 【当耐特】
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Full Disclosure
S
Secure Thoughts
博客园 - 司徒正美
J
Java Code Geeks
Y
Y Combinator Blog
Google Online Security Blog
Google Online Security Blog
GbyAI
GbyAI
N
News and Events Feed by Topic
Help Net Security
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Project Zero
Project Zero
T
Tenable Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Tor Project blog
MyScale Blog
MyScale Blog
Scott Helme
Scott Helme
小众软件
小众软件
K
Kaspersky official blog

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19) 使用 Velero 备份 Kubernetes 集群 Kubernetes Cheat Sheet 开发 Tips(18) 如何构建一个 Java 工程 开发 Tips(17) KubeSpray 安装 Kubernetes 报错 ip in ansible_all_ipv4_addresses 基于 Kubernetes 和 Jenkins 搭建自动化测试系统 在 Kubernetes 上动态创建 Jenkins Slave 使用 Jenkins 进行服务拨测 开发 Tips(16) Kubernetes 签发 Ingress 证书及日常故障运维 Kubernetes 中 Deployment 的基本操作 Kubernetes 中的证书 如何使用 KubeBuilder 开发一个 Operator Kubernetes 1.6.0 安装问题汇总 镜像管理工具 -- Harbor 开发 Tips(15) Docker 如何拉取镜像 开发 Tips(14) 使用 Helm 安装 harbor 开发 Tips(13) 使用 S2I 构建云原生应用 在 Kubernetes 中使用 emptyDir、hostPath、localVolume 开发 Tips(12) 开发 Tips(11) 代码质量分析工具 SonarQube 使用 Kubeadm 安装 Kubernetes 集群 一起来学 Go --(4)常用函数 Kubernetes 中的 Ceph Kubernetes 之 Volumes Kubernetes 之 Labels、Selectors 开发 Tips(10) Kubernetes 之网络 Kubernetes 之 API 使用 Helm 和 Operator 快速部署 Prometheus Kubernetes 复杂有状态应用管理框架 -- Operator Kubernetes 的包管理器 -- Helm 一起来学 Go --(3)Go Modules 如何一步一步地优化博客方案 kubectl 实用指南 Kubernetes 中的基本概念 搭建远程 Kubernetes 开发环境 大公司和小公司的 ToB 思路 开发 Tips(9) Go 入门指南 一起来学 Go --(2)数据与逻辑结构 如何预防 Web 富文本中的 XSS 攻击 django-xss-cleaner 云工作时代 一起来学 Go --(1)背景与特点 SaaS 开发团队的不同阶段 你不知道的 Git 使用技巧 输出既服务 微服务设计 继续奔跑 开发 Tips(8) 从账户安全到二次验证 Django 性能之数据库查询优化 Django 性能之分库分表 敏捷开发之研发流程 打造一致性的团队 开发 Tips(7) Pytest 进阶学习之 Mock PaaS 部署之 buildpack Go 开发配置 领域输出才是 PaaS 的核心竞争力 Pytest 入门学习 开发 Tips(6) 如何使用 Jenkins、Docker、GitLab 搭建 Django 自动化部署流程 开发 Tips(5)
开源正在重构商业模式
微信公众号 · 2019-08-01 · via 陈少文的网站

Adobe 以 16.7 亿美元收购 Magento,微软以 75 亿美元收购 GitHub,IBM 以 340 亿美元收购 Red Hat,开源原来也是一门好生意。本文主要是关于开源的一些记录和思考。

1. 什么是开源

1.1 发展史

1969 年,贝尔实验室将 Unix 代码共享给社区,为开源奠定了重要基础。

1984 年,Richard Stallman 离开 MIT,发起 GUN 项目,希望使用自由代码构建一个类 Unix 的操作系统。此后,Stallman 创立自由软件基金会(FSF),发起 GNU 通用公共协议证书(GNU General Public License, GNU GPL),开发了 GCC、Emacs 等一系列重要产品。

1991 年,Linus Torvalds 在 GPL 协议下发布了 Linux 操作系统内核。

1995 年,Apache 诞生,随即占据 Web 服务器大部分市场份额。

2000 年,开源延伸至移动和云领域,由 Google 等大企业驱动,影响技术发展路线和市场格局。

2008 年,Github 等代码托管平台,采用 pull/request 等方式协同合作,将开源推向了新高度。

2014 年,Google 开源 Kubernetes,获得极大关注。经过几年发展,Kubernetes 成为事实上的分布式架构平台。

伴随着这些事件,还有一系列基金会被创立。这些基金会通过内部优先、资金资助等形式,有力地推动了开源运动的进展。

值得说明的是,自由软件和开源基本上指的是同一范围的程序。它们的区别更多在价值观上。

1.2 开源协议

开源协议用于维护作者和贡献者的合法权益,保证开源项目不被商业机构或个人窃取,从而影响项目发展。

下面这张图,对主流的六种开源协议 GPL、BSD、MIT、Mozilla、Apache、LGPL,进行了清晰、简洁的讲解。

2. 开源带来的好处

2.1 更好的宣传

对于销售人员来说,开源是非常有利的优势,代表着开放、先进的研发理念和技术。对于招聘人员来说,开源可以吸引更优秀的工程师。

在社区中,开源项目会引起更多人的关注和讨论,是宣传产品的机会,能提升组织在领域的影响力。

项目开源也能增强用户的尝试意愿,没有太多风险。用户早期几乎没有成本,深入使用之后,还能修改源码定制。开源项目具有透明性、可信任、可持续的特点。

2.2 更好的开发实践

通常,开源项目的代码质量更高,文档更完善,中断风险更小。

传统的开发模式中,项目代码封闭在公司内,很少会有人查看。开源之后,项目面向的是整个社区。无论是代码,还是文档,开发者都会更加严谨、负责。

同时,开源意味着更多人的参与,推动内部人员规范化开发流程,对外进行输出。参与开发的外部人员,由于亲身参与,也会对项目赋予特殊情感,更愿意去使用和推广。

2.3 更有利于整合上下游

通过开源,开发者还可以快速获取上下游的反馈信息,对产品进行调整、改进,有利于产品迭代。

开源也意味着开始经营上下游的生态圈。如果一个项目,没有上游的支持和下游的使用,那么它也就没有生命力。构建更大的利益共同体,扩大项目的影响力,占领相关领域才能构筑强大的竞争优势。

3. 开源的盈利方式

开源不会成为赢利点,需要其他途径补贴。

  • 销售云服务补贴开源

对于用户来说,部署、维护、升级都是成本。通过服务便捷,可以获得收费机会。常见的模式有两种: SaaS 模式和 IaaS 模式。SaaS 模式直接提供远程服务,计时计量收费,例如 Sentry。IaaS 模式通过公有云平台服务商整合服务,销售 IaaS 资源。

  • 发行多版本

开源只提供了核心模块的源码,无法满足全部的企业需要。定制化开发、功能增强型开发会成为收费点。通过发行社区版、企业版、高级版等梯度产品,社区版作为试验区,逐步向收费版本引导。

  • 运维服务

对企业真正有价值的是软件运行时,而不是静态的代码。各种运维场景,故障处理,层出不穷的安全漏洞和补丁解决方法,都可以成为付费点。

  • 培训、认证、授权

通过相关培训、认证、授权等,可以作为赢利点。

  • 销售周边

除了看不见的服务,还有看得见的周边。比如,销售公仔、文化衫、纪念品等,也可以作为收入来源之一。

  • 被收购。独立的组织,被巨头收购也是一个不错的归宿。

4. 开源需要做些什么

并不是每个产品都适合开源,商业开源是为了生态。我观察到有些商业公司,在 github 上开源项目,获得了高星。但是,他们没有持续运营,代码提交主要集中在数年前的半年内。我认为,这样的项目没有开源的必要。

一个好的商业开源项目,应该做好这几件事:

  • 领先的方案实现

开源的正确打开方式是,一定要在领域提出先进的方案,并完成核心实现。开源只会锦上添花,不会雪中送炭。只有项目本身具有价值,才能吸引大家广泛参与。

  • 完善的文档

文档是极其重要的项目说明。一份清晰、详细的文档,有利于其他人的参与。

  • 热衷传播

酒香不怕巷子深的时代已经过去,同类的竞品层出不穷。如果不主动地宣传、布道,项目很容易错过风口期,最终导致失败。

我们应该主动地宣传项目,与同行,与用户,更多的交流。进行传播的同时,开发者也能获得反馈,进行优化,形成良好的口碑

  • 维护核心用户群

在项目还没有很成功时,经营好核心用户群非常重要。产品是需要不断打磨、迭代才会成为精品。这个过程中,不仅需要开发代码,更需要用户参与。核心用户群是产品第一用户,也是社区口碑的传播者。

  • 记录 FQA

早期阶段,让开发者直面客户人群进行 QA ,有利于产品快速迭代。当产品打磨到足够稳定时,我们应该记录 FQA 。记录常见问题可以降低对开发者的干扰,引导用户回答用户问题,回归社区。

  • 定期分享

没有哪一个行业像 IT 一样,如此热爱分享。最近几年,我观察到,各种社区活动越来越多,开发者也开始从线上至线下参与其中。

社区活动就是产品宣传的机会,如果有资源、有一定影响力,也可以自行发起活动。线上线下持续地运营,聚拢用户,形成圈子,越来越重要。

  • 生态合作

开源最终拼的是生态。生态也会给开源组织带来更多变现的可能性。生态的建设应该围绕着合作共赢的思路建设,比如平台开发商提供平台、构筑应用市场,应用开发商开发应用在平台上销售挣钱,平台因为有这些应用更加具有竞争力。

5. 参考