在DevOps的理念中,企业的IT价值链流转的速度越快,意味着企业的互联网产品的交付能力越强,这也意味着在同行业的竞争中,企业凭借IT能力的优势,能够收获更大的竞争优势。也因此,DevOps框架的落地与实践,成为时下非常热门的话题。

\\

以海量用户规模和社交网络业务著称腾讯公司,在多年前便开始着手的部署DevOps。在前不久腾讯云+未来开发者专场,腾讯的资深工程师和架构师,通过 DevOps敏捷开发工具集、DevOps流水线应用实践、云端架构与部署、无服务器架构等主题内容介绍,详细讲解了腾讯海量业务下的DevOps架构探索与实践,InfoQ将其中精彩内容做了整理,希望给更多人提供参考和借鉴。

\\

腾讯云 DevOps 敏捷开发工具集

\\

一般的软件产品开发,包含用户需求分析、架构设计、设计模型、编码、测试几个过程。而DevOps,就是这些过程实现的纽带,通过开发运营的一体化,可以将软件开发流程无缝的衔接在一起。

\\

\\

为了顺利完成项目的实施,腾讯云开放了TAPD(腾讯敏捷研发平台)、TGit(腾讯Git源代码管理)、CCI(持续集成服务)、SODA(游戏持续集成)、织云(云端运维)等DevOps系列工具集,通过这些平台,开发者可快速完成产品的交付与运维。

\\

  • TAPD是长期服务于腾讯自有业务的敏捷开发平台。自2006年腾讯推行敏捷开发开始,TAPD在十年时间内服务了腾讯内部上千团队的敏捷研发,并梳理出迭代模型、大象模型、极速模型等三种典型研发模型。\\t
  • TGit是一款基于Git的代码管理工具。支撑了腾讯各个业务的代码的编写和代码的存储、积存、部署流程。TGit支持多客户端支持,并能提供类Github的操作体验,支持在线代码检测与评论等。\\t
  • CCI持续集成服务是一款针对Web部的前端后台的数据集成的产品。目前,CCI可以支持JAVA,C++、PHP等语言的构建,并能和TGit、织云原生兼容。开发者可以将代码写在TGit,又能非常方便的把代码拉到CCI上面去做构建,同时,CCI还支持定时构建,以及代码提交时间触发构建功能。\\t
  • 织云是源自于腾讯的企业级运维管理平台。亦被称为一站式新态企业运维平台,它支持公有云、私有云、混合云管理,能一键式运维操作,灵活高效。通过智能构建,织云已能实现无人工值守、多触发器支持和代码自动扫描等持续集成功能,整合开发与运维过程。\

以上这些产品将陆续开放,感兴趣的读者可以登录腾讯云官网注册试用。同时,腾讯云Devops产品总监秦俊现场透露,腾讯云将在近期与微信团队合作推出一个新的功能,该功能依托腾讯云DevOps的体系建设,可帮助小程序开发者实现腾讯云帐号的开通、代码部署、代码的上传部署全流程。这项功能将于近期跟随新版小程序开发工具对开发者免费开放。

\\

腾讯云DevOps流水线平台应用实践

\\

前面说到了腾讯的DevOps工具集,那么,这些工具集在具体的开发流程上都起着怎样的作用呢?腾讯织云负责人梁定安从腾讯DevOpsy应用实践、应用架构的可运维性以及织云产品的部署实践三个角度做了详细的阐述。

\\

腾讯云DevOps应用实践

\\

如图以下为腾讯的DevOps流水线,开发人员录入需求,经过TAPD项目评审,分解成一个个的直接开发实现的特殊功能,存放在腾讯内部,进入到持续集成的阶段,做自动化的编译、集成、自动化测试、代码的近态扫描,如果有一些不合规范的代码,主干测试无法通过。这时候需要CIS解决问题,问题解决以后会形成一个制品库,和织云系统进行对接,织云系统拿到制品库,按照腾讯标准的发布、管理的方案,把制品、软件发布到生产环境,进而去做灰度测试,再上线的一个过程。腾讯的海量业务使用这套流水线系统可以轻松完成从需求设计、代码管理、开发测试、发布\u0026amp;运维的各阶段工作。

