2014 ChattingCat service architecture

17
ChattingCat Service Architecture Geun / [email protected] / geunbae.com

Transcript of 2014 ChattingCat service architecture

ChattingCat !Service Architecture!

Geun / [email protected] / geunbae.com!

안녕하세요. 이근배입니다.!

Rails! 20+! 3(6)!

오늘 다룰 이야기!Rails로 운영되는 채팅캣 이야기 !

채팅캣은?!

원어민 !영작 교정! 서비스 !

실시간!

Websocket!XMPP!

CometD!Polling!Keepalive!

등을 이용하여, 바로 바로 !

채팅캣은?!

원어민!서비스!

실시간! 교정!영작!

원어민 !서비스!

실시간 !

미국! 영국! 에 거주하는 원어민 튜터와!채팅캣은?!

교정!영작!

한국! 일본! 에 거주하는 학생에게!

요렇게 바꿔주는 !

my name geun is!

My name is Geun.!

채팅캣은?!

원어민!서비스!

실시간 ! 교정!영작!

웹도 하고 앱도 하고 !관리자페이지도 만들고!

채팅캣은?!

원어민!서비스 !

실시간 ! 교정!영작!

Express!

MongoDB!

Node.js를 이용한!MVP 버전!

Socket.io!

도메인에서 express로 바로 연결!정적, 동적 데이터 모두처리!가끔 이유없이 죽음!

Rails3!(unicorn)!

PostgreSQL!

Rails를 이용한!MVP 버전!

Faye!

Rails의 Assets은 Nginx에서 캐싱!Socket.io == Faye !Web 버전에는 충분(일본 linode)!

Nginx!

Sidekiq!

Redis!

Amazone AWS를!사용하는 채팅캣 !

AWS Tokyo!

Router53!

ELB!

Nginx(reverse-proxy)!

Haproxy!

Rails4(torquebox3)!

Jboss(Infinispan, HorrentQ)!

PostgreSQL! Redis!Elastic Search!

Logstash!

Microservice!Architecture!

Oauth2 & Api!

API!

Log!

Api간 overhead 발생!

API!

Core!

API!

Message!

독립적으로 유지 / 배포!

자유자재로 Meshup!

Web! App! Admin!

Database !& Caching!

pgBouncer!

Infinispan7 (Memory data grid)!

Rails!

PostgreSQL! Master!

Redis Master!

Query Offload!

PostgreSQL! Slave! Gem “Octopus” !

Gem “Redis-object” !

Redis slave!

2015년 !채팅캣!

Jruby9!

Torquebox4!

Mutithread with Celluloid!

Packer, Docker, Serf !

http://torquebox.org/news/2014/12/05/!torquebox-4-0-0-alpha1-released/!

루비는 느려서 못써먹겠다?!HTTP/1.1 200 OK!Content-Type: application/json; charset=UTF-8!Content-Length: 28!Server: Example!Date: Wed, 17 Apr 2013 12:00:00 GMT!!{"message":"Hello, World!"}!

http://www.techempower.com!/benchmarks/!

Jruby, Rails4, Docker, Erlang, Scala, AngularJS!

Jruby를 이용한 고성능 웹 어플리케이션!

Apache Spark를 이용한 실시간 Context 분석!

MPTT를 이용한 대규모 Messaging !

Mallet, LDA를 이용한 실시간 튜터 추천/매칭 시스템!

채팅캣에서 선수(개발자)를 모십니다. !막간 광고!

geun / [email protected] / geunbae.com!

AngularJS를 이용한 SPA 제작!