云原生工具(云原生服务架构中的容器化封装)

本文主要介绍云原生工具(云原生服务架构中的容器封装),下面一起看看云原生工具(云原生服务架构中的容器封装)相关资讯。
作者张路,运营开发专家工程师,现负责游戏百事通ai助手后台架构的设计和优化。
随着业务的不断拓展,ai智能问答机器人业务已经覆盖自研游戏、二次元、海外游戏。r ampamp游戏知识d团队积极拥抱云原生,将后台业务全面推进到云端,积累了1w的核心服务。
通过在云上的容器化部署、自动扩容收缩、健康检查和可观测性等手段,提升了智计项目的持续交付能力和稳定性,形成了一套适合游戏智计本身的实用解决方案。本文将介绍游戏知识项目中遇到的痛点和一套可靠的上云练习方案。
知道几个项目背景游戏知道几个是游戏智能ai产品和运营解决方案。基于自然语言处理、知识图谱、深度学习等前沿技术,为游戏玩家提供一站式服务,包括游戏内外实时智能问答、游戏语音伴奏、自助跑步查询、游戏内外数据交换、主动关怀防丢失、产品合规保护等能力。目前已接入包括王者荣耀、和平精英、pubg mobile、天道游寿等六星级游戏在内的80款游戏,为国内外数亿游戏用户提供服务,赢得了众多游戏项目和用户的持续好评。
同时,游戏百事通还提供了易用、高性能的客户端sdk和功能齐全的运营平台系统,支持模块化接入,大幅降低用户运营中的人力成本,提升玩家的交互体验。
随着知己业务的不断发展,知己 的部署架构也在不断演进,逐渐从最初的idc部署架构迁移到现在的云原生部署架构,实现业务服务的全面云部署。
上云之前先了解几个docker部署方案先了解几个使用docker部署方案部署服务。服务的ci/cd通过quark平台实现,平台将编译打包后的服务推送给docker进行部署。为了实现机器的横向扩展,运维同学会把docker环境打包成基准映像,包括idc 的机器环境而定,比如cl5代理和gse代理。需要扩展时,将参考环境释放给扩展机进行扩展操作。
智计的整体部署架构如下图所示:
外部请求通过stgw连接,rs连接后台服务的vip,通常区分移动、联通、电信、小流量运营商;通过tgw平台配置vip下挂载的机器的ip和端口,通过一定的负载均衡策略将请求发送到idc机器的后台服务;通过quark平台操作服务的ci/cd,完成服务的编译、打包、发布等操作,还支持操作回滚和进程监控。监控报警和日志系统连接到mo监控平台和应均。该服务遇到的问题知道几个项目将与ieg下的许多游戏连接。随着游戏访问量的增加,流量也变得越来越大。了解几个项目的交通情况有以下特点:
平时流量稳定,节假日流量随着游戏流量增加,通常达到3倍以上;
主动关怀新闻推送,运营活动会通过直接接触到达玩家,带来可观的突发流量,极端情况下超过10倍;
因此,智计对稳定性、可观测性和服务治理能力的要求很高,需要保证项目在突发流量的情况下能够正常运行,并且能够及时发现故障。
在docker部署的框架下,很难快速自动扩容收缩。主要问题如下:
扩容前的机器申请和环境准备比较耗时,在流量突发的情况下无法接受,提前准备机器会浪费资源。
运维产生的基准映像通常不是最新版本,需要发布才能扩展;
依赖权限(mysql等。)需要应用;
平台操作繁琐,容易出错;
在操作活动之后,需要手动完成机器的体积减小操作。
这些问题都会导致服务扩展不及时,给商科学生带来服务稳定性隐患和运维负担。此外,每年的机器裁撤也很痛苦,涉及机器确认、服务迁移、环境梳理等各个方面的操作。
所以我们希望通过迁移到云端,利用云的原生hpa能力,来解决服务的稳定和废除问题。
为了解决上述问题,智机实现了一套基于cloud native的多机房部署方案。具体方案如下:
引入tapsixunified网关,通过限流等网关插件管理南北流量,stgw连接ingresstapsixgateway的;
服务部署在南京1区和南京2区。每个区域中的服务通过入露外部网络流量,tapisix网关连接到区域1和区域2中的入口服务。
添加上海容灾集群,极端情况下可以快速访问;
ci/cd通过蓝盾管道实现,打包后的服务映像推送到映像仓库,部署在stk测试新部署业务,提供四类公网clb;:移动、联通、电信、cap
首先灰度封顶降低运营商的流量,待业务稳定后再通过gslb逐步灰度化其他运营商;
回滚将快速切换回vip通过gslb提供idc服务;
内网业务的迁移会通过stke支持的polaris和cl5 serivce自动将pod ip注入到旧业务的负载均衡中。首先会用一个pod进行灰度,然后逐渐增加pod完成放量,最后去掉idc机。就这样,我们在三个月内完成了所有外网服务和后台服务,保证了迁移的顺利进行。
在云上实践标准化部署业务中云基础的要点是考虑如何做标准化的容器部署和灵活的服务。知识服务主要有三种类型。业务服务通常是go服务,算法服务是c服务,需要考虑模型加载的问题。平台服务主要是php服务。在集装箱标准化方面,我们采用单集装箱模式。这样做的好处是每个容器互不影响。该流程作为容器的第一个流程存在。如果有问题,k8s会自动拉起服务,也方便资源重用。容器丰富模式是将所有流程放在一个容器中,看似方便,可实现无缝、流畅、快速的业务接入云端。但在未来的维护效率、安全性、健康检查、服务灵活性等方面存在问题,处于中间状态,违背了容器功能单一的原则,也不符合云原生的理念。
php的服务将nginx、pfp-fpm和业务代码做成独立的容器,代码以文件共享的形式与php-fpm的容器共享。
go服务相对简单,采用常规的标准化集装箱,使用集装箱边车。
算法服务主要是一个模型,模型文件挂载在cephfs上,与c服务的容器共享。
在服务部署过程中,知乎积累了一些实践经验,通过基于云的资源利用优势,可以提高资源利用率,降低运营成本。不同场景的最低实例配置如下:
测试环境,预发布环境流量较少,统一0.1核心0.25g,1个例子。
生产环境、业务后台服务使用1个核心2g、2个实例。
在生产环境下,算法后台服务采用8核16g(个人在线推理服务将采用32核)以上机器)。
通过降低单个pod的cpu和mem请求,满足日常运营需求,并通过stke在高峰流量时段的hpa能力满足业务需求,使日常cpu利用率达到40%。因为hpa会引起服务容器的膨胀和收缩,如果在没有启动服务的情况下访问流量,或者在仍然访问流量的情况下破坏pod,就会导致流量的丢失,所以需要开启就绪检测和预停止配置。
这里需要注意的是,就绪检查的启动延迟设置不容易太短,这样系统会认为pod启动失败而继续重启,导致服务无常启动。
此外,stke提供的其他功能也能很好地满足智计的业务需求:
提供认证流程,可以在pod拉起时动态申请mysql等依赖权限,避免繁琐的权限申请流程。
configmap可以解决配置服务的配置更新问题。
内核可以调优,服务可以根据服务和流量的特点优化内核参数,比如net。核心。somaxconn,net。ipv4.tcp _ tw _ reuse等等。
目前,知乎在线上部署的核心超过1w,支持知乎sdk、第五方等多个应用服务,整体利用率在40%左右。
hpastke提供的hpa能力可以很好的满足智机对产能扩容和收缩的需求。智吉同时使用定时hpa和动态hap来满足不同的场景:
对于突发流量,智机以cpu请求和内存请求作为触发扩展的条件。节假日和周五周六晚上未成年人上网玩。知乎采用周hpa提前扩容,大大减轻了开发运营学员面对运营活动和突发流量的精神负担,提高了服务稳定性。特别是定时hpa,可以轻松满足智吉在未成年人保护方面的扩容和缩容要求。系统能够在特定的时间段内完成系统容量的扩展和收缩,保证系统能够流畅地处理流量而不浪费资源。转战云端后,知乎通过这种保证了周末和线上很多操作的顺利进行。
可观测性系统的可观测性使开发学生能够根据系统输出快速监控和定位问题。可观察性可以从三个方面来看:度量、日志和痕迹。
知乎的服务metrics,大部分与monitor系统连接,通过自定义metrics报表实现对模式调整信息、服务状态、业务等指标的监控,知乎封装monitor的标准库,实现指标模板的标准化和报表化。monitor reporting需要通过http请求获取上报的ip,然后通过t传递数据。cp表发给显示器,对业务不友好。显示器目前不再连接新业务。目前,智计正在逐步将metrics迁移到智眼监控系统,trpc提供智眼监控能力的插件接入。日志,早期由filebeat收集,现在stke提供统一的日志数据解决方案cls,可以方便地收集、存储和检索日志,运维成本低,体验好。trace,知道如何访问秘书柜追踪请求,记录系统的请求链接等上下文信息。通过trac《腾讯云原生路线图手册》《腾讯云原生最佳实践》~
②《15个系列100+篇超实用云原生原创干货合集》可通过官方账号 s后台回复【系列】,包括kub《腾讯云容器安全》《降本之源-云原生成本管理v1.0》。
(4)官方账号后台回复【光速入门】,可获得腾讯云专家5万字精华教程,光速普罗米修斯和格拉法纳入门。
【腾讯云原生】云说新品,云研新术,云游新活动,云赏信息,扫码关注同名官方账号,及时获取更多干货!!
标签:
交通服务
了解更多云原生工具(云原生服务架构中的容器封装)相关内容请关注本站点。