2010-12-05 3 views
5

웹 응용 프로그램의 지속적인 배포에서 나를 지원할 수있는 최상의 방법 및 도구는 무엇입니까?웹 응용 프로그램을 민첩한 방식으로 배포하는 방법

하루에도 여러 번 손쉽게 배포 할 수 있어야합니다.

Ruby on Rails 3 앱입니다. 우리는 Git과 Github을 사용합니다.

+0

RoR을 사용하면 매우 빠르게 응용 프로그램을 개발할 수 있습니다. admin-section과 Markdown이있는 블로그는 10 분 안에 작성 될 수 있습니다. –

+0

@TimeMachine - 정말요? 이제 Ruby와 RoR을 배우고 싶습니다. 어디에서 정보를 얻을 수 있습니까? Mac OS X에 있습니다. – Moshe

+0

원본 RoR 사이트에는 '20 분 안에 블로그 만들기'라는 자습서가 있습니다. 네, 20,하지만 이것은 RoR에 익숙하지 않은 사람들에게 의미가 있기 때문입니다. Mac OS X에는 Xcode가 설치된 RoR이 있습니다. Xcode가 설치된 경우 RoR을 사용할 수 있습니다. 그렇지 않으면 Xcode를 설치하십시오. –

답변

4

난 당신이 여기에 민첩하려고하는 가정입니다 관행

의 최선의 세트 무엇입니까. 배포를위한 모범 사례를 파생시키려는 시도는 약간 무서운 것입니다. Agile 팀의 모범 사례 목록은 무서운 것입니다. 애자일을 신중하게 연구한다면 팀이 검사하고 적응하여 지속적으로 개선해야한다는 것을 깨닫게 될 것입니다. 팀이 "모범 사례"를 찾은 순간, 기본적으로 개선을 멈추고 검사를 중지 할 수 있다는 데 동의합니다 , 적응 및 개선. Agile Estimating and Planning의 저자 인 Mike Cohn은 민첩한 팀이 검사와 적응을 통해 일련의 우수 사례를 제시하지 말고 지속적으로 개선해야한다고 제안했습니다.

몇 가지 건설적인 피드백을 제공하기 위해 스크럼 팀이 따라야 할 몇 가지 사례가 있습니다. 우리 자신의 배포 프로세스를 검사하고 적용하여 알아 냈습니다. 배포와 함께 프랙티스에서 소스 코드 검사에 대한 정보를 추가 할 것입니다.

  • 개발자가 코드에서 확인할 때마다, 사용 SCM 조사 트리거 허드슨 CI를 자동으로 내장 및 개발 환경에 코드를 배포했습니다. 이메일을 통해 성공 또는 실패에 대한 적절한 통지를 보냈습니다.

  • 매일 밤 Hudson-ci에 의해 자동으로 트리거 된 개발 환경에서 야간 빌드가 발생했습니다.

  • Dev 환경에서 기능을 준비하고 사전 테스트 한 후 팀의 품질 보증 팀은 Hudson-ci 빌드를 트리거하고 통합 서버에 배포하여 기능을 통합 테스트 할 수있었습니다. 통합 환경은 프로덕션 환경의 정확한 복제본이었습니다.
  • 일반적으로 릴리스 계획을 기반으로 허드슨을 다시 사용하여 프로덕션 배포를 수행했습니다.

웹 응용 프로그램의 지속적인 배포에서 나를 지원할 수있는 도구는 무엇입니까?

거기에 몇 가지 CI 도구가 있습니다. 내 마음에 드는 것은 Hudson-ci입니다. 기타는 Continuum 및 Cruise 컨트롤입니다. 하지만 허드슨은 가장 다양하고 사용하기 쉬운 도구라고 생각합니다. 커뮤니티 기반의 플러그인이 있기 때문에 힘내 플러그인과 레일즈 애플리케이션의 루비를 쉽게 찾을 수 있습니다.

+0

+1 허드슨 권고 사항. – rcravens

+1

+1 "애자일 팀의 모범 사례 목록은 무서운 것입니다." –

+0

큰 해답을 가져 주셔서 감사합니다. 시스템을 업그레이드 할 때 404 대신 사용자가 "업그레이드 중"페이지를 보길 원합니다. 2 Rails 앱을 사용해야합니다. 맞습니까? – Nerian

0

IMVU는 지속적인 배치를위한 포스터 아동이며, "우리가 즉시 배포해야하는 것을 무너 뜨리지 않았다는 확신이 들면"이라는 규칙을 따르게됩니다. 그들은 이제 그들의 프로세스에 대해 매우 인상적인 자동화를하지만, 그 규칙으로 시작했습니다.

나는 연속 배치에 도움이 성분의 일부가 포함 생각 :

  1. 항상 작업 빌드를 가지고있다.이는 커밋에 대한 자동화 된 단위 테스트를 실행하고 실패에 즉시 응답하는 지속적인 통합을 의미합니다. IMVU에서 빌드를 깨는 커밋을 자동으로 되돌리기까지 이동합니다.
  2. 광범위한 기능 테스트. 이것은 당신이 아무것도 망가 뜨리지 않았다는 확신을주는 것입니다. 이러한 테스트는 느려지므로 많은 컴퓨터에서 테스트를 병렬로 실행하거나 SauceLabs와 같은 서비스를 사용하는 것과 같이 테스트 시간을 줄이려는 전략이 필요합니다.
  3. 자동 배포. 수동으로 배포하지 마십시오. 수동으로 구성을 변경하지 마십시오. 동일한 기술을 사용하여 모든 환경에 배포하십시오.

연속 배포라고 할 때 대부분의 사람들은 사람의 개입없이 자동으로 생산에 들어간다고 생각합니다. 푸시 버튼 프로덕션 배포에 미치지 못하지만 여전히 많은 가치를 얻을 수 있습니다. 우리 (urbancode, 제조사 : AnthillPro)는 많은 고객이 이러한 종류의 요소를 제자리에 두는 데 도움이됩니다. 자동 생산 배포는 거의하지 않지만 자동화 된 배포는 모든 사람에게 도움이됩니다.

jtf

관련 문제