以海量用户规模和社交网络业务著称腾讯公司,在多年前便开始动手的支配 DevOps。在前不久腾讯云 + 未来开拓者专场,腾讯云的资深工程师和架构师,通过 DevOps 敏捷开拓工具集、DevOps 流水线运用实践、云端架构与支配、无做事器架构等主题内容先容,详细讲解了腾讯云海量业务下的 DevOps 架构探索与实践,InfoQ 将个中精彩内容做了整理,希望给更多人供应参考和借鉴。
腾讯云 DevOps 敏捷开拓工具集
一样平常的软件产品开拓,包含用户需求剖析、架构设计、设计模型、编码、测试几个过程。而 DevOps,便是这些过程实现的纽带,通过开拓运营的一体化,可以将软件开拓流程无缝的衔接在一起。

为了顺利完成项目的履行,腾讯云开放了 TAPD(腾讯敏捷研发平台)、TGit(腾讯 Git 源代码管理)、CCI(持续集成做事)、SODA(游戏持续集成)、织云(云端运维)等 DevOps 系列工具集,通过这些平台,开拓者可快速完成产品的交付与运维。
TAPD 是长期做事于腾讯自有业务的敏捷开拓平台。自 2006 年腾讯实行敏捷开拓开始,TAPD 在十年韶光内做事了腾讯内部上千团队的敏捷研发,并梳理出迭代模型、大象模型、极速模型等三种范例研发模型。
TGit 是一款基于 Git 的代码管理工具。支撑了腾讯各个业务的代码的编写和代码的存储、积存、支配流程。TGit 支持多客户端支持,并能供应类 Github 的操作体验,支持在线代码检测与评论等。
CCI 持续集成做事是一款针对 Web 部的前端后台的数据集成的产品。目前,CCI 可以支持 JAVA,C++、PHP 等措辞的构建,并能和 TGit、织云原生兼容。开拓者可以将代码写在 TGit,又能非常方便的把代码拉到 CCI 上面去做构建,同时,CCI 还支持定时构建,以及代码提交韶光触发构建功能。
织云是源自于腾讯的企业级运维管理平台。亦被称为一站式新态企业运维平台,它支持公有云、私有云、稠浊云管理,能一键式运维操作,灵巧高效。通过智能构建,织云已能实现无人工值守、多触发器支持和代码自动扫描等持续集成功能,整合开拓与运维过程。
以上这些产品将陆续开放,感兴趣的读者可以登录腾讯云官网注册试用。同时,腾讯云 Devops 产品总监秦俊现场透露,腾讯云将在近期与微信团队互助推出一个新的功能,该功能依托腾讯云 DevOps 的体系培植,可帮助小程序开拓者实现腾讯云帐号的开通、代码支配、代码的上传支配全流程。这项功能将于近期跟随新版小程序开拓工具对开拓者免费开放。
腾讯云 DevOps 流水线平台运用实践
前面说到了腾讯的 DevOps 工具集,那么,这些工具集在详细的开拓流程上都起着若何的浸染呢?腾讯织云卖力人梁定安从腾讯 DevOpsy 运用实践、运用架构的可运维性以及织云产品的支配实践三个角度做了详细的阐述。
腾讯云 DevOps 运用实践
如图以下为腾讯云的 DevOps 流水线,开拓职员录入需求,经由 TAPD 项目评审,分解成一个个的直接开拓实现的分外功能,存放在腾讯云内部,进入到持续集成的阶段,做自动化的编译、集成、自动化测试、代码的近态扫描,如果有一些不合规范的代码,主干测试无法通过。这时候须要 CIS 办理问题,问题办理往后会形成一个制品库,和织云系统进行对接,织云系统拿到制品库,按照腾讯标准的发布、管理的方案,把制品、软件发布莅临盆环境,进而去做灰度测试,再上线的一个过程。腾讯的海量业务利用这套流水线系统可以轻松完成从需求设计、代码管理、开拓测试、发布 & 运维的各阶段事情。
这个中,TAPD 支持敏捷项目管理,实现产品需求与开拓分支关联;TGit 支持代码管理,通过 webhook 钩子触发持续集成系统的能力;CIS 卖力自动化完成编译、测试等任务,以输出制品库:软件包或 docker 镜像;织云对接 CIS 获取制品,以自动化的办法完成业务的发布 / 变更任务。
运用架构的可运维性
对付互联网产品而言,发布仅仅只是开始,在持续为用户输出代价的运营过程,由运维团队和系统来保障做事的稳定可靠。梁定安认为要实现可运维性的过程可分为 4 个阶段:统一架构、运维规范、标准操作、运维自动化。
统一框架:将互联网的业务架构抽象成为三层:接入层、逻辑层、数据层,框架化的引入,可以有效的降落开拓的事情量,通过有限的编码即可实现快速业务功能需求。
运维规范:组件可以将共性的做事统一化,如腾讯内部大量运用的软件路由做事,可以帮助实现负载均衡、名字做事、容错、过载保护、流量调度的功能特性。除了为业务办理了路由的难题,也使日常的运维管理变得更加大略高效。
标准操作:将事情职员的操作标准化,避免由于岗位职员的流动而导致产品重构,造成重复造车征象的发生。
运维自动化:自动化运维的方案,便是统一方案、标准化、配置化、自动化、监控,这里不能漏了监控。
通过虽以上可运维内容的统一方案与标准化,可以保障了业务架构有序的发展,架构的演化从千人千面进化成千人一壁。然后结合框架与组件的非功能规范,使运维保障业务质量与效率的方案落实。
腾讯云织云的持续支配实践
随后,梁定安着重先容了腾讯云织云平台的支配实践。下图为腾讯织云功能的一览图,在织云平台中,将标准化的运维工具配置化,每个微做事集群在织云 CMDB 中被定义身分歧的模块名。从统一方案、标准化、配置化、自动化到联动监控,用持续支配的流水线工具串行起来,用户将得到一个体系化的运维能力模型,基于此模型,运维团队能够全局方案持续支配的能力与工具系统。
以织云的自动化扩容流程为例,将原子运维工具或系统接口以运维的最优操作流程组织起来,自动化的完成扩容操作,并且担保每个步骤都会被严格实行到位,不会受个人的履历深浅或文档的新旧影响。从而办理运维团队“文档即过期,离职即消逝”的难题。
云端架构方案与运用案例
如果说 Devops 是保障产品开拓顺畅的通畅证,那么,云端架构的方案便是产品顺利进行的指南针。一个好的架构方案,每每能够使产品在开拓的过程中少踩很多“坑”。腾讯云架构师张兴华认为,企业在云端架构设计时一样平常面临以下几大架构痛点,并且根据这些痛点提出办理方案:
第一,高可用寻衅。如果产品在架构设计上或者在容灾方面考虑不周,将面临高可用的寻衅。办理方案上可以利用云的资源做多地域的容灾,在架构层面可以进行不同层级的拆分,比如讲将核心做事和非核心做事进行分级,同时还可以一些做灰度或者迭代的改进。
第二,性能瓶颈。在数据库的调用过程中,高并发的交互可能会导致数据库完备无法及时相应。办理方案可以根据须要推出不同的数据库版本或者针对不同的场景或业务类型,选择不同的云做事进行不同的优化。
第三,数据库设计。自建或者自己掩护自有的数据库是比较难的,企业须要提前做好业务上长期方案,提前做好业务分库、分表的设计。
第四,安全。目前 DDos 攻击流量最新数据超过了 600G,抗 DDos 须要借助云做事未雨绸缪;同时在操作、容灾、数据、权限等安全层面都须要在架构上提前方案。
腾讯云架构方案案例实践
现场,张兴华以摩拜单车为例,详细解读了腾讯是如何帮助用户做架构方案的。摩拜今年年初从其他云迁到腾讯云,开始摩拜的架构包括流量相比拟较小,架构也相对大略。但是这里有一个问题是在逻辑层没有做拆分,只做了单一 Region 的支配。随着业务的发展,这样的架构已经无法知足需求。
腾讯云对摩拜单车进行了整体架构优化,将整体安全接入摩拜架构体系,并在路由层及业务逻辑层进行了核心功能业务拆分,做到微做事化;在数据层面,实现了 Mongo 定制化优化,Mysql 性能定制优化,同时深度整合了腾讯云的云 API,构建了摩拜的 Devops 系统,快速稳步发展。在运营管理上,腾讯云给摩拜推出黑石 + 大数据的方案,黑石 +Docker 的办理方案,能够快速的去构建、支配和扩展,形成了一个比较通用的高可用架构设计。张兴华表示,对付快速发展企业来说,随着技能架构的演进,企业须要提前做业务的拆分与方案,支持高可用、可扩展,做到多地域双活与多活支配。
让云端开拓更大略的无做事架构
在微做事还朝阳东升的时候,无做事架构就以其弹性伸缩、按需付费以及无掩护等特点得到了很多开拓者的青睐。腾讯架构平台部技能专家陈杰表示,无做事架构的核心理念便是给全体做事供应一种公共的架构,针对性办理做事的接入、安全、扩容、容灾、分布等一系列问题。
腾讯云的无做事器架构包含两个部分组成,第一个是 FAAS(函数即做事),供应可打算的云做事,这是无做事器的核心部分。第二个是 BAAS(后端即做事),包括云工具存储、云数据库、云行列步队等。企业可以在云函数里面实行还可以访问各种的云做事,这样的话,云函数不仅是一种定制的打算,还可以作为全体云平台的领悟器,大家可以把云函数加上后台做事当成一个有机的整体。
云函数代价紧张表示在四个方面。1)简化架构,云函数因此函数粒度来组织的做事,是一种天生的微做事架构;2)简化开拓,无需关注底层硬件配置、OS 等,只需撰写最核心业务逻辑,实当代码及做事;3)简化运维,对付云函数而言,无须关心做事器的运维和做事本身的配置,它又是一种天然的 Devops;4)是减少支出,云函数可以办理云主机 80% 以上的本钱闲置的问题,由于它只有了要求才分配资源。
无做事架构 VS 传统开拓模式
那么,无做事架构和传统开拓模式项目,有哪些利害呢?下图从架构设计、代码开拓、代码调试等六个角度剖析了这二者的收益或不敷。
从以上比拟不丢脸出,云函数的特点包括按需实时分配函数实例、函数实例扩缩容速率很快、按实际利用计费等,比较适宜用于构建无状态微做事,对付有明显波峰波谷效应的做事,有明显的本钱上风。但不太适宜延时非常敏感(<20ms)或持续打算韶光非常长(>5 分钟)的场景。目前,腾讯推出了 SCF 无做事器云函数,云函数会为大家准备一个免费额度包,如果是低频调用的做事,很大可能无须支付任何用度,感兴趣的开拓者可以前往体验。
写在末了
DevOps 虽然火热,但它的落地却也并非是一挥而就的,须要通过全局思考、统一方案,在反复实践中逐步改进和完善,终极才能根据不同的业务特性,供应一套完全体系化的运维办理方案。在腾讯多年的运营履历中,DevOps 虽是贯穿全体运用软件生命周期的,现在的发布完成依然并非终点。