Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

沃尔玛尝到了推行 InnerSource 的甜头

  • 2016-08-04
  • 本文字数:1929 字

    阅读完需:约 6 分钟

自从 CTO Jeremy King 上台后,沃尔玛对开发团队按 InnerSource 的方式进行了重新整合。经过磨合期,大家已经认可了这种新的开发方式,而且 InnerSource 带来的各种好处开始不断显现出来。最近,Clint Boulton 对沃尔玛采用 InnerSource 的情况进行了进一步报道

InnerSource 仅仅是一个名称, 它是一种在企业内部应用开源软件实践的软件开发方法,也叫 Enterprise Source 或 Internal Open Source。InnerSource 实际上就是在公司内部,在各个不同开发团队之间以开源方式开发软件的工作方法。它可以带来的好处包括更快提交项目、团队之间合作更顺畅、自主创新、高质量的代码和文档等。已经有许多大公司在内部实施了 InnerSource,包括 Autodesk、BLoomberg、Bosch、Capital One、 PayPal 和 SanDisk 等。InnerSource 对于那些有着上千人规模开发团队的公司尤为重要。

身为沃尔玛 CTO 和 WalmartLabs 负责人,Jeremy King 认为:

我们对这种内部开源的模式实践得越多,我们的组织就越有弹性,我们也就能越快地将代码上线为用户所用。
建议你们也采用开源软件和开发方式,因为这样可以开发更快、成本更低和质量更好,但我们也希望你们也能为开源做出贡献,因为这样对整个社区是有好处的。

沃尔玛实施 InnerSource 采用的是企业版 GitHub,用法和免费公开版大致相同,唯一的关键不同是它是部署在企业内部、外部不可访问的,因为有一些关键算法还是不能公开的。

自从 King 从 2011 年由 eBay 跳槽过来之后,沃尔玛就加速了对开源的推进。King 说他们已经把许多传统软件换成了开源产品,比如 Cassandra 之类的 NoSQL,还用 Kafka 替换了消息总线。也引入了许多开源开发工具,如 Node.js 和服务器端 JavaScript 环境等,并用 OpenStack 重构了它的电子商务平台。

沃尔玛的研发团队有一千多人,他们每个月要做约 30000 次代码部署,但是 King 仍认为他们只是“世界上最大的创业团队”而已,因为有的公司做一个项目可能就会要上千人了。沃尔玛的一千多名研发工程师分布在约 100 个小组中,每个小组有 10-20 人,开发、构建、测试和部署等全部由小组自行负责,以 DevOps 模式工作。尽管大家的工作模式都是持续集成、迭代开发,不可避免地有时候某些团队会由于任务过多而成为瓶颈,这样在小组之间可以共享、开发和贡献代码就非常重要,可以在某种程度上避免这样的“单点故障”了。King 举例道,比如某个工程师需要能连接到支付网关上,但负责支付网关的团队手上已经堆积了 5 个更重要的项目了,没时间做这个。在这种情况下这个工程师可以自己把相关功能实现了,然后再请支付网关团队的人审核通过,就可以了。或者比如说一个支付团队的工程师对于购物车等功能忽然有了什么新想法,那他就直接简单的作出原型来,然后通过 GitHub 提交给对应团队就好了。

当然 King 也提到了一些困难,InnerSource 并不是完美地适合每一个项目的。要能成功地跨团队提交代码的话,你就必须对对方项目的代码框架和逻辑等也熟悉,这是一个大门槛。

King 说沃尔玛推行开源的开发方式之后,对开源社区成果的使用和回馈行为还帮助他们吸引了许多技术人才。在他们准备录用的候选人中,50% 手中还握有 Google、Apple、Facebook、LindedIn 或其他硅谷著名公司的 Offer,可是最终这些人中有 70% 还是选择了沃尔玛。King 把争夺人才胜利的原因归功于两点:一是小而专的团队,二是开源。“大家都对我们已经取得的成就非常赞赏,同时也希望如同在创业公司工作一样。”

