HashiCorp Waypoint๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitLab CI/CD์™€ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•

HashiCorp Waypoint๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitLab CI/CD์™€ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•

HashiCorp๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค ์›จ์ด ํฌ์ธํŠธ ์— ํ•˜์‹œ์ฝ”ํ”„ ๋””์ง€ํ„ธ. HCL ๊ธฐ๋ฐ˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ Kubernetes์—์„œ AWS ๋ฐ Google Cloud Run์— ์ด๋ฅด๋Š” ๋‹ค์–‘ํ•œ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•, ๋ฐฐ์†ก ๋ฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Waypoint๋ฅผ Terraform๊ณผ Vagrant๊ฐ€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•, ๋ฐฐ์†ก ๋ฐ ๋ฆด๋ฆฌ์Šคํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ค๋ช…ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค.

์‚ฌ์‹ค HashiCorp๋Š” Waypoint๋ฅผ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ถœ์‹œํ–ˆ์œผ๋ฉฐ ๋งŽ์€ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ์˜ ์ˆ˜์ค€์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. Waypoint๋Š” ๋…ธํŠธ๋ถ์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์„ ํƒํ•œ CI/CD ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ–‰ ํŒŒ์ผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Waypoint๋Š” Kubernetes, Docker, Google Cloud Run, AWS ECS ๋“ฑ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ๋Œ€์ƒ๋„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ‹์ง„ ๊ธ€์„ ์ฝ์€ ํ›„ ๋ฌธ์„œ ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์‹œํฌํ•œ ์˜ˆ์ œ๋“ค HashiCorp์—์„œ ์ œ๊ณตํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ GitLab CI/CD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Waypoint ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ƒ˜ํ”Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ AWS ECS์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฐ„๋‹จํ•œ Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•œ ํ›„ ํ•œ ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

HashiCorp Waypoint๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitLab CI/CD์™€ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•

์•Œ๋‹ค์‹œํ”ผ ์ด ํ”„๋กœ์ ํŠธ์—๋Š” Dockerfile์ด ์—†์Šต๋‹ˆ๋‹ค. Waypoint๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ œ์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. waypoint.hcl์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ดํ•ดํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

project = "example-nodejs"

app "example-nodejs" {
  labels = {
    "service" = "example-nodejs",
    "env" = "dev"
  }

  build {
    use "pack" {}
    registry {
    use "aws-ecr" {
        region = "us-east-1"
        repository = "waypoint-gitlab"
        tag = "latest"
    }
    }
  }

  deploy {
    use "aws-ecs" {
    region = "us-east-1"
    memory = "512"
    }
  }
}

๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ Waypoint๋Š” ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ๋นŒ๋“œํŒฉ(CNB) ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  Dockerfile์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์›์น™์ ์œผ๋กœ GitLab์—์„œ ๋ถ€๋ถ„์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ž๋™ DevOps ์ž๋™ ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ. CNCF์˜ CNB๊ฐ€ ์—…๊ณ„ ์‚ฌ์šฉ์ž๋“ค ์‚ฌ์ด์—์„œ ์ ์  ๋” ๋งŽ์ด ์ฑ„ํƒ๋˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๊ฐ€ ๊ตฌ์ถ•๋˜๋ฉด Waypoint๋Š” ์ž๋™์œผ๋กœ AWS ECR ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜์—ฌ ๋ฐฐ์†ก ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๋ฆฝ์ด ๋๋‚˜๋ฉด ๋ฐฐ์†ก ๋‹จ๊ณ„์—์„œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. AWS ECS ์• ๋“œ์˜จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ AWS ๊ณ„์ •์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๋…ธํŠธ๋ถ์—์„œ๋Š” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋‚ด AWS ๊ณ„์ •์—์„œ ์ด๋ฏธ ์ธ์ฆ๋œ Waypoint๋ฅผ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ "์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค". ํ•˜์ง€๋งŒ ๋…ธํŠธ๋ถ์„ ๋„˜์–ด์„œ๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? ์•„๋‹ˆ๋ฉด ํ˜„์žฌ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ, ๋ณด์•ˆ ํ…Œ์ŠคํŠธ ๋“ฑ์ด ์‹คํ–‰๋˜๋Š” ์ „์ฒด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ผ๋ถ€๋กœ ์ด ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ? GitLab CI/CD๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค!

