下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

了解华为软件开发云实现DevOps落地

作者:课课家教育     来源: http://www.kokojia.com点击数:965发布时间: 2017-09-24 11:00:03

标签: DevOps软件开发云云计算

  欢迎各位阅读本篇文章,本篇文章讲述了解华为软件开发云实现DevOps落地,DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称课课家教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!

  云计算改变了服务构建和交付的模式,从最初饱受争议到万千宠爱,扮演着越来越重要的角色,为业务创新和价值交付奠定了基础。

  以此同时,在软件行业中,随着移动、社交、大数据、IoT、人工智能等众多新技术的快速发展,颠覆式创新和跨界竞争加剧,企业急需快速而且持续的创新能力,传统研发能力越来越难于满足新型研发的要求,软件生产力正在6个方面发生巨大变革:

了解华为软件开发云实现DevOps落地_DevOps_软件开发云_云计算_课课家教育

  · 研发场景

  据业界预测,到2025年,80%企业应用将运行在云中,100%应用将在云中开发,软件的开发、测试、部署、运维都在云中进行。研发工具本身将服务化、云化,并将和企业云平台进行集成,简化软件部署、发布和运维。

  · 编程语言

  Go、Scala、R、Node.js、Python等新型编程语言不断涌现,新型编程语言需要新型研发工具提供更加友好的支撑(编码调试、代码静态分析、多语言并行构建、部署)。

  · 软件架构

  基于容器的微服务化架构、Cloud Native云原生应用代表着分布式软件架构的演讲方向,这对软件研发提出了新的要求。

  · 研发工具

  研发工具正向着轻量化、服务化、云化、容器化、社交化、智能化的方向发展。

  · 研发模式

  DevOps成为继敏捷、精益之后被企业广泛接受的新型研发模式,软件服务化、云化对DevOps提出了更加强烈的诉求。

  · 交付模式

  软件交付正在从包交付向着工程化交付转变,随着容器技术的广泛应用,软件交付将逐步标准化,未来交付给客户的可能是很多的容器(Container)或者Docker File。客户只要在自己的云平台上加载即可运行,不需要安装、部署和配置。

  华为软件开发云正是在这样的背景下应运而生,并迎合这些发展趋势而设计,加速软件生产力变革,释放软件生产力,致力为企业提供智能高效的研发平台,打造开放的云端研发生态,让企业轻资产运行,专注核心业务创新,为企业提供源源不断的研发动力。

  2017年3月22日,华为以“云智软件,众享未来”为主题的软件开发云上线大会在青岛成功举办。记者针对华为软件开发云如何实现DevOps落地的问题专访华为软件开发云产品总监徐峰与华为软件开发云CTO宋勇。

  DevOps在云端的特性体现

  DevOps实际是促进开发与运维的交流与合作的条件下,以自动化工具与流程为基础,更快速、高效、和稳定的实现环境搭建,应用测试、软件发布的一种文化和趋势。在DevOps管理中,华为软件开发云还原到项目管理的本质,通过提供重点的服务(需求管理和缺陷管理),来体现云端管理的重要特征。

  在传统的CMM阶段,项目通过大版本来运作,在传统的模型中,基本是从版本的基线生长出来。徐峰认为,通过规划新的产品特性、研发过程传递。到了敏捷后,项目管理产生新的变化,随着在交付过程中插入需求,项目管理来支持迭代研发的过程。

项目管理产品架构 

  项目管理产品架构

  DevOps是一种典型的敏捷研发过程,在管理过程中始终会采用迭代来管理需求。DevOps的新增能力会随着管控相应的环境资源、部署中产生的需求和任务,不同的研发模式来增强。

  因此,华为软件开发云全面承载持续交付和DevOps的先进研发模式,实现开发、测试、运维的跨地域协同和同步迭代,支撑运营数据驱动开发,快速交付,快速反馈;实现开发测试环境、类生产环境、生产环境的一致性,简化并实现软件部署的标准化。

  软件开发云的故障保证

  软件开发云的设计除了敏捷外,较为看重的安全性和稳定性,华为软件开发云CTO表示,从技术和管理两个方面,前端机房的规划、选址、设计到云平台的设计开发和部署等等,都需要深思熟虑。比如,华为在这方面考虑AZ的布局以及整个集群的冗余设计机制。像在数据中心的选址过程中,需要考虑当地的供电稳定程度,需要建立全网的监控中心来密切监控运行情况,在管理上,也需要寄哪里一些异常情况下的紧急处理机制等。

  一个完整的体系,没有单点的技术或者方案可以解决,需要通过建立完整的保障体系,最大限度的保障云服务的安全稳定运行。

  华为多年在服务质量和可靠性、安全性方面投入重金,华为软件开发云研发中同样有非常重要的安全流程,在产品设计之初就有专业技术专家帮助解决安全和可靠性问题。对于各种工具类型以及它所需要的安全研讨在产品的设计阶段就已经融入,并进行过非常多的安全领域测试,对每一块的安全都做了多重保障。在稳定性方面,通过集群的技术和各种备份的能力保障客户数据的稳定和安全。

