3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

Penyebaran Terus-terusan minangka pendekatan khusus ing pangembangan piranti lunak sing digunakake kanthi cepet, aman lan efisien ngleksanakake macem-macem fungsi ing piranti lunak.

Ide utama yaiku nggawe proses otomatis sing dipercaya sing ngidini pangembang bisa ngirim produk rampung kanthi cepet menyang pangguna. Ing wektu sing padha, owah-owahan konstan digawe kanggo produksi - iki diarani pipa pangiriman terus (CD Pipeline).

Skillbox nyaranake: Kursus praktis "Mobile Developer PRO".

Kita ngelingake: kanggo kabeh sing maca "Habr" - diskon 10 rubel nalika ndhaptar kursus Skillbox nggunakake kode promosi "Habr".

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

Kanggo ngontrol aliran, sampeyan bisa nggunakake macem-macem alat, kalebu sing mbayar lan gratis. Artikel iki nerangake telung solusi sing paling populer ing antarane pangembang sing bisa migunani kanggo saben programmer.

Jenkins

Server otomatisasi open source kanthi mandhiri. Perlu digarap kanggo ngotomatisasi kabeh jinis tugas sing ana gandhengane karo mbangun, nguji, ngirim, utawa nggunakake piranti lunak.

Syarat minimal PC:

  • 256 MB RAM, 1 ruang file GB.

Optimal:

  • 1 GB RAM, 50 GB hard drive.

Kanggo bisa, sampeyan uga mbutuhake piranti lunak tambahan - Java Runtime Environment (JRE) versi 8.

Arsitektur (komputasi terdistribusi) katon kaya iki:
3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

Jenkins Server minangka instalasi sing tanggung jawab kanggo hosting GUI, uga ngatur lan nglakokake kabeh mbangun.

Jenkins Node/Slave/Build Server - piranti sing bisa dikonfigurasi kanggo nindakake karya mbangun atas jenenge Master (node ​​master).

Instalasi kanggo Linux

Pisanan sampeyan kudu nambah repositori Jenkins menyang 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 binar/' | sudo tee -a /etc/apt/sources.list.d/je

Nganyari repositori paket:

sudo apt update

Instal Jenkins:

sudo apt nginstal jenkins

Sawise iki, Jenkins bakal kasedhiya ing sistem liwat port standar 8080.

Kanggo mriksa fungsi, sampeyan kudu mbukak alamat ing browser localhost:8080. Sistem banjur bakal njaluk sampeyan ngetik sandhi awal kanggo pangguna root. Tembung sandhi iki ana ing file /var/lib/jenkins/secrets/initialAdminPassword.

Saiki kabeh wis siyap, sampeyan bisa miwiti nggawe aliran CI / CD. Antarmuka grafis saka workbench katon kaya iki:

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

Kekuwatan Jenkins:

  • skalabilitas sing diwenehake dening arsitektur Master/Slave;
  • kasedhiyan REST XML/JSON API;
  • kemampuan kanggo nyambungake akeh ekstensi thanks kanggo plugin;
  • masyarakat aktif lan terus berkembang.

Cons:

  • ora ana blok analitik;
  • ora banget pangguna-loropaken antarmuka.

TeamCity

Pangembangan komersial saka JetBrains. Server apik karo persiyapan prasaja lan antarmuka banget. Konfigurasi standar nduweni akeh fungsi, lan jumlah plugin sing kasedhiya terus saya tambah.

Mbutuhake Java Runtime Environment (JRE) versi 8.

Persyaratan hardware server ora kritis:

  • RAM - 3,2 GB;
  • prosesor - dual-inti, 3,2 GHz;
  • saluran komunikasi kanthi kapasitas 1 Gb/s.

Server ngidini sampeyan entuk kinerja dhuwur:

  • 60 proyek kanthi 300 konfigurasi mbangun;
  • 2 MB alokasi kanggo mbangun log;
  • 50 agen mbangun;
  • kemampuan kanggo nggarap 50 pangguna ing versi web lan 30 pangguna ing IDE;
  • 100 sambungan VCS external, biasane Perforce lan Subversion. Wektu owah-owahan rata-rata yaiku 120 detik;
  • luwih saka 150 modifikasi saben dina;
  • nggarap database ing siji server;
  • Setelan proses server JVM: -Xmx1100m -XX:MaxPermSize=120m.

Syarat agen adhedhasar majelis mlaku. Tugas utama server yaiku ngawasi kabeh agen sing disambungake lan nyebarake majelis antri menyang agen kasebut adhedhasar syarat kompatibilitas, nglaporake asil. Agen teka ing macem-macem platform lan sistem operasi, ditambah karo lingkungan sing wis dikonfigurasi.