在大数据概念引爆流行产业界之前,沃尔玛已经开始了网站数据库整合迁移和Hadoop 集群扩展工作,收购Kosmix 并在其基础上建立Walmart Labs,并在近年着手收购专注于数据挖掘或移动社交的初创公司如OneOps、Inkiru,Tasty Labs,OneRiot,进军互联网。

沃尔玛于今年早期发布了开源项目OneOps,这是一个让程序员们可以测试各家不同公司的云平台,并在它们之间自由切换的平台,它的功能对于使用了多种异构云模型的公司非常有好处。OneOps 可以在任何基于云的平台上,在整个生命周期内,帮助用户管理关键的应用程序负载,同时可以让用户从一家云供应商迁移应用、数据库或整个云环境,到另一个云供应商,以便争取更好的报价。OneOps 强大的云技术,可以帮助工程避免被限制一个云供应商上。OneOps 的开源,对于把应用程序部署在云、需要持续管理和监控的技术人员来说,绝对是个好消息。同样,这对想要更换云服务商的公司也是喜闻乐见的。

最近沃尔玛又发布了新的开源项目 Electrode ,使用反应式开源组件的程序员们可以用它轻松地为移动 Web 和 App 开发页面。


感谢李建盛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-08-04 19:002579
用户头像

发布了 152 篇内容, 共 78.4 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

探索 Go 语言数据类型的内部实现

TuringTuring

内存模型 高效 Go 语言

Weex开发:页面跳转以及Android端多应用选择窗口的处理

码上生长

android Vue 大前端 跨平台 Weex

幂等问题及解决方案

Joker

幂等 解决方案

为什么你要学习 Go?

司徒公子

编程语言 谷歌Google Go 语言

GrowingIO 大数据多维分析自动化测试实践

GrowingIO技术专栏

大数据 自动化测试 parewise

「首度揭秘」大规模HPC生产环境 IO 特征

焱融科技

sds io 高性能 存储 焱融科技

Mysql常用删除方式比较

云也退

MySQL

ARTS_20200529

凌轩

Java ARTS 打卡计划

Android 通过opencv实现人脸识别,追踪

sar

android OpenCV 人脸识别

我们可能都误解了什么是情商

董一凡

情绪

游戏夜读 | 改写图形API的意义

game1night

卧槽,接到一个阎王的需求

码农神说

程序员

kudmp介绍和安装

唯爱

工厂模式(三)泛型工厂的概念以及示例代码

LSJ

Cassandra可调一致性的使用及原理

老任物联网杂谈

大数据 分布式 Cassandra 可调一致性

用户故事为什么要关联开发数据?

易成研发中心

敏捷开发 开发数据

架构师训练营0期开营

刁架构

架构师

从位图到布隆过滤器

wangkx

位图 布隆过滤器

2020智源-京东多模态对话挑战赛开战 产学研联合推动AI技术发展

DT极客

Nginx 入门及命令行操作

子杨

nginx 运维

一个在游戏行业摸爬滚打了十几年的人,为何我对这本书情有独钟

图灵社区

游戏开发 游戏制作 世嘉培训教材

Nginx 基础原理和命令行的真相

子杨

nginx 运维

基于 Markdown 的中文文档排版规范

Murphy

markdown 排版规范 GitHub GFM 物联网学前班

“Plus Token”传销主犯被公诉!警惕,区块链不是“取款链”!

CECBC

1024讲话 CECBC 区块链技术 人才发展 培训

你有信息焦虑症吗?

Neco.W

学习 创业 知识体系

奈学干货分享:分布式CAP实践分析

奈学教育

分布式

备案问题汇总

云也退

网站 备案

阿里巴巴为什么让初始化集合时必须指定大小?

王磊

Java 性能

Server Queue 提高 QPS

风含叶

Python kafka 后端 队列

10分钟了解Flink

代码诗人

神经网络中为什么不能将权重初始值设置为一样的值

wangkx

神经网络 学习

沃尔玛尝到了推行InnerSource的甜头_GitHub_足下_InfoQ精选文章