ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toInfrastructure
์๋ฌธ ์ฝ๊ธฐ
๊ธฐ์กด Redis ์ธํ๋ผ ํ์ฉ์ ํตํ 0.1ms ๋ฏธ๋ง ์ง์ฐ์๊ฐ์ Feature Flag ์์คํ ๊ตฌ์ถ
Redis just became your feature flag system. Yes, really! ๐
AI ์์ฝ
Context
๊ณ ๊ฐ์ Feature Flag SaaS ๋์ ์ ๋ฐ๋ฅธ ๋ถํ์ํ ์ธํ๋ผ ๋น์ฉ ๋ฐ์๊ณผ ๋ฐ์ดํฐ ์ธ๋ถ ์ ์ถ ๋ฆฌ์คํฌ ์กด์ฌ. ๋จ์ On/Off ๋ฐ ํ๊ฒํ ๊ธฐ๋ฅ ๊ตฌํ์ ์ํด ๋ณ๋์ ์๋ฒ๋ฅผ ์ด์ํ๋ ์ํคํ ์ฒ์ ๋นํจ์จ์ฑ ํ์ .
Technical Solution
- ๊ธฐ์กด Redis ์ธ์คํด์ค๋ฅผ Backend Store๋ก ํ์ฉํ์ฌ ์ถ๊ฐ ์ธํ๋ผ ๊ตฌ์ถ ๋น์ฉ ์ ๊ฑฐ
- Warm-Cold-Stale 3๋จ๊ณ Cache ๊ณ์ธต ์ค๊ณ๋ฅผ ํตํ Redis ์ฅ์ ์ ๊ฐ์ฉ์ฑ ๋ณด์ฅ
- In-process Memory ๊ธฐ๋ฐ์ Warm Cache๋ฅผ ํตํด Sub-millisecond ์์ค์ ํ๊ฐ ์๋ ๊ตฌํ
- Gradual Rollout ๋ฐ Cohort Targeting ๋ก์ง์ SDK ๋ด๋ถ์ ๊ตฌํํ์ฌ Redis ๋ถํ ์ต์ํ
- CLI ๋๊ตฌ๋ฅผ ํตํ Flag ์ํ ๊ด๋ฆฌ ๋ฐ ๊ฐ์ฌ ์ถ์ (Audit Trail) ์๋ํ ์ฒด๊ณ ๊ตฌ์ถ
- ํ๊ฒฝ๋ณ(Prod, Staging, Dev) ๋ค์์คํ์ด์ค ๋ถ๋ฆฌ๋ฅผ ํตํด ๋จ์ผ Redis ๋ด ๋ค์ค ํ๊ฒฝ ์ด์ ๊ฐ๋ฅ
์ค์ฒ ํฌ์ธํธ
1. ์ ๊ท SaaS ๋์ ์ ๊ธฐ์กด ์ธํ๋ผ(Redis, Memcached ๋ฑ)๋ก ๊ธฐ๋ฅ ๋์ฒด ๊ฐ๋ฅ์ฑ ๊ฒํ
2. ์ธ๋ถ ์์กด์ฑ ์์คํ ์ฅ์ ๋๋น๋ฅผ ์ํ Stale Cache ๋ฑ ๋ค์ค Fallback ์ ๋ต ์๋ฆฝ
3. ์ฑ๋ฅ ์๊ณ์น๊ฐ ๋ฎ์ ๊ธฐ๋ฅ์ SDK ๋ ๋ฒจ์ In-process Caching ์ ์ฉ ๊ณ ๋ ค