GitLab CI/CD-เดฏเตเดฎเดพเดฏเดฟ เดธเดนเด•เดฐเดฟเด•เตเด•เดพเตป HashiCorp Waypoint เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚

GitLab CI/CD-เดฏเตเดฎเดพเดฏเดฟ เดธเดนเด•เดฐเดฟเด•เตเด•เดพเตป HashiCorp Waypoint เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚

HashiCorp เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเดฆเตเดงเดคเดฟ เด•เดพเดฃเดฟเดšเตเดšเต เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เด“เตบ เดนเดพเดทเดฟเด•เต‹เตผเดชเตเดชเต เดกเดฟเดœเดฟเดฑเตเดฑเตฝ. Kubernetes เดฎเตเดคเตฝ AWS, Google เด•เตเดฒเต—เดกเต เดฑเตบ เดตเดฐเต†เดฏเตเดณเตเดณ เดตเดฟเดตเดฟเดง เด•เตเดฒเต—เดกเต เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเตเด•เตพเด•เตเด•เตเดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดทเดฟเดชเตเดชเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดฑเดฟเดฒเต€เดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‡เดคเต HCL เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เด’เดฐเต เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดทเดฟเดชเตเดชเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดฑเดฟเดฒเต€เดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดŸเต†เดฑเดพเดซเต‹เดฎเตเด‚ เดตเดพเด—เตเดฐเดพเดจเตเดฑเตเด‚ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดšเต‡เตผเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฏเดฟ เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเดฟเดจเต† เด•เตเดฑเดฟเดšเตเดšเต เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเด•.

เดถเดฐเดฟเดฏเดพเดฃเต, HashiCorp เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเดพเดฏเดฟ เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟ, เด‡เดคเดฟเดจเต เดงเดพเดฐเดพเดณเด‚ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเดฃเตเดŸเต. เด“เตผเด•เตเด•เดธเตโ€ŒเดŸเตเดฐเต‡เดฑเตเดฑเดฑเตเดŸเต† เดฒเต†เดตเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเดพเดฃเต, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฒเดพเดชเตโ€ŒเดŸเต‹เดชเตเดชเดฟเตฝ เดจเต‡เดฐเดฟเดŸเตเดŸเต‹ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด‡เดทเตเดŸเดพเดจเตเดธเดฐเดฃเด‚ เดธเดฟเด/เดธเดฟเดกเดฟ เด“เตผเด•เตเด•เดธเตโ€ŒเดŸเตเดฐเต‡เดทเตป เดŸเต‚เดณเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เด†เดฏเดฟเดŸเตเดŸเดพเดฃเต เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เดตเดฐเตเดจเตเดจเดคเต. เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต, เดกเต‹เด•เตเด•เตผ, เด—เต‚เด—เดฟเตพ เด•เตเดฒเต—เดกเต เดฑเตบ, เดŽเดกเดฌเตเดฒเตเดฏเตเดŽเดธเต เด‡เดธเดฟเดŽเดธเต เดŽเดจเตเดจเดฟเดตเดฏเตเด‚ เด…เดคเดฟเดฒเต‡เดฑเต†เดฏเตเด‚ เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดพเดธ เดฒเด•เตเดทเตเดฏเดตเตเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเดพเดฃเต.

เด—เด‚เดญเต€เดฐเด‚ เดตเดพเดฏเดฟเดšเตเดšเดคเดฟเดจเตเดถเต‡เดทเด‚ เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เดเดฑเตเดฑเดตเตเด‚ เดจเดฒเตเดฒเดคเตเด‚ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ HashiCorp เดจเตฝเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ, GitLab CI/CD เด‰เดณเตเดณ เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เด“เตผเด•เตเด•เดธเตเดŸเตเดฐเต‡เดทเตป เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เดธเดพเดฎเตเดชเดฟเตพ เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต AWS ECS-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ Node.js เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดŽเดŸเตเด•เตเด•เตเด‚.

เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดค เดถเต‡เดทเด‚, เด’เดฐเต เดชเต‡เดœเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เด˜เดŸเดจ เดจเต‹เด•เตเด•เดพเด‚:

GitLab CI/CD-เดฏเตเดฎเดพเดฏเดฟ เดธเดนเด•เดฐเดฟเด•เตเด•เดพเตป HashiCorp 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"
    }
  }
}

