Giunsa paggamit ang HashiCorp Waypoint aron makigtambayayong sa GitLab CI/CD

Giunsa paggamit ang HashiCorp Waypoint aron makigtambayayong sa GitLab CI/CD

Nagpakita ang HashiCorp og bag-ong proyekto waypoint sa HashiCorp Digital. Naggamit kini og HCL-based nga file aron ihulagway ang pagtukod, paghatud, ug pagpagawas sa mga aplikasyon para sa lain-laing mga cloud platform, gikan sa Kubernetes ngadto sa AWS ngadto sa Google Cloud Run. Mahimo nimong hunahunaon ang Waypoint isip Terraform ug Vagrant nga gihiusa aron ihulagway ang proseso sa pagtukod, pagpadala, ug pag-release sa imong mga aplikasyon.

Tinuod nga porma, gipagawas sa HashiCorp ang Waypoint isip bukas nga gigikanan ug adunay daghang mga pananglitan. Ang layer sa orkestra naa kanimo, ang Waypoint moabut ingon usa ka executable nga mahimo nimo nga diretso nga modagan sa imong laptop o gikan sa imong gipili nga tool sa orkestrasyon sa CI / CD. Ang target sa pag-deploy sa imong mga aplikasyon anaa ra kanimo, tungod kay ang Waypoint nagsuporta sa Kubernetes, Docker, Google Cloud Run, AWS ECS, ug uban pa.

Human sa pagbasa sa makalilisang dokumentasyon ug ang labing maluho mga pananglitan mga aplikasyon nga gihatag sa HashiCorp, nakahukom kami nga susihon pag-ayo ang Waypoint orchestration gamit ang GitLab CI/CD. Aron mahimo kini, magkuha kami usa ka yano nga aplikasyon sa Node.js nga nagdagan sa AWS ECS gikan sa repository sa mga pananglitan.

Pagkahuman sa pag-clone sa repository, atong tan-awon ang istruktura sa aplikasyon nga nagpakita sa usa ka panid:

Giunsa paggamit ang HashiCorp Waypoint aron makigtambayayong sa GitLab CI/CD

Sama sa imong namatikdan, kini nga proyekto walay Dockerfile. Wala sila gidugang sa panig-ingnan, tungod kay sa prinsipyo wala nato sila kinahanglana, tungod kay ang Waypoint mag-atiman kanila alang kanato. Atong tan-awon pag-ayo ang file waypoint.hclaron masabtan kung unsa ang buhaton:

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

Atol sa yugto sa pagtukod, ang Waypoint naggamit sa Cloud Native Buildpacks (CNB) aron mahibal-an ang programming language sa proyekto ug maghimo usa ka imahe sa Docker nga wala mogamit usa ka Dockerfile. Sa prinsipyo, kini ang parehas nga teknolohiya nga gigamit sa GitLab sa bahin Auto DevOps sa lakang sa Auto Build. Maayo nga makita nga ang CNB sa CNCF nakakuha og daghang pagsagop sa mga tiggamit sa industriya.

Kung matukod na ang imahe, awtomatik nga i-upload kini sa Waypoint sa among AWS ECR registry aron andam na kini nga ipadala. Kung nahuman na ang pagtukod, gigamit ang lakang sa pagpadala AWS ECS add-on aron i-deploy ang among aplikasyon sa among AWS account.

Gikan sa akong laptop - ang tanan yano ra. Nagbutang ako usa ka Waypoint nga na-authenticate na sa akong AWS account ug kini "nagtrabaho lang". Apan unsa ang mahitabo kung gusto nako nga molapas sa akong laptop? O sa kalit lang gusto nako nga i-automate kini nga pag-deploy isip bahin sa akong kinatibuk-ang CI/CD pipeline, diin ang akong nagpadayon nga mga pagsulay sa integrasyon, mga pagsulay sa seguridad, ug uban pa gipadagan? Kini ang bahin sa istorya diin ang GitLab CI/CD nasulod!

NB Kung nagplano ka lang nga ipatuman ang CI / CD o gusto nga magsugod sa pag-apply sa labing kaayo nga mga gawi alang sa pagtukod sa mga pipeline, pagtagad sa bag-ong kurso sa Slurm "CI / CD gamit ang Gitlab CI isip usa ka pananglitan". Anaa na kini sa pre-order nga presyo.

Waypoint sa GitLab CI/CD

Aron ma-orkestrate kining tanan sa GitLab CI/CD, atong tan-awon kung unsa ang atong gikinahanglan sa atong file .gitlab-ci.yml:

  • Una sa tanan, kinahanglan nimo ang usa ka base nga imahe aron modagan sa sulod niini. Ang Waypoint nagtrabaho sa bisan unsang pag-apod-apod sa Linux, kinahanglan ra ang Docker, aron makadagan kami gamit ang usa ka generic nga imahe sa Docker.
  • Sunod kinahanglan nimo nga i-install ang Waypoint sa kini nga imahe. Sa umaabot mahimo natong kolektahon pagtukod sa meta sa imahe ug ibutang kini nga proseso alang sa imong kaugalingon.
  • Sa katapusan atong ipadagan ang mga sugo sa Waypoint

