ruby-on-rails - 사이트 - 루비온레일즈 쇼핑몰




기업에 Ruby On Rails가 준비되어 있습니까? (14)

37Signals 직원들은 Ruby on Rails를 사용하여 모든 애플리케이션을 구축했다고 생각합니다.

나는 그들이 그것을 발명 한 사람들이라고 상상할 수있다.

List Apart 는 엔터프라이즈 급이 아닌 RoR을 사용합니다.

대규모의 비즈니스 핵심 엔터프라이즈 애플리케이션에 RoR을 사용하는 사람이 있습니까?

사람들이 이러한 유형의 앱에 사용하는 동적 언어를 기반으로 한 다른 경량 웹 프레임 워크가 있습니까?

이러한 유형의 응용 프로그램 프레임 워크를 사용하지 않는다면 무엇이 중단됩니까? 단순히 대규모 IT 조직과 관련된 관성입니까? 이러한 프레임 워크의 속도 및 안정성 문제는 개발주기 시간의 향상을 상쇄 할만큼 충분한 문제입니까?


IBM, Oracle, Sun 및 JPMorgan Chase는 Ruby on Rails를 사용하는 소수의 회사 일뿐입니다. 아마도 그보다 더 기업화되지는 않을 것입니다.


Ruby on Rails가 기업에 적합한 지 여부를 고려하려면 "기업"이라는 용어의 의미를 고려해야합니다. 내 경험상 엔터프라이즈는 "안전"을 의미합니다. 엔터프라이즈 솔루션을 찾고있는 회사는 일반적으로 대규모 공급 업체가 지원하는 기술 스택을 선택합니다. 이런 식으로 그들은 많은 돈을 쓰는 대가로 지원과 컨설팅을받을 수 있다는 것을 알고 있습니다. "아무도 IBM을 사기 위해 해고 당하지 않은"접근 방식입니다.

고려해야 할 또 다른 요소는 편재성입니다. 현재 루비가 여전히 다소 이국적인 언어로 여겨지고 있으며 숙련 된 루비 프로그래머의 가용성이이를 반영한다는 것은 의심 할 여지가 없습니다. 기술적으로 Ruby Java 또는 C #보다 정교하여 OO 순도에서 Smalltalk에 가깝고 메타 프로그래밍 기능 측면에서 LISP에 더 가깝습니다. 말할 것도없이, 회사는 루비 프로그래머보다 차이나 상점에서 저렴한 가격으로 자바 나 .NET 프로그래머를 얻는 것이 더 쉽다는 것을 알게 될 것입니다. 그것은 자바 나 .NET 프로그래머를 모욕하기위한 것이 아니라, 소프트웨어 개발을 가장 저렴한 입찰자가해야 할 일이라고 생각하는 것보다는 소프트웨어 개발을 여전히 고려하는 많은 고용주가 있다는 사실을 반영한 것입니다. Java 및 .NET 프로그래머는 이제 거의 상품이므로 적은 비용으로 제공 할 수 있습니다.

기술적으로 Ruby on Rails는 Java, .NET 또는 PHP 등으로 확장 할 수 있습니다. 병목 현상의 위치를 ​​측정하고, SQL 쿼리를 조정하고, I / O를 최소화하고, 적절한 경우 데이터베이스 스키마를 비정규 화하고, 캐싱 등의 신중한 사용. 다음 eBay 또는 Amazon을 구축해야하는 경우 eBay 및 Amazon과 마찬가지로 자체 솔루션을 수동으로 롤링하고 수동으로 조정해야합니다. J2EE는 레거시 통합에있어 우위를 점하고 있지만 이것이 Rails가 어쨌든 최적화 된 유스 케이스는 아닙니다. Rails는 새로운 CRUD 앱을 만드는 것입니다.

현재로서는 루비가 성능이 느린 언어 중 하나입니다. 이 분야에 많은 투자가 이루어지고 있으므로 Java가 처음 나온 이후로 향후 몇 년 동안 상황이 개선 될 것으로 예상합니다. Ruby VM 및 MRI (Matz Ruby Interpreter)에 대한 대안으로 흥미로운 개발이 많이 진행되고 있습니다. 개인적으로 JRuby는 계속 지켜봐야한다고 생각합니다. 썬 (go figure)의 지원을 받고 있으며 자바의 루비 구현이기 때문에 기존 JVM 인프라를 통해 루비를 기업에 도입하는 데 사용할 수있는 깔끔한 트로이 목마입니다.

나는 Rails가 아직 기업에 존재하지 않는다고 생각하며 여러면에서 결코 그렇지 않기를 바랍니다. 나는 J2EE 세계에서 나에게 명백했던 멀티 벤더 선택의 평범함이나 혼란에 의해 내가 좋아하는 프레임 워크가 혼란에 빠지는 것을 특히 원하지 않습니다. 다행히도 DHH는 Rails가 모든 회사에 모든 일을하려고하지 않고 자신의 가려움증을 긁을 수있는 소프트웨어로 계속 평가해야한다고 판단한 것 같습니다.


