'기능 플래그 전환'이란 무엇이며 언제 사용해야합니까?


17

에 대한 몇 가지 질문이 있습니다 feature flag toggles.

질문 :

  • 실제로 "기능 플래그 토글"이란 무엇입니까 (DevOps와 관련하여)?
  • 왜 사용됩니까?

3
참조 정보가 아닌 직접 답변 - martinfowler.com/articles/feature-toggles.html
켄 Mugrage

1
downvote-explanations에 대한 "요청"은 일반적으로 받아 들여지지 않습니다. 그러나 익명 으로이 질문을 downvoted 한 사람은 이러한 downvotes가 저렴하기 때문에 나에게 그러한 downvotes는 가치가 없다는 것을 알고 있습니다 (downvoter는 -1을 느슨하게하지 않습니다). 답변의 익명 downvotes는 다릅니다 ... 그런 downvoter 흔적을 남기지 않습니다 ...
Pierre.Vriens

2
그리고 저는 왜 누군가가이 질문이 "너무 넓어서"닫혀 야한다고 느꼈는지 알고 싶습니다. 사실 이것이 좋은 대답이 될만한 훌륭한 질문입니다.
Evgeny

Merci @Evgeny, 우리는 같은 페이지에있는 것처럼 보이지만 ... 1 개의 가까운 투표가 철회 된 것을 보셨습니까? 아마도 가장 최근의 편집 때문일 것입니다.
Pierre.Vriens

답변:


13

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라는 오픈 소스 도구를 출시 합니다 .


이 흥미롭고 정교한 답변에 대한 Merci ... 단 2 가지 사항 : 링크 된 기사는 "Feature Flag Toggles"가 아니라 "Feature Toggles"에 관한 것입니다. 그것들이 동의어라는 것에 동의하십니까? 그렇지 않다면 차이점은 무엇입니까? 또한 : "A / B 실험"이란 무엇입니까 (A = After 및 B = Before?
Pierre.Vriens

1
동의어입니다. 나는 단지 그 이름에 대해 명확하게 시도하는 것을 선호하므로 모호성이 없습니다. 나는 "a / b 실험이란 무엇인가"자체의 문제라고 생각하지만 짧은 대답은 "Etsy show off"링크와 같이 서로에 대해 측정되는 두 가지 변형이라는 것입니다. 또는 en.wikipedia.org/wiki/A/B_testing
Evgeny

좋아, 그것은 내가 기다리고 / 홉하고있는 마무리 손길이다. 그래서 "수락".
Pierre.Vriens

@ Pierre.Vriens "또한 :"A / B 실험 "이란 무엇입니까 (A = After and B = Before?"–이 멋진 멋진 DevOps SE 사이트에서 요청할 수 있습니다.)
Dan Cornilescu

1

Ken Mugrage 는 "질문 토글 "에 대한 설명과 함께 다음과 같이 흥미로운 질문을 내 질문 아래에 게시했습니다 .

기능 토글은 강력한 기술이므로 팀이 코드를 변경하지 않고도 시스템 동작을 수정할 수 있습니다. 그것들은 다양한 사용 범주에 속하며 토글을 구현하고 관리 할 때 그 분류를 고려하는 것이 중요합니다. 토글은 복잡성을 유발합니다. 우리는 스마트 토글 구현 방법과 적절한 도구를 사용하여 토글 구성을 관리함으로써 복잡성을 점검 할 수 있지만 시스템의 토글 수를 제한해야합니다.

위의 요약은 이것이 무엇인지 이해하는 데 도움이 될뿐만 아니라 사용 이유 를 설명하는 예제도 포함 합니다 . 그리고 조금 더 소화 한 후에 "기능 토글"과 "기능 플래그 토글"은 서로 동의어 인 것 같습니다.

그러나 문제 (질문)에 대한 해결책 (답변)은 문제를 바꿉니다 ... 다음과 같은 관련 질문을 할 수 있습니다.

  • 그것들을 사용하는 것에 대한 장단점이 무엇입니까? 그것은 강력한 개념이지만 현명하게 사용되지 않으면 무서운 개념입니다 ...
  • 그들이 사용되는 몇 가지 예 (좋은 것들과 나쁜 것들)는 무엇입니까? 나는 그들 중 상당수를 생각할 수 있습니다. 일부는 꽤 오래 전에 사용했습니다 (DevOps가되기 전부터).
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.