ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ

์ด ์ฃผ์ œ์—์„œ๋Š” Apigee Hybrid๋ฅผ ์œ„ํ•œ ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์†Œ๊ฐœ๋Š” ํ™˜๊ฒฝ ๋ฐ ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ ์ •๋ณด

ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ๋Š” ๋‹ค์Œ ๋‘ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

  • UI ๋˜๋Š” Apigee API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ฆฌ ์˜์—ญ์— ํ™˜๊ฒฝ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํŒŒ์ผ์„ ์žฌ์ •์˜ํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์ถ”๊ฐ€ ๋ฐ ๊ตฌ์„ฑ์„ ์œ„ํ•œ ๋‹จ๊ณ„๋Š” 5๋‹จ๊ณ„: ํ™˜๊ฒฝ ์ถ”๊ฐ€ ๋ฐ ๊ตฌ์„ฑ ์žฌ์ •์˜ ์ง€์ •์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

  1. Apigee UI์—์„œ ๋˜๋Š” ํ™˜๊ฒฝ API ๋งŒ๋“ค๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ™˜๊ฒฝ์„ ํ•œ ๊ฐœ ์ด์ƒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋‹จ๊ณ„๋Š” 5๋‹จ๊ณ„: ํ™˜๊ฒฝ ์ถ”๊ฐ€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. ์ƒˆ ํ™˜๊ฒฝ ์ •์˜๋ฅผ ์žฌ์ •์˜ ํŒŒ์ผ์˜ envs[] ์†์„ฑ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์†์„ฑ์€ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ™˜๊ฒฝ ์ •์˜๋ฅผ ๋‘ ๊ฐœ ์ด์ƒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ํ™˜๊ฒฝ์— UI์—์„œ ๋งŒ๋“  ํ™˜๊ฒฝ๊ณผ ๋™์ผํ•œ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๊ตฌ์„ฑ์€ test ๋ฐ prod ๋“ฑ ๋‘ ๊ฐ€์ง€ ํ™˜๊ฒฝ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    namespace: my-namespace
    org: my-organization
    ...
    envs:
      - name: test
        serviceAccountPaths:
          synchronizer: "your_keypath/synchronizer-manager-service-account.json
          udca: "your_keypath/analytic-agent-service-account.json
    
      - name: prod
        serviceAccountPaths:
          synchronizer: "your_keypath/synchronizer-manager-service-account.json
          udca: "your_keypath/analytic-agent-service-account.json
    ...
  3. ํด๋Ÿฌ์Šคํ„ฐ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ฐ ํ™˜๊ฒฝ์— ์ˆœ์„œ๋Œ€๋กœ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

      ENV_RELEASE_NAME์€ apigee-env ์ฐจํŠธ ์„ค์น˜ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Helm ์ถœ์‹œ ์ด๋ฆ„์€ Apigee Hybrid ์„ค์น˜ ๋‚ด์—์„œ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ์ด๋ฆ„์ด ๊ณ ์œ ํ•œ ๊ฒฝ์šฐ ENV_NAME๊ณผ ๋™์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™˜๊ฒฝ ์ด๋ฆ„๊ณผ ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ด๋ฆ„์ด ๋™์ผํ•œ ๊ฒฝ์šฐ ๊ฐ๊ฐ ๊ณ ์œ ํ•œ Helm ์ถœ์‹œ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘˜ ๋‹ค ์ด๋ฆ„์ด dev์ธ ๊ฒฝ์šฐ dev-env-release ๋ฐ dev-envgroup-release์™€ ๊ฐ™์€ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      Helm์˜ ์ถœ์‹œ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Helm ๋ฌธ์„œ์˜ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ฐœ๋…์„ ์ฐธ์กฐํ•˜์„ธ์š”.

    test ํ™˜๊ฒฝ:

    helm upgrade test-release apigee-env/ \
      --namespace apigee \
      --atomic \
      --set env=test \
      -f OVERRIDES_FILE.yaml
    

    prod ํ™˜๊ฒฝ:

    helm upgrade prod-release apigee-env/ \
      --namespace apigee \
      --set env=prod \
      --atomic \
      -f OVERRIDES_FILE.yaml
    

๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ํ™˜๊ฒฝ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์˜ envs๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.