3 alat populer untuk mengatur penyebaran berkelanjutan (Continuous Deployment)

gambar

Continuous Deployment adalah pendekatan khusus dalam pengembangan perangkat lunak yang digunakan untuk mengimplementasikan berbagai fungsi dalam perangkat lunak dengan cepat, aman dan efisien.

Gagasan utamanya adalah menciptakan proses otomatis yang andal yang memungkinkan pengembang untuk dengan cepat menyediakan pengguna dengan produk jadi. Pada saat yang sama, perubahan konstan dibuat dalam produksi - ini disebut pipa pengiriman kontinu (Pipa CD).

Skillbox merekomendasikan: Kursus praktis "Pengembang Mobile PRO" .

Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promo "Habr".



Untuk mengontrol aliran, Anda dapat menggunakan berbagai alat, di antaranya ada yang berbayar dan sepenuhnya gratis. Artikel ini menjelaskan tiga solusi paling populer di kalangan pengembang yang mungkin bermanfaat bagi setiap programmer.

Jenkins


Server otomatisasi open source sepenuhnya mandiri. Perlu bekerja dengannya untuk mengotomatisasi semua jenis tugas yang terkait dengan perakitan, pengujian, pengiriman, atau penyebaran perangkat lunak.

Persyaratan PC minimum:
  • RAM 256 MB, ruang file 1 GB.

Optimal:
  • RAM 1 GB, ruang hard disk 50 GB.

Untuk bekerja, Anda juga akan memerlukan perangkat lunak tambahan - Java Runtime Environment (JRE) versi 8.

Arsitektur (komputasi terdistribusi) adalah sebagai berikut:


Jenkins Server - instalasi yang bertanggung jawab untuk hosting GUI, serta organisasi dan pelaksanaan seluruh majelis.

Jenkins Node / Slave / Build Server - perangkat yang dapat dikonfigurasi untuk melakukan pekerjaan perakitan atas nama Master (simpul utama).

Instalasi Linux

Pertama, Anda perlu menambahkan repositori Jenkins ke 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 binary /' | sudo tee -a /etc/apt/sources.list.d/je

Perbarui repositori paket:

sudo apt pembaruan

Instal Jenkins:

sudo apt install jenkins

Setelah itu, Jenkins akan tersedia pada sistem dengan port default 8080.

Untuk memeriksa fungsionalitasnya, buka alamat localhost : 8080 di browser. Kemudian sistem akan meminta Anda untuk memasukkan kata sandi awal pengguna dengan hak root. Kata sandi ini terletak di file / var / lib / jenkins / secrets / initialAdminPassword.

Sekarang semuanya siap untuk bekerja, Anda dapat mulai membuat aliran CI / CD. Antarmuka grafis dari lingkungan kerja adalah sebagai berikut:





Kekuatan Jenkins:
  • skalabilitas yang disediakan oleh arsitektur Master / Slave;
  • kehadiran REST XML / JSON API;
  • kemampuan untuk menghubungkan sejumlah besar ekstensi berkat plugin;
  • Komunitas yang aktif dan terus berkembang.

Cons:
  • unit analitis yang hilang;
  • antarmuka tidak terlalu nyaman.

Teamcity


Pengembangan komersial dari JetBrains. Server baik untuk pengaturan sederhana dan antarmuka yang sangat baik. Ada sejumlah besar fungsi dalam konfigurasi default, jumlah plugin yang tersedia terus meningkat.

Konten ini memerlukan Java Runtime Environment (JRE) versi 8.

Persyaratan server untuk perangkat keras tidak penting:
  • RAM - 3,2 GB;
  • prosesor - dual core, 3,2 GHz;
  • saluran komunikasi dengan bandwidth 1 Gb / s.

Server memungkinkan Anda untuk mencapai kinerja tinggi dalam pekerjaan:
  • 60 proyek dengan 300 konfigurasi perakitan;
  • alokasi 2 MB untuk log perakitan;
  • 50 agen pembangun;
  • kemampuan untuk bekerja 50 pengguna dalam versi web dan 30 pengguna dalam IDE;
  • 100 koneksi SLE eksternal, biasanya Perforce dan Subversion. Waktu perubahan rata-rata adalah 120 detik;
  • lebih dari 150 modifikasi per hari;
  • bekerja dengan database pada satu server;
  • Pengaturan proses server JVM: -Xmx1100m -XX: MaxPermSize = 120m.