\\

\\

这其中,TAPD支持敏捷项目管理,实现产品需求与开发分支关联;TGit支持代码管理,通过webhook钩子触发持续集成系统的能力;CIS负责自动化完成编译、测试等任务,以输出制品库:软件包或docker镜像;织云对接CIS获取制品,以自动化的方式完成业务的发布/变更任务。

\\

\\

应用架构的可运维性

\\

对于互联网产品而言,发布仅仅只是开始,在持续为用户输出价值的运营过程,由运维团队和系统来保障服务的稳定可靠。梁定安认为要实现可运维性的过程可分为4个阶段:统一架构、运维规范、标准操作、运维自动化。

\\

  • 统一框架:将互联网的业务架构抽象成为三层:接入层、逻辑层、数据层,框架化的引入,可以有效的降低开发的工作量,通过有限的编码即可实现快速业务功能需求。\\t
  • 运维规范:组件可以将共性的服务统一化,如腾讯内部大量应用的软件路由服务,可以帮助实现负载均衡、名字服务、容错、过载保护、流量调度的功能特性。除了为业务解决了路由的难题,也使日常的运维管理变得更加简单高效。\\t
  • 标准操作:将工作人员的操作标准化,避免因为岗位人员的流动而导致产品重构,造成重复造车现象的发生。\\t
  • 运维自动化:自动化运维的方案,就是统一规划、标准化、配置化、自动化、监控,这里不能漏了监控。\

通过虽以上可运维内容的统一规划与标准化,可以保障了业务架构有序的发展,架构的演变从千人千面进化成千人一面。然后结合框架与组件的非功能规范,使运维保障业务质量与效率的规划落实。

\\

腾讯云织云的持续部署实践

\\

随后,梁定安着重介绍了腾讯织云平台的部署实践。下图为腾讯织云功能的一览图,在织云平台中,将标准化的运维对象配置化,每个微服务集群在织云CMDB中被定义成不同的模块名。从统一规划、标准化、配置化、自动化到联动监控,用持续部署的流水线工具串行起来,用户将得到一个体系化的运维能力模型,基于此模型,运维团队能够全局规划持续部署的能力与工具系统。

\\

\\

以织云的自动化扩容流程为例,将原子运维工具或系统接口以运维的最优操作流程组织起来,自动化的完成扩容操作,并且保证每个步骤都会被严格执行到位,不会受个人的经验深浅或文档的新旧影响。从而解决运维团队“文档即过期,离职即消失”的难题。

\\

\\

云端架构规划与应用案例

\\

如果说Devops是保障产品开发顺畅的通行证,那么,云端架构的规划就是产品顺利进行的指南针。一个好的架构规划,往往能够使产品在开发的过程中少踩很多“坑”。腾讯云架构师张兴华认为,企业在云端架构设计时一般面临以下几大架构痛点,并且根据这些痛点提出解决方案:

\\

  • 第一,高可用挑战。如果产品在架构设计上或者在容灾方面考虑不周,将面临高可用的挑战。解决方案上可以利用云的资源做多地域的容灾,在架构层面可以进行不同层级的拆分,比如讲将核心服务和非核心服务进行分级,同时还可以一些做灰度或者迭代的改进。\\t
  • 第二,性能瓶颈。在数据库的调用过程中,高并发的交互可能会导致数据库完全无法及时响应。解决方案可以根据需要推出不同的数据库版本或者针对不同的场景或业务类型,选择不同的云服务进行不同的优化。\\t
  • 第三,数据库设计。自建或者自己维护自有的数据库是比较难的,企业需要提前做好业务上长期规划,提前做好业务分库、分表的设计。\\t
  • 第四,安全。目前DDos攻击流量最新数据超过了600G,抗DDos需要借助云服务未雨绸缪;同时在操作、容灾、数据、权限等安全层面都需要在架构上提前规划。\

腾讯云架构规划案例实践

\\

