페이스북은 매주 수천 줄의 코드를 변경한다. 어떤 것이든 페이스북 앱이 스마트폰의 데이터, 메모리, 배터리를 더 많이 소모할 수 있다. 따라서 페이스북은 하드웨어, 운영체제, 네트워크 연결이 서로 다른 2,000대 이상의 휴대폰으로 코드를 테스트한다. editor@itworld.co.kr
미미한 시작
처음에 페이스북 엔지니어들은 자신의 책상에서 한 번에 한 대씩만 테스트했다. 속도를 높이기 위해서 여러 대의 휴대폰을 한 번에 테스트할 수 있도록 “슬레드(sled)”라는 트레이를 설치했다. 하지만 메탈 재질의 트레이는 와이파이 연결에 영향을 주었었다.
<이미지 : Facebook>
플라스틱 이용
그다음에 와이파이 연결에 방해가 되지 않도록 ‘곤돌라(gondola)’라는 플라스틱 랙을 만들었다. 휴대폰 100대를 넣을 수 있었는데, USB 케이블이 서로 엉키는 문제가 있었다.
<이미지 : Facebook>
더 커진 테스트 공간
그다음에는 총 240대의 휴대폰을 설치할 수 있는 ‘슬랫워(slatwall)’를 만들었다. 캘리포니아 멘로 파크에 있는 페이스북 본사에는 한 번에 2,000대를 테스트하기 위해서 이런 방이 총 9개가 필요했는데, 충분한 공간이 없었다. 그래서 테스트 공간을 오리건 주 프라인빌에 있는 데이터 센터로 옮겼다.
<이미지 : Facebook>
격리된 공간
마침내 페이스북은 와이파이 네트워크가 서로를 방해하지 않도록 랙별로 격리해야 할 필요가 생겼다. 반복 테스트를 위해 지속적인 와이파이 연결 환경을 만들기 위해서 꼭 필요한 것이다. 페이스북은 단열재, 구리 테이프, 전원 필터로 구성된 격리 공간을 만들었다. 각 랙에는 32대의 휴대폰이 들어가며, 여기에 휴대폰에 애플리케이션을 설치하고 테스트하고 삭제할 컴퓨터가 추가되었다. 아이폰을 위해서 페이스북은 8대의 맥 미니를 사용하고, 안드로이드 폰을 위해서는 4대의 오픈 컴퓨트 프로젝트 레오파드(Open Compute Project Leopard) 서버를 이용한다.
<이미지 : Facebook>
원격 조정 테스트
프라인빌 테스트 센터에는 이런 랙이 총 60개가 있다. 테스트 엔지니어들은 랙 안에 설치된 카메라를 통해서 휴대폰의 화면을 볼 수 있다. 테스트의 일부분은 자동화되어 있으며, 페이스북은 계속해서 더 많은 부분을 자동화하고 있다. 또한, 각 랙에 64대의 휴대폰을 넣는 작업을 하고 있고, 이 디자인을 오픈소스로 공개할 예정이다. 또 하나 해결해야 할 과제는 랙에 더 큰 휴대폰을 넣는 것이다.
<이미지 : Facebook>