3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

Continuous Deployment mangrupikeun pendekatan khusus dina pamekaran parangkat lunak anu dianggo pikeun gancang, aman sareng éfisién ngalaksanakeun sababaraha fungsi dina parangkat lunak.

Gagasan utama nyaéta nyiptakeun prosés otomatis anu dipercaya anu ngamungkinkeun pamekar gancang nganteurkeun produk réngsé ka pangguna. Dina waktos anu sami, parobahan konstan dilakukeun pikeun produksi - ieu disebut pipa pangiriman kontinyu (CD Pipeline).

Skillbox nyarankeun: Kursus praktis "Pamekar Mobile PRO".

Kami ngingetan: pikeun sakabéh pamiarsa "Habr" - diskon 10 rubles nalika enrolling dina sagala Tangtu Skillbox ngagunakeun "Habr" kode promosi.

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

Pikeun ngadalikeun aliran, anjeun tiasa nganggo rupa-rupa parabot, kaasup duanana mayar tur lengkep gratis. Tulisan ieu ngajelaskeun tilu solusi anu paling populer di kalangan pamekar anu tiasa mangpaat pikeun unggal programer.

Jenkins

Sapinuhna mandiri, server automation open source. Éta patut dianggo pikeun ngajadikeun otomatis sagala jinis tugas anu aya hubunganana sareng ngawangun, nguji, ngirimkeun, atanapi nyebarkeun parangkat lunak.

Syarat PC Minimum:

  • 256 MB RAM, 1 spasi file GB.

Optimal:

  • 1 GB RAM, 50 GB teuas drive.

Pikeun damel, anjeun ogé peryogi parangkat lunak tambahan - Java Runtime Environment (JRE) versi 8.

Arsitéktur (komputasi disebarkeun) Sigana mah kieu:
3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

Jenkins Server mangrupikeun pamasangan anu tanggung jawab pikeun GUI hosting, ogé ngatur sareng ngalaksanakeun sadayana ngawangun.

Jenkins Node / Budak / Bangun Server - alat anu tiasa dikonpigurasikeun pikeun ngalaksanakeun karya ngawangun atas nama Master (titik utama).

Instalasi pikeun Linux

Mimiti anjeun kedah nambihan gudang Jenkins kana sistem:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable binér/' | sudo tee -a /etc/apt/sources.list.d/je

Apdet gudang pakét:

sudo update apt

Pasang Jenkins:

sudo apt install jenkins

Saatos ieu, Jenkins bakal sayogi dina sistem via port standar 8080.

Pikeun pariksa pungsionalitasna, anjeun kedah muka alamatna dina browser localhost:8080. Sistim nu lajeng bakal ajakan anjeun ngasupkeun sandi awal pikeun pamaké root. Sandi ieu aya dina file /var/lib/jenkins/secrets/initialAdminPassword.

Ayeuna sadayana parantos siap, anjeun tiasa ngamimitian nyiptakeun aliran CI / CD. Antarbeungeut grafis tina workbench sapertos kieu:

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

Keunggulan Jenkins:

  • scalability disadiakeun ku arsitéktur Master / Budak;
  • kasadiaan REST XML / JSON API;
  • kamampuan pikeun nyambungkeun sajumlah ageung ekstensi berkat plugins;
  • komunitas aktip sarta terus ngembang.

kontra:

  • teu aya blok analitik;
  • panganteur teu pisan ramah-pamaké.

TeamCity

Pangwangunan komérsial ti JetBrains. Serverna saé kalayan pangaturan anu saderhana sareng antarmuka anu saé. Konfigurasi standar boga angka nu gede ngarupakeun fungsi, sarta jumlah plugins sadia terus ngaronjat.

Merlukeun Java Runtime Environment (JRE) versi 8.

Sarat hardware server henteu kritis:

  • RAM - 3,2 GB;
  • prosésor - dual-core, 3,2 GHz;
  • saluran komunikasi kalayan kapasitas 1 Gb/s.

Server ngidinan Anjeun pikeun ngahontal kinerja luhur:

  • 60 proyék sareng 300 ngawangun konfigurasi;
  • alokasi 2 MB pikeun log ngawangun;
  • 50 agén ngawangun;
  • kamampuhan pikeun digawekeun ku 50 pamaké dina versi web na 30 pamaké dina IDE;
  • 100 sambungan VCS éksternal, biasana Perforce na Subversion. Waktu robah rata nyaéta 120 detik;
  • leuwih ti 150 modifikasi per poé;
  • gawé bareng database dina hiji server;
  • Setélan prosés server JVM: -Xmx1100m -XX: MaxPermSize = 120m.

syarat agén dumasar kana ngajalankeun rakitan. Tugas utama server nyaéta pikeun ngawas sadaya agén anu nyambung sareng ngadistribusikaeun majelis antrian ka agén-agén ieu dumasar kana sarat kasaluyuan, ngalaporkeun hasil. Agén datangna dina rupa-rupa platform sareng sistem operasi, ditambah lingkungan anu tos dikonpigurasikeun.

