2013-04-15 4 views
3

내 웹 사이트 사용자 중 일부만 베타 기능을 사용할 수있는 플랫폼을 만들고 싶습니다. 가장 좋은 방법은이 작업을 수행하고 제안을 찾는 것입니다.생산 사이트 미러링을위한 베타 사이트 구축

옵션 1 : 제가 고려한 첫 번째 옵션은 실제 응용 프로그램을 미러링하는 비 프로덕션 환경을 만드는 것입니다. 그런 다음 사용자에게 최신 기능을 샘플링 할 수있는 새로운 베타 DNS를 제공 할 수 있습니다. 이 접근 방식의 단점은 유지 보수성과 신뢰성입니다. 프로덕션 환경의 데이터는 베타 데이터베이스로 새로 고쳐 져야 사용자 경험이 프로덕션 환경과 일치해야합니다. 이 베타 환경은 비 전문가 인프라이므로 지속적인 빌드 등으로 인해 중단 될 가능성이 더 큽니다.

옵션 2 : 추가 서버를 프로덕션에 배포하고 베타 하위 도메인을 사용하여 사용자를 안내합니다 사이트에. 기존의 프로덕션 환경과 동일한 소스를 가리킬 수 있으므로 오래된 데이터는 여기에서 문제가되지 않습니다. 단점은 라이브 프로덕션 환경으로의 릴리스가 응용 프로그램의 안정성과 안정성을 유지하는 빈도가 적어지며 프로덕션 지원 팀을 유지 관리하는 데 추가 노드가 필요하다는 것입니다.

옵션 3 : 베타 기능을 주 코드 분기의 일부로 배포하고 코드에 특정 사용자의 베타 기능을 표시하는 논리가 있어야합니다. 이 접근 방식은 안정적인 코드에서 베타 변경을 구현해야하며 기존 코드 기반의 안정성에 영향을 미치지 않으면 서 테스트 할 수있는 변경 유형에 대한 릴리스가 덜 빈번하고 유연성이 적습니다.

진행 방법에 대한 과거 경험에 대한 제안 사항은 무엇입니까?

감사합니다.

답변

1

옵션 2)을 사용하십시오. 가능한 한 베타 코드를 프로덕션 코드에서 분리하려고합니다. 최악의 경우 최악의 경우 베타 코드가 서버를 충돌 시키면 베타 사용자가 프로덕션 서버로 페일 오버합니다.

1) 베타 환경이 너무 불안정하면 사용자가 사용하지 않을 것입니다. 3) 생산 코드를 오염시킬 위험이 있습니다.

이런 종류의 일에 대한 대부분의 경험은 새로운 "서버"를 얻는 것이 새로운 EC2 인스턴스를 얻는 것만 큼 쉬운 아마존 AWS와 함께 이루어졌습니다. 새 서버를 설치하는 것이 너무 비싸지 않다고 가정합니다.

+0

감사합니다. 옵션 2에서 또 다른 관심사는 라이브 애플리케이션과 동일한 데이터베이스를 사용하면 대규모 실험을위한 유연성이 떨어질 것입니다. 이러한 큰 유형의 변경 사항을 지원하려면 라이브 사이트의 오염을 막기 위해 베타 사이트에 대한 새 데이터베이스를 만들어야합니다. 이 추가 구성을 지원하는 오버 헤드로 인해 옵션 1로 이동하게 될 것입니다.이 경우 잠재적으로 불안정합니다. – cduggan

+0

예, 베타 사용자의 데이터를 베타 데이터베이스로 마이그레이션 한 다음 프로덕션 데이터베이스에서 제거하는 것이 좋지만 베타 서버가 실패하고 베타 사용자가 프로덕션 데이터베이스로 장애 조치를 수행하면 문제가 발생합니다. 내가 생각할 수있는 것은 베타 데이터베이스에 트리거를 추가하여 업데이트를 받으면 프로덕션 데이터베이스를 업데이트하여 장애 조치가 원활하게 이루어 지도록하는 것입니다. –

+0

AWS 프로젝트의 변경 사항은 모두 변경 사항이므로 프로덕션 서버는 계속 문제없이 베타 데이터베이스에 쿼리 할 수 ​​있습니다. –