작지만 강한 스트리밍 서비스 스포티파이, 민첩함의 비결은 “자동화와 마이크로서비스”

Computerworld UK
스포티파이는 온라인 음악 시장에서 구글, 애플, 아마존과 같은 경쟁사에 비하면 몸집이
작은 기업이다.

이 작은 기업이 소비자들의 수요에 대응해 전 세계로 사업 영역을 확장하면서 새로운 기능을 개발하는 속도도 뒤쳐지지 않는 비결은 무엇일까?

지난 주 EMC의 주관으로 예테보리에서 열린 이벤트에 연설자로 나선 스포티파이 수석 엔지니어 니클라스 구스타프슨은 코드를 프로덕션 단계로 신속하고 효과적으로 투입하는 것이 스포티파이 운영의 열쇠이고, 그 핵심은 개발 팀을 조직하는 방식에 있다고 말했다.

구스타프슨은 "스포티파이는 서비스 제공 속도를 최적화하는 방법을 택했다"면서 "경쟁이 치열하고 복잡한 이 시장에서 경쟁 우위를 점하려면 경쟁사보다 더 빠르게 움직여야 한다고 판단했기 때문"이라고 말했다.

구스타프슨은 "경쟁사들 중에서는 스포티파이보다 훨씬 더 큰 기업들이 있고 규모로는 이 기업들을 이길 수 없다. 우리가 속도를 높인 방법은 고도로 자동화된 서비스 제공 팀을 운영하는 것"이라고 덧붙였다.

이를 위해 스포티파이는 각 팀에 명확히 정의된 임무를 부여한다. 구스타프슨은 "예를 들어 세계 최고의 검색 상품을 만들거나 최상의 음악 스트림 품질을 확보하는 것이 될 수도 있고, 가입자 기반을 늘리거나 타사를 위한 API를 구축하는 일이 될 수도 있다"고 말했다.

스포티파이는 개발 팀을 여러 가지 수준의 그룹으로 분할한다. 세 가지 주요 그룹은 '스콰드(squad)', '트라이브(tribe)', '챕터(chapter)'다. 구스타프슨은 "최적화에서 가장 중요한 팀은 스콰드다. 스콰드는 기능을 생산하는 팀으로, 검색 팀 또는 오디오 품질 팀 등이 있다. 일반적인 애자일 방법론으로 치면 스크럼 팀에 해당된다"고 말했다.

'스콰드'는 개발의 병목 현상을 방지하기 위해 상호 독립적으로 움직인다. 구스타프슨은 "팀을 최대한 독립적으로 운영해서 서로 길을 막는 일이 없도록 하는 것이 핵심이다. 각 팀은 자율적으로 움직일 수 있다"고 말했다.

'챕터'는 각 개인의 개발에 집중한다. 구스타프슨은 "챕터는 예를 들면 유능한 엔지니어, 강력한 QA를 구축하기 위한 팀"이라고 말했다. '트라이브'는 앞의 두 그룹을 더 폭넓은 프로젝트에 배치한 형태이며 "회사 내에서 각기 신생 기업이 되어 독립적으로 작업하는 것"을 원칙으로 한다.

개별 '스콰드'는 프로덕션으로 투입하는 코드에 대해 책임을 지며 소프트웨어를 빌드, 배포한 다음 그 소프트웨어를 실행하는 하드웨어를 관리한다.

구스타프슨은 "스포티파이가 조직을 발전시키는 데 있어 공통적인 테마 중 하나는 중앙화된 팀에서 분산된 기능으로의 전환이다. 스포티파이가 사업을 운영하면서 프로덕션과 라이브 환경의 상시 가동을 유지하는 방식이 좋은 예"라고 말했다.

또한 구스타프슨은 "이 방식은 피드백 사이클 개선 효과도 있다. 즉, 누군가 불량한 소프트웨어를 만든다면 그로 인해 문제가 발생할 때 다른 사람이 아닌 그 소프트웨어를 만든 당사자가 한밤중에 일어나 해결해야 한다"고 말했다.

개발자의 신속한 행동을 가능하게 해주는 또 다른 요소는 애플리케이션에 마이크로서비스 아키텍처를 도입해서 더 작고 상호 연결된 구성 요소로 분해하는 것이다. 이를 통해 비즈니스는 "훨씬 더 빠르게" 움직일 수 있게 된다.

구스타프슨은 "마이크로서비스의 좋은 점은 팀이 분리된다는 것이다. 내 소프트웨어의 새 버전을 배포할 때 다른 여러 팀과 조율해서 적당한 시점을 알아낼 필요가 없다. 내가 원할 때 아무 때나 집어넣으면 된다"고 말했다.

"스포티파이의 팀은 원한다면 하루에 수천 번씩 프로덕션에 소프트웨어를 배포할 수 있다."

마이크로서비스 접근 방법은 최대한 많은 프로세스를 자동화한다는 스포티파이의 주요 목표 중 하나와도 부합한다.

구스타프슨은 "기술적인 측면에서 스포티파이가 추진하는 것은 최대한 자동화하는 것이다. 기본적으로 모든 것을 자동화한다고 보면 된다"면서 "서버를 수동으로 프로비저닝하거나 소프트웨어를 수동으로 배포하는 것은 지양한다. 모든 것을 자동화해야 한다"고 말했다.

사이트 안정성 측면의 이점도 있다. 구스타프슨은 "사람은 어리석은 행동이나 실수가 잦기 때문에 자동화하면 품질을 향상시킬 수 있다. 어떤 부분을 자동화할 수 있다면 그 부분의 장애율이 크게 줄어들게 된다. 그러한 이유로 자동화를 추진하는 것"이라고 말했다. editor@itworld.co.kr