다섯 살도 알 수 있게 · SRE

피처 플래그가 뭐예요?

피처 플래그를 새 기구를 지어 두고 커튼을 쳐서, 스위치로 몇 명에게 보여줄지 정하는 이야기로 풀어봤어요.

새 기구오늘부터 전체 공개!새 기구를 손님 전체에 한꺼번에 공개해요

새 기구를 손님 전체에 한꺼번에 공개해요.문제가 생기면 전체를 다시 닫아야 해요.

새 기구줄이 그대로 멈춰 있어요닫으려면 또 공사를 해야 해요...코드를 다시 배포해야 되돌릴 수 있으면, 되돌리는 것도 느려요

코드를 다시 배포해야 되돌릴 수 있으면, 되돌리는 것도 느려요.짓는 것과 보여주는 걸 같이 해버린 탓이에요.

커튼공개 스위치직원만→ 1% 손님→ 전체 공개기구는 지어 두되 커튼을 치고, 스위치로 몇 명에게 보일지 정해요코드를 다시 올리지 않고 바로 켜고 꺼요

기구는 지어 두되 커튼을 치고, 스위치로 몇 명에게 보일지 정해요.코드를 다시 올리지 않고 바로 켜고 꺼요.

짓는 것과 보여주는 걸 나눠요완성과 공개는 달라요
스위치로 몇 명에게 보일지 정해요직원만, 일부만, 전체도요
문제 생기면 스위치만 꺼요재배포가 필요 없어요
다 되면 커튼을 걷어요완전히 공개해요
직원1% 손님공개 비율다이얼을 조금씩 돌려요 — 직원만, 1% 손님, 그다음 전체

다이얼을 조금씩 돌려요 — 직원만, 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
손님을 나눠 두 가지 버전을 보여주고 비교하는 것. 같은 스위치 기술로 실험도 할 수 있어요.
다음 이야기
구석에서 몰래 하는 시험 운행 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →