2017-08-25 16:50:51 cloudking000 阅读数 204

腾讯云开放DevOps敏捷开发套件,助开发者驶入开发快车道

 

开发者如何在云计算时代更好的提升开发效率?8月23日,在腾讯“云+未来”峰会北京站开发者专场上,腾讯云宣布将陆续开放DevOps(英文Development和Operations的组合)系列产品套件,帮助开发者更好地掌握云端开发技巧,提升开发效能。现场,腾讯云技术专家还就腾讯 DevOps实践、云端AI开发、云端架构与部署、无服务器架构等主题进行了详细原理分享。会上,腾讯云“云+创业”计划也面向开发者正式公布。

 

秦俊:开放DevOps敏捷开发套件,助力开发者驰骋云端

DevOps可以让人工智能(AI)、大数据(Bigdata)、云计算(Cloud)更加高效地落地,越来越多的企业和团队在践行DevOps。腾讯云DevOps产品总监秦俊表示,腾讯云将陆续开放TAPD(腾讯敏捷研发平台)、TGit(腾讯Git源代码管理)、CCI(持续集成服务)、SODA(游戏持续集成)、织云(云端运维)等DevOps相关产品套件,帮助开发者提升开发时间价值。

腾讯云DevOps产品总监秦俊

TAPD是长期服务于腾讯自有业务的敏捷开发平台。自2006年腾讯推行敏捷开发开始,TAPD在十年时间内服务了腾讯内部上千团队的敏捷研发,并梳理出迭代模型、大象模型、极速模型等三种典型研发模型。TAPD同时提供第三方服务集成能力,支持各类研发工程实践。TAPD已经全面开放注册,目前成功支撑5000多家企业进行敏捷研发协作。

 

TGit是一款基于Git的代码管理工具。支撑了腾讯各个业务的代码的编写和代码的存储、积存、部署流程。TGit支持多客户端支持,并能提供类Github的操作体验,支持在线代码检测与评论等。同时,它还能够支持多重安全保护,同级于腾讯内部的灾备、安全和防护机制,能够让开发者代码安全无忧。针对用户的私有化代码存储需求,腾讯云还联合Coding.net提供代码托管的私有化部署方式。

 

CCI持续集成服务是一款针对Web部的前端后台的数据集成的产品。目前,CCI可以支持JAVA,C++、PHP等语言的构建,并能和TGit、织云原生兼容。开发者可以将代码写在TGit,又能非常方便的把代码拉到CCI上面去做构建,同时,CCI还支持定时构建,以及代码提交时间触发构建功能。在游戏领域,腾讯云SODA平台致力于打造一个灵活开放的软件开发持续集平台,提供丰富的开发工具链,为实践敏捷开发、提升开发效率不懈努力。

 

织云是源自于腾讯的企业级运维管理平台。被称为一站式新态企业运维平台。它支持公有云、私有云、混合云管理,能一键式运维操作,灵活高效。一站接入是织云的一大特点,这样可以与腾讯云组件无缝整合,从而轻松实现一站式运维管理。通过智能构建,织云已能实现无人工值守、多触发器支持和代码自动扫描等持续集成功能,整合开发与运维过程。

 

会上,秦俊还透露,腾讯云将在近期与微信团队合作推出一个新的功能,该功能依托腾讯云DevOps的体系建设,可帮助小程序开发者实现腾讯云帐号的开通、代码部署、代码的上传部署全流程。这项功能将于近期跟随新版小程序开发工具对开发者免费开放。

王磊:AI时代物流行业的OCR应用

OCR是人工智能里面非常重要的基础能力之一。腾讯云人工智能产品总监王磊,结合物流场景解读了OCR技术。“OCR文本识别能够优化物流行业流程,解放人力降低成本。”

腾讯云人工智能产品总监王磊

王磊介绍,OCR文本识别存在三大挑战。其一,文本是由多个文字拼接组成,没有明显边界,文本框内除了笔画,其余部分均是背景,给文本识别特征提取带来难度;其二,文本是由若干汉字、英文或标点符号混合在一起,长度变化大,由于网络感知野受限,定位BOXES本身困难;其三,如果BOXES贴合精度不够,会直接导致后续的文字识别错误。腾讯优图实验室为OCR识别搭建了四层处理系统,并配备三大引擎。其中三大引擎分别是,运单的版式识别引擎,可以对运单的版式进行分类;运单的字段定位引擎;运单的字段识别引擎。

