华为云DevCloud:下一代软件工程的思考与点滴实践

日前,高效运维GOPS2019在深圳正式开启,华为云DevCloud产品布道师受邀参加本次大会, 分享了华为下一代软件工程的思考与点滴实践。

从1968年软件第一次危机出现算起,软件工程发展到现在已经50年。伴随着产业的发展,软件工程不断出现新的思维,方法论,原则,实践。

  当前的一个基本共识:从消费互联网到产业互联网,最终会实现如科幻片所描绘的“万物互联”。

  万物互联,很美好,可是如果具体到互联的是车,飞机,火车这样和我们的生活,甚至人身安全密切相关的“物”,是不是隐隐还是会有些担忧。人类就是在不断的担忧新事物,又不断解决问题的过程中成长起来的,除了法规政策外,从技术上也要去解决。

因此,下一个阶段的软件工程,应该进入一个新的问题域:软件产品如何做到可信赖?当前,软件产品的用户除了关注软件产品的质量,软件产品是否足够信赖,能让用户放心使用会成为一个新的考验。

  可信的软件到底是什么?

可信的英文:Trustworthiness。可信的软件是指:软件可按照预期运行,并且不会在环境改变时带来重大安全和隐私风险。按《Software Engineering》10th edition和其他相关标准的基本定义,可信包括5个基本维度,如下图:

  简单逐一解释一下:

Safety: 系统对人和系统的环境不会造成危害的可能性

Reliability:系统在给定的时段内能正确提供用户希望的服务的可能性。

Availability:系统在任何时间都能运行并提供有用服务的可能性。

Security:系统能抵抗的或者蓄意入侵的可能性 。

Resilience:当出现一些干扰性事件时,系统保持其关键服务继续正常运行的可能性。

以上这5个维度,并不是孤立的,对于软件产品而言,这五个维度往往是相辅相成,甚至有的场景下还是“相生相克”的 。

  华为云DevCloud如何探索?

华为云DevCloud布道师讲到,可信包括的内容和要求都非常的高,而且我们在思维和理念上会带来新的冲击。对于任何一个新的跨越式的转变,无论是之前华为的IPD,还是敏捷,还是DevOps,都离不开Be 和 Do 的同时并进。软件工程领域任何一个新事物,往往都是:思维理念开始——>形成基本的价值观——>形成一些基本原理——>形成一些有限的实践——>根据不同的场景,选择最适合的实践,形成一些最佳实践集合(比如敏捷实践中的Scrum,XP)。

对于可信,其实也是类似的方法Be trustworthy 同时 Do Trustworthy,很多时候,思维和理念的改变需要落地后的实际效果来影响,反过来,思维和理念的变化会加速实践的探索。

现在的软件通常都会使用一些开源组件或开放使用的第三方组件或框架。新的开源组件数量成倍增长,同时开源组件的使用程度和频次也越来越高,开源组件的安全、漏洞问题现在也日益成为当前业务最担忧的问题。

近些年,一些网络犯罪分子利用开源组件的漏洞,对很多巨头公司造成了巨大的品牌影响、财产损失、乃至用户流失。华为很早就建立了内部的开源镜像仓,并增加漏洞扫描,和官方镜像站点直接合作等等。去年把这个服务孵化到华为云DevCloud,作为一个独立的服务面向社会提供,基于华为云强大的基础设施和华为内部镜像仓的多年实践,对外部用户提供可靠来源和高速下载的镜像仓服务,详细可访问华为开源镜像站。

  在华为云DevCloud的开源镜像仓上将增加可信的能力规划:

1.来源可信,和官方镜像站的合作与认证。

2.传输可信,传输过程中防篡改。

3.使用可信,增加多安全性的检查、拦截,并结合华为自己跟踪的漏洞和NVD跟踪发布的漏洞,持续的跟踪已发现识别的漏洞并及时预警。

当然开源组件千千万万,做好开源镜像仓的可信,实际是个很挑战的事情,华为云DevCloud与您一起继续探索…