Sadaya inpormasi ngeunaan hasil ngawangun disimpen dina pangkalan data. Utamana ieu sajarah jeung data sarupa séjénna, parobahan VCS, agén, ngawangun antrian, rekening pamaké sarta idin. Pangkalan data henteu kalebet ngan ukur ngawangun log sareng artefak.

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

Instalasi pikeun Linux

Pikeun masang TeamCity sacara manual sareng wadahna servlet Tomcat, anjeun kedah nganggo arsip TeamCity: TeamCity .tar.gz. Ngundeur anjeun tiasa kéngingkeun ti dieu.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [mimitian|eureun]

Nalika anjeun mimiti ngamimitian, anjeun kedah milih jinis database dimana data assembly bakal disimpen.

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

Konfigurasi standar dijalankeun dina localhost: 8111 / kalawan hiji agén ngawangun didaptarkeun ngajalankeun on PC sarua.

Keunggulan TeamCity:

  • setelan basajan;
  • panganteur ramah-pamaké;
  • sajumlah ageung fungsi anu diwangun;
  • jasa rojongan;
  • aya API RESTful;
  • dokuméntasi alus;
  • kaamanan alus.

kontra:

  • integrasi kawates;
  • Ieu alat mayar;
  • komunitas leutik (anu kitu, tumuwuh).

GoCD

Proyék open source anu meryogikeun Java Runtime Environment (JRE) versi 8 pikeun instalasi sareng operasi.

Syarat Sistem:

  • RAM - 1 GB minimum, leuwih hadé;
  • processor - dual-core, kalawan frékuénsi inti 2 GHz;
  • hard drive - sahenteuna 1 GB rohangan bébas.

Agén:

  • RAM - sahenteuna 128 MB, langkung saé;
  • processor - sahenteuna 2 GHz.

Server mastikeun operasi agén sareng nyayogikeun antarbeungeut anu cocog pikeun pangguna:

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

Tahap/Pakasaban/Tugas:

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

Instalasi pikeun Linux

kamandang "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

curl download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key tambihan -
tambihan-apt-Repository ppa:openjdk-r/ppa

update apt-meunang

apt-meunang install -y openjdk-8-jre

apt-meunang install go-server

apt-meunang install go-agén

/etc/init.d/go-server [start|stop|status|restart]

/etc/init.d/go-agent [start|stop|status|restart]

Sacara standar GoCd dijalankeun dina localhost: 8153.

Keunggulan GoCd:

  • open source;
  • instalasi basajan tur konfigurasi;
  • dokuméntasi alus;

  • Antarbeungeut pangguna anu saé:

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

  • Kamampuhan pikeun nunjukkeun léngkah-léngkah jalur panyebaran GoCD dina hiji tampilan:

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

  • tampilan alus teuing tina struktur pipa:

3 alat populér pikeun ngatur panyebaran kontinyu (Continuous Deployment)

  • GoCD ngaoptimalkeun alur kerja CD dina lingkungan awan anu pang populerna kalebet Docker, AWS;
  • alat nu ngamungkinkeun pikeun ngabenerkeun masalah dina pipa, nu aya tracking unggal robah tina komitmen ka deployment sacara real waktos.

kontra:

  • sahenteuna hiji agén diperlukeun;
  • teu aya konsol pikeun mintonkeun sadaya tugas réngsé;
  • pikeun ngaéksekusi unggal paréntah, anjeun kedah nyiptakeun hiji tugas pikeun konfigurasi pipa;
  • Pikeun masang plugin nu Anjeun kudu mindahkeun file .jar ka / plugins / jaba jeung balikan deui server;
  • masarakat relatif leutik.

Salaku kacindekan

Ieu ngan tilu parabot, malah aya loba deui. Hese milih, janten anjeun pasti kedah nengetan aspék tambahan.

Kodeu open source alat ngamungkinkeun anjeun ngartos naon éta, sareng nambihan fitur énggal langkung gancang. Tapi lamun aya nu teu hasil, mangka anjeun kudu ngandelkeun ngan dina diri jeung bantuan masarakat. Alat anu mayar nyayogikeun dukungan anu kadang tiasa kritis.

Upami kaamanan mangrupikeun prioritas utama anjeun, éta patut dianggo sareng alat lokal. Upami henteu, maka milih solusi SaaS mangrupikeun pilihan anu saé.

Sareng anu terakhir, pikeun mastikeun prosés panyebaran kontinyu anu leres-leres efektif, anjeun kedah nyiptakeun kriteria anu spésifikna bakal ngamungkinkeun anjeun ngahususkeun sajumlah alat anu sayogi.

Skillbox nyarankeun:

sumber: www.habr.com

Tambahkeun komentar