나는 그것이 엔터프라이즈라고 생각할지 모르겠지만 ... Twitter와 hulu가 모두 레일에 내장되어 있다고 많이 생각합니다.



나는 엔터프라이즈 환경에서 레일을 사용하며 꽤 잘 작동합니다. 환경에서 작동하려면 앱을 만들어야합니다. 필자의 경우 우리는 Java 하우스이므로 jRuby가 선택한 배포 방법입니다.

또한 레일 사용이 실제 페이지를 렌더링하는 것을 중단했지만 모듈, 도구 및 도구에 연결되는 빠르고 더러운 서비스에 사용합니다. 우리의 자바 서비스에는 그들과 인터페이스하는 백엔드 도구가 없습니다.

우리 사이트에는 수백 개 (아마도 천 페이지)의 페이지가 있으므로 레일은 아마도 그 아키텍처를 대체하기에는 좋지 않은 후보가 될 것입니다. 반면에, 레일을 Java 사이트에 통합하면 Java 끝에서 매우 어려운 몇 가지 문제를 해결할 수 있습니다.

앱 아키텍처가 핵심입니다. 앱을 확장하도록 디자인하지 않으면 선택한 프레임 워크 / 언어에 관계없이 문제가 발생합니다.

한 달에 수십만 건의 조회수를 기록하는 여러 페이지에 대한 Rails 앱을 만들었습니다. Rails는 문제가 없었지만 대부분의 콘텐츠가 캐시되었습니다. 우리는 yahoo가 우리에게 연결된 첫 페이지 기사가있는 곳을 가지고있었습니다. 페이지에 캐시되지 않은 레일 내용이 있었기 때문에 트래픽이 많으면 레일 앱이 다운되었지만 부분적으로 내 최적화가 좋지 않은 것은 내 잘못이었습니다.


많은 사람들이 "엔터프라이즈"라는 단어의 의미와 혼동된다고 생각합니다. YelloPages.com과 Penny Arcade는 엔터프라이즈 애플리케이션이 아닙니다. 물론, 많은 사용자와 조회수 / 분이있을 수 있지만 상대적으로 간단한 앱입니다.

엔터프라이즈 응용 프로그램은 엔터프라이즈를 실행하는 데 사용되는 응용 프로그램으로, 일반적으로 대규모 다중 부서, 다중 위치 회사를 의미합니다. SAP는 엔터프라이즈 시스템이지만 BaseCamp는 그렇지 않습니다.

엔터프라이즈 앱에서 일반적으로 볼 수있는 몇 가지 특성은 다음과 같습니다.

  • 그들은 크고 복잡합니다. 전형적인 ERP 시스템은 100 개의 엔티티 유형을 처리해야합니다.
  • 이들은 종종 다른 시스템과 통합해야하며 타사에 통합 지점을 제공해야합니다.
  • 이들은 많은 조직에서 서로 다른 직종을 반영하는 다양한 사용자 유형과 역할을 가지고 있습니다.

귀하의 질문에 대답하기 위해, Rails가 준비되었습니다. 우리는 현재 20 개 부서를 넘는 1000 명 이상의 사용자를위한 대규모 시스템 재무 관리 시스템을 개발하고 있습니다. 확장 성은 우리에게 큰 문제는 아니지만 안정성과 가용성입니다. 기술 문제에 관계없이이 문제를 해결하는 것은 동일합니다.

다른 사람들이 숙련 된 개발자에 대해 지적한 점을 다시 언급하지만 이는 모든 기술 스택에 다시 적용됩니다. 중요하지 않은 소규모 시스템에서 일반 개발자가 작업하는 것이 좋습니다. 그러나 중요하고 전사적 인 응용 프로그램을 개발하는 데 진지한 경우 가장 현명한 직원이 작업을 수행하는 것이 가장 좋습니다.


여기에 내가 걸릴 것입니다. 직원 수가 12 만 명인 내 회사에는 주로 내부 IT를위한 Java / J2EE 스택이 있습니다. 그들은 또한 문서 / 지식 관리를 위해 Sharepoint를 사용하고 워크 플로우 등을 위해 Oracle 앱을 사용합니다. 지난 2 년 동안 저는 소규모 그룹의 Ruby on Rails / Python-Django / PHP 애호가를 이끌면서 기업 내에서 이러한 프레임 워크의 채택을 적극적으로 조사했습니다. . 우리가 겪었던 일반적인 (종종 유효하지 않은) 논쟁

  1. 확장되지 않습니다
  2. 기업을 위해 충분히 안전하지 않습니다

그러나 우리는 몇 가지 앱 (블로깅을위한 Wordpress, 내부 소셜 Q & A 앱 및 Digg 스타일 Rails 기반 Idea / Innovation mgmt 앱과 같은 사용자 정의 빌드 Yahoo 답변)을 통해 매우 빠르게 변경되었습니다. Rails / Django와 그 ilk가 특정 클래스의 엔터프라이즈 응용 프로그램, 특히 KM, 워크 플로 등의 단순하고 가벼운 응용 프로그램에 대해 실제로 더 나을 수 있다는 사실에 대한 강력한 매입이 이루어졌습니다.


