2012-08-07 1 views
0

Heroku 컨텍스트에서 슬러그가 무엇인지에 관한 사양, 백서, 그 밖의 것이 있습니까? 필자는 Heroku가 적어도 Rails 애플리케이션을 독창적 인 환경에서 성능을 향상시키는 방법으로 컴파일하는 방법을 항상 보았습니다.Rails 앱이 Heroku 외부의 굼벵이에 컴파일되는 이점이 있습니까? 비 헤로쿠 슬러그를 만들 수 있습니까?

Heroku 외부에서이를 수행하거나 다른 환경에서이 기능을 활용할 수있는 방법이 있습니까?

+0

이 응용 프로그램에 대한 다른 단말기는 아닙니까? 나는 그들이 실제로 "컴파일"한다고 생각하지 않는다 ... – phoet

+0

Very possible; 예를 들어, 애셋 파이프 라인은 Rails 3에 추가되어 "Assets"(javascript 및 CSS 파일을 축소합니다.)을 사전 컴파일합니다. 더 빠른 로딩을 위해 하나의 파일로 결합합니다. 이 설정은 응용 프로그램 구성에서 설정되며 레이크 작업과 함께 사용할 수 있습니다. 그리고 스펙트럼의 다른 끝 (그리고이 질문의 범위를 약간 벗어남)에서 JRuby 앱은 바이너리로 컴파일 될 수도 있습니다. 그래서 Heroku가 유용 할 수있는 마법을 (사람들이 간과하고 있음)하고 있는지 의아해했습니다. – rcd

답변

2

위의 John Beynon이 지적한대로 '컴파일'은 빌드 팩 프로세스의 또 다른 이름입니다. 당신이 Heroku에 코드를 푸시 할 때 우리는 모든 depedencies와 TGZ 결과 패키지를 "슬러그"로 해결합니다.

이 프로세스는 오픈 소스이며, devcenter에서 지원되는 다양한 빌드 팩에 대한 전체 설명서와 링크가 포함되어 있습니다. 계속 진행되는 기술적 세부 사항이 필요하면 buildpack api doc을 참조하십시오.

other 플랫폼이 이미 buildpack을 채택하는 것을 보았습니다. 그것을 채택하고 의견을 제공하는 것을 좋아하는 사람을 보는 것은 좋을 것입니다.

1

나는 this을 제외한 다른 문서를 보지 못했지만 전통적인 의미에서 '컴파일'하지 않았습니다.

git repo를 사용하여 응용 프로그램을 푸시하고 .git 디렉토리를 제거하고 불필요한 디렉토리를 정리하고 .slugignore 파일을 처리하여 런타임시 필요하지 않은 비트 (예 : 테스트 등)를 제거하고, 그런 다음 종속성을 포함시킨 다음 더 작은 버전의 응용 프로그램을 만들어 dyno 그리드에보다 쉽게 ​​배포 할 수 있습니다. 슬러그 크기가 작을수록 응용 프로그램을 확장하는 속도가 빨라집니다. 추가 한 각 dyno는 '컴파일 된'슬러그의 새로운 복사본을 받기 때문에 더 빠르게 응용 프로그램을 확장 할 수 있습니다.

+0

큰 대답; 고마워. 공개 정보 (아마도 비즈니스 관점에서 볼 때 "비밀 소스"의 일부)를 벗어나는 마법은 없다고 가정 할 때 꽤 많이 다루고 있다고 생각합니다. 어리석은 일이긴하지만, 일부 앱/서버 이론을 배우는 놈을 위해서 : "컴파일러"가 오픈 소스 프로젝트의 일환으로 비 Heroku 앱에 적합하지 않을지 궁금합니다. 일종의 Rails 앱 컴파일러는 다른 서버가 실행할 수있는 "슬러그"(예 : EC2 또는 Linode 또는 다른 VPS 솔루션의 앱 호스팅 사용자)에게 적합합니다. 이것이 유용 할 수 있습니까, 아니면 어리석은 생각입니까? – rcd

+0

BTW, 나는이 질문에 대한 자극이 내가 [HipHop] (http://en.wikipedia.org/wiki/HipHop_for_PHP)을 가지고 있다는 간단한 이해와 기억이라고 생각한다. 페이스 북이 PHP 소스 코드를 변형시킨 PHP 컴파일러이다. C++로 변환 한 다음 g ++를 사용하여 코드를 컴파일하여 2-6X 향상과 같은 성능을냅니다. 분명히 이것은 내가 묻고있는 범위에서 조금 벗어나지 만, 미래의 어떤 시점에서 Ruby/Rails 애플리케이션에 대해서는 그런 개념이 타당하지 않을까? Heroku에서 Heroku "슬러그 컴파일"의 진화가되면, 그것은 비밀의 소스로 남아있을 수도 있습니다. – rcd

+2

비밀 소스가 전혀 없습니다 - 모든 오픈 소스, 그들은 buildpack이라고 부릅니다 - https://github.com/heroku/heroku-buildpack-ruby –