Me pehea te whakamahi HashiCorp Waypoint ki te Mahi tahi me GitLab CI/CD

Me pehea te whakamahi HashiCorp Waypoint ki te Mahi tahi me GitLab CI/CD

I whakaatu a HashiCorp i tetahi kaupapa hou Waypoint i runga i HashiCorp Mamati. Ka whakamahia e ia he konae i runga i te HCL hei whakaahua i te hanga, te tuku, me te tukunga o nga tono mo nga momo papaahi kapua, mai i Kubernetes ki AWS ki Google Cloud Run. Ka taea e koe te whakaaro ko Waypoint hei Terraform me Vagrant hei whakaahua i te mahi hanga whare, tuku kaipuke me te tuku i o tono.

He pono ki te ahua, kua tukuna e HashiCorp a Waypoint hei puna tuwhera ka tae mai me nga tauira maha. Kei a koe te paparanga orchestrator, ka tae mai a Waypoint hei whakahaere ka taea e koe te whakahaere tika i runga i to pona, mai i to taputapu whakahiato CI/CD ranei. Ko te whaainga mo te tuku i o tono kei a koe ano, i te mea kei te tautoko a Waypoint i nga Kubernetes, Docker, Google Cloud Run, AWS ECS, me etahi atu.

I muri i te panui i te whakamataku tuhinga me nga mea papai rawa atu tauira nga tono na HashiCorp, i whakatau matou ki te ata titiro ki te hangahanga o Waypoint ma te whakamahi i te GitLab CI/CD. Ki te mahi i tenei, ka tangohia e matou he tono Node.js ngawari e rere ana i runga i te AWS ECS mai i te kohinga tauira.

Whai muri i te kati i te putunga, me titiro ki te hanganga o te tono e whakaatu ana i te wharangi kotahi:

Me pehea te whakamahi HashiCorp Waypoint ki te Mahi tahi me GitLab CI/CD

Kua kite pea koe, kaore he Dockerfile i tenei kaupapa. Kaore i te taapirihia i roto i te tauira, na te mea ko te tikanga kaore e hiahiatia ana e tatou, na te Waypoint e tiaki mo tatou. Kia ata titiro ki te konae waypoint.hclkia mohio ai he aha tana mahi:

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"
    }
  }
}

I roto i te wahanga hanga, ka whakamahi a Waypoint i nga Kapua Native Buildpacks (CNB) ki te whakatau i te reo kaupapa o te kaupapa me te hanga i tetahi ahua Docker me te kore e whakamahi i te Dockerfile. Ko te tikanga, ko te hangarau ano tenei e whakamahia ana e GitLab tetahi waahanga DevOps Aunoa i te taahiraa Hanga Aunoa. He pai ki te kite kei te kaha ake te tangohanga o te CNB o CNCF i waenga i nga kaiwhakamahi ahumahi.

Kia oti te hanga te ahua, ka tukuna aunoatia e Waypoint ki ta maatau rehita AWS ECR kia rite ai mo te tuku. Kia oti te hanga, ka whakamahia te taahiraa tuku AWS ECS taapiri ki te tuku i ta maatau tono ki ta maatau putea AWS.

Mai i taku pona - he ngawari nga mea katoa. Ka hoatu e ahau he Waypoint kua whakamotuhēhē kē ki taku pūkete AWS ka "mahi noa". Engari ka aha mena ka pirangi au ki tua atu i taku pona? Kei te hiahia ohorere ranei ahau ki te whakaaunoa i tenei tukunga hei waahanga o taku paipa CI/CD katoa, kei reira e whakahaerehia ana aku whakamatautau whakauru, whakamatautau haumaru, me etahi atu? Koinei te waahanga o te korero ka uru mai a GitLab CI/CD!

NB Mena kei te whakamahere noa koe ki te whakatinana CI/CD, kei te hiahia ranei koe ki te timata ki te whakamahi i nga tikanga pai mo te hanga paipa, whakarongo ki te akoranga hou a Slurm "CI/CD e whakamahi ana i a Gitlab CI hei tauira". Kei te waatea inaianei i te utu o mua.

Waahi ara i GitLab CI/CD

Hei whakarite i enei mea katoa i roto i te GitLab CI/CD, me titiro ki nga mea e hiahiatia ana i roto i ta maatau konae .gitlab-ci.yml:

  • Ko te tuatahi, me hiahia koe ki tetahi ahua turanga kia rere ki roto. Ka mahi a Waypoint i runga i nga tohatoha Linux, me Docker anake, kia taea ai e tatou te rere me te ahua Docker whanui.
  • Whai muri me whakauru koe i te Waypoint ki tenei ahua. Hei nga ra kei te heke mai ka kohia pea e matou hanga meta whakaahua me te pupuri i tenei tukanga maau.
  • Ka mutu ka whakahaerehia e matou nga whakahau Waypoint

