2010-06-09 5 views
5

레일 우리가 우리가 한 응용 프로그램에서 다른/풀 데이터를 누르면 다음과 같은 시스템 (등) :당신에게 어떻게 건축가 복잡한 시스템

  • 호스팅 CRM (InsideSales.com)
  • 별표 전화 시스템 (내부)
  • 배너 광고 시스템
  • 리드 생성 시스템 (자체 개발)
  • 전자 상거래 저장소 (대한 openx, 우리는 호스트)
  • 작업 B (마구, 우리는 호스트) 오드 작업 현장의 숫자는 + 인바운드 작업이
  • 이메일 전달 시스템을 공급 긁힌 자국
  • (자체 개발) (메일 침프처럼, 자체 개발)
  • 이벤트 관리 시스템 (에서 Eventbrite 같은, 자체 개발)
  • 대시 보드 시스템 (많은 차트와 다른 시스템의 정보를 가져 오는 보고서)

Rails 3을 사용하면 정말 마이크로 앱 전략을 추구하고 싶지만 앱을 사용해야하는지 결정하려고합니다. REST HTTP API를 통해 또는 모두 제어하기 때문에 공유 모델과 같은 작업을해야합니까? 코드를 단순화 할뿐만 아니라 훨씬 더 쉽게 경계를 넘나 드는 누설을 허용하는 코드입니다 ...

37 시그널에는 많은 작은 애플 리케이션이 있다고 들었는데, 그 애플 리케이션이 서로 통신하는 방법을 알고 있습니다. 자신의 멀티 앱 경험에 대한 조언.

감사합니다. 나는 내 블로그 http://rywalker.com/chaos-2010에이 질문을했다.

답변

4

마지막으로 나는 작은 응용 프로그램을 많이 묶어 놓았고 간단한 REST API를 사용했습니다.

보너스 포인트 : 다른 언어로 작성된 서비스/앱과 통합 할 수 있습니다.

경고없이 기술을 선회하기를 좋아하는 미친 버즈 워드 사랑 매니저가 있으면 도움이됩니다.

3

나는 정확히 같은 것을 가지고 있었다 : 정확하게 HTTP 준비가되어 있지 않은 데몬들과 이야기해야했다. 그래서 나는 다음 패턴을 따랐다. XML/JSON을 사용하여 데이터를 교환하고 memcache를 사용하여 짧은 메시지를 교환하는 REST API. (memcache와 다른 소프트웨어에서 업데이트 할 일부 키를 정의하고 키를 찾기 위해 memcache를 당깁니다) 보안 대책으로서 디지털 인증서를 사용하는 API KEY 또는 HTTP 클라이언트 인증을 추가했습니다.

실제로 DHH에서 이메일 응답을 얻었다
5

...

우리는이 둘의 조합을 사용하지만, 우리는 통합 휴식을 기본. 우리가 직접 데이터베이스 통합을 사용하는 유일한 곳은 37signals ID 사용자 데이터베이스입니다. 너무 빨라야하기 때문에. REST는 훨씬 제정신입니다. 필요한 경우 나중에 시작하여 최적화하십시오.

0

다른 옵션은 AMQP 메시징입니다 (rabbitmq 또는 다른 방법을 통해).

관련 문제