

最初发布在 https://developer.ibm.com/code/open/case-study-using-open-source/
Watson Workspace重新定义了用户协作方式。 太多的对话和太多的工具会导致很多噪音和干扰-这意味着您要花费大量时间和精力来回旋转。 您实际上并不知道该把重点放在哪里,因为每个未读标记和通知都在引起您的注意,并且每个对话在列表中的权重都相同。 这意味着迷失自己的位置,错过重要的事情或什至值得追赶的事情太容易了。
通过Watson,我们以有意义的方式利用认知智能来改善您和您的团队的工作方式。 我们会总结对话,优先考虑对您而言重要的事物,了解业务方言并将可操作的语言与后续步骤联系起来,以便您可以专注于重要的事情并完成更多工作。
“ DevOps文化的广泛采用以及Cloud-Native开源技术的爆炸性发展,为开发人员提供了前所未有的机会,可为最终用户(无论有100亿还是1亿)提供出色的产品。”
Brendan Arthurs-架构师,IBM Watson Work


过程自动化是关键。 除了为最终用户提供更好的服务之外,Watson Workspace还重新定义了我们在IBM中构建,测试和交付软件的方式。 我们从这样的前提开始:彻底改变了消费类软件市场的云优先原则在构建企业协作工具时可以并且应该同样适用:横向可扩展性以支持数百万用户,真正的持续交付,并在代码小时内将构建部署到生产环境承诺,安全是我们所做工作的基础,而交付模型则使从测试到部署的流程的每个步骤都实现了自动化。
“ IBM的持续交付的审查和批准流程使团队能够简化审查流程,从而放心地采用最新技术,而以前认为这是使用最合适的开源代码进行持续交付产品的阻碍。”
David Lau — IBM Watson Work的发布经理
基于微服务架构,Watson Workspace中的组件每个工作日更新50次以上。 开源是我们构建的所有产品的核心。 从用于轻量服务的Spring框架和用于弹性网络调用的Hystrix,到用于可靠的可伸缩异步消息传递的Apache Kafka,我们在坚实的基础上构建产品。 反过来,这个基础也依赖于无数额外的,经过严格实践处理的开源库。 当完整的依赖树扩展出来时,我们将使用600多个开源软件包。 随着开发人员继续向解决方案添加新功能,这种情况每天都在增长。 需要检查每一项的来源和许可证兼容性,并在确定和修复安全漏洞后定期进行更新。 乍看之下,最近的新闻头条显示,依赖包中的漏洞管理的重要性很难高估。 我们没有尝试跟踪我们使用的每个程序包中的每个已发布漏洞,而是采取了自动化措施来确保我们始终使用每个依赖项的最新受支持版本,并在此过程中获取最新的安全修复程序。
所有这些都导致大量的开源软件包版本流经我们的渠道。 为了忠实于我们的持续交付原则,即在致力于源代码控制的几个小时内将变更部署到生产中,我们建立了精心设计的自动化开源清除管道,该管道可以识别所引用的每个依赖项,并根据GitHub存储库检查其状态,跟踪所有批准。 通过调用IBM内部工具来识别许可证类型并确定是否需要其他审查,从而可以处理任何新内容。 如果没有,则该包装将包含在批量请求中,并且无需人为干预就可以放行。 与先前批准的软件包结合使用时,它涵盖了添加到Watson Workspace的所有开源软件包参考中的91%以上。
“自动更新到我们的开源依赖项的最新发布版本意味着始终应用安全修复程序。”
Olgierd Pieczul-IBM Watson Work的安全架构师
在容器运行时采用微服务体系结构是必要的,但不足以在快速创新的同时实现连续可用性。 为了保持信心,人们必须不断以失败作为预期要素。 为了解决这个问题,我们的流程和文化采用了失败-小型最佳实践,其中的所有内容都被自动化,配置为代码并以小增量发布,我们可以轻松地进行测试和回滚。 这不仅适用于我们的核心产品,还适用于我们所依赖的所有下游工具和流程,包括开源法律和安全方面的处理。
通过与IBM开放技术集团的紧密合作,IBM Watson Workspace交付了一个集成的流程,该流程在实践中表明我们可以保护IBM的知识产权,同时保持开发人员的速度和安全的运行时间。 实际上,最终结果使开发人员能够为工作和我们的运营选择最佳工具,以为客户维护安全的环境,比以往任何时候都更容易。
如果没有IBM开放源代码的方法,这将是不可能的。