Ko nga mea i runga ake nei e whakaatu ana i nga mea katoa e hiahiatia ana e to maatau paipa ki te whakahaere i nga tuhinga e hiahiatia ana hei whakaoti i te tukunga, engari ki te tuku ki te AWS ka hiahia ano matou: me uru taatau ki to maatau putea AWS. I roto i te whakaahuatanga Waypoint he mahere mo te motuhēhēnga me te whakamanatanga. I tukuna ano e HashiCorp tetahi kaupapa whakamiharo i tenei wiki Tuhinga. Engari mo tenei wa, ka taea e taatau te whakahaere i te whakamotuhēhēnga me te whakamanatanga.

He maha nga whiringa mo GitLab CICD motuhēhēnga i roto i te AWS. Ko te kōwhiringa tuatahi ko te whakamahi i te hanga-i roto HashiCorp Vault. He rawe tenei mena kei te whakamahia e to roopu a Vault mo te whakahaeretanga tohu. Ko tetahi atu whiringa ka mahi mena kei te whakahaere to roopu i te whakamanatanga ma te whakamahi i te AWS IAM ko te tirotiro kei te puta nga mahi tuku ma te Kaiwhaiwhai a GitLab, kua whakamanahia ki te whakahaere i te tukunga ma IAM. Engari ki te hiahia noa koe ki te mohio ki te Waypoint me te hiahia kia tere te mahi, tera ano te whiringa whakamutunga - taapirihia to AWS API me nga taviri ngaro ki GitLab CI/CD taurangi taiao AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Te tuku katoa

Kia mohio tatou ki te motuhēhēnga, ka taea e tatou te timata! To tatou whakamutunga .gitlab-ci.yml penei te ahua:

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

Ka kite koe ka timata tatou me te ahua docker:latest me te whakarite i etahi taurangi taiao e hiahiatia ana e Waypoint. I te pene script ka tikiakehia e matou te putanga hou o te Waypoint ka taea te kawe me te whakauru ki roto /usr/local/bin. I te mea kua whakamanahia to tatou kaikawe i roto i te AWS, ka oma noa tatou waypoint init, build, deploy и release.

Ko te putanga o te mahi hanga ka whakaatu mai ki a matou te pito whakamutunga i hurihia e matou te tono:

Me pehea te whakamahi HashiCorp Waypoint ki te Mahi tahi me GitLab CI/CD

Tohu arai tetahi o maha nga otinga HashiCorp, mahi pai ki a GitLab. Hei tauira, i tua atu i te tuku tono, ka taea e taatau te whakarite i nga hanganga o raro ma te whakamahi Terraform i runga i GitLab. Hei whakataurite i te haumarutanga SDLC, ka taea hoki e tatou te whakatinana GitLab me Vault mo te whakahaere i nga mea ngaro me nga tohu i roto i nga pipeline CI / CD, e whakarato ana i te otinga katoa mo nga kaihanga me nga kaiwhakahaere e whakawhirinaki ana ki te whakahaere ngaro mo te whakawhanaketanga, te whakamatautau, me te whakamahinga whakaputa.

Ko nga otinga tahi i whakawhanakehia e HashiCorp me GitLab ka awhina i nga kamupene ki te rapu huarahi pai ake ki te whakawhanake tono ma te whakarato i nga whakahaere riterite o nga paipa tuku me nga hanganga. Kua whai huarahi ano a Waypoint ki te huarahi tika, a ka tumanako matou ki te whanaketanga tonu o te kaupapa. Ka kitea e koe etahi atu korero mo Waypoint konei, he pai hoki te tirotiro tuhinga и mahere whanaketanga kaupapa. Kua apitihia e matou nga matauranga kua riro mai i a matou GitLab CICD tuhinga. Mena kei te hiahia koe ki te whakamatau i nga mea katoa, ka taea e koe te tango i tetahi tauira mahi katoa tenei putunga.

Ka taea e koe te mohio ki nga maataapono o te CI/CD, kia mohio koe ki nga ahuatanga katoa o te mahi me te Gitlab CI ka tiimata ki te whakamahi i nga tikanga pai ma te tango akoranga ataata. "CI/CD e whakamahi ana i a Gitlab CI hei tauira". Hono mai!

Source: will.com

Tāpiri i te kōrero