Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >最佳案例 | QQ 相册云原生容器化之路

最佳案例 | QQ 相册云原生容器化之路

作者头像
腾讯云原生
发布于 2022-05-06 03:10:22
发布于 2022-05-06 03:10:22
5.7K04
代码可运行
举报
运行总次数:4
代码可运行

吕朋钊,腾讯业务运维高级工程师,曾负责 QQ 相册、小世界业务的存储接入层运维,现负责 AI 业务的运维。

背景

QQ 相册是 QQ 产品中为用户提供图片存储,分享等功能的成熟产品,自上线以来,一直为用户提供稳定快速的图片上传和下载服务。作为社交业务组内第一个上 TKE 的平台,相册在过去一年多时间里总结出了一套适合自身的 TKE 上云实践方案。

服务场景

自相册全面改造上云之后,新的架构如下:

问题

随着相册各模块已基本实现容器化,也暴露出了不少使用上的问题。

资源利用率提升与 CICD 优化

1. 资源利用率提升

复用集群、独立集群迁移到共享集群

复用集群因为是使用老旧机器搭建的 K8s 集群,在使用上会有比较多的损耗,而且经常会有资源抢占严重的情况。而独立集群因为母机规格不够高,会造成一定程度的资源浪费。基于这两点,把复用集群和独立集群的系统迁移到复用集群是较好的选择。会发现,迁移后的资源利用率和错误码次数都得到了明显的改善。

同时使用 HPA 弹性扩缩容,根据 CPU 利用率,让资源在业务低峰期得到释放,高峰期自动扩容,可以更好地节约成本。

2. 部署策略优化

因为当前基于一个可用区的命名空间建立一个 workload 的方案没有考虑到单可用区的容灾,所以我们在一个集群的多个可用区都建立了 workload,同时在其他地域也建立了容灾的 workload,当有机房或者地域级别的故障发生时,可以自动切换到其他机房或者地域。

3. 七彩石配置

每个应用都使用七彩石作为配置管理,在 TKE 场景中,配置变更会更改 workload yaml 中的 annotations 字段,而 downward api 会把 annotations 的值作为 volumn 注入到容器的七彩石目录,智研之后还会调用容器内部的 configuration-reload.sh 从而实现配置变更。此过程因为只涉及修改 annotations,并不会令pod和容器重建,一个 pod 的整个配置变更过程只需要几秒。

4. ClickHouse 日志查询

随着相册业务日志量的增加,日志存储成本也在升高,因此我们把日志迁移到了 ClickHouse。在可接受的影响范围内,ClickHouse 所需资源只需要 ES 的30%-50%。

5. Tget 拨测

业务监控方面结合 Tget 拨测,对 oc 域名和源站域名都做了拨测告警,提高针对 vip 被封禁或者网络导致问题的响应速度。

6. 智研一站式接入

相册正在接入智研一站式开发,使用智研提供的从需求-开发-测试-发布上线-线上运营的研发全生命周期管理服务,让相册 CICD 可以更好地提高效率。

运营开发能力

1. 告警分析手机端自助剔除

结合智研的告警分析回调接口,可以手动在企业微信界面上剔除某台机器在北极星的绑定。

2. 质量分分析

针对平常监控不到的新错误码引起的异常失败率升高,质量分分析工具可以让运维人员快速知道当前是由哪个错误码引起的质量降低。

云原生成熟度提分

1. 业务稳定是第一位

云原生提分实践过程中,发现很多模块的瓶颈并不是 CPU,而是流量或者内存,但是目前云原生的计算方式只计算 CPU,所以制定 HPA 扩缩容策略时需要综合各维度去考虑。

2. 降低 request 值

对于某些流量型的模块如 http、preupload和 prxoy,可以把 workoad 的 request 的值适当降低,这样可以让 CPU 利用率的提升有立竿见影的效果,需要结合压力测试来确认 request 降低后 CPU 不会成为瓶颈。

小结

