페이스북이 네트워킹 성능면에서 프리BSD를 뛰어넘는 리눅스커널을 만들어 줄 소프트웨어(SW) 개발자를 찾고 있다. 데이터센터 인프라에 구축된 리눅스 기반 장비들의 네트워크 처리 효율을 높이는 데 초점을 맞춘 모양새다.
페이스북은 5일(현지시각) 공식 사이트에 네트워킹 서브시스템을 가장 우선시하는 커널팀에 합류할 리눅스 커널 SW 엔지니어를 구한다며 향후 몇년간 '프리BSD(FreeBSD)'와 견줄만한, 또는 그걸 뛰어넘을 리눅스 커널 네트워크 스택을 마련하는 게 목표라는 구인공고를 냈다. 미국 멘로파크 사무실 본사의 풀타임 업무다.
페이스북 커널 팀은 내부 요구를 따르면서 산업 동향에 들어맞는 신기능과 수정사항 개발을 맡는 조직이다. 이 공고를 통해 채용되는 팀원 역할은 커널 안정성, 성능, 관리효율성을 높이는 일이다. 당사자에겐 입사 후 리눅스커뮤니티의 업스트림 개발자, 제조사, 가외 컨퍼런스 등을 돕는 기회도 생긴다고 페이스북은 강조했다.
직무명세(responsibilities) 내용은 대부분 네트워크 안정성과 성능 관리에 초점을 맞춘 서비스 운영 효율 개선이다. 몇 가지 꼽자면 ▲리눅스 커널의 IPv6 지원 향상 및 성능과 안정성 문제 해소 ▲MPTCP나 QUIC 등 주목받는 신생 프로토콜 조사와 개발 관여 ▲우선적인 네트워크 관련 성능 및 안정성 문제 선별, 조사, 해결 등이다.
지원 자격요건(requirements)은 ▲리눅스 커널 관련 직무의 5년 이상 종사자로 ▲커널에 자기 코드를 넣어 봤고 ▲TCP 및 UDP네트워킹, 리눅스 커널 네트워크 서브시스템에 전문지식을 갖췄으며 ▲파이썬, 배시 등 리눅스 스크립트 언어와 C 프로그래밍 언어를 잘 다루고 ▲커널의 성능측정 도구 사용과 문제 추적 경험이 많으며 ▲디버깅, 커뮤니케이션 역량이 뛰어난 사람이다.
페이스북이 리눅스커널의 네트워킹 서브시스템을 개선할 개발자를 뽑으면서 프리BSD라는 다른 운영체제(OS)를 따라잡을 대상으로 언급한 점은 그만큼 현재 프리BSD같은 OS에 구현된 네트워킹 관련 기술이 더 뛰어나다고 판단했음을 방증한다.
여기서 한가지 의문이 생긴다. 프리BSD가 더 좋다면 그냥 리눅스 대신 프리BSD를 쓰면 되는 게 아닐까? 결론부터 말하면 그게 말처럼 쉽지 않다. 페이스북이 굳이 리눅스 커널과 네트워킹 서브시스템 양쪽에 정통한 SW 엔지니어를 찾으려는 이유다.
페이스북은 이미 많은 리눅스 서버를 도입했다. 당장 세계 12억명이 소통하는 서비스가 효율적인 운영을 위해 서버, 스토리지, 네트워크 장비 관리를 자동화한 SW기술이 여럿 개발돼 붙어 있다. OS를 바꾸려면 겹겹이 쌓인 이 SW기술과 복잡한 관리정보까지 모두 새 OS로 이식해 돌려야 하는데, 실현 가능성이 희박하다.
OS 전환시 인프라 관리 및 운영 측면의 부담뿐아니라 서버나 네트워크 장비 구동 자체에 문제가 생길 수 있다. 리눅스는 랜카드나 메인보드 등 많은 부품 제조사들이 리눅스OS에서 쓸 수 있는 장치별 구동SW(드라이버)를 개발해 제공한다. 반면 프리BSD는 리눅스에 비해 제조사들의 지원이 충분치 않다.
또 페이스북은 이미 서버 인프라의 에너지 효율 개선과 성능 최적화를 위해 '오픈소스 하드웨어(HW)' 방식으로 자체 설계한 서버 및 네트워크 장비 도입 움직임을 본격화했다. 인텔칩 대신 ARM 계열 프로세서에 기반한 저전력 서버를 웹서비스 인프라에 도입하겠다는 일명 '오픈컴퓨트프로젝트(OCP)' 시나리오다.
관련기사
- 리눅스OS, ARM서버 지원 확대된다2014.08.07
- 64비트 ARM서버 대세?…레드햇도 지원2014.08.07
- 모질라, 페이스북 웹이미지 '다이어트' 돕는다2014.08.07
- 페북, 봇넷 제작자 반년 추격…결말은?2014.08.07
페이스북이 주도하는 OCP에서 핵심이 되고 있는 SW플랫폼은 리눅스다. 기존 리눅스 플랫폼을 둘러싼 오픈소스 커뮤니티의 지원에 더해 리눅스 배포판 개발업체들과 ARM 칩 제조사도 거들고 나서, 페이스북이 다른 OS로 갈아타야 할 이유가 더욱 없어졌다.
페이스북입장에선 인력이나 보유 자원만 놓고 보면 인프라 OS를 바꾸고 그에 필요한 부품 드라이버를 새로 개발하는 것도 물론 가능하지만, 이미 돌아가고 있는 리눅스 환경에 맞게 경쟁력있는 플랫폼의 네트워크 기능을 모방하거나 더 개선해 탑재하는 쪽이 훨씬 합리적인 선택으로 해석된다.