现场,张兴华以摩拜单车为例,详细解读了腾讯是如何帮助用户做架构规划的。摩拜今年年初从其他云迁到腾讯云,开始摩拜的架构包括流量相对比较小,架构也相对简单。但是这里有一个问题是在逻辑层没有做拆分,只做了单一Region的部署。随着业务的发展,这样的架构已经无法满足需求。

\\

\\

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

\\

让云端开发更简单的无服务架构

\\

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

\\

腾讯的无服务器架构包含两个部分组成,第一个是FAAS(函数即服务),提供可计算的云服务,这是无服务器的核心部分。第二个是BAAS(后端即服务),包括云对象存储、云数据库、云消息队列等。企业可以在云函数里面执行还可以访问各类的云服务,这样的话,云函数不仅是一种定制的计算,还可以作为整个云平台的融合器,大家可以把云函数加上后台服务当成一个有机的整体。

\\

\\

云函数价值主要体现在四个方面。1)简化架构,云函数是以函数粒度来组织的服务,是一种天生的微服务架构;2)简化开发,无需关注底层硬件配置、OS等,只需撰写最核心业务逻辑,实现代码及服务;3)简化运维,对于云函数而言,无须关心服务器的运维和服务本身的配置,它又是一种天然的Devops;4)是减少支出,云函数可以解决云主机80%以上的成本闲置的问题,因为它只有了请求才分配资源。

\\

无服务架构VS传统开发模式

\\

那么,无服务架构和传统开发模式项目,有哪些优劣呢?下图从架构设计、代码开发、代码调试等六个角度分析了这二者的收益或不足。

\\

\\

从以上对比不难看出,云函数的特点包括按需实时分配函数实例、函数实例扩缩容速度很快、按实际使用计费等,比较适合用于构建无状态微服务,对于有明显波峰波谷效应的服务,有明显的成本优势。但不太适合延时非常敏感(\u0026lt;20ms)或持续计算时间非常长(\u0026gt;5分钟)的场景。目前,腾讯推出了SCF无服务器云函数,云函数会为大家准备一个免费额度包,如果是低频调用的服务,很大可能无须支付任何费用,感兴趣的开发者可以前往体验。

\\

写在最后

\\

DevOps虽然火热,但它的落地却也并非是一蹴而就的,需要通过全局思考、统一规划,在反复实践中逐步改进和完善,最终才能根据不同的业务特性,提供一套完整体系化的运维解决方案。在腾讯多年的运营经验中,DevOps虽是贯穿整个应用软件生命周期的,现在的发布完成依然并非终点。

