실험 롤아웃 및 피처 플래그
실험 롤아웃 이슈
각 실험마다 실험 롤아웃 이슈가 있어야 하며, 롤아웃부터 정리 및 제거까지 실험을 추적해야 합니다. 롤아웃 이슈는 피처 플래그 롤아웃 이슈와 유사하며 실험의 상태를 추적하는 데에도 사용됩니다.
실험이 배포되면 이슈의 기한을 설정해야 합니다(실험에 따라 다르지만 앞으로 몇 주간일 수 있음). 마감일 이후에 이슈를 해결하고 다음 중 하나여야 합니다. - 성공적이며 실험이 새로운 기본값이 됩니다. - 성공하지 않고 실험과 관련된 모든 코드가 제거됩니다.
어느 경우이든 실험의 결과는 결정에 대한 이유와 함께 이슈에 게시해야 합니다.
모든 실험 중지
GitLab.com(SaaS)에서 모든 실험을 중지해야 하는 경우에는 이 컨트롤이 있습니다.
gitlab_experiment
피처 플래그를 사용하여 SaaS에서 실험을 켜거나 끌 수 있습니다.
이를 ChatOps를 통해 수행할 수 있습니다.
-
비활성화:
/chatops run feature set gitlab_experiment false
-
활성화:
/chatops run feature delete gitlab_experiment
- 이는 YAML의
default_enabled
값이 true로 지정될 수 있도록 합니다.
피처 플래그에 관한 참고사항
여러분은 이미 GitLab에서 피처 플래그의 개념에 익숙할 수 있지만, 실험에서 피처 플래그를 사용하는 것은 조금 다릅니다. 일반적으로 피처 플래그는 on
또는 off
로 간주되지만, 실험에서는 이는 정확하지 않습니다.
일반적으로 off
는 피처 플래그가 활성화되어 있는지 물어보면 항상 false
를 반환하고, on
은 항상 true
를 반환한다는 것을 의미합니다. conditional
이라는 중간 상태도 존재합니다. 우리는 이러한 피처 플래그의 삼상 상태를 활용합니다.
피처 플래그가 비활성화(상태가 off
인 경우)되었을 때(즉, 실험이 활성화되지 않았을 때) 해당 실험은 _비활성화_로 간주됩니다. 이를 피처 플래그에 따른 의사결정 트리 다이어그램에서 시작 노드로 이동하는 것으로 시각화할 수 있습니다.
피처 플래그가 percentage_of_actors
또는 유사한 대상에게 도입되었을 때(즉, 상태가 conditional
인 경우) 해당 실험은 진행 중인 것으로 간주됩니다. 제어가 할당되는 경우도 있고 대상이 할당되는 경우도 있기 때문에 우리는 여기서 활성화라는 용어를 사용하지 않습니다. 실험 용어에서 우리의 실험은 _진행 중_이며 피처 플래그는 conditional
입니다.
피처 플래그가 활성화(상태가 on
인 경우)되었을 때 모든 대상이 항상 할당됩니다.
용어를 일관성 있게 사용해야 하며, 그래서 실험에서는 피처 플래그를 conditional
로 설정하기 전까지는 비활성화_된 실험이며, 그 후에는 _진행 중인 것으로 간주해야 합니다. 피처 플래그를 “활성화”로 선택한다면 모든 사람이 실험에 참여하거나 실험을 선택에서 제외할 수 있기 때문에 실험을 완료된 것으로 간주해야 합니다.