다섯 살도 알 수 있게 · SRE
피처 플래그가 뭐예요?
피처 플래그를 새 기구를 지어 두고 커튼을 쳐서, 스위치로 몇 명에게 보여줄지 정하는 이야기로 풀어봤어요.
새 기구를 손님 전체에 한꺼번에 공개해요.문제가 생기면 전체를 다시 닫아야 해요.
코드를 다시 배포해야 되돌릴 수 있으면, 되돌리는 것도 느려요.짓는 것과 보여주는 걸 같이 해버린 탓이에요.
기구는 지어 두되 커튼을 치고, 스위치로 몇 명에게 보일지 정해요.코드를 다시 올리지 않고 바로 켜고 꺼요.
짓는 것과 보여주는 걸 나눠요완성과 공개는 달라요
스위치로 몇 명에게 보일지 정해요직원만, 일부만, 전체도요
문제 생기면 스위치만 꺼요재배포가 필요 없어요
다 되면 커튼을 걷어요완전히 공개해요
다이얼을 조금씩 돌려요 — 직원만, 1% 손님, 그다음 전체.각 단계에서 문제가 없는지 확인하고 넘어가요.
커튼(스위치)이 너무 많아지면, 뭐가 켜져 있는지 관리하기 어려워요.다 되면 커튼 자체를 치워야 해요.
한 줄로
피처 플래그 = 새 기구를 지어 두고 커튼을 친 채, 스위치 하나로 몇 명에게 보일지를 코드 재배포 없이 바로 정하는 일.
Feature flag. 배포(코드를 서버에 올리는 것)와 공개(사용자에게 보이는 것)를 분리하는 기법이에요. 점진적 공개(롤아웃)로 위험을 줄이고, 문제가 생기면 킬 스위치로 즉시 끄고, 특정 대상에게만 먼저 보여주는 다크 런치에도 쓰여요.
어른들은 이렇게 불러요
- 피처 플래그
Feature flag - 새 기구에 친 커튼과 그 스위치. 짓는 것과 보여주는 걸 나눠 줘요.
- 점진적 공개
Gradual rollout - 직원 → 1% 손님 → 전체로 늘려 가는 것. 단계마다 확인하고 넘어가요.
- 킬 스위치
Kill switch - 문제 생기면 바로 끄는 스위치. 코드를 다시 올릴 필요가 없어요.
- 대상 지정
Targeting - 누구에게 먼저 보여줄지 정하는 것. 직원만, 특정 지역 손님만 같은 거예요.
- 다크 런치
Dark launch - 손님 몰래 일부에게만 먼저 켜 보는 것. 손님 눈엔 아직 커튼이 쳐진 것처럼 보여요.
- 카나리와의 관계
Relation to canary - 카나리는 서버 몇 대만 새 버전, 플래그는 같은 서버에서 화면만 다르게. 둘 다 위험을 조금씩 나눠 보는 방법이에요.
- 블루-그린과의 차이
Difference from blue-green - 블루-그린은 통째로 바꿨다 되돌리고, 플래그는 사람 단위로 나눠서 보여줘요. 둘은 되돌리는 단위가 달라요.
- A/B 테스트
A/B testing - 손님을 나눠 두 가지 버전을 보여주고 비교하는 것. 같은 스위치 기술로 실험도 할 수 있어요.
다음 이야기
구석에서 몰래 하는 시험 운행 →