开发者如何在云计算时代更好的提升开发效率?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文本识别存在三大挑战。其一,文本是由多个文字拼接组成,没有明显边界,文本框内除了笔画,其余部分均是背景,给文本识别特征提取带来难度;其二,文本是由若干汉字、英文或标点符号混合在一起,长度变化大,由于网络感知野受限,定位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无服务器云函数,提出意见和完善方案,从而推动并见证无服务器化时代的到来。
会上,腾讯“云+创业”计划也面向开发者公布。该计划包括专项扶持的“孵化计划”、“起飞计划”以及“腾飞计划”,为中小企业开发者提供云资源、技术、培训等一体化的扶持。新版的“云+创业”计划将更加聚焦中小企业的实际需求,助力中小企业更稳健更快速成长。