Kabeh informasi babagan asil mbangun disimpen ing database. Utamane iki sejarah lan data liyane sing padha, owah-owahan VCS, agen, mbangun antrian, akun pangguna lan ijin. Basis data ora kalebu mung mbangun log lan artefak.

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

Instalasi kanggo Linux

Kanggo nginstal TeamCity kanthi manual karo wadhah servlet Tomcat, sampeyan kudu nggunakake arsip TeamCity: TeamCity .tar.gz. Ngundhuh sampeyan bisa njaluk saka kene.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [wiwit|mandheg]

Nalika sampeyan miwiti, sampeyan kudu milih jinis database ing ngendi data perakitan bakal disimpen.

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

Konfigurasi gawan mlaku ing localhost: 8111 / karo siji kadhaptar mbangun agen mlaku ing PC padha.

Kekuwatan TeamCity:

  • persiyapan prasaja;
  • antarmuka pangguna-pangguna;
  • nomer akeh fungsi sing dibangun;
  • Layanan dhukungan;
  • ana API RESTful;
  • dokumentasi apik;
  • keamanan apik.

Cons:

  • integrasi winates;
  • Iki minangka alat sing dibayar;
  • komunitas cilik (kang, Nanging, akeh).

GoCD

Proyek open source sing mbutuhake Java Runtime Environment (JRE) versi 8 kanggo instalasi lan operasi.

Syarat Sistem:

  • RAM - minimal 1 GB, luwih apik;
  • prosesor - dual-inti, kanthi frekuensi inti 2 GHz;
  • hard drive - paling 1 GB saka papan free.

Agen:

  • RAM - paling sethithik 128 MB, luwih apik;
  • prosesor - paling 2 GHz.

Server njamin operasi agen lan nyedhiyakake antarmuka sing trep kanggo pangguna:

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

Tahap/Pekerjaan/Tugas:

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

Instalasi kanggo Linux

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

nggulung download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-repository ppa:openjdk-r/ppa

Apt-get update

apt-get nginstal -y openjdk-8-jre

apt-get nginstal go-server

apt-get nginstal go-agent

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

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

Kanthi gawan GoCd mlaku ing localhost: 8153.

Kakuwatan GoCd:

  • mbukak sumber;
  • instalasi lan konfigurasi prasaja;
  • dokumentasi apik;

  • Antarmuka pangguna sing apik:

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

  • kemampuan kanggo nuduhake dalan penyebaran GoCD langkah-langkah ing siji tampilan:

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

  • tampilan apik banget saka struktur pipa:

3 alat populer kanggo ngatur penyebaran terus (Continuous Deployment)

  • GoCD ngoptimalake alur kerja CD ing lingkungan maya sing paling populer kalebu Docker, AWS;
  • alat ndadekake iku bisa kanggo mbenerake masalah ing pipo, kang ana nelusuri saben owah-owahan saka laku kanggo penyebaran prajurit ing wektu nyata.

Cons:

  • paling ora siji agen dibutuhake;
  • ora ana konsol kanggo nampilake kabeh tugas sing wis rampung;
  • kanggo nglakokake saben printah, sampeyan kudu nggawe siji tugas kanggo konfigurasi pipeline;
  • Kanggo nginstal plugin sampeyan kudu mindhah file .jar menyang /plugins/external lan miwiti maneh server;
  • masyarakat relatif cilik.

Minangka kesimpulan

Iki mung telung piranti, nyatane isih akeh liyane. Iku angel kanggo milih, supaya sampeyan kudu mbayar manungsa waé kanggo aspèk tambahan.

Kode sumber mbukak alat kasebut ngidini sampeyan ngerti apa iku, lan nambah fitur anyar luwih cepet. Nanging yen ana sing ora bisa, mula sampeyan mung kudu ngandelake dhewe lan bantuan masyarakat. Piranti sing dibayar nyedhiyakake dhukungan sing kadhangkala bisa kritis.

Yen keamanan minangka prioritas utama, sampeyan kudu nggarap alat lokal. Yen ora, banjur milih solusi SaaS minangka pilihan sing apik.

Lan pungkasane, kanggo mesthekake proses penyebaran terus-terusan sing bener-bener efektif, sampeyan kudu ngramu kritéria sing spesifik bakal ngidini sampeyan mbatesi sawetara alat sing kasedhiya.

Skillbox nyaranake:

Source: www.habr.com

Add a comment