우리는 "엔터프라이즈"핵심 비즈니스 애플리케이션을 위해 Ruby on Rails를 주로 사용하고 있습니다. 그리고 우리를 위해 Ruby를 다른 "엔터프라이즈"시스템과 통합하는 것이 훨씬 쉬워졌습니다.

  • 우리는 Oracle 데이터베이스 위에 Rails를 사용하고 있습니다
  • Rails 애플리케이션을 Oracle E-Business Suite (ERP & CRM 시스템)와 통합
  • 사용자 인증을 LDAP 디렉토리, NTLM Windows 도메인 인증, Oracle E-Business suite 인증과 통합
  • 다른 시스템과의 통합을 위해 REST 및 SOAP 웹 서비스를 구축합니다.

이러한 종류의 일을 수행해야하는 "엔터프라이즈"통합 플랫폼이 많이 있지만 일반적으로 비용이 많이 들고 문제가 자주 발생하는 경우도 있고 문제를 해결할지 여부는 공급 업체에 의존합니다.

Ruby 및 기타 오픈 소스 구성 요소를 사용하면 문제의 근본을 파헤칠 수 있으며 숨겨져있는 것이 없기 때문에 항상 스스로 문제를 해결할 수 있습니다.

따라서 어려운 문제를 해결하려는 현명한 개발자가 있다면 Ruby가 훌륭한 도구가 될 것입니다. 그러나 새로운 것을 배우고 싶지 않고 벤더가 자신의 역할을 수행하기를 희망하는 평범한 개발자가 있다면 아마도 루비가 아닐 것입니다. 그러나 일반 개발자가 어떤 도구로도 훌륭한 소프트웨어를 만들 수 있을지는 의문입니다.


우리는 현재 월간 500 만 개 이상의 고유 사이트를 위해 Rails를 사용하고 있습니다. 따라서 enterprise = scale이면 yes입니다.


저의 일상 업무는 엔터프라이즈 아키텍처에 관한 것이므로, 엔터프라이즈라는 단어는 오늘날 크기 나 규모에 관한 것이 아니라 소프트웨어 제품의 판매 방식에 대한 것입니다.

예를 들어, Ruby on Rails는 엔터프라이즈에 해당하지 않습니다. 상점에 와서 개발자 커뮤니티를 위해 Powerpoint 프레젠테이션을 반복적으로 제공하는 공급 업체가 없기 때문입니다. Ruby on Rails에는 영업 사원이 없어서 골프 코스 나 내가 좋아하는 식당으로 점심을 옮깁니다. Ruby on Rails는 Gartner와 같은 업계 분석 회사들도 깊이 다루지 않습니다.

이러한 상황이 발생할 때까지 Ruby on Rails는 "기업"으로 간주되지 않습니다.


트래픽이 많은 엔터프라이즈 사이트를 운영하는 거의 모든 사람과 대화를 나눌 경우 대부분 동일한 내용을 알려줄 것입니다. 제대로 처리하면 선택한 언어가 결코 문제가되지 않으므로 항상 IO로 내려갑니다.

트위터와 같은 사이트를 보면 문제가 있는지 확인하십시오. 그러나 그들은 이미 일이 제대로 확장되지 않은 원인이라는 것을 인정했습니다. 그들이 변화를 구현 한 이후로 일을 계속하고 있습니다.

내가 일하는 곳에서 우리를 막을 수있는 유일한 사람은 루비를 알지 못하고 배울 시간이 거의 없다는 것입니다.


Ruby On Rails에 대한이 사례 연구를 확실히 읽었습니다.

이 기사에서는 Ruby on Rails를 사용하여 사이트를 구축하는 방법을 안내합니다. 우리가 사용하는 핵심 기능과 우리가 매일 의존하는 기본 플러그인을 볼 수 있습니다. 우리 기술의 대부분은 실제로 지구가 산산조각 나는 것은 아니지만 일상적인 작업을 엿볼 수 있기를 바랍니다. 저의 목표는 팀의 작동 방식, 프로덕션 환경에서 신뢰하는 기술, 사용하는 도구 및 가장 중요한 Rails 프레임 워크에 대한 광범위한 개요를 제공하는 것입니다. 단일 영역에서 자세히 설명하지 않고 리소스에 연결하지만 해당 부분에 대해 더 자세히 알고 싶다면 의견을 남기십시오.


YellowPages.comPenny Arcade 는 제가 머릿속에서 들었던 것 중 가장 큰 것입니다. 물론 많은 기업에서 내부 앱에 사용하고 있습니다. 스케일링이 진행되는 한, 언어 / 프레임 워크에 상관없이 자유 캐싱이 비밀입니다.





enterprise