随着相册的 TKE 业务从其他平台转到共享集群,结合部署优化策略和运营开发能力,总结如下:

  1. 云原生成熟度有了显著的提升。
  2. 相册平台累计使用 TKE 规模达5万+核。

3. 打通智研 CICD 流程,显著提升日常开发和运维效率。

宠粉福利

本文一键三连(点赞+在看+评论),评论区抽10名幸运鹅送腾讯定制T恤!活动截止至5月10日12点!

  往期精选推荐  

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云原生 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯云API:让你的代码更加稳定(Python版)
之前发了两个文章,是关于腾讯云API的使用的文章,主要是小Demo的展示,用来帮助初学者,或者最初使用者作为参考。但是有些人可能有疑问,或者新的想法,你这代码是否可以进行一些“黑科技”,当然可以。首先,上一下之前的两个代码:
None-xiaomi
2018/06/01
4K1
【非官方教程】【视频】云API实践教程(上)
云API存在的目的是什么?有控制台给我们提供给中便利,我们为什么要用API来做一些操作?
None-xiaomi
2018/07/11
1K0
腾讯云API:无服务器函数
无服务器函数是一个很好玩的东西,可以通过这个程序跑一些脚本,在一定程度上,是很方便的。但是作为新鲜事物,一般很难被大家接受,所以,我今天在这里,就做一个小例子,来激发一下大家的Idea,创造力。
None-xiaomi
2018/06/20
5.5K0
利用API自动更新腾讯dnspod子域名解析记录实现ddns
由于个人网络是动态IP地址,导致每次重启路由器都会更换IP地址,或者是租约到期也会更新IP地址。 更换IP地址后每次都需要重新设置DNSPod,假如设置不及时还可能会影响到个人搭建的某些服务。 所以当时我就在想有没有办法实现定期查询本地IP地址与DNSPod记录IP地址是否相同, 相同则不进行任何操作,不同则自动上报更新IP地址。于是乎有了下面这个利用DNSPod的API实现动态更新IP地址的方法。
铭心
2024/12/20
7280
Python 和 PHP 对腾讯云签名 hmac_sha256 算法实现
开宗明义,米扑科技在使用腾讯云的API接口签名中,按照官方示例开发PHP、Python的接口,经常会提示签名错误
阳光岛主
2019/02/18
2.6K0
如何使用腾讯云云硬盘API
腾讯云控制台允许您以类似于使用硬盘驱动器的方式管理腾讯云CVM的额外存储。只需点击腾讯云简化的GUI或图形用户界面,即可为我们的CVM添加云硬盘。但是,这不是一个在大型集群的实用方法,因此腾讯云提供了相关API。我们可以通过腾讯云官方命令行工具直接与API进行交互。
好烟
2018/08/13
5.4K0
腾讯会议API常见使用误区 - 签名报错error_code 200003
签名错误是开发者在接入API过程中非常常见的错误,如果使用的是PHP或者Java,建议基于官网提供的demo代码来改造,基本能避免这个问题。常见的签名错误分为代码实现错误、调用方式错误和其他错误这几类,以下展开来讲解,并介绍验证签名的简易方法。
liquid
2021/06/24
4.6K0
腾讯会议API常见使用误区 - 签名报错error_code 200003
腾讯云语音识别v1签名算法详解
v1的签名文档:https://cloud.tencent.com/document/product/1093/35642
算法发
2020/08/28
2.7K0
腾讯云短信服务发送验证码
  由于阿里云需要备案过的域名或者已上线的APP才能申请短信签名,我的域名正在备案,申请还没通过,这里用腾讯云实现短信验证码的发送功能。腾讯云只需要你有个公众号就能申请短信签名,而且免费赠送200条。