เดจเดฟเตผเดฎเตเดฎเดพเดฃ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ, เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เด•เตเดฒเต—เดกเต เดจเต‡เดฑเตเดฑเต€เดตเต เดฌเดฟเตฝเดกเตเดชเดพเด•เตเด•เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต (CNB) เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดท เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเต† เด’เดฐเต เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚. เดคเดคเตเดตเดคเตเดคเดฟเตฝ, GitLab เดญเดพเด—เดฟเด•เดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด…เดคเต‡ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเดฏเดพเดฃเดฟเดคเต เด“เดŸเตเดŸเต‹ เดกเต†เดตเต‹เดชเตโ€Œเดธเต เด“เดŸเตเดŸเต‹ เดฌเดฟเตฝเดกเต เดธเตเดฑเตเดฑเต†เดชเตเดชเดฟเตฝ. เดตเตเดฏเดตเดธเดพเดฏ เด‰เดชเดญเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ CNCF-เดจเตเดฑเต† CNB เด•เต‚เดŸเตเดคเตฝ เด•เต‚เดŸเตเดคเตฝ เดธเตเดตเต€เด•เดพเดฐเตเดฏเดค เดจเต‡เดŸเตเดจเตเดจเดคเต เด•เดพเดฃเตเดจเตเดจเดคเดฟเตฝ เดธเดจเตเดคเต‹เดทเดฎเตเดฃเตเดŸเต.

เดšเดฟเดคเตเดฐเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เด…เดคเต เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เดžเด™เตเด™เดณเตเดŸเต† AWS ECR เดฐเดœเดฟเดธเตโ€ŒเดŸเตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด‚, เด…เด™เตเด™เดจเต† เด…เดคเต เดทเดฟเดชเตเดชเต เดšเต†เดฏเตเดฏเดพเตป เดคเดฏเตเดฏเดพเดฑเดพเดฃเต. เด…เดธเด‚เดฌเตเดฒเดฟเดฏเตเดŸเต† เด…เดตเดธเดพเดจเด‚, เดกเต†เดฒเดฟเดตเดฑเดฟ เดธเตเดฑเตเดฑเต†เดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต AWS ECS เด†เดกเต-เด“เตบ เดžเด™เตเด™เดณเตเดŸเต† AWS เด…เด•เตเด•เต—เดฃเตเดŸเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเตป.

เดŽเดจเตเดฑเต† เดฒเดพเดชเตโ€ŒเดŸเต‹เดชเตเดชเดฟเตฝ เดจเดฟเดจเตเดจเต เด‡เดคเต เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต. เดŽเดจเตเดฑเต† AWS เด…เด•เตเด•เต—เดฃเตเดŸเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณ เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เดžเดพเตป เด‡เดŸเตเดŸเต, เด…เดคเต "เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต". เดŽเดจเตเดจเดพเตฝ เดŽเดจเตเดฑเต† เดฒเดพเดชเตโ€ŒเดŸเต‹เดชเตเดชเดฟเดจเต เด…เดชเตเดชเตเดฑเดคเตเดคเต‡เด•เตเด•เต เดชเต‹เด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ เดŽเดจเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚? เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŽเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต† เด‡เดจเตเดฑเด—เตเดฐเต‡เดทเตป เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเด‚ เดธเต†เด•เตเดฏเต‚เดฐเดฟเดฑเตเดฑเดฟ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเด‚ เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดŽเดจเตเดฑเต† เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ CI/CD เดชเตˆเดชเตเดชเตเดฒเตˆเดจเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดฟ เดˆ เดตเดฟเดจเตเดฏเดพเดธเด‚ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹? GitLab CI/CD เดตเดฐเตเดจเตเดจ เด•เดฅเดฏเตเดŸเต† เดญเดพเด—เดฎเดพเดฃเดฟเดคเต!

NB เดจเดฟเด™เตเด™เตพ CI / CD เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเดฒเต‹ เดชเตˆเดชเตเดชเต เดฒเตˆเดจเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดฟเด•เดšเตเดš เดฐเต€เดคเดฟเด•เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเดฒเต‹, เดชเตเดคเดฟเดฏ เดธเตเดฒเตผเด‚ เด•เต‹เดดเตเดธเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. "Gitlab CI เดฏเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ CI/CD". เดชเตเดฐเต€-เด“เตผเดกเตผ เดตเดฟเดฒเดฏเตเด•เตเด•เต เด‡เดคเต เด‡เดชเตเดชเต‹เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต.

GitLab CI/CD-เดฏเดฟเดฒเต† เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต

เด‡เดตเดฏเต†เดฒเตเดฒเดพเด‚ GitLab CI/CD-เดฏเดฟเตฝ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเดฎเตเดŸเต† เดซเดฏเดฒเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดตเต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚ .gitlab-ci.yml:

  • เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เด…เดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เดšเดฟเดคเตเดฐเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เดเดคเต เดฒเดฟเดจเด•เตเดธเต เดตเดฟเดคเดฐเดฃเดคเตเดคเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเดฟเดจเต เดกเต‹เด•เตเด•เตผ เดฎเดพเดคเตเดฐเดฎเต‡ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเต‚, เด…เดคเดฟเดจเดพเตฝ เดจเดฎเตเด•เตเด•เต เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚.
  • เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพ เดˆ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดญเดพเดตเดฟเดฏเดฟเตฝ เดจเดฎเตเด•เตเด•เต เดถเต‡เด–เดฐเดฟเด•เตเด•เดพเด‚ เดฎเต†เดฑเตเดฑเดพ เดฌเดฟเตฝเดกเต เดšเดฟเดคเตเดฐเด‚ เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดจเดฟเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดšเต†เดฏเตเดฏเตเด•.
  • เด…เดตเดธเดพเดจเด‚ เดžเด™เตเด™เตพ เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เด•เดฎเดพเตปเดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚

เดตเดฟเดจเตเดฏเดพเดธเด‚ เดจเดŸเดคเตเดคเดพเตป เด†เดตเดถเตเดฏเดฎเดพเดฏ เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เดณเตเดŸเต† เดชเตˆเดชเตเดชเตโ€Œเดฒเตˆเดจเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเด‚ เดฎเตเด•เดณเดฟเตฝ เดชเดฑเดžเตเดžเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ AWS-เดฒเต‡เด•เตเด•เต เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเตป, เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด•เดพเดฐเตเดฏเด‚ เด•เต‚เดŸเดฟ เด†เดตเดถเตเดฏเดฎเดพเดฃเต: เดžเด™เตเด™เตพ เดžเด™เตเด™เดณเตเดŸเต† AWS เด…เด•เตเด•เต—เดฃเตเดŸเดฟเดฒเต‡เด•เตเด•เต เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเดฃเด‚. เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเตฝ เดชเดฆเตเดงเดคเดฟเด•เตพ เด‰เดฃเตเดŸเต เด†เดงเดฟเด•เดพเดฐเดฟเด•เดคเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เด…เด‚เด—เต€เด•เดพเดฐเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚. เดนเดพเดทเดฟเด•เต‹เตผเดชเตเดชเตเด‚ เดˆ เด†เดดเตเดš เดถเตเดฐเดฆเตเดงเต‡เดฏเดฎเดพเดฏ เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟ เด…เดคเดฟเตผเดคเตเดคเดฟ. เดŽเดจเตเดจเดพเตฝ เด‡เดชเตเดชเต‹เตพ, เดจเดฎเตเด•เตเด•เต เดธเตเดตเดฏเด‚ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดตเตเด‚ เด…เด‚เด—เต€เด•เดพเดฐเดตเตเด‚ เดŽเดŸเตเด•เตเด•เดพเดจเตเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

AWS-เตฝ GitLab CICD เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเดฐเดตเดงเดฟ เด“เดชเตเดทเดจเตเด•เตพ เด‰เดฃเตเดŸเต. เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด†เดฆเตเดฏ เด“เดชเตเดทเตป เดนเดพเดทเดฟเด•เต‹เตผเดชเตเดชเต เดตเต‹เตพเดŸเตเดŸเต. เด•เตเดฐเต†เดกเตปเดทเตเดฏเตฝ เดฎเดพเดจเต‡เดœเตโ€Œเดฎเต†เดจเตเดฑเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเต€เด‚ เด‡เดคเดฟเดจเด•เด‚ เดตเต‹เตพเดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เด…เดคเต เดจเดฒเตเดฒเดคเดพเดฃเต. AWS IAM เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเต€เด‚ เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดฎเดฑเตเดฑเตŠเดฐเต เดฐเต€เดคเดฟ, เดกเต†เดฒเดฟเดตเดฑเดฟ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เดŸเตเดฐเดฟเด—เตผ เดšเต†เดฏเตโ€ŒเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹เดฏเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต GitLab เดฑเดฃเตเดฃเตผIAM เดตเดดเดฟ เดตเดฟเดจเตเดฏเดพเดธเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เด…เดงเดฟเด•เดพเดฐเดฎเตเดณเตเดณ เดŽ. เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เดชเดฐเดฟเดšเดฏเดชเตเดชเต†เดŸเดพเดจเตเด‚ เด…เดคเต เดตเต‡เด—เดคเตเดคเดฟเตฝ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดตเดธเดพเดจ เด“เดชเตเดทเตป เดจเดฟเด™เตเด™เดณเตเดŸเต† 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 เด’เดชเตเดชเด‚ เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เด•เตเดฑเดšเตเดšเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•. เด…เดงเตเดฏเดพเดฏเดคเตเดคเดฟเตฝ script เดžเด™เตเด™เตพ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตโ€Œเดคเต เด…เดคเดฟเตฝ เด‡เดŸเตเด• /usr/local/bin. เดžเด™เตเด™เดณเตเดŸเต† เดฑเดฃเตเดฃเตผ เด‡เดคเดฟเดจเด•เด‚ AWS-เตฝ เด…เด‚เด—เต€เด•เตƒเดคเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพ เดตเต†เดฑเตเดคเต† เด“เดŸเตเดจเตเดจเต waypoint init, build, deploy ะธ release.

