ื•ื•ื™ ืฆื• ื ื•ืฆืŸ HashiCorp Waypoint ืฆื• ืžื™ื˜ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ GitLab CI / CD

ื•ื•ื™ ืฆื• ื ื•ืฆืŸ HashiCorp Waypoint ืฆื• ืžื™ื˜ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ GitLab CI / CD

HashiCorp ื”ืึธื˜ ื’ืขื•ื•ื™ื–ืŸ ืึท ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜ ื•ื•ื™ื™ึทืคึผืึธื™ื ื˜ ืื•ื™ืฃ HashiCorp ื“ื™ื’ื™ื˜ืึทืœ. ืขืก ื ื™ืฆื˜ ืึท HCL-ื‘ืื–ื™ืจื˜ ื˜ืขืงืข ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื‘ื•ื™ืขืŸ, ืขืงืกืคึผืจืขืก ืื•ืŸ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืคึฟืึทืจ ืึท ืคืึทืจืฉื™ื™ื“ื ืงื™ื™ึทื˜ ืคื•ืŸ ื•ื•ืึธืœืงืŸ ืคึผืœืึทื˜ืคืึธืจืžืก, ืจื™ื™ื ื“ื–ืฉื™ื ื’ ืคื•ืŸ Kubernetes ืฆื• AWS ืฆื• Google Cloud Run. ืื™ืจ ืงืขื ืขืŸ ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ Waypoint ื•ื•ื™ Terraform ืื•ืŸ Vagrant ืงืึทืžื‘ื™ื™ื ื“ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ื‘ื•ื™ืขืŸ, ืฉื™ืคึผื™ื ื’ ืื•ืŸ ืจื™ืœื™ืกื™ื ื’ ื“ื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–.

ืืžืช ืฆื• ืคืึธืจืขื, HashiCorp ื”ืื˜ ื‘ืืคืจื™ื™ื˜ Waypoint ื•ื•ื™ ืึธืคึฟืŸ ืžืงื•ืจ ืื•ืŸ ืงื•ืžื˜ ืžื™ื˜ ืคื™ืœืข ื‘ื™ื™ืฉืคื™ืœืŸ. ื“ื™ ืึธืจืงืขืกื˜ืจืึทื˜ืึธืจ ืฉื™ื›ื˜ืข ืื™ื– ืึทืจื•ื™ืฃ ืฆื• ืื™ืจ, Waypoint ืงื•ืžื˜ ื•ื•ื™ ืึท ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ืึทื– ืื™ืจ ืงืขื ืขืŸ ืœื•ื™ืคืŸ ื’ืœื™ื™ึทืš ืื•ื™ืฃ ื“ื™ื™ืŸ ืœืึทืคึผื˜ืึทืคึผ ืึธื“ืขืจ ืคึฟื•ืŸ ื“ื™ื™ืŸ ืกื™ / ืงืึธืžืคึผืึทืงื˜ื“ื™ืกืง ืึธืจืงืขืกื˜ืจืึทื˜ื™ืึธืŸ ื’ืขืฆื™ื™ึทื’ ืคื•ืŸ ื‘ืจื™ืจื”. ื“ืขืจ ืฆื™ืœ ืคึฟืึทืจ ื“ื™ืคึผืœื•ื™ื™ื ื’ ื“ื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ื– ืื•ื™ืš ืฆื• ืื™ืจ, ื•ื•ื™ื™ึทืœ Waypoint ืฉื˜ื™ืฆื˜ Kubernetes, Docker, Google Cloud Run, AWS ECS ืื•ืŸ ืžืขืจ.

ื ืึธืš ืœื™ื™ืขื ืขืŸ ื“ื™ ืึธืกืึทื ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืื•ืŸ ื“ื™ ืžืขืจืกื˜ ืœืึทื’ื–ืฉืขืจื™ืึทืก ื‘ื™ื™ืฉืคื™ืœืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš HashiCorp, ืžื™ืจ ื‘ืึทืฉืœืึธืกืŸ ืฆื• ื ืขืžืขืŸ ืึท ื ืขืขื ื˜ืขืจ ืงื•ืง ืื™ืŸ Waypoint ืึธืจื˜ืฉืขืกื˜ืจืึทื˜ื™ืึธืŸ ื ื™ืฆืŸ GitLab CI / CD. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืžื™ืจ ื ืขืžืขืŸ ืึท ืคึผืฉื•ื˜ Node.js ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคืœื™ืกื ื“ื™ืง ืื•ื™ืฃ AWS ECS ืคึฟื•ืŸ ื“ื™ ื‘ื™ื™ืฉืคื™ืœืŸ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™.

ื ืึธืš ืงืœืึธื•ื ื™ื ื’ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™, ืœืึธื–ืŸ ืื•ื ื“ื– ืงื•ืง ืื™ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื™ื˜ ืื™ื™ืŸ ื‘ืœืึทื˜:

ื•ื•ื™ ืฆื• ื ื•ืฆืŸ 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 ื ื™ืฆื˜ Cloud Native Buildpacks (CNB) ืฆื• ื‘ืึทืฉื˜ื™ืžืขืŸ ื“ื™ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ืฉืึทืคึฟืŸ ืึท Docker ื‘ื™ืœื“ ืึธืŸ ื ื™ืฆืŸ ืึท Dockerfile. ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ื“ืึธืก ืื™ื– ื“ื™ ื–ืขืœื‘ืข ื˜ืขื›ื ืึธืœืึธื’ื™ืข ื•ื•ืึธืก ื’ื™ื˜ืœืึทื‘ ื ื™ืฆื˜ ื˜ื™ื™ืœื•ื•ื™ื™ื– ืึทื•ื˜ืึธ ื“ืขื•ื•ืึธืคึผืก ืื™ืŸ ื“ื™ ืึทื•ื˜ืึธ ื‘ื•ื™ืขืŸ ืฉืจื™ื˜. ืขืก ืื™ื– ื’ื•ื˜ ืฆื• ื–ืขืŸ ืึทื– CNCF ืก CNB ืื™ื– ื’ื™ื™ื ื™ื ื’ ืžืขืจ ืงื™ื ื“ืขืจ ืฆื•ื•ื™ืฉืŸ ื™ื ื“ืึทืกื˜ืจื™ ื™ื•ื–ืขืจื–.

ืึทืžืึธืœ ื“ื™ ื‘ื™ืœื“ ืื™ื– ื’ืขื‘ื•ื™ื˜, Waypoint ื•ื•ืขื˜ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื•ืคึผืœืึธืึทื“ ืขืก ืฆื• ืื•ื ื“ื–ืขืจ AWS ECR ืจืขื’ื™ืกื˜ืจื™ ืึทื–ื•ื™ ืขืก ืื™ื– ื’ืจื™ื™ื˜ ืคึฟืึทืจ ืขืงืกืคึผืจืขืก. ืึทืžืึธืœ ื“ื™ ื‘ื•ื™ืขืŸ ืื™ื– ื’ืึทื ืฅ, ื“ื™ ืขืงืกืคึผืจืขืก ืฉืจื™ื˜ ื ื™ืฆื˜ AWS ECS ืึทื“ื™ืฉืึทืŸ ืฆื• ืฆืขื•ื•ื™ืงืœืขืŸ ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืฆื• ืื•ื ื“ื–ืขืจ AWS ื—ืฉื‘ื•ืŸ.

