文:华为云DevCloud 伦语春秋
【中国,深圳】2019年4月12日-13日,高效运维GOPS2019在深圳正式开启,华为云DevCloud产品布道师受邀参加本次大会, 分享了华为下一代软件工程的思考与点滴实践。
从1968年软件第一次危机出现算起,软件工程发展到现在已经50年。伴随着产业的发展,软件工程不断出现新的思维,方法论,原则,实践。

  1. 第一个阶段:这个阶段是属于萌芽期,最早的软件开发都是像手工坊一样,整个过程经常会出现混乱,无序甚至失控,软件产品的质量也层次不齐,如《人月神话》中描述的那样,那时的软件就像狼人一样恐怖。 所以当时的主旋律是借鉴硬件制造,管理软件开发过程中的偏差,重点解决的是软件开发的质量、可控、有序的问题,包括CMM,面向对象,瀑布开发等。
  2. 第二个阶段:第一个阶段因为强化了过程的管理,虽然一定程度上有序和可控,偏差或许受到了控制,但是也抑制了一定的自由,影响了软件产品的交付效率,软件开发变得趋于机械和过度流程化。随着敏捷宣言的公布,软件从一个极端往回拉了一些回来,回归到软件的本质:软件开发还是一个智力活动。敏捷的理念逐步深入人心,随着Cloud作为新的IT基础设施服务形态,容器,CICD,DevOps也相应的应运而生,总体而言这个阶段是为了尝试解决软件开发的效率和速度问题。
  3. 第三个阶段:在软件的质量、软件的效率和速度得到一定改善的情况下,软件工程接下来应该解决什么问题呢?

为了尝试解读软件本身就是为了解决现实世界的问题的,商业和技术的发展驱动着软件技术、软件工程的发展,所以首先看看在可见的未来,大概率会发生啥?
当前的一个基本共识:从消费互联网到产业互联网,最终会实现如科幻片所描绘的“万物互联”。

万物互联,很美好,可是如果具体到互联的是车,飞机,火车这样和我们的生活,甚至人身安全密切相关的“物”,是不是隐隐还是会有些担忧。人类就是在不断的担忧新事物,又不断解决问题的过程中成长起来的,除了法规政策外,从技术上也要去解决。
因此,第三阶段的软件工程,应该进入一个新的问题域:软件产品如何做到可信赖?当前,软件产品的用户除了关注软件产品的质量,软件产品是否足够信赖,能让用户放心使用会成为一个新的考验。
可信的软件到底是什么?
可信的英文:Trustworthiness。可信的软件是指:软件可按照预期运行,并且不会在环境改变时带来重大安全和隐私风险。按《Software Engineering》10th edition和其他相关标准的基本定义,可信包括5个基本维度,如下图:

简单逐一解释一下:
Safety: 系统对人和系统的环境不会造成危害的可能性
Reliability:系统在给定的时段内能正确提供用户希望的服务的可能性。
Availability:系统在任何时间都能运行并提供有用服务的可能性。
Security:系统能抵抗的或者蓄意入侵的可能性 。
Resilience:当出现一些干扰性事件时,系统保持其关键服务继续正常运行的可能性。
以上这5个维度,并不是孤立的,对于软件产品而言,这五个维度往往是相辅相成,甚至有的场景下还是“相生相克”的 。

华为云DevCloud如何探索?
布道师讲到,可信包括的内容和要求都非常的高,而且我们在思维和理念上会带来新的冲击。对于任何一个新的跨越式的转变,无论是之前华为的IPD,还是敏捷,还是DevOps,都离不开Be 和 Do 的同时并进,如下图所示的这样

软件工程领域任何一个新事物,往往都是:思维理念开始——>形成基本的价值观(什么是对的,什么是需要避免的)——>形成一些基本原理——>形成一些有限的实践——>根据不同的场景,选择最适合的实践,形成一些最佳实践集合(比如敏捷实践中的Scrum,XP)。
对于可信,其实也是类似的方法Be trustworthy 同时 Do Trustworthy,很多时候,思维和理念的改变需要落地后的实际效果来影响,反过来,思维和理念的变化会加速实践的探索。在现有的华为云DevCloud开源镜像仓服务上增加一些可信的能力

现在的软件通常都会使用一些开源组件或开放使用的第三方组件或框架。新的开源组件数量成倍增长,同时开源组件的使用程度和频次也越来越高,开源组件的安全、漏洞问题现在也日益成为当前业务最担忧的问题。
近些年,一些网络犯罪分子利用开源组件的漏洞,对很多巨头公司造成了巨大的品牌影响、财产损失、乃至用户流失。华为很早就建立了内部的开源镜像仓,并增加漏洞扫描,和官方镜像站点直接合作等等。去年把这个服务孵化到华为云,作为一个独立的服务面向社会提供,基于华为云强大的基础设施和华为内部镜像仓的多年实践,对外部用户提供可靠来源和高速下载的镜像仓服务。若需要详细了解,请参见:华为开源镜像站
2019年,在华为云DevCloud的开源镜像仓上将增加可信的能力规划:

  1. 来源可信,和官方镜像站的合作与认证。
  2. 传输可信,传输过程中防篡改。
  3. 使用可信,增加多安全性的检查、拦截,并结合华为自己跟踪的漏洞和NVD跟踪发布的漏洞,持续的跟踪已发现识别的漏洞并及时预警。

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