为了应对挑战,腾讯优图实验室在文本检测技术方面进行了深度优化,提出了Compact Inception,通过设计合理的网络结构来提升各尺度的文字检测/提取能力,同时引入RNN多层自适应网络和Refinement结构来提升检测完整性和准确性。

在文本识别方面,经过大量实验和实践,腾讯优图实验室对主流CNN+RNN+CTC方法进行了改进和创新:对CNN加入了横向非对称卷积和综合多种尺度感受野的特征,增强了网络对多尺度字体的支持。对RNN加入了Attention机制,它的加入,可以在所有特征块的基础上,得到每一个特征块在全局中的权重信息。简单的理解,当决定当前字是几个形似字中的哪一个时,该字所处的上下文位置和语义相关性是更具有决定意义的,甚至会比图像信息本身更重要。可以有效提升整行识别的准确率。性能上则通过网络轻量化设计和裁剪、矩阵计算优化、通道优化、GPU/CPU的定向优化等技术,保证了实际应用落地。现在腾讯云OCR能够做到7×24小时提供识别服务,每张运单5秒钟可以完成;识别准确率达到91%,并且整个识别流程不需要人工深度参与,极大的降低用户隐私泄露的风险。

张兴华:云端架构助力企业快速成长

企业IT最大的需求就是能够快速的构建和稳定高速的发展。腾讯云资深架构师张兴华认为,企业在发展过程中的IT架构会遇到的四个问题:第一,高可用挑战。如果在架构设计上或者在容灾方面考虑不周,将面临高可用的挑战,并给出高可用架构设计及规划的建议及方案。第二,性能瓶颈,需要针对不同的场景或者业务类型需求,选择不同的云服务来进行不同的优化。第三,数据库设计。需要提前做好业务上长期规划,提前做好业务分库、分表的设计。第四,安全。目前DDos攻击流量最新数据超过了600G,抗DDos需要借助云服务提前规划,未雨绸缪;同时在操作、容灾、数据、权限等安全层面都需要在架构上提前规划。

腾讯架构平台部技术专家张兴华

张兴华表示,对于快速成长企业来说,建议随着技术架构的演进提前做业务的拆分与规划,需要支持高可用、可扩展,做到多地域双活与多活部署。以摩拜单车为例,腾讯云协助摩拜单车进行了整体架构优化,将整体安全接入摩拜架构体系,并在路由层及业务逻辑层进行了核心功能业务拆分,做到微服务化;在数据层面,实现了Mongo定制化优化,Mysql性能定制优化,同时深度整合了腾讯云的云API,构建了摩拜的Devops系统,快速稳步发展。在运营管理上,腾讯云给摩拜推出黑石+大数据的方案,黑石+Docker的解决方案,能够快速的去构建、部署和扩展,形成了一个比较通用的高可用架构设计。

梁定安:腾讯织云助力高标准持续交付部署

基于腾讯内部DevOps的技术实践,腾讯云布道师、腾讯织云负责人梁定安分享了腾讯织云高标准地实现持续交付部署的经验。

腾讯织云负责人梁定安

梁定安表示,标准化、配置化、自动化、智能化的一体化运维管理系统才能要满足企业的长期发展,DevOps要求在企业中研发和运维体系必然需要相互配合,开发团队负责功能性需求实现的同时,在架构和编码上注重非功能性需求的实现,测试团队与运维团队将围绕着各自职能的需求。通过配置管理对很多复杂的运维对象进行有效管理,结合可运维性与非功能规范的要求可以很好的防止业务架构失控。

在织云平台实践中,将标准化的运维对象配置化,每个微服务集群在织云CMDB中被定义成不同的模块名。从统一规划、标准化、配置化、自动化到联动监控,用持续部署的流水线工具串行起来,用户将得到一个体系化的运维能力模型,基于此模型,运维团队能够全局规划持续部署的能力与工具系统。而通过工具编排功能,自定义运维操作流程、工单审批流程、服务请求流程,并与CMDB的业务、负责人、状态等数据接口联动,解决运维操作与配置数据状态的协同的难题,实现从ITIL离线流程到线上自动化流程的技术升级。

 

