2018.06.15

페이스북, 자체 개발 로드밸런서를 오픈소스로 공개

Andy Patrizio | Network World
구글은 자사 데이터센터의 비밀을 치열하게 지키는 것으로 유명하지만, 페이스북은 그 반대다. 이번에는 대규모 소셜 네트워크를 운영하게 내부적으로 사용하는 두 가지 중요한 툴을 오픈소스 코드로 공개했다.



페이스북은 데이터센터의 과부하를 방지하는 로드밸런서인 카트란(Katran)을 GNU GPL v2.0으로 공개했다. 소스 코드는 깃허브에서 다운로드할 수 있다. 카트란과 함게 자사의 제로 터치 프로비저닝(Zero Touch Provisioning, ZTP) 툴의 세부 사항도 공개했는데, 이 툴은 페이스북 엔지니어가 백본 네트워크 구축에 필요한 작업의 상당 부분을 자동화하는 데 사용한다.

페이스북이 자사 네트워크에서 사용하는 소프트웨어를 오픈소스로 공개한 것이 처음은 아니다. 지난 달에도 자사의 AI 및 머신러닝 프로젝트에 사용한 소프트웨어인 파이토치(PyTorch)도 오픈소스화했다. 파이토치는 파이썬 기반의 패키지로, GPU 가속을 사용한 텐서 연산과 신경망 개발용 패키지다.

사실 페이스북이 수많은 관련 소프트웨어가 출시되어 있는데도, 이들 소프트웨어를 자체 개발해야만 하는 데는 이유가 있다. 시장에 나와 있는 제품 중 20억 사용자를 가진 페이스북에 맞는 것이 없기 때문이다.

페이스북 제품 엔지니어 니키타 시로코프와 소프트웨어 엔지니어 란지스 다시네니는 블로그 포스트를 통해 이 소식을 전했다. 블로그 포스트에 따르면, 페이스북은 기존에 오픈소스 소프트웨어를 기반으로 한 자체 로드밸런서를 구축해 사용했다. 하지만 4년 정도 사용하면서 한계를 보이기 시작했다.

카트란은 4가지 조건을 만족한다. 우선 범용 리눅스 서버에서 구동할 수 있으며, 서버 상의 다른 서비스와 공존할 수 있어 전용 로드밸런싱 서버가 필요없다. 유지보수가 쉬우며, 쉽게 사용하고 디버깅할 수 있다. 쉬로코프와 다시네니는 처음 만든 소프트웨어 정의 로드밸런서는 다른 서비스, 특히 백엔드 서비스와 충돌을 일으켰다고 설명했다.

두번째 시도에서는 XDP(eXpress Data Path) 프레임워크와 BPF 가상머신(eBPF)를 활용해 다수의 시스템 상에서 백엔드 서비스와 함께 로드밴런서 소프트웨어가 구동되도록 했다.

한편, ZTP는 새로운 스위치와 라우터를 자동으로 프로비저닝할 수 있는 툴로, 수작업 개입이 전혀 필요없다. ZTP 툴의 경우도 페이스북의 규모 때문에 자체적으로 개발할 수밖에 없었는데, 페이스북 네트워크 엔지니어들은 이 때문에 네트워크 배치 워크플로우에 완전히 새로운 접근 방식을 개발했다.

페이스북은 벤딩 머신(Vending Machine)이란 이름의 새로운 프레임워크를 만들었는데, 자동 판매기가 동전을 넣으면 음료수가 나오는 것처럼 장비의 역할과 위치, 플랫폼을 입력하며 네트워크 장비가 새로 프로비저닝되어 프로덕션 트래픽을 전달하는 방식이다. ZTP는 아직도 진화 주이기 때문에 페이스북은 새로운 기능을 계속 추가하고 있다.

페이스북은 ZTP의 라이선스는 공개하지 않았다. 카트란과 마찬가지로 이 소프트웨어를 사용하려면 직접 구축해야 한다. 물론 친절한 페이스북 엔지니어가 몇몇 질문에 답을 줄 수는 있겠지만, 지원을 제공하는 소프트웨어는 아니다.  editor@itworld.co.kr


