넷플릭스 IT팀도 레거시와 싸운다?

넷플릭스는 가장 선진적인 IT시스템을 구축한 것으로 알려져있는 회사다. 2008년부터 클라우드를 도입했으며 2015년부터는 넷플릭스의 모든 서비스는 클라우드 상에서 운영됐다. 클라우드 상에서 넷플릭스는 모든 영상을 수집, 처리, 배포했다.

그런데 넷플릭스는 2일(미국시각) 기술 블로그를 통해 새로운 미디어 수집 및 배포 플랫폼을 구축했으며, 올해 전면적으로 기존의 플랫폼을 새로운 것으로 대체해 나갈 것이라고 밝혔다.

흥미로운 점은 넷플릭스가 자신들의 기존의 시스템을 ‘레거시’라고 표현한 것이다. 일반적으로 IT환경을 이야기하면서 ‘레거시’라고 하면 옛날 기술로 만들어진 오래된 시스템을 말한다. 그런데 넷플릭스는 클라우드를 기반으로 한 시스템마저 ‘레거시’라고 인식한다는 것이다.

회사 측에 따르면 넷플릭스는 지금까지 세번에 걸쳐 미디어 시스템을 개편했다. 이 시스템은 파트너나 스튜디오에서 들어오는 미디어 파일을 모든 장치에서 재생할 수 있도록하는 처리하는 시스템으로, 넷플릭스 IT의 핵심이다. 1세대는 2007년 스트리밍 출시와 함께 처음 가동된 시스템이고, 2세대는 이를 확장한 시스템이다. 그러나 이 시스템은 운영하기가 어려워 3세대로 넘어갔다. 리로디드(Reloaded)라는 이름으로 운영된 3세대 시스템은 지난 7년 동안 운영됐다. 회사 측은 리로디드가 안정적이었고 대규모로 확장 가능하다는 검증이 됐다고 판단했지만, 회사가 성장하면서  문제를 노출했다.

회사 측에 따르면, 리로디드는 소규모 개발자 팀에서 운영하는 것이 적합한 시스템이었다. 리로디드를 처음 도입할 때에 비해 넷플릭스 개발자의 수는 3배가 늘었고, 시스템 규모는 10배 이상 증가했다. 기존 모놀리식 아키텍처로 인해 새롭게 결합한 개발자는 리로디드 시스템에서 신기능을 개발하기가 어려웠다. 중앙 집중식 데이터 모델은 개발팀의 규모가 커지면서 한계를 노출했다고 회사 측은 판단했다.

이런 문제를 해결하기 위해 넷플릭스는 ‘코스모스’라는 이름의 새로운 미디어 플랫폼을 개발했다. 회사 측은 코스모스에 대해 “비동기식 워크플로우 기반의 마이크로서비스와 서버리스의 좋은 점을 결합한 컴퓨팅 플랫폼”이라고 소개했다. 그러나 회사 측은 코스모스에 대해 일반적인 마이크로서비스아키텍처는 아니라고 설명했다. 마이크로서비스처럼 데이터가 분리되고, 독립으로 작동하기는 하지만 다단계 워크플로우와 비동기식 서버리스 펑션을 더했다고 밝혔다.

그렇다고 넷플릭스가 일시에 모든 서비스를 코스모스 기반으로 변경하는 것은 아니다. 넷플릭스는 ‘교살자 무화과 전략’을 사용하겠다고 설명했다. 교살자무화과는 숙주에 기생하는 나무다. 씨앗이 땅에서부터 뿌리내리지 않고 다른 나무 줄기에 기생하면서 점차 땅으로 뿌리를 내려간다. 이 과정에서 교살자무화과는 숙주의 수분을 빨아들이며  점차 성장하지만 결국 숙주는 점차 말라 죽게 된다. 넷플릭스는 당장은 리로디드를 유지하면서 코스모스를 그 위에서 조금씩 뿌리를 향해 내려가도록 할 계획이다.

넷플릭스는 2019 년부터 실 서비스에 코스모스를 적용하기 시작했고,  현재 약 40 개의 코스모스 서비스가 있다고 밝혔다. 올해는 대대적으로 코스모스를 확장할 계획을 가지고 있다.

코스모스를 운영해본 결과 넷플릭스의 개발문화와 맞다고 회사 측은 설명했다. 넷플릭스에는 소프트웨어 아키텍트(Software Architect)라는 직책이 없다고 한다. 누군가 방향을 정하고 다른 사람이 이에 따라 개발하는 게 아니라 개발자 개개인의 판단에 의존하는 문화라는 것이다. 이런 문화에는 기존의 아키텍처보다 새로운 아키텍처가 더 적합하다고 회사 측은 덧붙였다.

아울러 플랫폼의 가치도 다시 한 번 깨달았다고 회사 측은 설명했다. 코스모스는 애플리케이션과 플랫폼을 분리한 아키텍처를 가지고 있다. 회사 측은 “플랫폼-애플리케이션 구조로의 변화는 패러다임 변환”이라며 “응용 프로그램 개발자가 플랫폼 팀이 자신의 요구에 집중하지 않는다고 느끼는 순간이 있었고 플랫폼 팀은 사용자 요구로 인해 과도한 부담을 느끼는 경우가 있었지만 힘든 지점을 극복했다”고 전했다.

글. 바이라인네트워크
<심재석 기자>shimsky@byline.network

관련 글

첫 댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다