前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >最佳案例 | QQ 相册云原生容器化之路

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

作者头像
腾讯云原生
发布2022-05-06 11:10:22
5.4K1
发布2022-05-06 11:10:22
举报

吕朋钊,腾讯业务运维高级工程师,曾负责 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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 服务场景
  • 问题
  • 资源利用率提升与 CICD 优化
    • 1. 资源利用率提升
      • 复用集群、独立集群迁移到共享集群
    • 2. 部署策略优化
      • 3. 七彩石配置
        • 4. ClickHouse 日志查询
          • 5. Tget 拨测
            • 6. 智研一站式接入
            • 运营开发能力
              • 1. 告警分析手机端自助剔除
                • 2. 质量分分析
                • 云原生成熟度提分
                  • 1. 业务稳定是第一位
                    • 2. 降低 request 值
                    • 小结
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档