ืคึฟื•ืŸ ืžื™ื™ืŸ ืœืึทืคึผื˜ืึทืคึผ - ืึทืœืฅ ืื™ื– ืคึผืฉื•ื˜. ืื™ืš ืฉื˜ืขืœืŸ ืึท ื•ื•ื™ื™ึทืคึผืึธื™ื ื˜ ื•ื•ืึธืก ืื™ื– ืฉื•ื™ืŸ ืึธื˜ืขื ื˜ืึทืงื™ื™ื˜ืึทื“ ืื™ืŸ ืžื™ื™ืŸ AWS ื—ืฉื‘ื•ืŸ ืื•ืŸ ืขืก "ื ืึธืจ ืึทืจื‘ืขื˜". ืึธื‘ืขืจ ื•ื•ืึธืก ื›ืึทืคึผืึทื ื– ืื•ื™ื‘ ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื’ื™ื™ืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืคื•ืŸ ืžื™ื™ืŸ ืœืึทืคึผื˜ืึทืคึผ? ืึธื“ืขืจ ื˜ืึธืŸ ืื™ืš ืคึผืœื•ืฆืœื™ื ื’ ืึธื˜ืึทืžื™ื™ื˜ ื“ืขื ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ืžื™ื™ืŸ ืงื•ื™ืœืขืœื“ื™ืง ืกื™ / ืงืึธืžืคึผืึทืงื˜ื“ื™ืกืง ืจืขืจื  - ืœื™ื ื™ืข, ื•ื•ื• ืžื™ื™ืŸ ืึธื ื’ืึธื™ื ื’ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ื˜ืขืกืฅ, ื–ื™ื›ืขืจื”ื™ื™ื˜ ื˜ืขืกืฅ ืื•ืŸ ืื ื“ืขืจืข ื–ืขื ืขืŸ ืœื•ื™ืคืŸ? ื“ืึธืก ืื™ื– ื“ืขืจ ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ื’ืขืฉื™ื›ื˜ืข ื•ื•ื• GitLab CI / CD ืงื•ืžื˜ ืื™ืŸ!

ื ื‘ ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ืคึผื•ื ืงื˜ ืคึผืœืึทื ื™ืจื•ื ื’ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืกื™ / ืกื™ ืึธื“ืขืจ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ืึทืคึผืœื™ื™ื™ื ื’ ื‘ืขืกื˜ืขืจ ืคึผืจืึทืงื˜ื™ืกื™ื– ืคึฟืึทืจ ื‘ื ื™ืŸ ืคึผื™ื™ืคึผืœื™ื™ื ื–, ื‘ืึทืฆืึธืœืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ืฆื• ื“ื™ ื ื™ื™ึทืข ืงื•ืจืก ืคื•ืŸ Slurm "CI / CD ื ื™ืฆืŸ Gitlab CI ื•ื•ื™ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ". ืขืก ืื™ื– ืื™ืฆื˜ ื‘ื ื™ืžืฆื ืื™ืŸ ืคึผืจื™ื™ื– ืคึฟืึทืจ ืคึผืจื™ื™ื–.

ื•ื•ื™ื™ึทืคึผืึธื™ื ื˜ ืื™ืŸ GitLab CI / CD

ืฆื• ืึธืจืงืขืกื˜ืจื™ืจืŸ ืึทืœืข ื“ืขื ืื™ืŸ GitLab CI / CD, ืœืึธืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ ืื™ืŸ ืื•ื ื“ื–ืขืจ ื˜ืขืงืข .gitlab-ci.yml:

  • ืขืจืฉื˜ืขืจ ืคื•ืŸ ืึทืœืข, ืื™ืจ ื“ืึทืจืคึฟืŸ ืึท ื‘ืึทื–ืข ื‘ื™ืœื“ ืฆื• ืœื•ื™ืคืŸ ื™ืŸ ืขืก. Waypoint ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืงื™ื™ืŸ ืœื™ื ื•ืงืก ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’, ืขืก ื ืึธืจ ื“ืึทืจืฃ ื“ืึธืงืขืจ, ืึทื–ื•ื™ ืžื™ืจ ืงืขื ืขืŸ ืœื•ื™ืคืŸ ืžื™ื˜ ืึท ื“ื–ืฉืึทื ืขืจื™ืง ื“ืึธืงืงืขืจ ื‘ื™ืœื“.
  • ื•ื•ื™ื™ึทื˜ืขืจ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ Waypoint ืื™ืŸ ื“ืขื ื‘ื™ืœื“. ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ ืžื™ืจ ื–ืืœืŸ ืงืœื™ื™ึทื‘ืŸ ื‘ื™ืœื“ ืžืขื˜ืึท ื‘ื•ื™ืขืŸ ืื•ืŸ ืงืึทื ื˜ืึทืžืึทื ื™ื™ื– ื“ืขื ืคึผืจืึธืฆืขืก ืคึฟืึทืจ ื–ื™ืš.
  • ืฆื•ื ืกื•ืฃ ืžื™ืจ ื•ื•ืขืœืŸ ืœื•ื™ืคืŸ ื“ื™ Waypoint ืงืึทืžืึทื ื“ื–

