트위터는 왜 두번이나 모니터링 시스템을 직접 개발 하였을까요?   Monitorama 에서 발표한Building Twitter Next-Gen Alerting System과  여러 컨퍼러스에서 발표한 내용을 정리해서 공유해 드리고자 합니다.

Twitter 모니터링 초창기 시스템 아키텍처

observability2

첫 모니터링 솔루션은 위와 같이 아키텍처를 수립하였습니다. (현재 오픈소스 솔루션과 유사하죠)     1.0 시스템은 다음과 같은 컴포넌트로 구성되어 있습니다.  (트위터의 모니터링 시스템이 오픈소스로 공개되지 않아서, 전적으로 발표자료에 의존해 설명이 구체적이지 않습니다. )

  • Agent  – 데이터를 수집하는 Agent로 시스템 성능에 필요한 여러 지표를 수집.
  • Collector & Storage API – 수집부에서 데이터를  모아  Storage API 를 통해 Time Series Database( Manhattan으로 추정)에 저장하고, 그정보를 Cassandra에 저장.
  • Monitoring – Query 엔진으로 데이터를 긁어와 여러 지표를 모니터링.
  • Dashboard –  Alert 과 Dashboard 를 쉽게 구성할수 있는 Config, DSL을 제공.
  • Ad Hoc Queries – 상황에 따라 적합한 쿼리를 던질수 있음.

트위터는 왜 모니터링 2.0 시스템을 만들어야 했나?

하지만 트위터의 급격한 성장으로 인해, 위 아키텍처로는 더 이상 모니터링을 할수 없는 상황이 되었습니다.

  • 1분당 수집되는 메트릭이 3년 만에 3억개(300M)-> 14배로 43억개(4.3B)으로 증가.
  • 발생하는 알럿의 증가 –  1분당 2500개 -> 1분당 3만개로 증가.

1분당 수집되는 트위터 성능 지표 수집 수

계속 읽기

Advertisements

mongodb가 혜성처럼 등장해 많은 사랑을 받은 이유가 여러가지 있다.  가장 큰 덕은 모바일의 폭발적인 성장이지만, 개발자에게는..

  • auto-sharding
  • schemaless + json 데이터 저장
  • 자체적으로 가지고 있는 master-slave  high availability 기능

정도 되지 않을까 생각한다.

sharding이라는 것은 꽤 귀찮은 작업으로 어떻게 데이터를 분배해야 할지 많은 고민을 해야 되는데, 굳이 크게 고민하지 않고 auto-sharding을 쓸수 있는 적당한 규모의 프로젝트라면 마다할 필요가 없다.

또한 High Availiability를 자체적으로 지원을 하는데

replica-set-primary-with-secondary-and-arbiter1) 별도의  watcher인  arbiter 를 셋업하여 master-slave를 감시하는 방법

replica-set-primary-with-two-secondaries2) watcher없이 master-slave가 서로 heartbeat 메세지를 보내고 문제를 감지해 failover를 처리하는 방법

이렇게 두가지를 지원한다.  개발자에게는 야호하고 소리를 지를수 있는 좋은기능! (단 죽은 master를 어떻게 살리지는 개발자 여러분의 몫 – 좋은 방법이 있으면 공유를…)

계속 읽기

소마에 멘티들과 지난 몇개월 동안 재미난 프로젝트를 진행했습니다.

조재우, 노성현, 윤강호, 박종훈    (사진은 추후 잘 나온걸로 공개하겠습니다.)

안드로이드 테스트 자동화와 프로파일러를 직접 구축한 프로젝트를 진행했습니다. 기획, 개발 총 3달이 걸렸으며, 아직 시장에 바로 나가기에는 좀더 다듬을 필요는 있습니다.

일단 보시죠. 백번 듣는것 보다는 보시는게 더 나을거 같습니다.

기존 프로파일러와 다르게 SaaS 형태로 접근성을 높였으며,  테스트를 쉽게 그리고 프로파일링도 쉽게 만들기 위해 큰 고심을 했습니다. 몇몇 업체를 만나 안드로이트의 동적 분석, 자동화 테스트를 도와 드렸으며, 시행 착오를 겪으면서 조금씩 더 개선하고 있습니다.

계속 읽기

NIPA 소프트웨어 공학센터의 지원으로, Android Application Block이라는 안드로이드 참조 아키텍쳐 모델을 만들었습니다 .

컨퍼런스를 통해서 먼저 소개하였고, 프리젠테이션을 통해서 안드로이드의 문제를 해결할때 필요한 여러 오픈소스들을 설명해 드렸습니다.  (재미난 것은 외국에서도 Android Bootstrap이라는 형태로 기존 Android의  문제를 해결하기 위해 여러 오픈소스를 묶어 제공을 했고, 안드로이드 개발자에게는 꽤 인기가 좋은 것으로 알고 있습니다.  )

이 버전보다 더욱 업데이트된 모바일 참조 아키텍처 (안드로이드) 를 발간 하였습니다. (링크를 통해 다운 받으시면 됩니다 – 소프트웨어 공학센터에 이메일 가입이 필요합니다)

안드로이드 어플리케이션 블록 아키텍처 

기존의 안드로이드의 구조(젤리 빈 기준)는 진성주 군과 분석하여  정리해보았습니다 (이 링크를 클릭하시면 됩니다).