陈杰:无服务器架构,让云端开发更纯粹

在微服务还方兴未艾的时候,无服务架构就以其弹性伸缩、按需付费以及无维护等特点得到了很多开发者的青睐。腾讯架构平台部技术专家陈杰表示,云函数的核心理念就是给整个服务提供一种公共的架构,针对性解决服务的接入、安全、扩容、容灾、分布等一系列问题。

腾讯架构平台部技术专家陈杰

据介绍,云函数价值主要体现在三个方面。一是简化架构,云函数是以函数粒度来组织的服务,是一种天生的微服务架构;二是简化运维,对于云函数而言,无须关心服务器的运维和服务本身的配置,它又是一种天然的Devops;三是减少支出,云函数可以解决云主机80%以上的成本闲置的问题,因为它只有了请求才分配资源。

 

陈杰在论坛上指出,云函数的特点包括按需实时分配函数实例、函数实例扩缩容速度很快、按实际使用计费等,目前比较适合用于构建无状态微服务;对于有明显波峰波谷效应的服务,有明显的成本优势,但不太适合延时非常敏感(<20ms)或持续计算时间非常长(>5分钟)的场景,云函数会为大家准备一个免费额度包,如果是低频调用的服务,很大可能无须支付任何费用。陈杰表示,云函数目前处于发展的初级阶段,开发者可以通过体验SCF无服务器云函数,提出意见和完善方案,从而推动并见证无服务器化时代的到来。

 

会上,腾讯“云+创业”计划也面向开发者公布。该计划包括专项扶持的“孵化计划”、“起飞计划”以及“腾飞计划”,为中小企业开发者提供云资源、技术、培训等一体化的扶持。新版的“云+创业”计划将更加聚焦中小企业的实际需求,助力中小企业更稳健更快速成长。

2016-05-31 22:25:46 ups216 阅读数 1732

Team Foundation Server 2015 Update 2版本终于在2周前的//Build 2016大会上正式发布了,借这个东风,小编也完成了【DevOps敏捷开发动手实验】开源文档的第一个正式版本v2015.2

文档地址:http://docs.devopshub.cn/docs/vsalm-hols/

vsalm-hols-page

这套文档针对不同类型的人员提供了各自适合的内容:

IT研发管理人员

Visual Studio ALM概述:适合IT研发管理人员阅读,通过横向比较业界流行的几种ALM/DevOps工具平台的优劣,以及国内同类型平台的实施案例说明其能力。对于需要进行商业决策和工具选型的中高级管理人员会很有帮助。

关于软件工程:对软件工程(Software Engineering)的历史和趋势进行了简要介绍,适合有一定研发经验需要从事研发管理类工作的人员阅读,对于了解研发体系和其中的挑战会有一定的启发。

敏捷开发背景介绍:适合有一定研发和管理经验,希望能够借鉴业界先进的管理方法改进研发效率和质量,对于敏捷开发有一定兴趣但是并不清楚如何入手的技术管理人员。

系统管理员

TFS 安装部署说明这是一个零基础的引导式部署说明,教你如何从一台全新的服务器开始,一步一步完成TFS 2015 Update 2的部署。每一个步骤都有详细的说明和截图,整个文档在真实的部署过程中记录,确保细节的正确性和部署成功。

TFS Build Agent部署说明:对TFS 2015中所自带的全新的跨平台(支持:Windows/Mac/Linux)构建代理进行介绍,并详细说明了部署过程。通过这个文档,你可以在10分钟内建立自己的CI(持续集成)环境。

开发团队成员

样例项目背景:动手实验采用了一套基于《凤凰项目:一个IT运维的传奇故事》这本书为背景的应用程序代码作为样例,这套应用包括了3个子系统:ASP.NET Core的电子商务网站,J2EE/MongoDB的生产制造系统和中间件系统。我们动手实验所使用的全套代码均可在GitHub上获取。

动手实验包含以下主要场景,基本上覆盖了一个产品/项目从规划一直到上线的全过程,涉及到了微软DevOps工具链的各个主要环节

场景1:敏捷项目规划 – 产品规划,迭代规划和项目监控