2018.06.15

페이스북, 자체 개발 로드밸런서를 오픈소스로 공개

Andy Patrizio | Network World
구글은 자사 데이터센터의 비밀을 치열하게 지키는 것으로 유명하지만, 페이스북은 그 반대다. 이번에는 대규모 소셜 네트워크를 운영하게 내부적으로 사용하는 두 가지 중요한 툴을 오픈소스 코드로 공개했다.



페이스북은 데이터센터의 과부하를 방지하는 로드밸런서인 카트란(Katran)을 GNU GPL v2.0으로 공개했다. 소스 코드는 깃허브에서 다운로드할 수 있다. 카트란과 함게 자사의 제로 터치 프로비저닝(Zero Touch Provisioning, ZTP) 툴의 세부 사항도 공개했는데, 이 툴은 페이스북 엔지니어가 백본 네트워크 구축에 필요한 작업의 상당 부분을 자동화하는 데 사용한다.

페이스북이 자사 네트워크에서 사용하는 소프트웨어를 오픈소스로 공개한 것이 처음은 아니다. 지난 달에도 자사의 AI 및 머신러닝 프로젝트에 사용한 소프트웨어인 파이토치(PyTorch)도 오픈소스화했다. 파이토치는 파이썬 기반의 패키지로, GPU 가속을 사용한 텐서 연산과 신경망 개발용 패키지다.

사실 페이스북이 수많은 관련 소프트웨어가 출시되어 있는데도, 이들 소프트웨어를 자체 개발해야만 하는 데는 이유가 있다. 시장에 나와 있는 제품 중 20억 사용자를 가진 페이스북에 맞는 것이 없기 때문이다.

페이스북 제품 엔지니어 니키타 시로코프와 소프트웨어 엔지니어 란지스 다시네니는 블로그 포스트를 통해 이 소식을 전했다. 블로그 포스트에 따르면, 페이스북은 기존에 오픈소스 소프트웨어를 기반으로 한 자체 로드밸런서를 구축해 사용했다. 하지만 4년 정도 사용하면서 한계를 보이기 시작했다.

카트란은 4가지 조건을 만족한다. 우선 범용 리눅스 서버에서 구동할 수 있으며, 서버 상의 다른 서비스와 공존할 수 있어 전용 로드밸런싱 서버가 필요없다. 유지보수가 쉬우며, 쉽게 사용하고 디버깅할 수 있다. 쉬로코프와 다시네니는 처음 만든 소프트웨어 정의 로드밸런서는 다른 서비스, 특히 백엔드 서비스와 충돌을 일으켰다고 설명했다.

두번째 시도에서는 XDP(eXpress Data Path) 프레임워크와 BPF 가상머신(eBPF)를 활용해 다수의 시스템 상에서 백엔드 서비스와 함께 로드밴런서 소프트웨어가 구동되도록 했다.

한편, ZTP는 새로운 스위치와 라우터를 자동으로 프로비저닝할 수 있는 툴로, 수작업 개입이 전혀 필요없다. ZTP 툴의 경우도 페이스북의 규모 때문에 자체적으로 개발할 수밖에 없었는데, 페이스북 네트워크 엔지니어들은 이 때문에 네트워크 배치 워크플로우에 완전히 새로운 접근 방식을 개발했다.

페이스북은 벤딩 머신(Vending Machine)이란 이름의 새로운 프레임워크를 만들었는데, 자동 판매기가 동전을 넣으면 음료수가 나오는 것처럼 장비의 역할과 위치, 플랫폼을 입력하며 네트워크 장비가 새로 프로비저닝되어 프로덕션 트래픽을 전달하는 방식이다. ZTP는 아직도 진화 주이기 때문에 페이스북은 새로운 기능을 계속 추가하고 있다.

페이스북은 ZTP의 라이선스는 공개하지 않았다. 카트란과 마찬가지로 이 소프트웨어를 사용하려면 직접 구축해야 한다. 물론 친절한 페이스북 엔지니어가 몇몇 질문에 답을 줄 수는 있겠지만, 지원을 제공하는 소프트웨어는 아니다.  editor@itworld.co.kr


X