그리고 저희가 몇가지 오픈소스들을 더해서 아래와 같이 추가된 모델을 만들었습니다.  새로 추가된 오픈소스가  기존의 어떤 안드로이드 패키지와 연관이 있는지 색깔을 입혀 표현을 하였습니다.

android application block_nipa

계속 읽기

지앤선에서 진행한 “아키텍트가 알아야 할 97가지 Face 2 Face ” 행사가 성공적으로 마쳤습니다. 독자들과 한발짝 다가가서 더 많은 이야기를 나눌수 있어서 좋았습니다. 아래와 같은 주제들을 60분간 나누었습니다. 소프트웨어 아키텍트가 알아야 할 97가지 어떤 책인가? 아키텍트는 신기술에 대한 이해가 필수적인데 어떻게 기술을 접하고 있나요 국내에서 아키텍트가 되는 법 아키텍트는 코딩을 잘 해야 한다. 기획자로 일하는 것이 […]

첫번째 세션인데도 불구하고, 많은 분들이 서서 들으실 정도로 참여해 주셔서 정말 감사합니다 . 많은 분들에게 도움이 되길 바라구요. 슬라이드 쉐어에 공유를 해 놓았고,  pptx를 다운 받으실 수 있게 해 놓았습니다. 이번 발표에는 다음과  같은 내용을 다루었습니다 오픈소스의 역사및 현재 이야기 라이센스 변화에 따른 에셋으로써 오픈소스 안드로이드의 로그 문제 해결 – Logdog  구현 이야기   오픈소스 […]

2012 sw 아키텍트 컨퍼런스

12월 14일 소프트웨어 아키텍트 컨퍼런스에 발표를 합니다.

저를 포함해 알람몬의 개발을 지휘하는 CTO 강진석 님, 그리고 요즘 이슈가 되는 BaaS의 전문가 진성주 PD 님과 함께 80분간 재미난 이야기들을 전달해 드릴 겁니다.  저보다 훨씬 대단한 2분이랑 같이 해서 마음이 무겁네요. 재미난 쇼가 되어야 할거 같아요.

주제는 Android OpenSource Application Block  입니다.  안드로이드 개발시 필요한 여러 에셋들을 소개하는 세션이 될거 같습니다. 슬라이드 쉐어에서 많은 트래픽을 받았던  안드로이드를 개발자를 위한 오픈소스 이야기 보다 더 풍성한 내용으로 설명을 드릴겁니다.

상세한 주제는 아래와 같습니다.

계속 읽기

97가지 시리즈 (아키텍트, 프로젝트 관리자, 프로그래머) 를 한 자리에 만나는 세미나를 마련해 볼려고 했으나.

이미 97 아키텍트는 여러 번 해서, facebook open source 프로젝트를 전 발표를 대신하고, 나머지 두 역자분이 프로젝트 관리자, 프로그래머의 핵심들을 발표해 주실거 같습니다.

저 역시 이직을 한 이후 처음의 세미나이기 때문에 마음이 무겁기도 하고, 설레이기도 합니다.

유명한 아키텍트이신 김동열 소장님과 오픈 소스 전문가 이신 분을 섭외해서 진행하는 행사인 만큼, 많은 참여 바랍니다.

세미나 신청 하는 곳 : 링크

계속 읽기

7월 7일 있었던 제2회 대한민국 커뮤니티 데이에 발표한 동영상 강좌가 올라왔습니다.

안드로이드, 오픈소스  그리고 패턴에 대한 강좌입니다.

 

계속 읽기

드디어 또 하나의 작품이 출간되었습니다.

아키텍트가 가 알아야 할 97가지에 이어 프로그래머가 알아야 할 97가지가 드디어 출간되었습니다.

여러 지인들이 의기투합해서 만든 작품으로, 오랜 시간이 걸려 드디어 빛을 보게 되었습니다. 정말 많은 분들이 고생을 해주셨구요.  10명이 넘게 번역 작업을 하느라 정말 고생이 많았습니다. :

특히 일정한 퀄리티가 나오도록 어려번 검수를 해주시느라 고생해 주신, 김수현 , 최현미 두 역자님에게 정말 감사드립니다.

저보다 더 많은 노력을 해주셔서, 최종 검수때  많이 편했습니다. 정말 두 분에게 고개 숙여 감사드립니다. 어떻게 보면 두 분의 이름이 1,2 역자로 먼저 나와야 하는데, 겸손하게 저에게 1역자를 주셔셔, 책임감이 크게 느껴집니다.

또한 베타리더 분들에게도 정말 감사드립니다.  오역을 많이 다듬어 주시고, 좀더 쉬운 용어로 바꾸는 작업을 해주셔서 이 분들이 아니였으면 정말 더 오래 걸렸을거 같습니다.

이전 소프트웨어 아키텍트가 알아야 할 97가지 보다 좀더 개발자에게 와 닿고 가슴을 적실 선배들의 조언들이 듬뿍 담겨 있습니다.  업계 최고의 아키텍트, 프로그래머, Agile 전문가들이 경험에 기반한 조언들입니다.

또한 특별 부록으로, 원서에는 없는 한국의 유명한 프로그래머들의 추가 에피소드가 실려 있습니다.

계속 읽기