background preloader

The Architecture of Open Source Applications

The Architecture of Open Source Applications

The Art of Scalability Backend Architectures Keywords and References. #wiki Twitter ror, scala, jetty, erlang, thrift, mongrel, comet server, my-sql, memchached, varnish, kestrel(mq), starling, gizzard, cassandra, hadoop, vertica, munin, nagios, awstats Facebook php (with hiphop compiler), thrift, java(tomcat, jetty, minor), epoll, erlang, tornado, nodejs my-sql, memcahced, hadoop, hbase, hive, scribe(-hdfs), bigpipe, varnish, haystack, cassandra Tumblr (Korean) centos, sciapache, apache, nginx, (move out of)php, scala(selection), ruby, thrift, my-sql, redis, hbase, memcached, gearman, kafka, kestrel, finagle, varnish, ha-proxy, func, capistrano, puppet, jenkins aws(ec2, s3), ubuntu, cloudfront, python, pylons, paste, tornado, thrift, comet server, memcached, haproxy, nginx Pinterest python, django, tornado, node.js, rabbitmq, nginx, haproxy, varnish, memcached, membase, redis, my-sql, mrjob, hadoop(elastic map reduce) Instagram (Korean) Pulse Backend « Pulse News Engineering Blog Netflix Spoqa linux(2.6), nginx, uwsgi, aws(s3), dotcloud, mysql, redis, celery StyleShare

The Art of Capacity Planning: Scaling Web Resources eBook: John Allspaw: Amazon.in: Kindle Store Trello 아키텍처 CoffeeScript Trello의 클라이언트와 서버 모두 순수 자바스크립트 프로젝트로 시작되었고, 2011년 5월까지는 적어도 그렇게 유지되었는데 그 이후부터 CoffeeScript를 얼마나 좋아하는지 보기 위해서 CoffeeScript로 이중으로 개발해 포팅하기 시작했다. 그 후 우리는 CoffeeScript를 사랑함을 확인했고 곧, 나머지 모두의 코드도 CoffeeScript로 전환을 완료했다. CoffeeScript는 JavaScript를 읽을 수 있는 컴파일 언어이다. JavaScript는 정말 멋진 언어이다. The Client Trello 서버는 HTML 클라이언트 측 코드를 거의 다루고 있지 않다. 병렬적으로 첫 번째 페이지의 콘텐츠는 AJAX로 데이터를 로드하여 시작되며, 동시에 서버와 WebSocket 연결을 설정한다. 데이터 요청 처리를 할 때 Backbone.js는 무지 바빠진다. view에서 생성된 HTML에서 DOM 이벤트를 감시하여 해당 model에 대응되는 메서드와 연결해서, 서버와 다시 동기화되면 다시 관련 method에 대응해 준다.변경을 위해 model을 감시하고, 변경 사항을 반영하기 위해 model의 HTML 블록을 다시 렌더링한다. 클라이언트 앱 전체를 브라우저 창에서 로드하는 형태의 구조를 가지고 있지만, 우리는 또한 페이지 전환으로 인한 시간 비용을 낭비하고 싶지 않다. Mustache는 로직이 적은 템플릿 언어로서, 모델을 HTML로 변환해 주기 위해서 사용하고 있다. Pushing and Polling 실시간 업데이트 자체는 새롭지 않지만, 협업툴에서는 정보를 공유하는 서비스이므로 중요한 기능이 된다. 브라우저 지원(Chrome/Firefox/Safari)이 되면, WebSocket 연결을 사용하여 서버는 다른 사용자의 변경 내용을 대체로 1초 이내에 동일한 채널을 수신하는 브라우저에 푸시 할 수 있다. 매력적이진 않지만, 잘 작동이 되었다. The Server Trello의 서버는 Node.js로 구축되어 있다. 그 외

Related: