에 대한 몇 가지 질문이 있습니다 feature flag toggles
.
질문 :
- 실제로 "기능 플래그 토글"이란 무엇입니까 (DevOps와 관련하여)?
- 왜 사용됩니까?
에 대한 몇 가지 질문이 있습니다 feature flag toggles
.
질문 :
답변:
https://martinfowler.com/articles/feature-toggles.html 의 내용을 반복하지 않으면 기능 플래그 토글이 무엇인지에 대한 놀라운 깊이있는 설명이되기 때문입니다. DevOps 측면에만 집중하겠습니다.
PuppetLabs에서 준비한 2014 년 DevOps 보고서 에 따르면 IT 성능을 측정하기위한 4 가지 주요 지표가 있습니다.
이들은 또한 전반적인 조직 성과에 기여합니다. 따라서 IT 부서에서 이러한 지표를 제대로 수행하고 있다면 수익이 더 $$$가 높아집니다.
Continuous Delivery 는 이러한 메트릭에 의해 활성화 되며 Jez Humble의 Continuous Delivery : Build, Test 및 Deployment Automation 을 통한 안정적인 소프트웨어 릴리스 책에 자세히 설명되어 있습니다.
의 맥락에서 연속 배달 에서 차별화 중요한 차이가 연속 배포 . 그리고 이것이 고객에게 기능을 릴리스 할 때의 결정 입니다.
변경 사항의 크기를 작게 유지하고 기능 플래그를 해제 한 상태로 반 베이크 기능을 프로덕션 시스템에 배포 (코드 복사) 하면 변경에 대한 리드 타임 이 단축 됩니다 .
기능이 최종적으로 완료되면 릴리스를 수행하는 것이 비즈니스에 맡겨진 결정입니다. 새로운 기능의 릴리스는 일부 마케팅 또는 모바일 앱의 기능과 같은 비즈니스의 다른 부분의 릴리스와 정렬되어야합니다.
A / B 실험을 통해 기능을 고객 기반의 일부 또는 특정 사용자에게만 공개하거나 일반 가용성 (GA)으로 직접 전달할 수도 있습니다. GA 로의 출시는 종종 기능이 예상대로 작동하는지 충분히 확신 한 후에 만 수행됩니다. 이것이 사실상 방출 빈도 에 더 큰 영향을 미친다고 주장 할 수 있습니다.
이 릴리스 및 배포의 분리는 기능 플래그 토글 없이는 거의 불가능합니다.
기능을 해제 하기 위해 배치가 필요하지 않은 경우에는 서비스를 복원 하는 시간 이 크게 줄어 듭니다.
또한 고객층의 작은 조각에 기능을 릴리스하는 기능 플래그를 사용하여 변경 실패율 메트릭을 크게 향상시킬 수 있습니다.
따라서 기능 플래그 토글 이라는 간단한 메커니즘을 통해 IT 성능이 훨씬 향상되고 전체적으로 조직 성능이 향상됩니다.
Flickr (주제에 대한 최초의 공개 게시물)와 Etsy 에서 실제 회사에서이를 수행하는 방법에 대한 훌륭한 예를 찾을 수 있습니다 . 그러나 많은 다른 사람들이이 관행을 채택하고 그 길이에 대해 이야기했습니다 (예 : Spotify 비디오 의 유명한 엔지니어링 문화) .
Etsy는 웹에서 발견되는 여러 프리젠 테이션에서 Catapult라는 기능 플래그를 관리하기 위해 내부 도구를 과시하고 있습니다. Intuit 은 기능 플래그 관리를 돕는 Wasabi라는 오픈 소스 도구를 출시 합니다 .
Ken Mugrage 는 "질문 토글 "에 대한 설명과 함께 다음과 같이 흥미로운 질문을 내 질문 아래에 게시했습니다 .
기능 토글은 강력한 기술이므로 팀이 코드를 변경하지 않고도 시스템 동작을 수정할 수 있습니다. 그것들은 다양한 사용 범주에 속하며 토글을 구현하고 관리 할 때 그 분류를 고려하는 것이 중요합니다. 토글은 복잡성을 유발합니다. 우리는 스마트 토글 구현 방법과 적절한 도구를 사용하여 토글 구성을 관리함으로써 복잡성을 점검 할 수 있지만 시스템의 토글 수를 제한해야합니다.
위의 요약은 이것이 무엇인지 이해하는 데 도움이 될뿐만 아니라 사용 이유 를 설명하는 예제도 포함 합니다 . 그리고 조금 더 소화 한 후에 "기능 토글"과 "기능 플래그 토글"은 서로 동의어 인 것 같습니다.
그러나 문제 (질문)에 대한 해결책 (답변)은 문제를 바꿉니다 ... 다음과 같은 관련 질문을 할 수 있습니다.