腾讯云海量社交网络业务下的DevOps架构应用实践相关推荐

  1. 李郁韬:短期爆发还是未来趋势?腾讯云海量音视频通信服务背后的技术发展

    面临特殊时期,无论远程办公.还是学校"停课不停学"都成为时下的必然选择,众多视频会议平台也在特殊环境下开启了短期免费开放及功能服务.但与此同时不可避免会带来突发的大规模在线视频与协 ...

  2. 浅尝不辄止系列之试试腾讯云的 TUIRoom(下)

    书接上回<浅尝不辄止系列之试试腾讯云的 TUIRoom(上)> 前提 上篇主要聊了一下集成 TURRoom 的前端部分. 涉及到的代码不是很多,主要是思路,因为我觉得思路和画面感对程序员来 ...

  3. 腾讯云轻量应用服务器下使用RPM包方式安装GreatSQL单主环境

    腾讯云轻量应用服务器下使用RPM方式安装GreatSQL数据库 今天主要介绍使用RPM包方式在腾讯云轻量应用服务器上安装部署GreatSQL数据库,服务器系统为CentOS 7.6并以root身份进行 ...

  4. 腾讯云服务器如何安装应用软件,腾讯云服务器Ubuntu环境下通过Apt-get安装软件...

    腾讯云服务器Ubuntu环境下通过Apt-get安装软件?腾讯云提供了Apt-get下载源.操作系统为Ubuntu12.04的云服务器,用户可通过Apt-get快速安装软件.对于apt-get下载源, ...

  5. 腾讯云分布式高可靠消息队列 CMQ 架构

    在分布式大行其道的今天,我们在系统内部.平台之间广泛运用消息中间件进行数据交换及解耦.CMQ 是腾讯云内部自研基于的高可靠.强一致.可扩展分 布式消息队列,在腾讯内部包括微信手机 QQ 业务红包.腾讯 ...

  6. 国产开源数据库:腾讯云TBase在分布式HTAP领域的探索与实践

    导语 | TBase 是腾讯TEG数据平台团队在开源 PostgreSQL 的基础上研发的企业级分布式 HTAP 数据库系统,可在同一数据库集群中同时为客户提供强一致高并发的分布式在线事务能力以及高性 ...

  7. 腾讯云技术公开课:公有云架构演进之路

    腾讯云技术公开课专注于云计算方面的技术分享,将定期邀请腾讯云及相关领域的技术专家,通过在线视频直播的方式,与广大开发者分享腾讯云在云计算领域积累的最佳实践和经验. 3月27日,将举办第一期技术公开课, ...

  8. 腾讯信息流亿级相似视频识别技术架构优化实践

    前言:本文转载自InfoQ,原链接如下.本人为作者之一. InfoQ官网文章 InfoQ微信公众号文章 腾讯信息流亿级别相似视频识别技术架构优化实践 作者:邹建勋,袁易之,常郅博 1.信息流业务背景介 ...

  9. 【腾讯云】Ubuntu16.04下搭建Java开发环境一站式服务(WinSCP、PuTTY、JDK、MySQL、Tomcat)

    购买腾讯云服务器 感觉这并没有什么好说的,直接链接进去,点击支付,简单粗暴. 链接地址:云+校园扶持计划(学生10元每月,1核2G的云服务器,还是很便宜的). 一般情况下:选择Ubuntu16.04的 ...

最新文章

  1. 未预期的符号 `( 附近有语法错误_附近的出租钢板【鑫德利兴】现货供应
  2. 另一种使用SAP SAT事务码对通过浏览器启动的应用的性能测量和分析方式
  3. native react 常用指令_React Native入门基础篇(一)
  4. SparkContext源码分析
  5. STL之 set简略介绍。
  6. npm介绍及与Node.js关联
  7. codeforces C. Sonya and Problem Wihtout a Legend(dp or 思维)
  8. Verilog入门2-用ise做38译码器和仿真
  9. 软件测试10年,如果再给我一次机会,我可能···
  10. An工具介绍之钢笔工具、铅笔工具与画笔工具
  11. 系统的设计一个指标体系
  12. 无线连接网络找不到计算机组,无线网络连接不见了的4个解决方法!电脑无线网络连接找不到如何解决?...
  13. Cesium之粒子---简单粒子特效
  14. 腾讯企业邮箱免费申请 mail-tencent.com
  15. 智能合约逆向心法1(案例篇)——34C3_CTF题目分析
  16. 智能血糖仪方案/案列/APP/小程序/项目
  17. 基于SSM的医院医疗管理系统的设计与实现
  18. nature:逆转关闭的免疫细胞保护大脑老化
  19. XShell6(配置XFTP 文件传输) 安装+简单使用教程
  20. android 強制屏幕方向,今日精品安卓App推荐:锁定屏幕旋转方向

热门文章

  1. 沈国军标签:零售业叛徒 马云的朋友 无所不能的怪兽
  2. 【计算机组成原理】门阵列译码器
  3. 搜狗浏览器或者360浏览器安装chrome 浏览器插件
  4. Be a part of making the world’s first people powered tablet
  5. 研发主管的烦恼:选择KPI还是选择OKR?
  6. 这是bing翻译的吧?
  7. 另类数字剖析车王轨迹 舒马赫的16年F1赛车人生
  8. 解决高并发项目下的热点问题
  9. 两年经验的阿里、头条面经(已拿offer),大厂面试套路屡试不爽
  10. 对于苹果电脑mac系统安装了windows双系统恢复成苹果单系统遇到的一些问题