互联网一弹指五十年。谈及开源,人们至今仍对把Linux开源的Linux之父Linus交口称赞。令人难以置信的是,曾有公司因为没有及时开源,而让多米诺效应发生在自己身上。开源,对于我们来说,是舶来品。国内技术虽然开源起步晚,但却不乏优秀的开源产品。

本期文章,继CSDN邀请昔日华为人、上海鉴释科技公司CEO梁宇宁,谈谈他眼中的热门开源项目、以及他对于开源的理解,如在12月14日的OS2ACT大会上,给大会主席引用 “免费软件就是鸦片”,我们邀请到蚂蚁金服研究员,系统部负责人何征宇,聊聊他在12月14日的OS2ACT  2019大会上谈到如何防止开源的加拉帕戈斯综合症。

以下为演讲整理:

蚂蚁金服研究员,系统部负责人何征宇

何征宇,佐治亚理工学院博士,蚂蚁金服系统部负责人,负责建设符合新一代数字金融要求的云原生基础设施,包括大规模容器调度,沙盒容器,加密计算,容器网络与文件系统等方向。回国前在谷歌内核组工作,主要创立和领导了gVisor项目。

我今天想和大家分享一下我在蚂蚁的一些工作,以及在金融级系统软件中需开源协作的探索和实践。

金融行业实际上是一个非常注重科技的行业,因为技术的价值可以得到很直观的展现,然后它是非常注重极致,非常追求技术的先进性的,技术上的先进性可以很快的转化为业务的领先性。

蚂蚁金服作为国内金融企业的领头羊,对于技术的追求是永无止境的。蚂蚁的梦想是服务20亿的消费者,1亿的全球小微经营者,这是一个非常大的愿景,而我们相信只有不断发展的技术才能让这些不可能成为可能。例如我们的310贷款能力,就是建立在一流的金融级大规模数据智能的技术能力之上的。

那么我们系统软件的挑战和做软件的压力是什么?如果用一句话来总结的话,就是在海量数据压力下的服务连续性保障和资损风险监控。首先是要达到一个非常高的可用率,这个跟我们常说高可用系统,例如电信级系统不一样,这个后面除了5个9之外,还有金融机构非常严格的一些要求,比如100%保证资金安全,这是蚂蚁金服一直在追求的能力。

蚂蚁金服与开源 

开源是一种手段,不是目的。这里给大家分享一些我们的思考。

首先给大家科普加拉帕戈斯综合症,这个其实可以对应到我们的系统软件,如果我们的系统软件从头到尾都是闭门造车,那么它一定会根据当时的现状加入妥协的部分,并且这种妥协会越来越多,最后面对开源开放的系统软件是没有竞争力的。

所以我觉得,开放的生态是系统软件保持长久活力的关键。上面的图片里面,左边是在水族馆里面的杀人鲸,它们的尾鳍永远是弯着的,显得无精打采,右边是在开放水域的鲸鱼,它们的尾鳍就是直的。所以,系统的生态是很重要的。我不想看到的是,不管是因为国家的政策也好,或者什么别的因素也好,我们就在小池塘里面互相吃来吃去的,最后一个大鲨鱼过来全部被干掉了。

从蚂蚁金服的角度来看,我们一定要保持开放,也希望有非常多的良性竞争。中国的武侠一定是有少林和武当的,如果都是一个流派那就不行了,百花齐放,百家争鸣的状态才是最好的。

最后总结一下蚂蚁金服系统软件的发展思路,首先它必须满足业务竞争的需求,然后我们会和顶尖学术机构一起合作创新,并且积极参与开源社区,承担应有的社会责任。

值得一提的是,蚂蚁金服系统软件上的学术合作也比较广泛。我们和国内外的专家学者,包括清华大学,上海交通大学,浙江大学,UC Berkeley都有合作项目,也拿到了不错的成果,例如下面提到的Occlum项目就是跟清华陈渝老师合作的。

蚂蚁金服与系统软件

蚂蚁金服也确实在各个系统软件的方向上追求极致。首先从数据库的角度来讲,OceanBase在TPC-C评测中打破了Oracle多年的垄断,这一结果是OceanBase团队创新的实现了分布式关系数据库,并且得到了专业评审员的认可。其次是安全计算,我们参与了Occlum可信执行环境开源项目,并且与清华展开学术合作,相关文章已经被ASPLOS收录,也参与制定国内第一个安全计算的标准。然后是云原生方向上,我们自研了SOFAMesh并率先通过今年的双十一进行了大规模的验证。最后是安全容器技术,我们的KataContainers是OpenStack顶级开放基础设施项目。

