DevOps-bootcamp · Oppitunti

Automaattinen käyttöönotto Jenkinsillä

Luokaa Jenkinsissä CI/CD-putki Docker-säilöjen käyttöönottamiseksi kohdeympäristöön.

Oppitunti 3/411 vaihetta

Automaattinen käyttöönotto Jenkinsillä on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Johdatus automatisoituun käyttöönottoon

Tervetuloa Jenkinsin ja Dockerin CI/CD:tä käsittelevän viimeisen oppitunnin pariin! Tänään keskitymme Docker-säilöjen käyttöönoton automatisointiin.

Automatisoitu käyttöönotto tarkoittaa ohjelmiston julkaisemista tuotanto- tai esituotantoympäristöihin ilman manuaalisia toimia. Se on jatkuvan toimituksen ja jatkuvan käyttöönoton keskeinen osa, joka varmistaa nopeuden, yhdenmukaisuuden ja luotettavuuden.

Automaattinen käyttöönotto Jenkinsillä — kuvitus 1

Miksi käyttöönotto kannattaa automatisoida

Sovellusten manuaalinen käyttöönotto voi olla hidasta, virhealtista ja epäjohdonmukaista. Automatisointi ratkaisee nämä haasteet:

  • Nopeus: Uudet ominaisuudet ja korjaukset voidaan ottaa käyttöön nopeasti.
  • Luotettavuus: Standardoidut prosessit vähentävät inhimillisiä virheitä.
  • Yhdenmukaisuus: Jokainen käyttöönotto noudattaa samoja vaiheita.
  • Tehokkuus: Kehittäjille jää enemmän aikaa koodaukseen käyttöönottoon liittyvien tehtävien sijaan.

Käyttöönottoputken vaiheet

Tyypillinen Jenkins-putki Dockerin käyttöönottoa varten sisältää useita keskeisiä vaiheita:

  • Build: Docker-vedoksen rakentaminen (käsiteltiin aiemmilla oppitunneilla).
  • Test: Automaattisten testien suorittaminen vedosta vasten.
  • Push: Vedoksen lähettäminen Docker-rekisteriin.
  • Deploy: Vedoksen noutaminen rekisteristä ja suorittaminen kohdepalvelimella.
  • Verify: Uuden käyttöönoton toimivuuden varmistaminen.

Tänään keskitymme Deploy- ja Verify-vaiheisiin.

Kohdeympäristön määrittäminen

Ennen kuin Jenkins voi suorittaa käyttöönoton, kohdepalvelimen on oltava valmis. Tämä tarkoittaa yleensä seuraavaa:

  • Docker asennettuna: Kohdepalvelimelle on asennettava Docker Engine.
  • SSH-yhteys: Jenkins tarvitsee suojatun Shell (SSH) -yhteyden kohdepalvelimeen.
  • Käyttäjän käyttöoikeudet: SSH-käyttäjällä on oltava oikeus suorittaa Docker-komentoja.

SSH-tunnistetietoja hallitaan yleensä turvallisesti Jenkinsissä.

Jenkinsin SSH-tunnistetiedot

Etäpalvelimeen yhdistämiseen Jenkins käyttää SSH-tunnistetietoja. Ne ovat yleensä SSH-käyttäjänimen ja yksityisen avaimen pareja, jotka tallennetaan turvallisesti Jenkinsin tunnistetietojen hallintaan.

Putkea määritettäessä Jenkinsin voi ohjata käyttämään näitä tunnistetietoja tietyissä vaiheissa, jolloin se voi suorittaa komentoja kohdepalvelimella.

Esimerkki yksinkertaisesta käyttöönottoskriptistä

Tässä on yksinkertainen shell-skripti, joka voidaan suorittaa kohdepalvelimella Docker-säilön päivittämistä varten. Se pysäyttää vanhan säilön, poistaa sen, noutaa uuden vedoksen ja käynnistää sen.

APP_NAME ja IMAGE_NAME välitetään ympäristömuuttujina.

#!/bin/bash

# Stop and remove existing container
docker stop ${APP_NAME} || true
docker rm ${APP_NAME} || true

# Pull the new Docker image
docker pull ${IMAGE_NAME}

# Run the new container
docker run -d --name ${APP_NAME} -p 80:80 ${IMAGE_NAME}

echo "Deployment of ${APP_NAME} complete!"

Jenkins-putkeen integrointi

