2013.10.22

트위터, “오픈소스 인프라가 서비스 안정화의 핵심 동력”

Loek Essers | IDG News Service
서비스 중단을 방지하고 서비스를 확장하면서도 비용을 줄이기 위해 트위터는 자사 핵심 인프라의 대대적인 변화를 진행해 왔다.

트위터는 초당 6000건의 메시지를 처리하는데, 하루 5억 건, 매주 35억 건의 메시지를 처리한다. 한 때 트래픽이 몰리는 시간에는 1초에 14만 3000건의 메시지를 처리하기도 했는데, 올해 초 일본에서 애니메이션 영화 “천공의 성 라퓨타”를 방송했을 때이다.

리눅스콘 유럽에서 트위터의 오픈소스 컴퓨팅 책임자인 크리스 애니츠지크는 이런 규모의 메시지를 처리하는 것이 트위터의 과제였다고 밝혔다. 트위터는 2006년 분산 플랫폼보다는 루비 온 레일즈 애플리케이션을 사용한 단일 플랫폼을 사용해 서비스를 시작했는데, 당시에는 서비스가 그리 붐비지 않았기 때문에 큰 문제가 없었다. 하지만 2008년 서비스가 성장하면서 “실패한 고래”로 불리는 서비스 장애 화면이 수시로 등장하기 시작했다.

트위터의 엔지니어들은 기본적으로 임기 응변식으로 서비스를 유지했다. 하지만 2010년 월드컵 기간에 문제는 더욱 심각해졌는데, 초당 3000건의 메시지가 전송되면서 더욱 감당하기 어려워진 것이다. 애니츠지크는 “엔지니어 관점에서는 완전히 손을 쓸 수 없는 괴로운 일이었다”고 밝혔다. 누군가 득점을 하거나 경고 카드라면 받으면 사이트가 다운되어 버릴 정도였다.

변화가 필요한 시점이 된 것이었다. 상황을 분석한 후 트위터는 데이터베이스 정보 관리부터 사이트의 그래픽 처리까지 모든 것을 단일 코드 베이스를 이용해 처리하는 것이 문제라고 결론을 내렸다. 애니츠지크는 “그동안 서비스 유지를 위해 하고 있었던 것은 문제 지점에 더 많은 시스템을 투여하는 것이었다. 너무 비싼 방법이라 최상의 해결책은 되지 못했다”라고 설명했다.

시스템 향상과 새로운 기능 출시 대신에 트위터의 엔지니어들은 특정 장애를 해결하기 위해 일명 “고래 사냥 원정”에 나섰다.

트위터는 최종적으로 새로운 인프라에 투자할 시간이라고 판단하고 JVM에 승부를 걸었다. 이는 트위터로 하여금 획일적인 단일 애플리케이션 환경을 깨고 서로 다른 서비스 환경을 구현할 수 있도록 했다. 이제 트위터의 인프라는 대부분 독립적으로 구동되는 자체 팀으로 구성되어 있다.

또한 비용을 줄이고 시스템의 수도 줄이기 위해 트이터는 아파치 메소스(Apache Mesos)로 전환했다. 메소스는 클러스터 관리자로, 동일한 시스템에서 다중 프로세스를 구동할 수 있기 때문에 하드웨어를 보다 효율적으로 사용할 수 있다. 이런 변화는 2013년 8월까지 집중적으로 진행됐다.

이외에도 트위터는 네티(Netty)나 스캘딩(Scalding) 등의 툴을 적극적으로 사용하고 있다. 네티는 고성능 프로토콜 서버를 생성하기 위한 툴이며, 스캘딩은 빅 데이터 작업을 좀 더 쉽게 작성할 수 있도록 해준다. 트위터는 루비 온 레일즈 애플리케이션 프레임워크를 완전히 배제하지는 못하고 있지만, 이들 툴과 핵심 인프라를 JVM으로 전환함으로써 장애를 줄이고 성능을 향상할 수 있게 됐다. 애니츠지크는 “이들은 우리가 기업으로 성장하는 데도 크게 기여했다”고 강조했다. 트위터는 현재 2000명을 직원이 일하고 있는데, 이들 중 절반이 엔지니어이다.

트위터가 얻은 교훈 중 하나는 인프라를 오픈소스에 두는 것이 좋은 생각이라는 것. 애니츠지크는 “오픈소스는 오늘날 최상의 소프트웨어를 찾을 수 있는 곳”이라며, 오픈소스 커뮤니티에 기여하는 것 역시 좋은 일이라고 덧붙였다.

애니츠지크는 점진적인 변화 역시 좋은 생각이라며, “조금씩 개선해 나간다면, 성공 가능성도 높아진다”고 강조했다. 또한 기업들은 대학으로부터 지속적으로 학습을 해야 한다고 덧붙였다.

리눅스재단의 짐 제믈린은 트위터가 핵심 인프라를 변화시키기 위해 투여한 노력은 기업들이 오픈소스 기술로부터 얻을 수 있는 이점을 보여주는 좋은 예라며, “비용은 줄이면서 인프라 규모와 관련한 과제를 신속하게 해결할 수 있도록 해준다”라고 강조했다.  editor@itworld.co.kr


2013.10.22

트위터, “오픈소스 인프라가 서비스 안정화의 핵심 동력”

Loek Essers | IDG News Service
서비스 중단을 방지하고 서비스를 확장하면서도 비용을 줄이기 위해 트위터는 자사 핵심 인프라의 대대적인 변화를 진행해 왔다.

트위터는 초당 6000건의 메시지를 처리하는데, 하루 5억 건, 매주 35억 건의 메시지를 처리한다. 한 때 트래픽이 몰리는 시간에는 1초에 14만 3000건의 메시지를 처리하기도 했는데, 올해 초 일본에서 애니메이션 영화 “천공의 성 라퓨타”를 방송했을 때이다.

리눅스콘 유럽에서 트위터의 오픈소스 컴퓨팅 책임자인 크리스 애니츠지크는 이런 규모의 메시지를 처리하는 것이 트위터의 과제였다고 밝혔다. 트위터는 2006년 분산 플랫폼보다는 루비 온 레일즈 애플리케이션을 사용한 단일 플랫폼을 사용해 서비스를 시작했는데, 당시에는 서비스가 그리 붐비지 않았기 때문에 큰 문제가 없었다. 하지만 2008년 서비스가 성장하면서 “실패한 고래”로 불리는 서비스 장애 화면이 수시로 등장하기 시작했다.

트위터의 엔지니어들은 기본적으로 임기 응변식으로 서비스를 유지했다. 하지만 2010년 월드컵 기간에 문제는 더욱 심각해졌는데, 초당 3000건의 메시지가 전송되면서 더욱 감당하기 어려워진 것이다. 애니츠지크는 “엔지니어 관점에서는 완전히 손을 쓸 수 없는 괴로운 일이었다”고 밝혔다. 누군가 득점을 하거나 경고 카드라면 받으면 사이트가 다운되어 버릴 정도였다.

변화가 필요한 시점이 된 것이었다. 상황을 분석한 후 트위터는 데이터베이스 정보 관리부터 사이트의 그래픽 처리까지 모든 것을 단일 코드 베이스를 이용해 처리하는 것이 문제라고 결론을 내렸다. 애니츠지크는 “그동안 서비스 유지를 위해 하고 있었던 것은 문제 지점에 더 많은 시스템을 투여하는 것이었다. 너무 비싼 방법이라 최상의 해결책은 되지 못했다”라고 설명했다.

시스템 향상과 새로운 기능 출시 대신에 트위터의 엔지니어들은 특정 장애를 해결하기 위해 일명 “고래 사냥 원정”에 나섰다.

트위터는 최종적으로 새로운 인프라에 투자할 시간이라고 판단하고 JVM에 승부를 걸었다. 이는 트위터로 하여금 획일적인 단일 애플리케이션 환경을 깨고 서로 다른 서비스 환경을 구현할 수 있도록 했다. 이제 트위터의 인프라는 대부분 독립적으로 구동되는 자체 팀으로 구성되어 있다.

또한 비용을 줄이고 시스템의 수도 줄이기 위해 트이터는 아파치 메소스(Apache Mesos)로 전환했다. 메소스는 클러스터 관리자로, 동일한 시스템에서 다중 프로세스를 구동할 수 있기 때문에 하드웨어를 보다 효율적으로 사용할 수 있다. 이런 변화는 2013년 8월까지 집중적으로 진행됐다.

이외에도 트위터는 네티(Netty)나 스캘딩(Scalding) 등의 툴을 적극적으로 사용하고 있다. 네티는 고성능 프로토콜 서버를 생성하기 위한 툴이며, 스캘딩은 빅 데이터 작업을 좀 더 쉽게 작성할 수 있도록 해준다. 트위터는 루비 온 레일즈 애플리케이션 프레임워크를 완전히 배제하지는 못하고 있지만, 이들 툴과 핵심 인프라를 JVM으로 전환함으로써 장애를 줄이고 성능을 향상할 수 있게 됐다. 애니츠지크는 “이들은 우리가 기업으로 성장하는 데도 크게 기여했다”고 강조했다. 트위터는 현재 2000명을 직원이 일하고 있는데, 이들 중 절반이 엔지니어이다.

트위터가 얻은 교훈 중 하나는 인프라를 오픈소스에 두는 것이 좋은 생각이라는 것. 애니츠지크는 “오픈소스는 오늘날 최상의 소프트웨어를 찾을 수 있는 곳”이라며, 오픈소스 커뮤니티에 기여하는 것 역시 좋은 일이라고 덧붙였다.

애니츠지크는 점진적인 변화 역시 좋은 생각이라며, “조금씩 개선해 나간다면, 성공 가능성도 높아진다”고 강조했다. 또한 기업들은 대학으로부터 지속적으로 학습을 해야 한다고 덧붙였다.

리눅스재단의 짐 제믈린은 트위터가 핵심 인프라를 변화시키기 위해 투여한 노력은 기업들이 오픈소스 기술로부터 얻을 수 있는 이점을 보여주는 좋은 예라며, “비용은 줄이면서 인프라 규모와 관련한 과제를 신속하게 해결할 수 있도록 해준다”라고 강조했다.  editor@itworld.co.kr


X