NB CI/CD๋ฅผ ๊ตฌํ˜„ํ•  ๊ณ„ํš์ด๊ฑฐ๋‚˜ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด Slurm ๊ณผ์ •์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด์‹ญ์‹œ์˜ค. "Gitlab CI์˜ ์˜ˆ์— ๋Œ€ํ•œ CI/CD". ํ˜„์žฌ ์„ ์ฃผ๋ฌธ ๊ฐ€๊ฒฉ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

GitLab CI/CD์˜ ์›จ์ดํฌ์ธํŠธ

GitLab CI/CD์—์„œ ์ด ๋ชจ๋“  ๊ฒƒ์„ ์กฐ์œจํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ์— ๋ฌด์—‡์ด ํ•„์š”ํ•œ์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. .gitlab-ci.yml:

  • ์šฐ์„  ๋‚ด๋ถ€์—์„œ ์‹คํ–‰ํ•  ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Waypoint๋Š” ๋ชจ๋“  Linux ๋ฐฐํฌํŒ์—์„œ ์‹คํ–‰๋˜๋ฉฐ Docker๋งŒ ํ•„์š”ํ•˜๋ฏ€๋กœ ์ผ๋ฐ˜ Docker ์ด๋ฏธ์ง€๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์Œ์œผ๋กœ ์ด ์ด๋ฏธ์ง€์— Waypoint๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ž˜์— ์šฐ๋ฆฌ๋Š” ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๋ฉ”ํƒ€ ๋นŒ๋“œ ์ด๋ฏธ์ง€ ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง์ ‘ ์ปจํ…Œ์ด๋„ˆํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋งˆ์ง€๋ง‰์œผ๋กœ Waypoint ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์œ„์—๋Š” ํŒŒ์ดํ”„๋ผ์ธ์ด ๋ฐฐํฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ์žˆ์ง€๋งŒ AWS์— ๋ฐฐํฌํ•˜๋ ค๋ฉด AWS ๊ณ„์ •์— ๋กœ๊ทธ์ธํ•ด์•ผ ํ•œ๋‹ค๋Š” ํ•œ ๊ฐ€์ง€๊ฐ€ ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์›จ์ดํฌ์ธํŠธ ์„ค๋ช…์—์„œ ๊ณ„ํš์ด ์žˆ๋‹ค ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ์— ๋Œ€ํ•ด. HashiCorp๋„ ์ด๋ฒˆ ์ฃผ์— ์ธ์ƒ์ ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ„. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ์€ ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AWS์—์„œ GitLab CICD ์ธ์ฆ์„ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์€ ๋‚ด์žฅํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. HashiCorp ๊ธˆ๊ณ . ํŒ€์—์„œ ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์ด๋ฏธ Vault๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ํŒ€์ด AWS IAM์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘๋™ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ์„ ํ†ตํ•ด ๋ฐฐ๋‹ฌ ์ž‘์—…์ด ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. GitLab ๋Ÿฌ๋„ˆIAM์„ ํ†ตํ•ด ๋ฐฐํฌ๋ฅผ ์‹œ์ž‘ํ•  ๊ถŒํ•œ์ด ์žˆ๋Š” A. ํ•˜์ง€๋งŒ Waypoint์— ์ต์ˆ™ํ•ด์ง€๊ณ  ๋นจ๋ฆฌ ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ๋งˆ์ง€๋ง‰ ์˜ต์…˜์€ AWS API ๋ฐ ๋น„๋ฐ€ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. GitLab CI/CD ํ™˜๊ฒฝ ๋ณ€์ˆ˜ AWS_ACCESS_KEY_ID ะธ AWS_SECRET_ACCESS_KEY.

๊ทธ๊ฒƒ์„ ํ•˜๋‚˜๋กœ ๋ชจ์œผ๊ธฐ