ื“ื™ ืื•ื™ื‘ืŸ ืœื™ืกื˜ืขื“ ืึทืœืฅ ื•ื•ืึธืก ืื•ื ื“ื–ืขืจ ืจืขืจื  - ืœื™ื ื™ืข ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืœื•ื™ืคืŸ ื“ื™ ืกืงืจื™ืคึผืก ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜, ืึธื‘ืขืจ ืฆื• ืฆืขื•ื•ื™ืงืœืขืŸ ืฆื• AWS ืžื™ืจ ื“ืึทืจืคึฟืŸ ื ืึธืš ืื™ื™ืŸ ื–ืึทืš: ืžื™ืจ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืœืึธื’ื“ ืื™ืŸ ืื•ื ื“ื–ืขืจ AWS ื—ืฉื‘ื•ืŸ. ืื™ืŸ ื“ื™ Waypoint ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืขืก ื–ืขื ืขืŸ ืคึผืœืึทื ื– ื•ื•ืขื’ืŸ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. HashiCorp ืื•ื™ืš ื‘ืืคืจื™ื™ื˜ ืึทืŸ ื™ืžืคึผืจืขืกื™ื•ื• ืคึผืจื•ื™ืขืงื˜ ื“ื™ ื•ื•ืึธืš ื’ืจืขื ืขืฅ. ืึธื‘ืขืจ ืื™ืฆื˜ ืžื™ืจ ืงืขื ืขืŸ ื ืึธืจ ืฉืขืคึผืŸ ื“ื™ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื–ื™ืš.

ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ GitLab CICD ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ AWS. ื“ืขืจ ืขืจืฉื˜ืขืจ ืึธืคึผืฆื™ืข ืื™ื– ืฆื• ื ื•ืฆืŸ ื“ื™ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ HashiCorp ื•ื•ืึธืœื˜. ื“ืึธืก ืื™ื– ื’ืจื•ื™ืก ืื•ื™ื‘ ื“ื™ื™ืŸ ืžืึทื ืฉืึทืคึฟื˜ ืฉื•ื™ืŸ ื ื™ืฆื˜ ื•ื•ืึธืœื˜ ืคึฟืึทืจ ืงืจืึทื“ืขื ื˜ืฉืึทืœ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’. ืืŸ ืื ื“ืขืจ ืึธืคึผืฆื™ืข ื•ื•ืึธืก ืึทืจื‘ืขื˜ ืื•ื™ื‘ ื“ื™ื™ืŸ ืžืึทื ืฉืึทืคึฟื˜ ืื™ื– ืึธื ืคื™ืจื•ื ื’ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื ื™ืฆืŸ AWS IAM ืื™ื– ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทื– ืขืงืกืคึผืจืขืก ื˜ืึทืกืงืก ื–ืขื ืขืŸ ื˜ืจื™ื’ืขืจื“ ื“ื•ืจืš GitLab Runner, ืึธื˜ืขืจื™ื™ื–ื“ ืฆื• ืœื•ื™ืคืŸ ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ื“ื•ืจืš IAM. ืึธื‘ืขืจ ืื•ื™ื‘ ืื™ืจ ื ืึธืจ ื•ื•ื™ืœืŸ ืฆื• ื–ื™ื™ืŸ ื‘ืึทืงืึทื ื˜ ืžื™ื˜ Waypoint ืื•ืŸ ื•ื•ื™ืœืŸ ืฆื• ื˜ืึธืŸ ื“ืึธืก ื’ืขืฉื•ื•ื™ื ื“, ืขืก ืื™ื– ืื™ื™ืŸ ืœืขืฆื˜ืข ืึธืคึผืฆื™ืข - ืœื™ื™ื’ ื“ื™ื™ืŸ AWS API ืื•ืŸ Secret ืฉืœื™ืกืœืขืŸ ืฆื• 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 ื–ื™ื›ืขืจื”ื™ื™ื˜, ืžื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ื™ื ืกื˜ืจื•ืžืขื ื˜ ื’ื™ื˜ืœืึทื‘ ืžื™ื˜ ื•ื•ืึธืœื˜ ืคึฟืึทืจ ืึธื ืคื™ืจื•ื ื’ ืกื™ืงืจื™ืฅ ืื•ืŸ ื˜ืึธืงืขื ืก ืื™ืŸ ืกื™ / ืกื™ ืคึผื™ื™ืคึผืœื™ื™ื ื–, ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ืึท ื”ืึธืœื™ืกื˜ื™ืง ืœื™ื™ื–ื•ื ื’ ืคึฟืึทืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืื•ืŸ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืก ื•ื•ืึธืก ืคืึทืจืœืึธื–ื  ื–ื™ืš ืกื™ืงืจื™ืฅ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืคึฟืึทืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ื˜ืขืกื˜ื™ื ื’ ืื•ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข ื ื•ืฆืŸ.

