2010-04-14 1 views
2

App Engine에서 실행되는 A/B 테스트 시스템의 가장 간단한 구현은 무엇입니까?App Engine에서의 A/B 테스트?

저는 백 엔드 (looong 쿼리 시간 포함) 및 데이터베이스 디자인에 Datastore를 사용하여 성능에 미치는 영향을 특히 중요하게 생각합니다.

+0

는 더 나는 덜 이해 질문을 읽어 보시기 바랍니다. A/B는 데이터 저장소와 어떤 관련이 있습니까? o_O 할 수있는 시험의 예를 보여 주시겠습니까? –

답변

1

다른 버전의 앱을 테스트한다고 가정하면 간단한 WSGI 미들웨어를 사용하는 것이 좋습니다. x %의 사용자를 하나의 WSGI 응용 프로그램에 연결하고 나머지는 사용자 ID, IP 주소 등 어떤 것이 든 다른 사람에게 지시하는 것을 작성하십시오. 이것은 구현하기가 아주 간단해야하며, 그 위에 무엇이든 쌓을 수 있습니다.

+0

불행하지만 지나치게 복잡합니다. A/B 테스트가 얼마나 쉬운 지 읽어보십시오. http://www.bingocardcreator.com/abingo –

+0

Ruby뿐만 아니라 Python에서도 이와 비슷한 기능이 가능합니다. 나는 좀 더 일반적인 오버 헤드로 접근하려고했다.:) –

-1

A/B 테스트에서는 페이지 A를 일부 사용자에게 표시하고 B 페이지는 다른 사용자에게 표시해야합니다.

App Engine은 아무 관계가 없습니다. App Engine은 응용 프로그램을 배포하는 방법이며 페이지를 따라 직접 사용자는 아닙니다.

사용자 쿠키/세션을 기반으로 한 페이지 또는 다른 페이지를 제공하는 데 사용하는 웹 프레임 워크의 기능입니다. 이 같이 할 수있는 간단한 방법으로

:
  • 데이터 저장소에서 찾을

    • 가져 오기 사용자 쿠키는
    • 발견? 지난 번에 같은 페이지 집합 (A 또는 B)을 사용하십시오.
    • 찾을 수 없습니까? 무작위로 A 또는 B를 선택 쿠키
    • 와 함께 데이터 저장소에 선택 저장 (수 있음) 다음에 빠르게 액세스 할 수

    에 대한 세션으로 선택, 장소 선택 A 또는 B에 따라 특정 컨트롤러/뷰에서, 사용자를 페이지 A 또는 페이지 B로 보내거나 리디렉션하십시오. 결과 (판매, 등록 등)가 데이터 스토어에 기록됩니다.

    모든 웹 프레임 워크에서 수행 할 수 있습니다. 당신은 이야기하지 않았다 당신이 사용하는 한, 당신은 응용 프로그램의 두 가지 버전 배포 할 수

  • 4

    ) :

    appcfg.py update -V "A" mysiteA/ 
    appcfg.py update -V "B" mysiteB/ 
    

    를 그리고 단순히 선택하는 세 번째 버전을 만들 프록시 A.latest에 사용자를할지 여부 .mysite.appspot.com 또는 B.latest.mysite.appspot.com

    5

    Gae/Bingo을 살펴 보겠습니다. App Engine의 A/B 스플릿 테스트 프레임 워크는 A/Bingo에서 영감을 얻었습니다.

    자세한 정보 here.

    +1

    GAE/Bingo의 저자 -> 우리는 페이지로드 시간에 영향을주지 않고 데이터가 백엔드에서 지속되도록하는 데 특히 긴 시간을 보냈습니다. 백그라운드에서 작업 대기열을 통해 데이터를 지속하는 등. 자세한 내용은 systempuntoout의 링크를 확인하십시오. – kamens

    +0

    @kamens 멋진 작품 :) – systempuntoout

    +1

    감사합니다! 도움이되기를 바랍니다. – kamens