์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ

Apigee Hybrid๋Š” ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ๊ตฌ์„ฑ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ณ  Hybrid๋ฅผ ํ†ตํ•ด Kubernetes ์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์ธํ”Œ๋ ˆ์ด์Šค ์—…๋ฐ์ดํŠธ์ž…๋‹ˆ๋‹ค. Kubernetes์—์„œ ์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํฌ๋“œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒˆ ์ธ์Šคํ„ด์Šค๋กœ ์ ์ง„์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋‹ค์šดํƒ€์ž„ ์—†์ด ๋ฐฐํฌ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Apigee Hybrid๋Š” ์นด๋‚˜๋ฆฌ์•„ ๋˜๋Š” AB ์Šคํƒ€์ผ ์—…๋ฐ์ดํŠธ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. AB ์—…๋ฐ์ดํŠธ์—๋Š” ์ƒˆ ๋ฒ„์ „์ด ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฒ˜์Œ์—๋Š” ์ ์€ ๋น„์œจ์˜ ํŠธ๋ž˜ํ”ฝ์ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ผ ์ด ๋น„์œจ์€ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ๋ฒ„์ „์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ธํ”Œ๋ ˆ์ด์Šค ์—…๋ฐ์ดํŠธ

์ธํ”Œ๋ ˆ์ด์Šค ์—…๋ฐ์ดํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋ ค๋ฉด ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ ์›ํ•˜๋Š” ์„ค์ •์„ ์ˆ˜์ •ํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ runtime ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 1Gi์—์„œ 5Gi๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

...
runtime:
  replicaCountMin: 2
  replicaCountMax: 20
  resources:
    requests:
      cpu: 1000m
      memory: 1Gi
...

์ƒˆ ๊ตฌ์„ฑ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋Š” 5Gi๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

...
runtime:
  replicaCountMin: 2
  replicaCountMax: 20
  resources:
    requests:
      cpu: 1000m
      memory: 5Gi
...

๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋ฉด ์—…๋ฐ์ดํŠธ๋œ ํฌ๋“œ๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ๊ธฐ์กด ํฌ๋“œ๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. Kubernetes ์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ํด๋ผ์ด์–ธํŠธ์— ๋‹ค์šดํƒ€์ž„์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

AB ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

AB ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ revision ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ runtime ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 1Gi์—์„œ 5Gi๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ตฌ์„ฑ์—์„œ revision์€ blue๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

...
revision: blue
...
runtime:
  replicaCountMin: 2
  replicaCountMax: 20
  resources:
    requests:
      cpu: 1000m
      memory: 1Gi
...

์ƒˆ ๊ตฌ์„ฑ์—์„œ revision์„ green์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์—ˆ์„ ๋•Œ ์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. revision์œผ๋กœ ์„ค์ •ํ•œ ๊ฐ’์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ „ ๊ฐ’์—์„œ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์›ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

...
revision: green
...
runtime:
  replicaCountMin: 2
  replicaCountMax: 20
  resources:
    requests:
      cpu: 1000m
      memory: 5Gi
...

๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•  ๊ฒฝ์šฐ ์ ์€ ๋น„์œจ์˜ ํŠธ๋ž˜ํ”ฝ๋งŒ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋” ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์ด 100%์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ด์ „ ๋ฒ„์ „์€ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

AB ์ถœ์‹œ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋ ค๋ฉด revision ํƒœ๊ทธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, revision ํƒœ๊ทธ ๊ฐ’์ด ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. AB ์ถœ์‹œ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์žฌ์ •์˜ ํŒŒ์ผ์„ ๋ณ„๋„๋กœ ๋ณ€๊ฒฝํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—๋Š” AB ์ถœ์‹œ ์ผ์ •์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„ ํŠธ๋ž˜ํ”ฝ ๋น„์œจ ๋Œ€๊ธฐ ์‹œ๊ฐ„
1 5% 60์ดˆ
2 20% 10์ดˆ
3 100% 10์ดˆ

ํ˜„์žฌ ๋ฒ„์ „์—์„œ๋Š” ๋ฐฑ๋ถ„์œจ ๋ฐ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.