华为云DevCloud作为一站式云端DevOps平台,集成华为近30年研发实践和前沿理念,面向开发者提供研发工具服务,让软件开发简单高效。现支持5人以下额度范围内,可以免费使用,并且可以预约免费的产品演示和技术交流,详情查看华为云官网

下一代软件工程的思考与点滴实践相关推荐

  1. 实时音视频聊天中超低延迟架构的思考与技术实践

    1.前言 从直播在线上抓娃娃,不断变化的是玩法的创新,始终不变的是对超低延迟的苛求.实时架构是超低延迟的基石,如何在信源编码.信道编码和实时传输整个链条来构建实时架构?在实时架构的基础之上,如果通过优 ...

  2. 软件工程——理论、方法与实践 之 面相对象分析

    软件工程--理论.方法与实践 之 面向对象分析 在需求获取阶段,开发人员关注于理解用户以及他们的使用需求.而在需求分析阶段,开发人员关注于理解系统需求构建的内容,其核心是产生一个准确的.完整的.一致的 ...

  3. 下一代GIS的思考-周成虎院士报告

    周日,下午踢了快两个小时的球,虽然有点小累,但全身还是很舒爽的.所以说低头族还是要多多运动才对. 上午参加了一场GIS专业的报告会(老本行好嘛!),中科院周成虎院士,话说两年前在本科学校就已经见过,哈 ...

  4. 锻炼思考力的有效实践

    1.意识觉醒 意识觉醒是提升思考力最重要的一个点,我认为.只要形成了这种意识,就已经成功了一半. 很多同学思维能力没有上去,是没有意识到思考力这个概念,只是机械地做事情,做事情,做事情--每次都在同一 ...

  5. 软件工程——理论、方法与实践 第六章

    第六章 面向对象技术是软件工程领域中的重要技术.主要讲 1.面向对象方法概述,面向对象=对象+类+继承+通信,然后介绍了其发展历史,,面向对象的软件工程方法分为面向对象分析.设计.编程.测试.维护. ...

  6. 软件工程——理论、方法与实践③

    第三章.软件项目管理        通读本章后理解本章为在一个项目进行前期的工作,及后期的维护,首先介绍软件项目管理,使我们更深入的了解软件项目管理所涉及的内容,然后在软件设计的过程慢慢进行一步步的分 ...

  7. 软件工程——理论、方法与实践 第一章

    第一章  主要分为1.软件2.软件工程3.软件工程知识体系4.软件工程职业道德规范四部分.软件是人类思维创造的杰作,并成为人类现代生活的催化剂;第一部分软件对软件的特性.发展和软件的危机进行了讲解,主 ...

  8. 学生的数学学习应当是一个生动活泼,积极主动和富有个性的过程,认真听讲,积极思考,动手实践,自主 探索,合作交流等都是学习数学的主要方式,请谈谈教师如何在教学中帮助学生养成良好的数学学习习惯(论述))

    答案:学生的数学学习应当有足够的时间和空间去经历观察.实验.猜想.计算.推理.验证等活动,在数学教学中,必须通过学生主动的活动包括观察.描述.画图.操作.猜想.实验.收集整理数据.思考.推理.交流和应 ...

  9. API接口安全思考和最佳实践

    一.API安全概述 应用程序编程接口 (API) 允许软件应用程序相互交互.它是现代软件模式的基本组成部分,例如微服务架构. API 安全是保护 API 免受攻击的过程.由于 API 非常常用,而且它 ...

最新文章

  1. python any()和all()用法
  2. hive防止数据误删
  3. IFrame标签的两个用法介绍
  4. 圆形坠落模拟算法设计
  5. 关于solaris中 crontab -e 出现数字0的解决办法
  6. JavaScript中的数组 1
  7. linux cpu 个数、核心数、线程数
  8. X509证书结构解析
  9. IPguard文档控制策略
  10. 配电管理地理信息系统解决方案
  11. 中文编程语言——易语言,到底是用来干什么的?易语言值得学习吗?易语言的优势有什么?
  12. JS 转换格林尼治时间
  13. 算法学习01- 生兔子的问题
  14. 量子计算机 量子不确定性_量子计算机将打破互联网,但前提是我们让它们
  15. 量化策略:驾驭交易之轴心点研究(一)
  16. ORA-01652(永久表空间临时段不能扩展情况分析)
  17. springMVC Controller层接收 JSON参数遇到得问题
  18. 小程序赚钱快,对不起我只能告诉你这么多!
  19. CATIA.P3.V5R21兼容版安装包和安装视频分享,CATIA新手必备
  20. SpringCloud【框架】

热门文章

  1. matlab读取xlsx文件,从电子表格读取数据
  2. 基于vue2.0打造移动商城页面实践 vue实现商城购物车功能 基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果...
  3. 2016012072+张济吨+散列函数的应用及其安全性
  4. Linux基础操作-分区概念
  5. BFC的布局规则以及触发条件
  6. Python3之requests模块
  7. bzoj 1500 [NOI 2005] 维修数列
  8. 【转】Python的XML-RPC简介
  9. Android_activity的生命周期
  10. WINCE6内核编译问题汇总