TCS 弹性计算平台:像工匠一样耕耘云计算

序言

2016年腾讯架构平台部相继推出了两朵云 -- 云存储和云接入,在公司内外打造了良好的口碑同时,资源量也得到了增加,依托于部门海量的存储资源,建设了TCS(Tencent ComputeServices)-弹性计算平台。截至目前,弹性平台运营的计算力,服务了公司图片压缩、视频转码、离线计算和AI计算等多个计算场景,前不久平台服务的AI 绝艺围棋获得了第十届UEC比赛的冠军。平台强大的计算并非直购设备堆积,而是未增加任何预算成本,默默挖矿耕耘,不断优化逻辑细节所得。

平台演变

2012年图片上传下载量剧增,为扛住海量图片压缩,平台快速上线直接混部策略,存储和压缩同机部署,虽然服务了业务的增长,但运营困难,资源抢占的问题日显,给运维带来了繁巨的工作量,为解决资源抢占等问题,平台启动重构,取消直接混部,改用KVM虚拟机,平台维护虚拟机生命周期,截至2016年,虽稳定服务了图片压缩、视频转码,但资源静态不可弹性调度,利用率低。2016年被AI引爆,大数据计算更是指数级增长,虚拟机的静态资源策略已不适用,需要一个弹性可调度平台盘活部门整体和公司闲置资源的计算力,TCS-弹性计算平台应运而生。

整体设计

弹性平台对外提供名字化服务供用户接入,并在服务中集成了负载均衡、容灾逻辑,用户无需自主设计架构,即可享受到集群化服务。针对某些已有管理系统的业务,平台也提供了资源租赁策略,用户无需改动,便可快速接入。 平台借助docker技术,并解决了负载的监控调度、资源的弹性伸缩和分布式镜像管理等方面的问题。

3.1.监控调度:秒级反馈,预先调度

1)CPU监控:打造自主的CPI(Cycles PerInstruction)监控指标,结合定制化内核cpu优先级策略,当高优先级的容器cpu指令延时增加,自动调节低优先级容器的cpu-quota值,保障业务服务正常。若低优先级的quota值低于阈值,会触发母机替换,高优先级容器可全占母机。 2)内存:pressure_level预先调度和优先级oom兜底;借助内核pressure_level技术,当pressure_level event触发,依据容器的优先级,调度低优先级容器到其他母机,若出现调度不及时触发oom,则会按照cgroup对oom优先级配置,将低优先级的容器快速回收,释放内存;然后低优先级容器会被调度到其他容器,继续服务。 3)IO监控:引入tlinux 内核的buffer-io限速方案,对每个上架的容器配置带宽限制,xfs quota限制配额。

3.2.弹性伸缩:水平伸缩和垂直伸缩

1)水平伸缩:基于业务负载状况,业务低峰期自动缩减容器量,高峰期自动扩容,业务上削峰填谷,资源所见即所得,维持资源高使用率的同时,也缓解了业务突发运维扩容的压力。 2)垂直伸缩:针对有状态的逻辑,每次的水平伸缩都会打乱原路由表,甚至会导致并发写脏数据的问题,平台使用单机资源垂直伸缩方案,在维护原路由信息的前提下,对单机资源做加减容器操作,盘活不可伸缩的母机低峰期的计算资源。

3.3.镜像服务:镜像和配置分离

1)镜像分发:借助部门的cos云存储平台搭建的分布式镜像服务,实现了标准镜像预先分发,资源服务秒级上线。 2)配置隔离:一个镜像,多套配置,配置变更不会变动镜像,尽可能的减少对业务影响

价值依归

4.1.服务场景

平台当前服务多个业务,根据业务场景和计算的实时性划分了3种类型,每种类型都有相应的模型,作为监控调度、资源抢占的服务基础。

弹性平台优先保证在线服务型和在线计算型业务,尤其在节假日高峰期,平台会自动腾挪离线类型业务资源服务用户请求;针对离线计算业务,平台采用核时量化,实时水平和垂直伸缩业务计算力,资源上互补在线型业务。

4.2.CPU提升

基于弹性伸缩的功能,平台维持资源使用率稳定的前提下,资源量可随着请求变化波动,摒弃了资源量恒定状态中,资源使用率随请求波峰波谷波动的使用方式;后者的资源量因业务峰值而定,使用率较前者低许多。当前平台整体cpu均值使用率(全天24小时求平均)36%,相比去年提升显著。

展望

TCS-弹性计算平台2017年底将全面服务AI计算、游戏类场景模拟等新兴的计算需求,资源调度可定制化,持续提升cpu使用率,并且以弹性平台为基础,搭建TCS-云函数计算平台、FPGA函数计算,在云计算领域继续挖矿耕耘。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

MySQL中的Percona-toolkit工具由来漫谈

首先问一个问题,你听说过下面这两个工具吗? Maatkit 和Aspersa 如果听过,可能就暴露年龄了,你如果现在去查Aspersa相关的文章,会发现下载链接...

2814
来自专栏北京马哥教育

Docker Swarm 已死,Kubernetes 永生

转载声明:本文转载自「EAWorld」,搜索「eaworld」即可关注。 原文标题:The Gravity of Kubernetes 原文作者:Jeff M...

3.9K13
来自专栏顶级程序员

为什么我会被Kubernetes“洗脑”?

文 | Jeff Meyerson Kubernetes 已在容器编排之战中取胜,未来很可能会成为“多云”之上的标准层,进而为分布式系统的分发和运行带来根本性的...

4619
来自专栏SDNLAB

【双语频道】ONOS架构原理

The purpose of this ONOS talk is to convey the rationale behind our approach to ...

3409
来自专栏cloudskyme

虚拟化技术(1)——介绍

什么是虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟...

3958
来自专栏EAWorld

说说K8S是怎么来的,又是怎么没的

原文标题:The Gravity of Kubernetes 原文作者:Jeff Meyerson 普元云计算架构师宋潇男点评: Kubernetes已在容器...

4026
来自专栏数据派THU

数据蒋堂 | 存储过程的利之弊

来源:数据蒋堂 作者:蒋步星 本文长度为2240字,建议阅读5分钟 本文通过剖析存储过程的优点,探查存储过程的潜在风险及应用场景。 存储过程是数据库领域中应用非...

2378
来自专栏blackpiglet

代码角度分析《旅行青蛙》:一

  17 年春节前,《旅行青蛙》火的不行,反应慢一拍的我最近才开始迷上这个游戏。最近我的青蛙出去旅行不知所踪好几天了,作为一个不甘心当“佛系青年”的程序员,我想...

1023
来自专栏花叔的专栏

“公众号数据助手”小程序真的出现了

额,老早之前花叔就想做一个公众号管理相关的小程序,然而微信今天就推出了一个类似的小程序,好了,我不用做了。 回归正题,介绍一下这个小程序吧,通过长按以下二维码能...

47611
来自专栏SDNLAB

如何评估云原生NFV中的容器化VNF部署

2084

扫码关注云+社区

领取腾讯云代金券