在这个试验中,您和您的团队成员将使用TFS内置的敏捷规划工具完成产品backlog管理(包括用户故事和积压工作项2级backlog)。对于已经放入backlog的需求进行优先级排序,并按照产品发布版本进行迭代规划,将需求放入迭代形成迭代开发计划,对需求工作量进行估计并按照团队的能力进行迭代工作量规划。

udad-2-create-backlog-08

实验目录:

练习一:敏捷项目管理
练习二:敏捷项目集管理
练习三:根据项目特性配置敏捷规划工具
练习四:创建工作项查询和图表

场景2:持续交付 – 持续集成,自动化发布和自动化测试

在这个实验中,您和您的团队成员将完成产品从代码到上线的发布管道的建立。我们将借助TFS所提供的持续集成引擎和Release Management功能构建一条全自动的发布管道,您将可以在完成代码编写后一键发布新版本到生产环境,并在这个过程中通过测试环境完成产品功能的验证和上线审批。

CI-planning-chart

实验目录:

练习一:为你的项目添加持续集成能力
练习二:建立产品发布管道 – 实现自动发布
练习三:添加自动化测试
练习四:使用拉取请求(Pull Request)实现质量门控制

场景3:快速修复生产问题

当我们建立了项目管理体系和产品发布管道后,我们将有能力大幅度降低生产问题的平均修复时间(MTTR),平均恢复时间是评估一个开发团队效率的重要指标,只有具备了成熟的DevOps实践的团队才有能力对生产问题做出快速,准确而且可靠的响应。

在这个实验中,我们将在生产环境中模拟一个严重事故,由您和您的团队完成问题的发现,评估,分配和修复过程;并使用我们之前建立的产品发布管道部署一个新版本到生产环境。在这一过程中,您将需要对已有的测试用例进行改进,以便可以避免同样问题的再次出现。

FB-overview

实验目录:

练习一:使用探索测试工具发现和反馈问题
练习二:快速修复问题

TFS下载链接

最后,附上TFS 2015 Update 2试用版的下载链接(官网和百度网盘),文件大小:477MB.

官网

https://www.visualstudio.com/downloads/download-visual-studio-vs#

百度网盘

http://pan.baidu.com/s/1nv1WjqT 

请您提供反馈

【DevOps敏捷开发动手实验】文档的全部内容都采用开源的方式提供给大家。无论你是为企业工作还是创业者,我相信这些内容都可以帮到你快速建立一套高效的DevOps工具链平台。如果您有任何的意见和建议,请通过DevOps微信公众号或者以下coding.net的地址中的评论功能联系我。

文档的fork/clone地址如下:

https://coding.net/u/ups216/p/vsalm-hols

说明:这份文档在github上的地址仍然有效,小编已经将coding.net和github设置成了2个同时同步的remote,所有内容均保持同步。

考虑到访问速度问题,文档的日常更新工作平台已经迁移至coding.net,编译和发布平台使用中国微软Azure云数据中心(北京节点),大家在访问的时候应该能够感受到速度的提升。

参考资料

TFS 2015 Update 2新功能:http://devopshub.cn/2016/03/05/vsts-update-160305-tfs2015u2-rc2/
T
FVC/GIT混合使用优化方案:http://devopshub.cn/2015/12/15/use-tfvc-and-git-together-wisely/
拯救你的文档:http://devopshub.cn/2016/03/17/rescue-your-doc-vsalm-hols-open-source-docs/

 


请关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的信息

qrcode_for_gh_b7c158df1fd1_430

2018-07-31 15:09:33 kong2030 阅读数 3058

在软件开发生命周期中,会遇到两个瓶颈。第一,是在需求阶段和开发阶段之间,针对不断变化的需求,对软件开发者提出了高要求,所以出现了敏捷开发方法论,强调适应需求、快速迭代、持续交付。第二、是在开发阶段和构建部署阶段之间,大量完成的开发任务可能阻塞在部署阶段,影响交付,于是有了DevOps。

引用:
https://blog.csdn.net/difffate/article/details/77542768

2018-09-09 14:23:22 Agile_zhanglao 阅读数 239

Jenkins 是一个独立的开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。它可以用于自动化运行各种任务,如构建,测试和部署软件。

 