์ธ์ฆ์„ ํŒŒ์•…ํ•˜๋ฉด ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ์šฐ๋ฆฌ์˜ ๊ฒฐ์Šน์ „ .gitlab-ci.yml ๊ทธ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Define environment variables, e.g. `WAYPOINT_VERSION: '0.1.1'`
  variables:
    WAYPOINT_VERSION: ''
    WAYPOINT_SERVER_ADDR: ''
    WAYPOINT_SERVER_TOKEN: ''
    WAYPOINT_SERVER_TLS: '1'
    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
  script:
    - wget -q -O /tmp/waypoint.zip https://releases.hashicorp.com/waypoint/${WAYPOINT_VERSION}/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip
    - unzip -d /usr/local/bin /tmp/waypoint.zip
    - rm -rf /tmp/waypoint*
    - waypoint init
    - waypoint build
    - waypoint deploy
    - waypoint release

์ด๋ฏธ์ง€๋กœ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. docker:latest Waypoint์— ํ•„์š”ํ•œ ๋ช‡ ๊ฐ€์ง€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์žฅ์—์„œ script ์ตœ์‹  Waypoint ์‹คํ–‰ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ /usr/local/bin. ๋Ÿฌ๋„ˆ๋Š” ์ด๋ฏธ AWS์—์„œ ์ธ์ฆ๋˜์—ˆ์œผ๋ฏ€๋กœ ๊ฐ„๋‹จํžˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. waypoint init, build, deploy ะธ release.

๋นŒ๋“œ ์ž‘์—…์˜ ์ถœ๋ ฅ์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋กค๋งํ•œ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

HashiCorp Waypoint๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitLab CI/CD์™€ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•

์›จ์ดํฌ์ธํŠธ ์ค‘ ํ•˜๋‚˜ ์ˆ˜๋งŽ์€ HashiCorp ์†”๋ฃจ์…˜, GitLab๊ณผ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ๋‹ค์Œ์„ ํ†ตํ•ด ๊ธฐ๋ณธ ์ธํ”„๋ผ๋ฅผ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitLab์˜ ํ…Œ๋ผํฌ๋ฐ. SDLC ๋ณด์•ˆ์„ ํ‘œ์ค€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณผํŠธ๊ฐ€ ์žˆ๋Š” GitLab CI/CD ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋น„๋ฐ€ ๋ฐ ํ† ํฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ ๋ฐ ํ”„๋กœ๋•์…˜ ์‚ฌ์šฉ์„ ์œ„ํ•ด ๋น„๋ฐ€ ๊ด€๋ฆฌ์— ์˜์กดํ•˜๋Š” ๊ฐœ๋ฐœ์ž ๋ฐ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ์™„๋ฒฝํ•œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

HashiCorp์™€ GitLab์ด ๊ฐœ๋ฐœํ•œ ๊ณต๋™ ์†”๋ฃจ์…˜์€ ๊ธฐ์—…์ด ์ผ๊ด€๋œ ๊ณต๊ธ‰๋ง ๋ฐ ์ธํ”„๋ผ ๊ด€๋ฆฌ๋ฅผ ๋ณด์žฅํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์„ ์ฐพ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. Waypoint๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ํ•œ ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ ์ถ”๊ฐ€ ๋ฐœ์ „์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. Waypoint์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋˜ํ•œ ํƒํ—˜ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๋ฌธ์„œ ะธ ๊ฐœ๋ฐœ ๊ณ„ํš ํ”„๋กœ์ ํŠธ. ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ์˜ ์ง€์‹์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค GitLab CICD ๋ฌธ์„œ. ์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ์—์„œ ์ „์ฒด ์ž‘์—… ์˜ˆ์ œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ.

CI / CD์˜ ์›์น™์„ ์ดํ•ดํ•˜๊ณ  Gitlab CI ์ž‘์—…์˜ ๋ชจ๋“  ๋ฏธ๋ฌ˜ํ•จ์„ ๋งˆ์Šคํ„ฐํ•˜๊ณ  ๋น„๋””์˜ค ๊ณผ์ •์„ ์™„๋ฃŒํ•˜์—ฌ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "Gitlab CI์˜ ์˜ˆ์— ๋Œ€ํ•œ CI/CD". ์ง€๊ธˆ ๊ฐ€์ž…ํ•˜์„ธ์š”!

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€