Jenkinsfile-tiedostossa voitte käyttää sshPublisher-lisäosaa tai yksinkertaista sh-vaihetta SSH-agentin edelleenlähetyksen kanssa komentojen suorittamiseen etäisännässä. Tältä käyttöönottovaihe voi näyttää yksinkertaista sh-vaihetta käytettäessä, kun SSH on määritetty.

agent { label 'remote-deploy-host' } tarkoittaa, että tämä vaihe suoritetaan kohdepalvelimella.

stage('Deploy to Production') {
  agent { label 'remote-deploy-host' } 
  steps {
    withEnv([
      "APP_NAME=my-webapp",
      "IMAGE_NAME=myregistry/my-webapp:latest"
    ]) {
      sh '''
        docker stop ${APP_NAME} || true
        docker rm ${APP_NAME} || true
        docker pull ${IMAGE_NAME}
        docker run -d --name ${APP_NAME} -p 80:80 ${IMAGE_NAME}
        echo "Deployment successful!"
      '''
    }
  }
}

Rolling-päivitysten toteuttaminen

Keskeytyksettömiin käyttöönottoihin pelkkä pysäyttäminen ja käynnistäminen ei riitä. Yleensä käytetään esimerkiksi seuraavaa strategiaa:

  • Rolling Update: Vanhat säilöt korvataan uusilla vähitellen yksi kerrallaan, jotta palvelu pysyy saatavilla.
  • Blue/Green Deployment: Uusi versio (Green) otetaan käyttöön vanhan version (Blue) rinnalle, minkä jälkeen liikenne vaihdetaan uuteen versioon.

Jenkins voi orkestroida nämä toimet, mutta Docker Swarmin ja Kubernetesin kaltaiset työkalut tarjoavat edistyneemmille strategioille natiivin tuen.

Käyttöönoton varmistaminen

Käyttöönoton jälkeen on erittäin tärkeää varmistaa, että sovellus toimii oikein. Tähän voi kuulua seuraavaa:

  • Health Checks: Yksinkertaiset HTTP GET -pyynnöt sovelluksen terveystarkistuksen päätepisteeseen.
  • Log Monitoring: Säilöjen lokien tarkistaminen virheiden varalta.
  • Integration Tests: Pienen testijoukon suorittaminen juuri käyttöön otettua versiota vasten.

Jenkins-putkeen voi sisällyttää Verify-vaiheen näiden tarkistusten automatisointia varten.

Testatkaa osaamisenne

Tarkastelkaa seuraavaa Jenkinsfile-koodikatkelmaa käyttöönoton vaiheesta. Mikä on docker stop ${APP_NAME} || true -komennon ensisijainen tarkoitus?

Kertaus: automatisoitu käyttöönotto

Hienoa työtä! Opitte, miten automatisoitua käyttöönottoa voidaan lähestyä Jenkinsin ja Dockerin avulla.

  • Automatisoitu käyttöönotto varmistaa nopeat, luotettavat ja yhdenmukaiset julkaisut.
  • Kohdeympäristöissä on oltava Docker ja SSH-yhteys.
  • Jenkins käyttää suojattuja tunnistetietoja etäpalvelimiin yhdistämiseen.
  • Käyttöönottoskriptit pysäyttävät yleensä vanhat säilöt, noutavat uudet vedokset ja käynnistävät uudet säilöt.
  • Varmistusvaiheet ovat ratkaisevan tärkeitä käyttöönoton onnistumisen vahvistamiseksi.

Tähän päättyy Jenkinsin ja Dockerin CI/CD-kurssimme. Jatkakaa harjoittelua, jotta opitte hallitsemaan nämä tehokkaat työkalut!

Aloita maksutta

Opi DevOps-bootcamp tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
142
Oppitunnit
568

Usein kysytyt kysymykset

Onko oppitunti ”Automaattinen käyttöönotto Jenkinsillä” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Automaattinen käyttöönotto Jenkinsillä”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Automaattinen käyttöönotto Jenkinsillä”?

Luokaa Jenkinsissä CI/CD-putki Docker-säilöjen käyttöönottamiseksi kohdeympäristöön. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Automaattinen käyttöönotto Jenkinsillä”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä DevOps-bootcamp-oppitunnilla?

Kyllä. Jokainen DevOps-bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Johdatus Jenkinsiin
  2. Docker-imagien rakentaminen Jenkinsillä
  3. Automaattinen käyttöönotto Jenkinsillä
  4. Jenkins-putki koodina Jenkinsfilen avulla
← Takaisin: DevOps-bootcamp