เดฌเดฟเตฝเดกเต เดŸเดพเดธเตโ€Œเด•เตเด•เดฟเดจเตเดฑเต† เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดžเด™เตเด™เตพ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฑเต‹เตพ เดšเต†เดฏเตเดค เด…เดตเดธเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเต เด•เดพเดฃเดฟเด•เตเด•เตเด‚:

GitLab CI/CD-เดฏเตเดฎเดพเดฏเดฟ เดธเดนเด•เดฐเดฟเด•เตเด•เดพเตป HashiCorp Waypoint เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚

เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เด’เดจเตเดจเต เดจเดฟเดฐเดตเดงเดฟ HashiCorp เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ, GitLab-เตฝ เดฎเดฟเด•เดšเตเดš เดฐเต€เดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดกเต†เดฒเดฟเดตเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดชเตเดฑเดฎเต‡, เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเด‚ GitLab-เดฒเต† เดŸเต†เดฑเดพเดซเต‹เด‚. SDLC เดธเตเดฐเด•เตเดท เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดšเต†เดฏเตเดฏเดพเตป, เดžเด™เตเด™เตพเด•เตเด•เตเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเด‚ เดตเต‹เตพเดŸเตเดŸเดฟเดจเตŠเดชเตเดชเด‚ GitLab CI/CD เดชเตˆเดชเตเดชเต เดฒเตˆเดจเตเด•เดณเดฟเตฝ เดฐเดนเดธเตเดฏเด™เตเด™เดณเตเด‚ เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ, เดตเดฟเด•เดธเดจเด‚, เดชเดฐเดฟเดถเต‹เดงเดจ, เด‰เตฝเดชเตเดชเดพเดฆเดจ เด‰เดชเดฏเต‹เด—เด‚ เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เดพเดฏเดฟ เดฐเดนเดธเตเดฏ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเด•เตเด•เตเดจเตเดจ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผเด•เตเด•เตเด‚ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผเดฎเดพเตผเด•เตเด•เตเด‚ เด’เดฐเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดชเดฐเดฟเดนเดพเดฐเด‚ เดจเตฝเด•เตเดจเตเดจเต.

เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดตเดฟเดคเดฐเดฃ เดถเตƒเด‚เด–เดฒเดฏเตเด‚ เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเตเด‚ เด‰เดฑเดชเตเดชเดพเด•เตเด•เดฟเด•เตเด•เตŠเดฃเตเดŸเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดฟเด•เดšเตเดš เดฎเดพเตผเด—เด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เดนเดพเดทเดฟเด•เต‹เตผเดชเตเดชเตเด‚ GitLab-เด‰เด‚ เดšเต‡เตผเดจเตเดจเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดš เดธเด‚เดฏเตเด•เตเดค เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ เด•เดฎเตเดชเดจเดฟเด•เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเต เดถเดฐเดฟเดฏเดพเดฏ เดฆเดฟเดถเดฏเดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดšเตเดตเดŸเตเดตเต†เดชเตเดชเต เดจเดŸเดคเตเดคเดฟ, เดชเดฆเตเดงเดคเดฟเดฏเตเดŸเต† เด•เต‚เดŸเตเดคเตฝ เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเต‡เดชเต‹เดฏเดฟเดจเตเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเดฒเดฑเดฟเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ เด‡เดตเดฟเดŸเต†เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เด…เตผเดนเดฟเด•เตเด•เตเดจเตเดจเต เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ ะธ เดตเดฟเด•เดธเดจ เดชเดฆเตเดงเดคเดฟ เดชเดฆเตเดงเดคเดฟ. เดžเด™เตเด™เตพ เดžเด™เตเด™เดณเตเดŸเต† เด…เดฑเดฟเดตเต เดšเต‡เตผเดคเตเดคเต GitLab CICD เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดธเตเดตเดฏเด‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจ เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดตเดฟเดŸเต† เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚ เดˆ เดถเต‡เด–เดฐเด‚.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต CI / CD เดฏเตเดŸเต† เดคเดคเตเดคเตเดตเด™เตเด™เตพ เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเดจเตเด‚ Gitlab CI-เดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดธเต‚เด•เตเดทเตเดฎเดคเด•เดณเตเด‚ เดฎเดพเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เด•เต‹เดดเตโ€Œเดธเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟ เดฎเดฟเด•เดšเตเดš เดฐเต€เดคเดฟเด•เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. "Gitlab CI เดฏเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ CI/CD". เด‡เดชเตเดชเต‡เดพเตพ เดšเต‡เดฐเตเด•!

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•