使用 Leangoo 集成 Jenkins 是在 Leangoo 中驱动 Jenkins Job 的构建,并实时显示 Job 的构建结果。在 Leangoo 中将卡片拖到配置好的构建列中,会向 Jenkins 服务器发送请求。Jenkins 接收到 Leangoo 的请求后,进行构建,并通过 Notification 插件将构建结果发送到 Leangoo。

使用场景: 当你的用户故事要发布的时候,把它放到“完成列” 就会自动触发Jenkins进行自动化构建和发布

关于Leangoo 

Leangoo(中文名:领歌)是一款基于看板的项目协作工具。

我们可以使用Leangoo可视化地进行项目需求、任务、问题和文档的管理和协作,随时随地跟踪团队工作进展。Leangoo工具的设计融入了先进的敏捷管理思想,由多位业界知名敏捷管理顾问提供支持,并由专业的敏捷开发团队精心打造而成,完美支持Scrum敏捷开发和看板方法。

它的核心是看板,通过看板共享和实时同步团队工作以实现高效协同, 团队工作体现为卡片,内容可以是需求、任务、问题等。Leangoo看板上的主要元素包括列表和泳道,列表管理工作的不同阶段或状态,泳道实现任务的分组对应,从两个纬度让团队的工作高度可视化、一目了然。

Leangoo有永久免费的在线版本(没有任何限制) 还有 在线企业版,也可以私有部署,具体可以了解官网:www.leamgoo.com

2019-11-19 17:29:15 qpalzm759 阅读数 13

近期根据我们DevOps开发团队敏捷开发项目的实践经验,将完整流程整理如下,这份规程也不完全算是敏捷专属的项目管理规程,主要是在结合我们公司实际的情况下编写出来的,大家在实际过程中可以参考。

1. 目的

规范软件产品开发项目管理过程,指导开展项目研发、管理等活动。

2. 适用范围

本章程的作用范围为软件产品开发立项至结项管理过程。

1.对项目经理开展产品规划及设计活动以及项目管理手段和应遵循的开发流程提供了指导;

2.对项目团队的日常管理活动及内容进行了指导;

3. 角色及职责定义

Scrum Master——项目负责人、项目经理

保护团队不受外界干扰,是团队的领导和推进者,负责提升 Scrum 团队的工作效率,控制 Scrum 中的“检视和适应”周期过程。与 Product Owner 一起将投资产出最大化,他确保所有的利益相关者都可以理解敏捷和尊重敏捷的理念。

Product Owner——产品负责人、产品经理

确定产品的功能,拆分用户故事。

需求功能确定优先级。

接受或拒绝开发团队的工作成果。

参与产品开发过程中的有关会议。

UI

根据用户故事,负责产品的功能交互及界面设计

组织开展人机交互及用户体验,不断跟踪改进,提高产品表现力。

参与产品开发过程中的有关会议。

开发

根据用户故事,负责产品的技术架构设计及功能开发

评估、设计及维护产品相应模块,确保模块的稳定性、易用性、高效性。

参加产品开发过程中的有关会议。

测试

根据用户故事,设计产品测试标准,确保产品品质满足市场需求。

合理分配测试资源,组织产品测试并优化测试流程及测试标准,提高测试效率。

编写产品测试用例,提交测试问题,编写测试总结报告,以测试角度来确定产品版本是否发布。

4. Scrum中的产出物

Product Backlog——Backlog 待开发项,积压的任务。

产品 Backlog 包括了所有需要交付的内容,其内容根据业务需求的价值顺序排列,每个 Backlog 的优先级是可以调整的,需求是可以增减的,因此产品 Backlog 将根据不断增长来持续驱动维护。

Sprint Backlog——Sprint 本意为“冲刺”,指迭代周期,长度通常是一至两周。

在 Sprint 开始前,定义本次 Sprint 要讨论的“Sprint Backlog”,从中产生本次 Sprint 要完成的 “已定 Product Backlog”。

已定 Product Backlog是 Sprint 计划会议的产物,它定义了团队所接受的工作量,在整个 Sprint 过程中它将保持不变。

User Story、Task——用户故事、任务

用 User Story 来描述 Sprint Backlog 里的项目,User Story

是从用户的角度对系统的某个功能模块所作的简短描述。一个 User Story