接下来我想讲一些我们的观点。我一直觉得,系统软件是一个手段,它并不是一个目的,因为我们一定要搞清楚的是我们系统软件到底是在做什么。右边这个图很有意思,这是一个楼梯,但是这个楼梯是没法使用的,如果我们做系统软件是为了做而做,有可能做出来就是像这个楼梯一样,目标达到了,但是没有任何价值。

任何一个基础软件、系统软件,比如一个新的操作系统,一般来说都是花销巨大的,而且软件写出来总有一天会淘汰的。我们到底做什么样的系统软件?我相信一定是为了解决什么问题而做,这是我们系统工程师最需要考虑的事情。

接下来,我想结合我自己的一些经历,分享一下我们是如何思考和利用系统软件解决问题的。

第一个案例是大家正在做的容器化所带来的问题。在云原生大趋势下,大家正在将IT系统迁移到容器里,例如从OpenStack迁移到Kubernetes,这里实际上有一个很大的问题,也就是从虚拟机迁移到容器时,我们系统的隔离性,不管是从安全还是性能方面来说,都是有下降的。

蚂蚁金服正在做的安全容器,就是为了解决容器的隔离性问题,它的原理也很好理解。传统容器的隔离性其实是依赖linux本身,包括cgroup和namespace等技术,但是应用还是直接通过系统调用访问内核。安全容器做了一个中间层,利用新的内核,hypervisor等等技术,让系统调用可以不用依赖底层的linux,而安全容器自身对linux的依赖是完全已知和固定的,而且小到可以做非常详细的审计,从而极大的降低主机被攻破的风险。

安全容器可以有效的保护主机,但是,金融业务本身仍然需要更强的隔离保护。

所幸的是,最近兴起的机密计算(ConfidentialComputing)技术能够非常有效保护应用程序。它的本质其实上就是在大家手机里应用非常广泛的TEE技术,但是随着Intel SGX这样的技术的发展,让每一台服务器支持TEE都成为可能。

TEE,现在一般也称为Enclave,可以进行运行时的双向防护。简单说,应用程序用它的话,可以不相信底层的OS等软件。但是在 Enclave 技术目前存在一些问题,阻碍了它在实际生产环境中的应用,包括:

第一,需要改写应用,因为可信执行环境里面没有内核和基础库,所以没法把应用直接在 Enclave 中执行;

第二,需要分割应用,需要把业务程序划分为Enclave 内和 Enclave 外的部分;

第三,未集群化,与客户端场景不同,Enclave中的应用如何 failover,容灾也是阻止其在数据中心中大规模使用的一个原因。

所以说现在基于TEE的应用特别难做,基本上现在做的就是纯运算的一些东西,因为IO都解决不了。这里就引出来我们的第二个案例,也就是我们为什么要做Occlum。

Occlum是我们今年聚焦攻关的一个Enclave LibOS,现在在世界上来说应该是最先进的一个,使用它可以1分钟内将Tensorflow Lite移植到Enclave里面。这里我想说明的是,我们不是为了做系统而做系统,我们做系统是为了蚂蚁的业务例如共享智能,区块链等能够更好,更快的拿到机密计算这一新技术的红利。

最后,在这里,我想带出我这次分享最重要的目的,也就是非常希望和在座的各位学术界和开源届的同行能有更多的交流和沟通,达成更多的合作,谢谢大家。

