저자: Feng Yafei/SRE 엔지니어, Tencent 게임 유통 라인 기술 운영팀 Chen Zixin/대왕고래 모니터링 제품 운영
Tencent는 인기 있는 자체 개발 게임 개발에 전념할 뿐만 아니라 전 세계 유명 게임 개발자와 협력하여 이러한 게임을 시장에 출시하여 더 많은 플레이어가 게임의 즐거움을 누릴 수 있도록 하고 있습니다. 이러한 파트너는 전 세계에서 왔으며 다양한 기술 스택을 사용하므로 게임 안정성 유지 관리에 복잡한 문제가 발생합니다. 이 기사에서는 Tencent Interactive Entertainment가 DeepFlow의 eBPF 기술을 사용하여 비침해적인 관찰 가능성을 달성하는 방법을 탐구하는 것을 목표로 합니다. 이 전략은 게임의 점진적인 출시 프로세스 동안 원활한 사용자 경험을 보장할 뿐만 아니라 문제 진단 및 해결 속도를 높여 잠재적인 가능성을 효과적으로 방지합니다. 성능 문제.
01 게임 배경 소개
'A Game'은 해외 개발자들이 개발하고 Tencent가 퍼블리싱한 게임입니다. 이 게임은 Scala, Zio, Istio 및 CockroachDB 와 같은 기술 스택을 사용합니다 . 이러한 기술 스택은 게임 출시, 운영 및 유지 관리에 추가적인 복잡성과 어려움을 가져옵니다. 그리고 프로젝트 출시일이 다가올수록 애플리케이션의 가시성을 높이기 위해 코드를 조정하는 것이 비현실적입니다. 따라서 개발팀에는 게임 비즈니스 코드 수정이 필요하지 않은 가시성 솔루션이 시급합니다.
이러한 배경에서 팀은 eBPF 기술이 필요한 비침해적 솔루션을 제공할 수 있다는 것을 발견했습니다. eBPF는 특정 기술 스택에 의존하지 않으며 서비스 호출 그래프를 자동으로 생성하고 , 요청, 오류, 지연(RED) 지표를 계산하고 , 호출 세부 정보를 기록하고 , 분산 추적 링크를 자동으로 생성할 수 있습니다 . 이를 바탕으로 게임 퍼블리싱 팀은 Blue Whale 모니터링 팀과 팀을 이루어 eBPF 기술을 신속하게 배포하여 게임 비즈니스를 위한 눈에 띄지 않고 즉시 사용 가능한 애플리케이션 관찰 기능을 달성하는 방법을 탐색하기 시작했으며 이를 통해 원활한 출시를 보장했습니다. 그리고 게임의 효율적인 운영과 유지관리를 담당합니다.
02 점진적 출시 중 사용자 경험 보장
"A Game"의 공식 출시는 신중하게 설계된 점진적 출시 전략을 채택하여 일반적으로 10%, 50%, 80% 및 100%로 구분되는 다양한 단계에서 새 버전을 푸시하는 사용자의 비율을 점진적으로 늘릴 수 있습니다. 네 단계. 점진적인 출시 전략은 위험을 효과적으로 제어하고 새 버전이 원활하게 출시될 수 있도록 보장하며 궁극적으로 모든 사용자에게 더욱 안정적이고 더 나은 게임 경험을 제공할 수 있습니다.
점진적 출시 전략에서 RED 지표 (요청률, 오류율, 요청 기간)는 실시간 및 직관적인 창을 제공하여 운영 및 유지 관리 팀이 새 버전이 서비스 성능에 미치는 구체적인 영향을 즉시 관찰할 수 있습니다. 이러한 측정항목을 통해 팀은 사용자 기반을 계속 확장할지, 성능 최적화가 필요한지, 이전 버전으로 롤백할지 등 데이터 기반 결정을 내릴 수 있습니다 . 이러한 정교한 제어의 궁극적인 목표는 사용자가 비즈니스의 안정성과 연속성을 보호하면서 최고의 게임 경험을 얻을 수 있도록 하는 것입니다.
현재 "어떤 게임"의 각 버전이 출시된 후 POD의 이전 버전과 새 버전을 비교하는 RED 지표의 차이가 출시 과정에서 탐지 목록에 통합되었습니다. 지표 지표의 차이가 중요하지 않은 경우, 이는 이 업데이트로 인해 오류, 로드 불균형 및 기타 문제가 발생하지 않았음을 의미합니다. 다른 비즈니스 특성 지표와 결합하여 전체 서버 업데이트를 계속 구현하기로 자신있게 결정할 수 있습니다.
점진적 릴리스 프로세스 중에 예외가 발견되면 요청된 API, 매개변수, 응답 시간, 반환 상태 코드 및 기타 정보를 호출 세부정보를 통해 빠르게 찾을 수 있습니다. 운영 및 유지 보수 담당자가 문제를 신속하게 분석하고 문제를 해결하도록 돕습니다.
동시에 완전 자동 분산 추적 기능을 사용하여 잠재적인 성능 병목 현상을 발견하여 성능 조정을 수행하고 시스템의 응답 속도와 안정성을 지속적으로 향상시킬 수 있습니다.
03 실용적인 전투: 새 버전에서 CPU 급증의 숨겨진 위험 제거
"A Game"이 출시된 후 여러 온라인 업데이트(오전 5시~6시 집중)에서 새로운 구성 테이블이 공개될 때마다 전체 클러스터 서버의 CPU 사용량이 급증하는 것으로 나타났습니다. 클라이언트가 서버에서 DDoS 공격을 시작한 것 같습니다를 참조하세요.
"A Game"의 운영 특성으로 볼 때 서버의 CPU는 너무 많은 계산 로직을 처리할 필요가 없으며 주요 소비는 클라이언트 요청 수나 온라인 플레이어 수에 따라 증가할 뿐입니다. 아래 그림의 온라인 플레이어 수 곡선에서 알 수 있듯이, 출시 기간 동안 뚜렷한 급격한 증가는 없었으므로 비즈니스에 영향을 미치지 않았다고 볼 수 있습니다.
반면, 이러한 의심되는 DDoS 트래픽은 일반 클라이언트에 의해 시작된 요청이므로 보안팀의 DDoS 방어 시스템에서는 이를 정상적인 트래픽으로 간주하여 처리하지 않습니다. 과거에는 이런 유형의 인프라에서 CPU 지표의 이상 현상이 보통 여기서 끝났습니다. 그러나 때때로 학생들은 업그레이드 단계에서 애플리케이션 로그를 분석하려고 시도했지만, 볼륨이 너무 커서 뚜렷한 진전이 없었습니다. , 우리는 프로그램이 시작될 때 더 많은 비즈니스 로직을 처리하고 더 많은 CPU를 소비한다고 가정할 수 있습니다 .
eBPF 관찰 가능성이 출시된 후 이러한 유형의 문제는 갑자기 간단하고 간단해졌습니다.
Step 0 - 지속적인 모니터링 : 업그레이드 과정에서 클러스터 QPS 추이를 지속적으로 모니터링하였으며, 이때 eBPF를 기반으로 자동으로 획득된 Ingress Gateway Request Rate 지표를 분석에 사용하였으며, QPS가 급격하게 증가한 것으로 확인되었습니다. 거의 10배. 이전에 발견된 CPU 증가는 QPS의 급격한 증가에 따른 것으로 기본적으로 결론이 내려졌습니다.
1단계 - 드릴다운 분석 : 다음으로 eBPF에서 자동으로 얻은 통화 내역을 계속 분석합니다. URI 비율 차트를 분석한 결과 약 70%가 특정 클라이언트의 SDK에서 나온 것으로 나타났습니다.
2단계 - 근본 원인 찾기 : eBPF의 상세한 요청 로그 또는 비즈니스 로그를 기반으로 추가 분석이 가능합니다. 어떤 방법을 사용하더라도 분석해야 하는 로그 수가 크게 줄었습니다. 비즈니스 로그에서 URI에 해당하는 로그를 검색한 결과 gRPC 요청을 보낼 때 클라이언트 SDK가 전달한 버전이 서버의 버전과 일치하지 않는 것으로 나타났습니다. 그 결과 서버에서 요청을 항상 거부했습니다. , 클라이언트가 서버에 DDoS 공격을 자주 시도했습니다. R&D에서 이 문제를 확인한 후 즉시 수정되었습니다. 수리가 온라인으로 진행된 후 지속적인 모니터링을 수행한 결과, 구성 테이블 업데이트 이후 클러스터 QPS의 급격한 증가가 더 이상 존재하지 않는 것으로 확인되었으며, CPU도 정상적으로 작동하여 숨겨진 주요 위험을 성공적으로 제거했습니다 .
또한 Blue Whale 팀과 DeepFlow 커뮤니티는 새 버전에서 gRPC 헤더 필드의 사용자 지정 획득을 공동으로 지원했습니다. 향후 유사한 문제를 방지하기 위해 클라이언트 버전 번호를 나타내는 메타데이터를 호출 로그로 추출했습니다 .
요약 : eBPF에서 제공하는 비즈니스에 민감한 요청 속도를 사용하여 클러스터 QPS 급격한 증가를 신속하게 확인한 다음 호출 세부 정보를 사용하여 몇 가지 간단한 단계만으로 새 버전의 성능 위험을 정확하게 감지할 수 있습니다. 심각한 온라인 장애가 발생했습니다.
04 사례개요
이 기사에서는 "A Game"의 출시, 운영 및 유지 관리 프로세스를 통해 Tencent Interactive Entertainment가 eBPF 기술을 사용하여 복잡한 기술 스택으로 인해 발생하는 문제를 효과적으로 처리하는 방법을 심층적으로 보여줍니다. DeepFlow의 eBPF 기반 무침입 관찰 기능을 도입 함으로써 문제 해결 및 해결 프로세스의 속도를 높일 뿐만 아니라 게임의 안정성과 사용자 경험을 크게 향상시킵니다 .
점진적인 출시 전략을 채택함으로써 우리는 각 출시 단계에서 성능 지표를 주의 깊게 모니터링하여 각 업데이트가 플레이어에게 더욱 부드럽고 안정적인 게임 경험을 제공할 수 있도록 할 수 있습니다. 실제 사례에서는 eBPF 기술을 통해 성능 변화에 신속하게 대응하고 잠재적인 문제를 효과적으로 식별 및 해결함으로써 게임의 지속적인 운영 및 서비스 품질을 보장할 수 있음을 보여줍니다 .
결국, 이러한 기술의 적용을 통해 'A Game'의 성능과 안정성을 성공적으로 향상시켰을 뿐만 아니라, 향후 게임 운영 및 유지 관리에 대한 새로운 기준을 세웠습니다. 이러한 결과는 eBPF 기술을 기반으로 한 가시성 기능이 복잡한 기술 환경을 처리하고 사용자 경험을 향상시키는 데 큰 잠재력을 가지고 있음을 입증합니다.
우리는 앞으로도 더 많은 기술 혁신과 성공적인 사례를 계속 탐색하고 공유하여 사용자에게 더 나은 게임 경험을 제공하고 업계에 귀중한 통찰력과 솔루션을 제공할 수 있기를 기대합니다.
원본 링크: https://deepflow.io/blog/zh/059-tencent-games-achieves-zero-code-observability%20-based-on-deepflow/
GitHub 주소: https://github.com/deepflowio/deepflow
DeepFlow 데모를 방문하여 제로 계측, 전체 적용 범위 및 완전히 관련된 관찰 가능성을 경험해 보세요.
동료 치킨 "오픈 소스" deepin-IDE 및 마침내 부트스트랩을 달성했습니다! 좋은 친구, Tencent는 Switch를 "생각하는 학습 기계"로 전환했습니다. Tencent Cloud의 4월 8일 실패 검토 및 상황 설명 RustDesk 원격 데스크톱 시작 재구성 웹 클라이언트 WeChat의 SQLite 기반 오픈 소스 터미널 데이터베이스 WCDB의 주요 업그레이드 TIOBE 4월 목록: PHP 사상 최저치로 떨어졌고 FFmpeg의 아버지인 Fabrice Bellard는 오디오 압축 도구인 TSAC를 출시했으며 Google은 대규모 코드 모델인 CodeGemma를 출시했습니다 . 오픈소스라서 너무 좋아요 - 오픈소스 사진 및 포스터 편집기 도구