ื“ื™ ืฉืœืึธืก ืกืึทืœื•ืฉืึทื ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื•ืจืš HashiCorp ืื•ืŸ GitLab ื”ืขืœืคึฟืŸ ืงืึธืžืคึผืึทื ื™ืขืก ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืึท ื‘ืขืกืขืจ ื•ื•ืขื’ ืฆื• ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื“ื•ืจืš ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ืงืึธื ืกื™ืกื˜ืขื ื˜ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืคื•ืŸ ืขืงืกืคึผืจืขืก ืคึผื™ื™ืคึผืœื™ื™ื ื– ืื•ืŸ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ. Waypoint ื”ืึธื‘ืŸ ื’ืขื ื•ืžืขืŸ ืืŸ ืื ื“ืขืจ ืฉืจื™ื˜ ืื™ืŸ ื“ื™ ืจืขื›ื˜ ืจื™ื›ื˜ื•ื ื’ ืื•ืŸ ืžื™ืจ ืงื•ืงืŸ ืคืึธืจื•ื™ืก ืฆื• ื“ื™ ืคืึธืจื–ืขืฆืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜. ืื™ืจ ืงืขื ื˜ ื’ืขืคึฟื™ื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ Waypoint ื“ืึธ, ืื•ื™ืš ื•ื•ืขืจื˜ ื•ื™ืกืคืึธืจืฉืŸ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ะธ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึผืœืึทืŸ ืคึผืจื•ื™ืขืงื˜. ืžื™ืจ ื”ืึธื‘ืŸ ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ ื•ื•ื™ืกืŸ ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ืคืืจื“ื™ื ื˜ GitLab CICD ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ. ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ืึทืœืฅ ื–ื™ืš, ืื™ืจ ืงืขื ืขืŸ ื ืขืžืขืŸ ืึท ื’ืึทื ืฅ ืึทืจื‘ืขื˜ ื‘ื™ื™ึทืฉืคึผื™ืœ ืื™ืŸ ื“ืขื ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™.

ืื™ืจ ืงืขื ื˜ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ ืคึผืจื™ื ืกืึทืคึผืึทืœื– ืคื•ืŸ ืกื™ / ืกื™, ื‘ืขืœ ืึทืœืข ื“ื™ ื™ื ื˜ืจืึทืงืึทืกื™ื– ืคื•ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ Gitlab CI ืื•ืŸ ืึธื ื”ื™ื™ื‘ืŸ ืึทืคึผืœื™ื™ื™ื ื’ ื‘ืขืกื˜ืขืจ ืคึผืจืึทืงื˜ื™ืกื™ื– ื“ื•ืจืš ื ืขืžืขืŸ ืึท ื•ื•ื™ื“ืขื ืงื•ืจืก "CI / CD ื ื™ืฆืŸ Gitlab CI ื•ื•ื™ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ". ืงื•ื ืžื™ื˜ ืื•ื ื–!

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’