防止开源的加拉帕戈斯综合症,系统软件和开源都是手段不是目的相关推荐

  1. 开源项目贡献者_入职开源贡献者的10个技巧

    开源项目贡献者 贡献者是许多开源项目的命脉,因为它们使较小的项目能够在没有大量财务支持的情况下得以成长和改进,并且为项目带来了新的观点. 非营利组织Ushahidi就是这种情况,该组织正在构建和使用软 ...

  2. 贾扬清感谢信:阿里开源10年,致敬千万开源人

    整理 | 夕颜 [导读]2019 年 10 月,有人曾根据 www.gharchive.org  的数据整理出一份 2019 年GitHub 开源贡献排行榜,获取 GitHub 2019 年的 Pus ...

  3. 小米开源监控系统OpenFalcon应对高并发7种手段

    2019独角兽企业重金招聘Python工程师标准>>> 小米开源监控系统OpenFalcon应对高并发7种手段 原创 2016-04-01 秦晓辉 高可用架构 编者按:本文是秦晓辉在 ...

  4. 开源的那些事儿之如何看待开源

    什么是开源呢? 相信很多人对于开源这个概念很模糊,我在之前的一篇博客里面也略微谈了一下,这里想展开说一下. 开源心态 首先要清楚的是,开源是一种精神,这种精神是,我希望把我的东西能够分享出去让更多的人 ...

  5. 腾讯开源负责人许勇:未来开源计划重点是AI和服务小程序生态

    导读:2018年6月25日,Linux 基金会,集结世界顶级开发者的非营利开源组织,宣布腾讯成为基金会的最新白金会员.在开源领域,腾讯的贡献正逐步增长,日益成为社区活跃一员.在与社区机构互动上,腾讯广 ...

  6. 你不该错过的2020中国开源年报,填开源开发者问卷,成为国内开源的见证者

    点击上方"开源社"关注我们 | 作者:王伟 | 编辑:黄欣宜 | 设计:冯艺怡 | 责编:王玥敏 卷首语 一年一度的中国开源年报再度启动- 中国开源年报由开源社发起.旨在从多种维度 ...

  7. android引入开源库_为好目录引入开源:通过代码帮助公益组织

    android引入开源库 by Michael D. Johnson 迈克尔·约翰逊(Michael D.Johnson) 为好目录引入开源:通过代码帮助公益组织 (Introducing the O ...

  8. 怎么成为开源贡献者_为什么要成为开源的支持者

    怎么成为开源贡献者 那年是1999年.我父亲刚刚为我建造了一台配备500MHz AMD Athlon处理器,2GB HDD,32MB RAM和Windows 98的计算机. 然后,我的一个朋友想向我介 ...

  9. wpf开源ui引用步骤_吸引开源社区的5个步骤

    wpf开源ui引用步骤 受欢迎的聊天服务HipChat的母公司Atlassian成立于2002年, 当时只有两个人. 十三年后,我们遍及全球的1300多人. 这种增长迫使我们需要围绕一个联系点组织我们 ...

最新文章

  1. java执行linux shell命令,并拿到返回值
  2. java设置窗体关闭时执行某些操作
  3. python中的闭包与装饰器教程
  4. 如何从Windows远程上传文件到Linux(例如CentOS 7)
  5. php 枚举类型比较,枚举的比较-python编程入门系列图文教程-PHP中文网教程
  6. 前端学习(1525):简化模板代码
  7. 无法在Web服务器上启动调试。您不具备调试此应用程序的权限,此项目的URL位于Internet区域。...
  8. window操作大全
  9. param.requires_grad = False
  10. 【COCOS2DX-LUA 脚本开发之一】LUA语言基础在COCOS2DX游戏中使用LUA脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途!...
  11. 如何实现Windows Network所有会话的限制登录和访问控制
  12. Cold Diffusion: Inverting Arbitrary Image Transforms Without Noise【重点笔记】
  13. 怎么把python压缩_python中如何实现图片压缩
  14. 拾叶集 文/江湖一剑客
  15. java read dxf xdata_dxf结构解析及读取坐标 | 学步园
  16. 哔哩哔哩2020校园招聘技术类笔试卷(二)
  17. 抖音运营如何提升直播间留存率(短视频老司机为您分享5个要素)
  18. Android加密 看雪,Android加密与解密入门两题
  19. web图书销售管理系统_图书进销存管理软件的优势是什么?
  20. 35岁只是普通程序员,还有救吗?

热门文章

  1. 使用def文件简化dll导出
  2. CALL TRANSACTION 和 SUBMIT 事务码之间的跳转
  3. [Linux 性能检测工具]IOSTAT
  4. [FFmpeg] RGBA 和 YUV 存储方式
  5. 如何让地面不起灰_地面不平能铺地板吗?木地板不平怎么修复
  6. 记录——《C Primer Plus (第五版)》第十章编程练习第八题
  7. 【QT】QT从零入门教程(五):图像文件操作 [新建打开保存]
  8. Flutter进阶—铅刀一割
  9. 2021-2025年中国丁基胶粘剂行业市场供需与战略研究报告
  10. 转 python 闭包的说明