Persyaratan agen ditentukan dengan menjalankan rakitan. Tugas utama server adalah melacak semua agen yang terhubung dan mendistribusikan rakitan dari antrian di antara agen-agen ini berdasarkan persyaratan kompatibilitas, dengan hasil yang dilaporkan. Agen memiliki berbagai platform dan sistem operasi, plus lingkungan yang telah dikonfigurasi sebelumnya.

Semua informasi tentang hasil perakitan disimpan dalam database. Pertama-tama, ini adalah riwayat dan data serupa lainnya, perubahan VCS, agen, antrean bangun, akun dan izin pengguna. Basis data tidak hanya memasukkan log dan artefak perakitan.



Instalasi Linux

Untuk menginstal TeamCity secara manual dengan wadah servlet Tomcat, gunakan arsip TeamCity: TeamCity .tar.gz. Anda dapat mengunduhnya dari sini .

tar -xfz TeamCity.tar.gz

/ bin / runAll. sh [start | stop]

Pada permulaan pertama, Anda harus memilih jenis database di mana data perakitan akan disimpan.



Konfigurasi default berjalan di localhost : 8111 / dengan satu agen build terdaftar yang berjalan pada PC yang sama.

Kekuatan TeamCity:
  • pengaturan sederhana;
  • antarmuka yang nyaman;
  • sejumlah besar fungsi bawaan;
  • layanan dukungan;
  • Ada API TENANG;
  • dokumentasi yang baik;
  • keamanan yang baik.

Cons:
  • integrasi terbatas;
  • itu adalah alat berbayar;
  • sebuah komunitas kecil (yang, bagaimanapun, sedang tumbuh).

Ya Tuhan


Proyek open source yang membutuhkan Java Runtime Environment (JRE) versi 8 untuk menginstal dan menjalankannya.

Persyaratan Sistem:
  • RAM - minimum 1 GB, lebih baik lebih banyak;
  • prosesor - dual-core, dengan frekuensi inti 2 GHz;
  • Hard disk - setidaknya 1 GB ruang kosong.

Agen:
  • RAM - setidaknya 128 MB, lebih disukai lebih banyak;
  • prosesor - setidaknya 2 GHz.

Server menyediakan agen dan menyediakan antarmuka yang nyaman bagi pengguna:



Tahapan / Pekerjaan / Tugas:



Instalasi Linux

gema “deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

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

pembaruan apt-get

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

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

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

Secara default, GoCd berjalan di localhost : 8153.

Kekuatan GoCd:
  • open source
  • instalasi dan pengaturan sederhana;
  • dokumentasi yang baik;

  • antarmuka pengguna yang hebat:



  • Kemungkinan tampilan langkah demi langkah jalur penyebaran GoCD dalam satu tampilan:



  • tampilan yang sangat baik dari struktur conveyor:



  • GoCD mengoptimalkan alur kerja CD di lingkungan cloud paling populer, termasuk Docker, AWS;
  • alat ini memungkinkan untuk memperbaiki kesalahan dalam pipa, yang mana ada pelacakan setiap perubahan dari komit ke penyebaran dalam mode realtime.

Cons:
  • setidaknya diperlukan satu agen;
  • tidak ada konsol untuk menampilkan semua tugas yang diselesaikan;
  • Untuk menjalankan setiap perintah, Anda perlu membuat satu tugas untuk konfigurasi pipa;
  • untuk menginstal plugin, Anda perlu memindahkan file .jar ke <go-server-location> / plugins / external dan restart server;
  • komunitas yang relatif kecil.

Sebagai kesimpulan


Ini hanya tiga alat, pada kenyataannya, ada banyak lagi. Sulit untuk memilih, jadi Anda perlu memperhatikan aspek tambahan.

Kode sumber terbuka alat memungkinkan untuk memahami apa itu, ditambah menambahkan fungsi baru lebih cepat. Tetapi jika sesuatu tidak berhasil, maka Anda harus hanya mengandalkan diri sendiri dan bantuan komunitas. Alat berbayar menyediakan dukungan yang terkadang bisa sangat penting.

Jika keselamatan paling penting, Anda harus bekerja dengan alat lokal. Jika tidak, maka memilih solusi SaaS adalah pilihan yang baik.

Dan yang terakhir: untuk memastikan proses penyebaran berkelanjutan yang benar-benar efektif, perlu untuk merumuskan kriteria, yang kekhususannya akan memungkinkan untuk mempersempit berbagai pilihan alat yang tersedia.

Skillbox merekomendasikan:

Source: https://habr.com/ru/post/id455130/


All Articles