Ang naa sa ibabaw naglatid sa tanan nga kinahanglan sa among pipeline aron mapadagan ang mga script nga gikinahanglan aron makompleto ang pag-deploy, apan aron ma-deploy sa AWS magkinahanglan kami usa pa ka butang: kinahanglan nga ma-log in kami sa among AWS account. Sa paghulagway sa Waypoint adunay mga plano mahitungod sa authentication ug authorization. Gipagawas usab sa HashiCorp ang usa ka impresibo nga proyekto karong semanaha Boundary. Apan sa pagkakaron, mahimo ra namong dumalahon ang pag-authenticate ug pagtugot sa among kaugalingon.

Adunay daghang mga kapilian alang sa GitLab CICD authentication sa AWS. Ang una nga kapilian mao ang paggamit sa built-in HashiCorp Vault. Nindot kini kung ang imong team naggamit na sa Vault alang sa pagdumala sa kredensyal. Ang laing kapilian nga magamit kung ang imong team nagdumala sa pagtugot gamit ang AWS IAM mao ang pagsusi nga ang mga buluhaton sa paghatud na-trigger pinaagi sa GitLab Runner, gitugutan sa pagpadagan sa deployment pinaagi sa IAM. Apan kung gusto nimo nga pamilyar sa Waypoint ug gusto nimo nga buhaton dayon, adunay usa ka katapusan nga kapilian - idugang ang imong AWS API ug Sekreto nga mga yawe sa GitLab CI/CD environment variables AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Paghiusa sa tanan

Kung nasabtan na namo ang authentication, makasugod na ta! Ang atong katapusan .gitlab-ci.yml ingon niini:

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

Nakita nimo nga nagsugod kami sa usa ka imahe docker:latest ug itakda ang daghang mga variable sa palibot nga gikinahanglan sa Waypoint. Sa kapitulo script gi-download namo ang pinakabag-o nga bersyon sa Waypoint executable ug i-install kini /usr/local/bin. Tungod kay ang among runner awtorisado na sa AWS, sunod kami modagan na lang waypoint init, build, deploy ΠΈ release.

Ang output sa buluhaton sa pagtukod magpakita kanamo sa katapusan nga punto diin among gilukot ang aplikasyon:

Giunsa paggamit ang HashiCorp Waypoint aron makigtambayayong sa GitLab CI/CD

Waypoint usa sa daghang mga solusyon sa HashiCorp, maayo nga pagtrabaho sa GitLab. Pananglitan, agig dugang sa paghatud sa aplikasyon, mahimo namon nga i-orkestrate ang nagpahiping imprastraktura nga gigamit Terraform sa GitLab. Aron ma-standardize ang seguridad sa SDLC, mahimo usab naton ipatuman GitLab uban sa Vault alang sa pagdumala sa mga sekreto ug mga token sa mga pipeline sa CI/CD, nga naghatag og usa ka holistic nga solusyon alang sa mga developers ug mga administrador nga nagsalig sa pagdumala sa mga sekreto alang sa pagpalambo, pagsulay, ug paggamit sa produksyon.

Ang hiniusang mga solusyon nga gihimo sa HashiCorp ug GitLab nagtabang sa mga kompanya nga makapangita usa ka labing maayo nga paagi aron mapalambo ang mga aplikasyon pinaagi sa paghatag makanunayon nga pagdumala sa mga pipeline sa pagpadala ug imprastraktura. Waypoint mihimo og laing lakang sa saktong direksyon ug nagpaabot kami sa padayon nga pag-uswag sa proyekto. Mahimo nimong mahibal-an ang dugang bahin sa Waypoint dinhi, angay usab nga susihon dokumentasyon ΠΈ plano sa kalamboan proyekto. Among gidugang ang kahibalo nga among naangkon GitLab CICD nga dokumentasyon. Kung gusto nimo sulayan ang tanan sa imong kaugalingon, mahimo nimong makuha ang usa ka kompleto nga pananglitan sa pagtrabaho kini nga tipiganan.

Mahimo nimong masabtan ang mga prinsipyo sa CI / CD, master ang tanan nga mga intricacies sa pagtrabaho kauban ang Gitlab CI ug magsugod sa paggamit sa labing kaayo nga mga gawi pinaagi sa pagkuha sa usa ka kurso sa video. "CI / CD gamit ang Gitlab CI isip usa ka pananglitan". Apil kanamo!

Source: www.habr.com

Idugang sa usa ka comment