在一个慵懒的星期六,我正在滚动我的 Facebook 信息流,突然!我看到我的一位熟人辞去了他在硅谷一家明星公司的工作。这家公司以在其利基市场创造革命而自豪,筹集了数亿美元,并在世界各地雇佣了数百人。
哪里出了问题?
我最终发现我的朋友受够了,公司不允许他为开源做贡献。哇。即使在硅谷也是如此。
这让我思考我们在 Capital One 在开源方面的幸运。当您想到金融机构或银行时,透明度和开源软件可能不是您首先想到的事情,尤其是在最近的丑闻之后。多年来,金融业主要使用闭源专有软件。出现这种情况的原因有很多,包括对开源软件缺乏信任、需要 SLA 支持、法规以及保护知识产权。
然而,在过去十年中,越来越多的公司——包括金融领域的公司——已经了解到,开源软件通常比闭源软件更可靠和安全。
开源项目
在 Capital One 正式制定使用开源软件的指南后不久,我们的工程师开始为他们使用的一些开源解决方案贡献补丁。
然后在 2015 年的 OSCON 大会上,Capital One 发布了其第一个开源项目 Hygieia。 Hygieia 是一个 DevOps 仪表板,具有可配置的实时 Web 界面。它旨在帮助 DevOps 工程师从不同来源收集各种统计数据,尤其适用于复杂环境。该项目已经在 GitHub 上获得了数百个星标和 fork。

在 Hygieia 之后,在 2016 年的 AWS 峰会上,Capital One 宣布了一个用于 AWS 管理的开源策略规则引擎,名为 Cloud Custodian。它有助于管理大量云实例。

自 Cloud Custodian 以来,Capital One 在 DevExchange 中推出了三个开源 API 参考应用程序:SwiftID、Rewards 和 Credit Offers。 SwiftID 用易于集成的双因素身份验证取代了成本高昂且耗时的安全问题——例如,你上的是哪所学校?你拥有哪辆车?另外两个 API 服务,Rewards 和 Credit Offers,提供有关奖励(里程、积分、现金)和信用卡优惠的信息。在 DevExchange 幕后,Capital One 工程师解释了银行为何决定全力投入公共 API。
今年,Capital One 宣布 我们正在开发以下五个开源项目
- Hydrograph: 一种开发者友好的可视化工具 (UI),用于帮助在大数据生态系统中开发、部署和管理 ETL 作业。
- 卡片成像项目: 一种开放的、分布式的、基于云和微服务的文档管理应用程序,可提供对实时客户数据的全面洞察。
- 支付处理平台: 一个开放的、分布式计算交易管理平台,提供有保证的入站付款交付和处理。
- SWHttpTrafficRecorder: 一种允许开发人员记录 HTTP 流量以方便测试和调试的工具。
- Ops-pipeline: 一种为自动化图像和容器的生产和消费提供模板的工具。
使用 Node.js
我是一位 Node.js 专家和热情的拥护者。这是我在 2015 年 Node Interactive 大会上所做的演示
当人们说 JavaScript 无处不在时,这绝非夸张。在 Node.js 方面,我们将其用于
- 实施 API 和微服务(主要是编排服务)以与我们的主要 API 对话;
- 构建前端资产、测试和自动化部署;
- API 模拟,特别是对于前端开发(我们是一家 Angular 商店);
- 创建内部商业智能工具,例如仪表板、监控服务和分析;
- 以及构建原型。
由 Capital One 员工构建的基于 Node 的内部或开源项目包括
- OneUI: 一个用于 Angular 的内部 UI 库,为 Capital One 应用程序提供一致的外观和感觉(想想 Twitter Bootstrap,只是作为 Angular 指令,而不仅仅是 CSS 和 jQuery)。
- generator-angular-enterprise: 一种在搭建代码、测试和文档的同时教授 Angular 最佳实践的工具。
- mongoui: 一个用于 MongoDB 的管理界面。
- Nessie: 一个面向 Capital One API 的黑客马拉松服务。
Capital One 开源的未来
我们的目标是将 Capital One 视为一家专注于银行业务的科技公司。我们希望鼓励使用开源软件,并将创新带入银行业。对我们来说,开源的好处显而易见:更低的成本、强大的社区支持、更好的质量和更高的可靠性。
目前,我们正在开源我们自己的项目,并为我们使用和喜爱的库做出贡献。我们的开源办公室 (OSO) 有 13 个项目正在筹备中。
我们还拥有经验丰富的开源领导层。 Apache 软件基金会前总裁兼创始人 Jim Jagielski 加入了我们的技术研究员计划,Jared Smith 今年作为我们的新开源社区经理加入。 Jared 在许多开源项目中有着悠久的参与历史,包括担任 Fedora 项目的负责人,他的职责包括与外部开源社区互动,并帮助引导内部项目完成开源流程。
我们提交补丁和拉取请求的流程非常简单明了,因为我们希望鼓励更多地为开源做出贡献。公司允许开发人员使用公司时间和设备为开源做出贡献,OSO 提供必要的教育和审查流程。我们的员工为许多开源项目做出了贡献,包括
- Terraform
- Apache Spark
- Apache Hadoop
- Apache Hadoop YARN
- Odoo
我们对开源的贡献不仅限于代码。我们的两位 Apache Spark 核心贡献者 Brennon York 和 Ilya Ganelin 合著了一本书,名为 Spark: 大数据集群生产环境计算。并且,我正在写我的新书,名为 React Quickly。公司其他技术作者包括 Steve Lott 和 Jacqueline Kazil。
您的组织如何为开源项目做出贡献? 向我们发送您的故事提案。
1 条评论