TeamCity
Powerful CI/CD for DevOps-centric teams
Playrix가 TeamCity를 사용하여 하루에 수천 개의 빌드를 실행하는 방법
Playrix는 전 세계 3대 모바일 게임 회사 중 하나입니다. Playrix의 본사는 아일랜드 더블린에 있으며 전 세계에 3,000만 명이 넘는 사용자가 있습니다. 가장 잘 알려진 게임으로는 Homescapes, Fishdom과 Gardenscapes가 있습니다.
Playrix는 220개의 TeamCity 빌드 에이전트를 사용하고 2,500개가 넘는 프로젝트에서 CI/CD 프로세스를 실행하며 매일 10,000개가 넘는 빌드를 실행합니다. Playrix의 TeamCity 서버는 클라우드에서 구동됩니다. Playrix는 각각의 용량이 최대 50GB에 이르는 큰 저장소를 다수 운영하며 큰 아티팩트를 생성하는데 이는 게임 개발사에서는 흔한 일입니다.
클라우드로 이전하기 전에 TeamCity 서버는 사무실 중 한 곳에 설치되었고, 빌드 에이전트도 같은 사무실의 온프레미스에서 실행되었습니다. 이러한 설정은 나중에 효율성을 잃었습니다. 네트워크가 중단되면 엔지니어가 빌드에 액세스할 수 없었습니다. 피크 시간에는 빌드 대기열을 실행하는 데 수시간이 걸렸습니다.
그래서 Playrix는 CI/CD 인프라를 개선할 방법을 찾기 시작했습니다.
TeamCity와 AWS의 도움으로 문제 해결
CI/CD 인프라의 가용성을 높이기 위해 Playrix 팀은 다수의 온프레미스 위치에서 빌드 에이전트를 실행하는 대신 TeamCity 서버와 아티팩트 스토리지를 클라우드로 옮겼습니다. Playrix의 기술 플랫폼 부서 기술 전무이사인 Yuri Trufanov는 이런 설정 덕분에 서버가 원격 위치에 있을 때보다 연결의 예측성과 안정성이 높아졌다고 말합니다.
Playrix는 TeamCity 서버를 Docker 컨테이너상의 자동 확장 그룹에 넣고 Nomad 오케스트레이터를 설정한 후 TeamCity로 오케스트레이터상에 작업을 설정했습니다. 또한 빌드 아티팩트 스토리지를 Amazon S3 Artifact Storage로 옮겼으며 TeamCity 데이터베이스는 Amazon Aurora MySQL에 저장했습니다.
그 결과 설정의 신뢰도와 안정성이 매우 개선되었습니다. 사무실 중 한 곳의 연결이 끊기더라도 빌드 대기열이 약간 길어질 뿐입니다.
Playrix 팀이 그 다음으로 살펴본 것은 클라우드상의 자동 확장 빌드 에이전트였습니다. Playrix가 해결하려던 문제는 피크 시간에 빌드 대기열이 길어지는 것과 밤에 빌드 에이전트가 유휴 상태로 있는 것이었습니다. Playrix 팀은 리소스를 더 효율적으로 분배하고 비용을 최적화하고자 했습니다.
이 문제는 TeamCity Cloud Profiles를 성공적으로 도입하여 해결했습니다. “그래서 저희는 TeamCity Cloud Profiles와 AWS를 포함하는 하이브리드 클라우드 솔루션을 사용하기로 했습니다. 더불어 빌드 에이전트용으로 온프레미스 컴퓨터도 사용했습니다. 이러한 조합으로 하루에 몇 개의 빌드든 수용할 수 있었고, 업무 외 시간에도 기본적인 수의 에이전트를 이용할 수 있었습니다. 즉, 무엇이든 어디서나 실행할 수 있게 되었죠.”라고 Yuri Trufanov는 말합니다.
전체 사례 연구를 읽고 Playrix가 빌드 속도를 높이면서 비용은 10배 가까이 줄인 방법을 알아보세요.
게시물 원문 작성자