본문 바로가기
IT 이야기

QConSF2010 - Wednesday

by csk 2010. 11. 4.

QCon 3일째 세션 내용입니다. 오늘은 여러트랙을 돌아다녔네요.

 

■ Data Architecture at Twitter Scale
   in Architectures you've always wondered about

 

□ 내용

- Tweeter의 DB를 tweet / timeline / social graph 측면에서 살펴봄

- tweet은 data 많으니 당연히 partitioning 해야하는데
  Dirt-goose(월별파티션),T-Bird(사용자id별파티션), T-Flock(사용자id의인덱스에따른파티션?)이 있을수있음.
  성능과 비용의 trade off를 고려 memory cacher DB와 T-Bird 방식을 조합하여 사용함

- timeline은 여러사용자의 tweet을 (follow관계 or 멘션에 따라) 모아서 보여주어야하는 과제
  이의 최적화를 위해 off-line과 on-line 처리를 mix하여 사용함.
  즉 tweet 남길때, follower들에게도 미리 보내서 그들의timeline에 중복저장버리는 방식
  어느정도는 memorycache DB 구조에 의존.

- social graph 측면은 일종의 집합연산(union, intersect)이 필요한데, 이는 사전처리가 의미없음.
  원래는 source/dest 간 관계테이블 형태를 가졌으나, 이제는 source → destination 방향 테이블 하나,
  dest ← source 방향 테이블 하나로 분리하여 운영중

- 대용량 처리는 partitioning, replication, index를 사용해야 함 (당연한거 아닌가? --;)

- 대용량 처리의 조언 세가지를 제시함
  1) 어떤 경로는 pre-computed 여야만 함.
  2) bandwidth를 고려하여 매우제한된 SQL pattern만 써야함.
  3) 늘 memory 구조를 먼저 고려해야 함.

 

□ 소감

- tweeter의 DB정책에 대한 궁금증을 해소한 기회

- 이래서 tweet은 수정이 안되는구나... 싶었음. ^^;
- BtoC의 엄청난 사용자수를 처리하고 있으니 회사가 이에대한 연구도 가능하고 발전하는구나 하는 부러운 느낌

 

■ Big ball of Mud : Is this the best that Agile can do?
   in Agile Evolution

 

□ 내용

- Agile이 설계를 등한시? 해서 더욱 조악한 SW를 만들고 있진 않은지 반성하자는 내용
- Agile은 아래와 같은 한계가 있음
  + Lack of upfront Design
  + Focus on Process rather than architecture

- 코드를 clean 하게 유지하고, 변경이 자주발생하는 부분을 분리할 수 있도록 설계?(코딩)해서
  SW의 품질을 보장할 수 있는 방안을 강구해야 함.
- Refactoring 및 testing 열심히 하자.

 

□ 소감

- Agile은 누가뭐래도 대세고, 그래서 그다음 혁명을 하자는.. evolution을 track 명으로 한듯
- 이 트랙에 일반적 내용의 agile 세션은 없었음.
- 발표자가 엊그제 AOM 강사여서 같은 맥락의 언급이 많음.

  (외국사람 얼굴은 다 비슷해서 한참만에야 생각났다는...^^;;)

 

■ Doing BDD with Puppet and Cucumber
   in Dev and Ops: A Single Team

 

□ 내용

- puppet and cucumber란 infra 관리를 돕는 일종의 SW로 스스로 개발중인 듯하며 0.2 버전이라고 말함.
- 모토는 "treating infrastructure as a code" 인데,
  infra 관리를 (얼핏보기엔 자바같기도 한) 코드와 영어문장과 거의 같은 형태의 문장으로
  (when then...I install...)만들어 해서 이를 돌려가며 한다고 소개
- 영문처럼 쓰는 코드가 BDD Framework 기반이라고 소개함
- 이 도구들은 SCM practice, Refactoring, Self-documenting, build-pipeline, testing이 가능.
- infra 관리도 SW랑 똑같이 프로그램짜고 TDD로 test하고, 자동 문서화 하자는 취지.
  cucumber라는 도구는 생긴것도 프로그램 개발 도구와 흡사함.
- 기존에도 infra 담당자가 여러가지 script형태의 것들을 짜서 관리를 나름 했겠지만,
  공용언어기반으로 test 까지 가능하게 했다는 점에 의의를 둘 수 있을것으로 보임

 

□ 소감

- BDD는 Behavior Driven Development 인데 본 내용과 크게는 관계없으니 각자 찾아보시길. ^^;;
- 어제 Continuous delivery할때 DB deploy 설명한 말총머리 총각(?내맘대로)임. 사진이 사기임.
- infra guy들만 모여 질문에 서로서로답하며 명령어/제품명 말하며 완전 물만난 분위기엿음.

 

■ RESTful SOA or Domain-Driven Design - A Compromise?
   in SOA for the REST of us

 

□ 내용

- REST상에 SOA와 DDD를 어떻게 적용할 수 있는지 보여준 세션
- 전반적 구조는 client app ↔ RESTful - Model(DDD기반) ↔ database 로 구성
- 직접 사례를 보여주며 sequence diagram과 code 까지 제시

 

□ 소감

- 개인적으로 가장 실망한 세션. 건진게 없는데다가 발표자는 약간 떨기까지해 아무런 interaction없이
  monotone으로 진행.  (졸음을 참기 힘들었어요. ㅡㅡ;)

 

■ Agile Does not guarantee Value creation
   in Agile Evolution

 

□ 내용

- Agile을 SW 개발 이외 분야에 적용한 성공적 사례를 다수 보여줌
- 사무환경 개선, HR mngt, 회의실 대여 관리 등에도 사용하였고, 비용절감이 꽤 컷음
- 결론적으로 이 사례가 모두 Ci&T라는 발표자 본인 회사의 이야기였는데,
  1000여명이 유수 기업들의 IT를 담당하는 회사인것 같음.
- Agile은 어디든 적용가능하며, 문화이며 사람중심이다는 결론.

 

□ 소감

- 발표 기술이 놀라움. 페이지 부분부분을 확대해가며 보여주는데, 단순ppt는 전혀아니었음.
- 발표중 tweet사용 투표를 5,6회는 하고 그 결과를 함께 보면서 진행하는 재미도...
- 발표 끝 무렵 자기회사의 문화를 소개하면서 마지막으로 "Learning Organization" 이라는 문구가 떡하니 나와
  기절하는줄 알았음. --;

  우리 회사에서 올해 엄청 열심히 추진하고 있는건데, 이런데서 보게될줄은 정말 예상치 못했음.
- 나는 정말 재미있었는데, 개발자 중심 컨퍼런스라 사람이 너무 없어서 민망.

'IT 이야기' 카테고리의 다른 글

QConSF2010 Friday  (0) 2010.11.06
QConSF2010 Thursday - noSQL  (0) 2010.11.05
Innovation at Google  (1) 2010.11.04
Continuous Delivery  (0) 2010.11.03
AOP (Adaptive Object Model)  (0) 2010.11.02