Ruby On Rails가 엔터프라이즈에 적합합니까?
대규모의 비즈니스 크리티컬 엔터프라이즈 애플리케이션에 RoR을 사용하는 사람이 있습니까?
사람들이 이러한 유형의 앱에 사용하는 동적 언어를 기반으로하는 다른 경량 웹 프레임 워크가 있습니까?
이러한 유형의 애플리케이션 프레임 워크를 사용하지 않는 경우 무엇이 방해가됩니까? 대규모 IT 조직과 관련된 단순한 관성입니까? 이러한 프레임 워크의 속도 및 안정성 문제가 개발주기 시간의 개선을 상쇄하기에 충분한 문제입니까?
Ruby on Rails가 기업용으로 준비되었는지 여부를 고려하려면 "기업"이라는 용어가 의미하는 바를 생각해야합니다. 제 경험상 기업은 "안전"을 의미합니다. 엔터프라이즈 솔루션을 찾고있는 회사는 일반적으로 대규모 공급 업체에서 지원하는 기술 스택을 선택합니다. 이런 식으로 그들은 많은 돈을 쓰는 대가로 지원과 컨설팅을받을 수 있다는 것을 알게됩니다. "IBM을 구입 한 사람이 아무도 해고 당하지 않는다"는 접근 방식입니다.
고려해야 할 또 다른 요소는 편재성입니다. 현재 Ruby가 여전히 다소 이국적인 언어로 여겨지고 있으며 숙련 된 Ruby 프로그래머의 가용성이이를 반영하고 있다는 것은 의심의 여지가 없습니다. 기술적으로 Ruby 는Java 또는 C #보다 더 정교하며 OO 순도 측면에서 Smalltalk에 더 가깝고 메타 프로그래밍 기능 측면에서 LISP에 더 가깝습니다. 말하자면, 기업들은 Ruby 프로그래머보다 차체 공장에서 낮은 요금으로 Java 또는 .NET 프로그래머를 얻는 것이 더 쉽다는 것을 알게 될 것입니다. 이는 Java 또는 .NET 프로그래머를 모욕하는 것이 아니라 소프트웨어 개발을 올바르게 수행해야하는 것이 아니라 가장 저렴한 입찰자가 수행해야하는 것으로 간주하는 많은 고용주가 있다는 사실을 반영한 것입니다. Java 및 .NET 프로그래머는 이제 거의 필수품이므로 더 적은 비용으로 제공 할 수 있습니다.
기술적으로 Ruby on Rails는 Java, .NET 또는 PHP 등과 마찬가지로 확장 할 수 있습니다. 병목 지점을 측정하고, SQL 쿼리를 조정하고, I / O를 최소화하고, 적절한 경우 데이터베이스 스키마를 비정규 화하고 만드는 데 동일한 기본 원칙이 적용됩니다. 캐싱 등의 현명한 사용. 다음 eBay 또는 Amazon을 구축해야하는 경우 eBay 및 Amazon이 수행 한 것처럼 자체 솔루션을 직접 롤링하고 직접 조정해야합니다. J2EE는 레거시 통합에서 우위를 차지하지만 Rails가 최적화 된 사용 사례는 아닙니다. Rails는 새로운 CRUD 앱을 구축하는 것입니다.
현재 Ruby가 성능이 느린 언어 중 하나라는 것은 의심의 여지가 없습니다. 이 분야에 많은 투자가 이루어지고 있으므로 Java가 처음 출시 된 이후로 그랬던 것처럼 향후 몇 년 동안 상황이 개선 될 것으로 예상됩니다. Ruby VM 및 MRI (Matz Ruby Interpreter)의 대안 분야에서 흥미로운 개발이 많이 진행되고 있습니다. 개인적으로 JRuby는 주목할만한 사람이라고 생각합니다. Sun의 지원을 받고 있으며 (그림으로 이동) Ruby의 Java 구현이기 때문에 기존 JVM 인프라를 통해 Ruby를 엔터프라이즈로 가져 오는 데 사용할 수있는 깔끔한 트로이 목마입니다.
저는 Rails가 아직 기업에 적합하다고 생각하지 않으며 여러면에서 결코 그렇지 않기를 바랍니다. 특히 J2EE 세계에서 분명했던 멀티 벤더 선택의 평범함이나 혼란으로 인해 제가 가장 좋아하는 프레임 워크가 수렁에 빠지는 것을보고 싶지 않습니다. 다행스럽게도 DHH는 Rails가 모든 회사의 모든 것이되기보다는 자신의 가려움증을 긁어 내기 위해 계속해서 독단적 인 소프트웨어가되어야한다고 결정한 것 같습니다.
많은 사람들이 "Enterprise"라는 단어가 실제로 의미하는 바를 혼동하는 것 같습니다. YelloPages.com 및 Penny Arcade는 엔터프라이즈 애플리케이션이 아닙니다. 물론 사용자 수가 많고 분당 조회수가 많을 수 있지만 비교적 단순한 앱입니다.
엔터프라이즈 응용 프로그램은 엔터프라이즈를 실행하는 데 사용되는 응용 프로그램으로, 일반적으로 대규모 다중 부서, 다중 위치 회사를 의미합니다. SAP는 엔터프라이즈 시스템이지만 BaseCamp는 그렇지 않습니다.
일반적으로 엔터프라이즈 앱에서 볼 수있는 몇 가지 특성은 다음과 같습니다.
- 크고 복잡합니다. 일반적인 ERP 시스템은 100 개의 엔티티 유형을 처리해야합니다.
- 그들은 종종 다른 시스템과 통합해야하고 타사를위한 통합 지점을 제공해야합니다.
- 그들은 다양한 사용자 유형과 역할을 가지고 있으며, 주로 대규모 조직에서 서로 다른 직업 유형을 반영합니다.
귀하의 질문에 대답하기 위해 예, Rails가 준비되었습니다. 현재 20 개 부서에 걸쳐 1,000 명 이상의 사용자가있는 회사를 위해 대규모 시스템 재무 관리 시스템을 개발하고 있습니다. 확장 성은 우리에게 큰 문제가 아니지만 안정성과 가용성이 중요합니다. 이 문제를 해결하는 것은 기술 스택에 관계없이 동일합니다.
다른 사람들이 숙련 된 개발자에 대해 언급 한 점을 다시 반복하지만, 이는 모든 기술 스택에 다시 적용됩니다. 일반 개발자가 중요하지 않은 소규모 시스템에서 작업하는 것은 괜찮을 수 있지만 중요하고 전사적 인 응용 프로그램을 개발하는 데 진지하게 생각한다면 가장 현명한 사람들이 작업하는 것이 가장 좋습니다.
제 업무는 엔터프라이즈 아키텍처에 관한 것이기 때문에 엔터프라이즈라는 단어는 오늘날 규모 나 규모에 관한 것이 아니라 소프트웨어 제품 판매 방식을 더 많이 언급한다고 생각합니다.
예를 들어 Ruby on Rails는 개발자 커뮤니티를 위해 반복적으로 Powerpoint 프레젠테이션을 수행 할 공급 업체가 없기 때문에 기업이 아닙니다. Ruby on Rails에는 점심 식사를 위해 골프장이나 내가 가장 좋아하는 레스토랑으로 데려가는 영업 담당자가 없습니다. Ruby on Rails는 또한 Gartner와 같은 산업 분석 회사에서 깊이 다루지 않습니다.
Ruby on Rails는 이러한 일이 발생할 때까지 "기업"으로 간주되지 않습니다.
저는 IBM에서 컨설턴트로 일하고 있으며 작년에 Ruby on Rails를 사용하여 클라이언트를위한 여러 웹 사이트를 구축했습니다. Rails는 의심 할 여지없이 "기업을위한 준비"입니다. 핵심은 레일을 사용하여 뛰어난 성능을 발휘하고 J2EE 또는 기타 "엔터프라이즈 도구"를 사용하는 것입니다. Rails는 모든 애플리케이션의 프레젠테이션 끝에서 훌륭합니다. 작업 없이도 RESTful 웹 서비스를 사용할 수 있으며 이는 나머지 "엔터프라이즈"도구에 대한 훌륭한 통합 지점입니다.
yahoo.com을 구축하는 데 레일을 사용하지 않을 수도 있지만 괜찮습니다. 엔터프라이즈에서 가장 작은 IT 상점에 이르기까지 레일을 사용할 수있는 완벽한 틈새가 수백, 수천 개 있습니다.
IBM, Oracle, Sun 및 JPMorgan Chase는 Ruby on Rails를 사용하는 회사 중 일부에 불과합니다. 아마 그것보다 더 기업화되지는 않을 것입니다.
우리는 주로 "엔터프라이즈"핵심 비즈니스 애플리케이션에 Ruby on Rails를 사용하고 있습니다. 그리고 우리에게는 Ruby를 다른 "엔터프라이즈"시스템과 통합하는 것이 훨씬 더 쉬워졌습니다. 예를 들면 다음과 같습니다.
- Oracle 데이터베이스 위에 Rails를 사용하고 있습니다.
- Rails 애플리케이션을 Oracle E-Business Suite (ERP 및 CRM 시스템)와 통합합니다.
- 사용자 인증을 LDAP 디렉토리, NTLM Windows 도메인 인증, Oracle E-Business Suite 인증과 통합합니다.
- 다른 시스템과의 통합을 위해 REST 및 SOAP 웹 서비스를 구축합니다.
이러한 종류의 작업을 수행해야하는 "엔터프라이즈"통합 플랫폼이 많이 있지만 일반적으로 비용이 많이 들고 문제가 발생하는 경우가 많고 벤더가 문제를 해결할 것인지 여부는 공급 업체에 의존합니다.
Ruby 및 기타 오픈 소스 구성 요소를 사용하면 문제의 근원을 파헤칠 수 있고 아무것도 숨겨져 있지 않으므로 항상 스스로 문제를 해결할 수 있습니다.
따라서 어려운 문제를 해결하려는 현명한 개발자가 있다면 Ruby가 훌륭한 도구가 될 것입니다. 그러나 새로운 것을 배우고 싶지 않고 벤더가 자신의 일을 수행하기를 희망하는 일반 개발자가 있다면 아마도 Ruby는 그들에게 적합하지 않을 것입니다. 그러나 일반 개발자가 어떤 도구로도 훌륭한 소프트웨어를 만들 수 있을지 의심됩니다.
나는 대부분의 반응이 얼마나 긍정적인지에 대해 꽤 놀랐습니다. 나는 Ruby와 Rails의 열렬한 팬이고 말한 모든 것에 동의하지만, 커뮤니티에서 "Rails는 아직 황금 시간대에 준비되지 않았다"는 일반적인 가정이 있다는 것을 느낍니다. (커뮤니티는 일반적으로이 사이트의 사용자가 생각하는 것보다 정보가 적습니다.)
기술적 관점에서 다른 사람들이 제시 한 예제는 Java 또는 .Net 스택에서 기대하는 Rails의 가동 시간과 성능을 실제로 얻을 수 있음을 보여줍니다. 문제는 시간당 30 달러의 프로그래머로 Rails에서 이러한 종류의 고성능, 안정적인 애플리케이션을 구축 할 수 없다는 것입니다. 루비와 다른 동적 언어는 훌륭한 프로그래머가 놀랍도록 효율적이고 생산적으로 될 수 있도록 해주는 것처럼 보이지만 동시에 그들은 그저 그런 프로그래머를 불구로 만듭니다. 그리고 대다수의 대규모 IT 상점이 그들이 찾을 수있는 가장 저렴한 코드 원숭이를 더 높게 선택했음을 고려할 때, Java 또는 .Net의 대체품으로 Rails를 도입하는 것은 매우 고통스러운 전환이라고 생각합니다.
트위터 이야기는 "레일은 확장되지 않는다"라는 말을 퍼뜨린 것 같습니다. 한편 LinkedIn은 Rails를 사용하여 월 10 억 페이지 뷰를 처리 하는 Facebook 앱을 만들었습니다 .
확장 성 문제는 사용하는 언어 / 플랫폼의 산물이 아니라 해당 플랫폼 내에서 작업을 구현하는 방법에 대한 것입니다.
여기에 내 의견이 있습니다. 내 회사 (직원 120,000 명)는 주로 내부 IT 용 Java / J2EE 스택을 보유하고 있습니다. 또한 문서 / 지식 관리를 위해 Sharepoint를 사용하고 워크 플로 등을 위해 Oracle 앱을 사용합니다. 지난 2 년 동안 저는 Ruby on Rails / Python-Django / PHP 애호가의 소규모 그룹을 이끌고 기업 내에서 이러한 프레임 워크의 채택을 적극적으로 조사했습니다. . 우리가 만난 일반적인 (종종 유효하지 않은) 인수
- 확장되지 않습니다
- 기업에 충분히 안전하지 않습니다.
그러나 우리는 몇 가지 앱 (블로그 용 Wordpress, 내부 소셜 Q & A 앱 및 Digg 스타일 Rails 기반 Idea / Innovation 관리 앱과 같은 사용자 정의 빌드 Yahoo 답변)을 밀어 붙였고 상황이 매우 빠르게 변경되었습니다. 이제 Rails / Django와 그 ilk가 특정 등급의 엔터프라이즈 앱, 특히 KM, 워크 플로 등의 영역에서 간단하고 가벼운 앱에 대해 실제로 더 좋을 수 있다는 사실에 대한 강력한 동의가 있습니다.
저는 웹 개발자이고 이미 다양한 회사 (인트라넷에서 중규모 웹 사이트에 이르기까지)를 위해 Ruby on Rails 웹 사이트를 구축했지만 실제로 대규모 애플리케이션에는 사용하지 않았습니다.
People always point out that it's slow, won't scale and is hard to deploy. The "scalability issue" is not really one anymore. It's still a bit slower than most of the other frameworks, but I have good hope that rails 3 will fix this. It is not really hard to deploy anymore thanks to Capistrano and mod_rails.
The real issues I can see with rails on large scale projects:
- There are not a lot of people knowing Rails. If you have a PHP app, you can be sure that 66% of web developers out there will be able to maintain it. With rails that's not the same deal.
- It's still slower and if the speed is critical it might be an issue
- It still needs more components for e-commerce and so on. It's getting there, especially since shopify, but it's not as ready as Java for instance.
Aside from that, I think Rails is ready.
Often it's just a matter of finding the right technology for the project, and in some times it might be rails. Every language / framework has drawbacks, so in some cases Rails will not be the smartest choice, but in other cases it'll do the job just right.
Also, just wait for Rails 3, it will be awesome :)
If you talk with almost anyone running a high traffic enterprise site, most of them will tell you the same thing, the language you choose if handled properly will never be your problem it will always come down to IO.
If you look at sites like twitter, sure they had issues. But they already admitted it was cause things were not scaled properly. Since they have implemented the changes they did things have been cruising along.
The only thing stopping us here where I work is no one knows ruby and doesn't really have much time to learn.
I think the 37Signals guys have built all of their applications using Ruby on Rails
I can imagine, they are the ones who invented it after all.
A List Apart uses RoR, not very enterprise-y though.
Yes, we have several large clients using our Rails-based (intranet and cloud) apps. The stability has been amazing. For example, two come to mind as the ones with the most traffic and complexity: one of our apps has been in production for 2.5 years with 0 issues and another 6 months now, also with 0 issues.
A buddy of mine just finished working at RecycleBank, and they were using Rails for their entire intranet system. I think Rails is definitely ready for the enterprise, though that isn't what has most been called into question. Most people question whether it can handle a ridiculous amount of traffic because of the memory requirements. That still has yet to be seen, but I think the framework is entirely capable of handling enterprise applications.
YellowPages.com and Penny Arcade are the biggest that I've heard of off the top of my head. Of course, lots of enterprises are using it for internal apps. As far as scaling goes, liberal caching is the secret no matter what your language/framework.
I use rails in an enterprise environment and it works quite well. You just have to mold your app to work in the environment. In my case we're a Java house so jRuby is the deployment method of choice.
I've also stopped using rails from rendering the actual pages, but use it for modules, tools and quick and dirty services that link to the tools. Our java services have no back-end tool that interface with them.
Our site has hundreds (possibly a thousand) pages so rails would probably be a poor candidate to replace that architecture. On the other hand, if I integrate rails into the Java site then I can solve quite a few problems that would be very difficult from the java end.
Your app architecture is key, if you don't design the app to scale well then you'll have problems no matter what framework/language you choose.
I did build a rails app for several pages that get hundreds of thousands of hits/month. Rails did just fine, but most of the content was cached. We had one instance where yahoo had a front page featured story linked to us. The page had some non cached rails content so the huge traffic brought the rails app down, but that was partially my fault for not optimizing better.
I don't know if I would consider it to be enterprise... but I think it says a lot that both twitter and hulu are built on rails.
We're current using Rails for a site with over 5 million uniques/month with great success, so if enterprise = scale then yes.
I would definitely read this case study of Ruby On Rails
In this article, I'll walk you through the way we're using Ruby on Rails to build the site. You'll see the core features we're using, as well as the primary plugins that we depend on every day. Most of our technology isn't really earth shattering, but I hope to give you a glimpse inside our day to day operations. My aim is to give you a broad overview of how the team works, the technology we trust in the production environment, the tools we use, and the Rails frameworks that are most important to us. I'll link to a resource rather than going into great detail in any single area, but if you want to know more about any part of it, leave a comment.
I'm still not sold. Twitter has had massive outages (3 days on one episode!). Up to a point it was blamed on the difficulties behind scaling RoR: read here.
/mp
참고URL : https://stackoverflow.com/questions/14823/is-ruby-on-rails-ready-for-the-enterprise
'Program Club' 카테고리의 다른 글
| Lodash 제목 대소 문자 (모든 단어의 첫 번째 대문자) (0) | 2020.10.22 |
|---|---|
| Base64로 이미지 변환 (0) | 2020.10.22 |
| View.GONE이있는 Android View는 여전히 onTouch 및 onClick을 수신합니다. (0) | 2020.10.22 |
| Django는 쿼리에 대해 존재하는지 확인합니다. (0) | 2020.10.22 |
| 경로 매개 변수가 변경 될 때 구성 요소가 다시 마운트되지 않음 (0) | 2020.10.22 |