描述了项目中的一个小功能,以及这个功能完成之后将会产生什么效果,或者说能为客户创造什么价值。一个 User Story

的大小和复杂度应该以能在一个 Sprint 中完成为宜。如果 User Story 太大,可能会导致对它的开发横跨几个

Sprint,此时就应该将这个 User Story 分解。为了能够及时,高效地完成每个 Story,Scrum 团队会把每个 Story

分解成若干个 Task。每个Task 的时间最好不要超过8小时,保证在1个工作日内完成,如果 Task

的时间超过了8个小时,就说明Task的划分有问题,需要特别注意。

障碍 Backlog——问题列表,积压的待处理事务。

列举了所有团队内部和团队相关的和阻碍项目的进度的问题,Scrum Master 需要确保所有的障碍 Backlog 中的问题都已分配并可以得到解决。

5. 项目管理过程

按照产品开发过程,可将整个过程分为项目启动、需求设计、开发测试、上线、运营跟进。下面分别阐述在每个阶段过程中该如何进行。

5.1 需求启动

通常是从准备项目启动会到召开会议这个阶段,需要完成项目目标,需求范围的初步确认,项目团队成员,其他资源的安排。

确定本次开发的初步目标并达成共识

对于项目目标,需要和干系人在以下几点上达成共识:

项目的背景、目标用户、核心人员及产品定位是什么

各人员在项目中扮演的角色和对项目的作用是什么

5.2 需求设计

将确定的需求整理并输出WIKI文档及产品原型

召开需求启动会

参加人员包括:

项目经理及项目团队

其他干系人代表

主要议题包括:

申明本期开发目标范围及对组织目标的贡献。

设定期望,统一思想

文档内容的宣讲。

5.3 开发测试

A、迭代N的需求细化

考虑每个迭代需要完成的用户故事;

用户故事需包含几个部分,工作量评估、功能性需求、非功能性需求。

用户故事编写完成后需要在团队内部进行需求评审,一方面是为了向团队成员解读该需求,另一方面团队成员也可在评审时给出指导性意见。

B、测试用例评审

测试人员根据用户故事要求编写对应的测试用例,并组织项目团队进行测试用例评审。根据评审意见修改测试用例

C、开发

将用户故事的需求开发的过程。

D、开发自测

在开发过程中,每完成一个功能点,都需要及时的进行开发自测并通知产品策划人员进行验收体验。

代码提交可通过更新Jira任务的状态来关联Gitlab中代码的提交及状态更新。

E、验收

开发完成后,产品策划需要对开发完成的成果进行验收,验证其是否符合用户故事的要求,验证通过后方可流到测试环节,否则需与开发详细讨论其不符合性,其验收的checklist可做比较。

F、测试和回归

提交测试时,必须要有正确的版本。测试人员根据测试用例进行测试,在Jira中提交测试bug,并根据测试的角度给出产品是否发布的意见。

G、bug修改

在Jira中获取分配给自己的bug进行修改。

H、预生产发布

迭代一定版本后,在发布生产之前进行预生产测试。

5.4 上线

预生产测试通过后发布生产。

5.5 运营跟进

每日站立会

组织者轮流担任,负责控制节奏,记录问题,以备会后跟踪。

每人讲自己昨天做了什么,有什么问题,今天的计划是什么;

其他人了解别人的工作情况,并发现指出可能存在的问题。

对于发现的问题,鼓励认领,其余由项目经理指定责任人。

时间通常控制在15分钟内。

会议期间,更新任务墙,任务墙样式如下:

周报

反馈项目计划的执行情况,强调本周工作要达成的目标

暴露出项目的问题,特别是需要领导或其他团队需要协助的问题。

周报可在IT平台中输出。

迭代回顾

每人讲述本次迭代做的好的地方和不好的地方

回顾上个迭代不好的地方,看看改进情况。

6. 总结阶段

项目经理指导产品经理收集总结项目的产品运营数据(度量指标),同时指导团队成员从自身角色进行总结,包括测试、开发、UI等。

由PM将过程文档和经验教训总结进行归档并制定改进产品计划。



作者:进击的桃纸
链接:https://www.jianshu.com/p/bb383a11215b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

没有更多推荐了,返回首页