软件开发云的业务架构

  软件开发云的业务架构

  当前,云时代来临,业务敏捷性及可用性成为软件开发行业新的聚焦点。华为软件开发云的发布,给开发者提供了一站式云端 DevOps 平台,未来,开发技术在迅速发展的同时必将带动国内开发环境的日益成熟 ,受益更多企业级客户及开发者群体。

  DevOps如何来保障华为技术成为主流

  针对主流的研发模式,徐峰认为,对于软件工程领域,没有一样东西可以适应所有,不同的软件形态适用于不同的开发模式。DevOps是云时代产生的主流研发模式,并不适用航天领域。航天系统需采用传统的瀑布模式,反复进行设置和验证。但是随着现在云时代的到来,互联网的业务需要更快适应市场的变化和需求,要更加敏捷才能够更快适应时代的发展。

  敏捷实践打破了原有实践。后来发展到持续交付模式,持续交付自动化能力使产品的版本交付时间更短。云时代随着软件形态的变化,服务变得力度更小,微服务模式也因此产生。对小服务的开发、测试、部署和升级,演变成DevOps模式。徐峰认为,对于华为,每一次变化都是紧跟前沿。从最早的CMM软件工程方法,随着进一步相应的需求,后续推动了持续交付的发展,现在随着微服务时代的到来,华为把整个研发流程进一步向后延展后,出现了DevOps,并集成了三十年积累的软件工程的经验,以及先进的工具和实践。

Gartner 2016年技术走向

  Gartner 2016年技术走向

  通过上图,我们能够看出微服务对目前是非常主流的技术,它不仅仅是技术架构,更是一种文化和自改进的交付模式,DevOps就是微服务的基础。所以,在云时代主流的项目管理应该融合敏捷设计理念,其中需要包含以下几个功能:

  · 多项目管理

  通过关注置顶项目,省却项目查询操作;支持一键切换项目,用户可以从一个项目快速切换至其他项目;涂鸦化项目卡片风格,有效提升项目辨识度。

  · 敏捷迭代开发

  支持敏捷迭代开发,迭代计划和时间线清晰展现项目进展。

  · 多层次项目看板

  提供个人级、项目级看板,直观呈现进展与风险;树表、任务墙视图满足不同用户使用习惯。

  · 文档管理

  提供基于项目/需求的文档管理服务,支持多种类型的文件上传,确保项目经验固化及传承。

  · 社交化协作

  社交化协作,多角色跨地域协同开发效率高。

  · 多维度统计报表

  项目统计报表,企业项目统计报表展现企业级宏观进展;

  事务趋势图、完成度、分模块需求等统计报表展现项目级微观进展。

多层次项目看板

  多层次项目看板

  最后,徐峰希望把这样的一系列能力进行云化,作为一种服务开放给更多的开发者,同时也提升华为云化的能力,让软件开发变得更加的高效、简单。

  知识分享:DevOps现状

  很多组织将 开发和系统管理划分成不同的部门。 开发部门的驱动力通常是“频繁交付新特性”,而 运营部门则更关注IT服务的可靠性和IT成本投入的 效率。两者目标的不匹配,就在 开发与 运营部门之间造成了鸿沟,从而减慢了IT交付业务价值的速度。

  开发人员经常不考虑自己写的代码会对 运营造成什么影响。他们在交付代码之前,并不邀请 运营人员参与架构决策或 代码评审。

  开发人员对配置或环境进行修改之后,经常没有及时与 运营人员 沟通,导致新的代码不能运行。

  开发人员在自己的机器上手工修改配置,而没有记录所有需要的步骤。想找到必要的配置参数,通常需要尝试很多不同的参数;在得到一个可工作的状态后,往往很难识别出通过哪些最小步骤就能到达该状态。

  开发人员倾向于使用有利于快速开发的工具:对代码修改更快的反馈,更低的内存消耗,等等。这样的工具集与 运营人员面对的目标运行时环境非常不同:后者对稳定性和性能的要求远胜于灵活性。

  由于 开发人员平时使用 桌面电脑,他们倾向于使用为桌面用户优化的操作系统。生产环境的运行时系统通常都运行 服务器操作系统上。

  在 开发过程中,系统在开发者的 本地机器上运行。在 运营过程中,系统经常分布在多台服务器上,例如web服务器、 应用服务器、 数据库服务器等等。

  开发是由功能性需求(通常与业务需求直接相关)驱动的。

  运营是由非功能性需求(例如可获得性、可靠性、性能等)驱动的。

  运营人员希望尽量避免修改功能,从而降低满足非功能性需求的风险

  如果拒绝了小的修改,但给定时间段内需要修改的总量不变,那么每次变更的规模就会变大

  变更规模越大,风险也越大,因为其中涉及的区域越多

  由于 运营人员尝试避免变更,新功能流入生产环境的速度因此被延缓,从而延缓了 开发人员将特性交付给用户使用的速度。

  运营人员可能对应用程序内部缺乏了解,从而难以正确地选择运行时环境和发布流程。

  开发人员可能对运行时环境缺乏了解,从而难以正确地对代码进行调整。

  小结:它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。当然如果大家还想了解更多方面的详细内容的话呢,不妨关注课课家教育平台,在这里你肯定会有意想不到的收获的!

赞(26)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程