别团等shy哥发育
2023/02/25
8.9K0
腾讯云短信服务发送验证码
CKafka系列学习文章 - 用java实现API调用(十一)
导语:上一章节我们了解了怎么手动拼接请求URL和用API2.0签名自动生成请求URL,来调用CKafka的接口,这一章将进入开发阶段,用java实现拼接请求URL,进行API调用。
发哥说消息队列
2019/09/06
6730
【AI接入迷你赛】腾讯云产品鉴权签名 v3
腾讯云 API 会对每个请求进行身份验证,用户需要使用安全凭证,经过特定的步骤对请求进行签名 Signature,每个请求都需要在公共请求参数中指定该签名结果并以指定的方式和格式发送请求 。
用户4299935
2019/09/11
5.8K1
【AI接入迷你赛】腾讯云产品鉴权签名 v3
GitHub Actions + 腾讯云COS + SCF云函数 + 自动刷新CDN 完美自动化部署静态网站
作为强迫症患者,一直对自动化部署非常痴迷,个人认为全自动部署最重要的就是稳定可靠,经过研究测试,最终使用GitHub和腾讯云两大平台,成功完成了全自动部署网站的实践.
用户8851537
2021/07/30
1.6K0
智能识别,一键兑换:腾讯云OCR智能结构化高级版识别在零售行业的应用实践
https://cloud.tencent.com/developer/article/2323707
快乐的小白
2025/01/12
2430
智能识别,一键兑换:腾讯云OCR智能结构化高级版识别在零售行业的应用实践
如何设计一个API签名
大部分情况下,我们使用已有的API签名方案(如腾讯云API签名、阿里云APi签名、亚马逊API签名等等)即可,无需从零开始设计一个API签名方案。写这篇文章的主要目的,是希望通过思考如何去设计一个可用API签名的过程,更好地理解现有的各种大同小异的签名方案背后的设计原理,从而更好地保护好我们的API接口。当然,有需要自己设计一个签名方案的场景也可参考一下。
林喜东
2019/12/22
5.6K1
如何设计一个API签名
从零开始使用腾讯云Java SDK
腾讯云开发者工具套件(SDK)是云 API 3.0 平台的配套工具。本文以 Java SDK 为例,介绍如何使用、调试并接入腾讯云产品 API。
zhijiehou
2021/06/25
12.9K2
CKafka系列学习文章 - 手动拼接和自动拼接请求URL(十)
导语:我们来搭建开发环境调用消息队列 CKafka--手动拼接和自动拼接请求URL,来调用获取消费分组offset的接口
发哥说消息队列
2019/09/05
1K0
Python实现腾讯云CDB备份文件自动上传到COS
一、背景 需求:目前遇到的客户需求为将腾讯云CDB备份文件自动上传到腾讯云COS内,再次抛砖引玉,还有很多类似的需求均可以采用此类方法解决,线下IDC数据文件备份至云端COS内,或根据文件下载地址url将文件上传至COS内。 思路:首先获取到CDB的备份下载url,通过COS的API上传文件,大佬如有更好的方法欢迎一块讨论。 二、技术细节 COS:COS有API同时有SDK,这就很方便我们来通过Python对COS进行各类操作,COS SDK for Python CDB:CDB有API但是CDB的查询备份
KaliArch
2018/07/16
2.7K0
Python实现腾讯云CDB备份文件自动上传到COS
【腾讯云的1001种玩法】WordPress 发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存
张戈
2017/03/17
2.9K0
【腾讯云的1001种玩法】WordPress 发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存
python3下搜狗AI API实现
a、搜狗也发布了自己的人工智能 api,包括身份证ocr、名片ocr、文本翻译等API,初试感觉准确率一般般。
黯然销魂掌
2018/09/27
9380
C# 实现腾讯云点播之媒体上传常用接口
腾讯云点播(Video On Demand)服务基于多年技术积累与基础设施建设,为有音视频应用相关需求的客户提供包括音视频存储管理、音视频转码处理、音视频加速播放、音视频加密、音视频AI能力的一站式解决方案,可通过云平台进行上传后的媒资管理。
初九之潜龙勿用
2024/06/20
2990
推荐阅读
相关推荐
腾讯云API:让你的代码更加稳定(Python版)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验