ProHoster > blog > berita internet > 3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)
3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)
Continuous Deployment adalah pendekatan khusus dalam pengembangan perangkat lunak yang digunakan untuk mengimplementasikan berbagai fungsi dalam perangkat lunak dengan cepat, aman, dan efisien.
Ide utamanya adalah untuk menciptakan proses otomatis yang andal yang memungkinkan pengembang mengirimkan produk jadi dengan cepat kepada pengguna. Pada saat yang sama, perubahan konstan dilakukan pada produksi - ini disebut pipa pengiriman berkelanjutan (CD Pipeline).
Kami mengingatkan:untuk semua pembaca "Habr" - diskon 10 rubel saat mendaftar di kursus Skillbox apa pun menggunakan kode promosi "Habr".
Untuk mengontrol aliran, Anda dapat menggunakan berbagai alat, termasuk yang berbayar dan gratis. Artikel ini menjelaskan tiga solusi paling populer di kalangan pengembang yang dapat berguna bagi setiap programmer.
Jenkins
Server otomasi sumber terbuka yang sepenuhnya mandiri. Ada baiknya bekerja untuk mengotomatiskan semua jenis tugas yang terkait dengan pembuatan, pengujian, pengiriman, atau penerapan perangkat lunak.
Persyaratan PC minimal:
RAM 256 MB, ruang file 1 GB.
Optimal:
RAM 1 GB, Hardisk 50 GB.
Untuk bekerja, Anda juga memerlukan perangkat lunak tambahan - Java Runtime Environment (JRE) versi 8.
Arsitekturnya (komputasi terdistribusi) terlihat seperti ini:
Jenkins Server adalah instalasi yang bertanggung jawab untuk hosting GUI, serta mengatur dan mengeksekusi seluruh build.
Jenkins Node/Slave/Build Server - perangkat yang dapat dikonfigurasi untuk melakukan pekerjaan build atas nama Master (node utama).
Instalasi untuk Linux
Pertama, Anda perlu menambahkan repositori Jenkins ke sistem:
Setelah ini, Jenkins akan tersedia di sistem melalui port default 8080.
Untuk memeriksa fungsionalitas, Anda perlu membuka alamat di browser localhost:8080. Sistem kemudian akan meminta Anda memasukkan kata sandi awal untuk pengguna root. Kata sandi ini terletak di file /var/lib/jenkins/secrets/initialAdminPassword.
Sekarang semuanya siap, Anda dapat mulai membuat aliran CI/CD. Antarmuka grafis meja kerja terlihat seperti ini:
Kekuatan Jenkins:
skalabilitas yang disediakan oleh arsitektur Master/Slave;
ketersediaan REST XML/JSON API;
kemampuan untuk menghubungkan sejumlah besar ekstensi berkat plugin;
komunitas yang aktif dan terus berkembang.
Cons:
tidak ada blok analitis;
antarmuka yang tidak terlalu ramah pengguna.
TeamCity
Pengembangan komersial dari JetBrains. Servernya bagus dengan pengaturan sederhana dan antarmuka luar biasa. Konfigurasi default memiliki banyak fungsi, dan jumlah plugin yang tersedia terus meningkat.
Membutuhkan Java Runtime Environment (JRE) versi 8.
Persyaratan perangkat keras server tidak penting:
RAM - 3,2 GB;
prosesor - dual-core, 3,2 GHz;
saluran komunikasi dengan kapasitas 1 Gb/s.
Server memungkinkan Anda mencapai kinerja tinggi:
60 proyek dengan 300 konfigurasi build;
Alokasi 2 MB untuk build log;
50 agen pembangun;
kemampuan untuk bekerja dengan 50 pengguna di versi web dan 30 pengguna di IDE;
100 koneksi VCS eksternal, biasanya Perforce dan Subversion. Waktu perubahan rata-rata adalah 120 detik;
lebih dari 150 modifikasi per hari;
bekerja dengan database di satu server;
Pengaturan proses server JVM: -Xmx1100m -XX:MaxPermSize=120m.
Persyaratan agen didasarkan pada rakitan yang berjalan. Tugas utama server adalah memantau semua agen yang terhubung dan mendistribusikan rakitan yang diantri ke agen-agen ini berdasarkan persyaratan kompatibilitas, dan melaporkan hasilnya. Agen hadir dalam berbagai platform dan sistem operasi, ditambah lingkungan yang telah dikonfigurasi sebelumnya.
Semua informasi tentang hasil build disimpan dalam database. Terutama ini adalah riwayat dan data serupa lainnya, perubahan VCS, agen, antrian build, akun pengguna, dan izin. Basis data tidak hanya mencakup log pembangunan dan artefak.
Instalasi untuk Linux
Untuk menginstal TeamCity secara manual dengan wadah servlet Tomcat, Anda harus menggunakan arsip TeamCity: TeamCity .tar.gz. Unduh Anda bisa mendapatkannya di sini.
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [mulai|berhenti]
Pada permulaan pertama, Anda perlu memilih jenis database di mana data perakitan akan disimpan.
Konfigurasi default berjalan localhost:8111/ dengan satu agen pembangunan terdaftar yang berjalan pada PC yang sama.
Kekuatan TeamCity:
pengaturan yang mudah;
user-friendly interface;
sejumlah besar fungsi bawaan;
mendukung;
ada API yang tenang;
dokumentasi yang baik;
keamanan yang baik.
Cons:
integrasi terbatas;
Ini adalah alat berbayar;
sebuah komunitas kecil (yang, bagaimanapun, sedang berkembang).
GoCD
Proyek sumber terbuka yang memerlukan Java Runtime Environment (JRE) versi 8 untuk instalasi dan pengoperasian.
Persyaratan sistem:
RAM - minimum 1 GB, lebih banyak lebih baik;
prosesor - dual-core, dengan frekuensi inti 2 GHz;
hard drive - setidaknya 1 GB ruang kosong.
agen:
RAM - setidaknya 128 MB, lebih banyak lebih baik;
prosesor - setidaknya 2 GHz.
Server memastikan pengoperasian agen dan menyediakan antarmuka yang nyaman bagi pengguna:
Tahapan/Pekerjaan/Tugas:
Instalasi untuk Linux
echo "deb unduh.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
kemampuan untuk menampilkan jalur penerapan GoCD langkah demi langkah dalam satu tampilan:
tampilan luar biasa dari struktur pipa:
GoCD mengoptimalkan alur kerja CD di lingkungan cloud paling populer termasuk Docker, AWS;
alat ini memungkinkan untuk memperbaiki masalah dalam pipeline, yang mana terdapat pelacakan setiap perubahan mulai dari penerapan hingga penerapan secara real time.
Cons:
setidaknya diperlukan satu agen;
tidak ada konsol untuk menampilkan semua tugas yang telah selesai;
untuk menjalankan setiap perintah, Anda perlu membuat satu tugas untuk konfigurasi pipa;
Untuk menginstal plugin, Anda perlu memindahkan file .jar ke dalamnya /plugins/external dan restart server;
komunitas yang relatif kecil.
Sebagai sebuah kesimpulan
Ini hanya tiga alat, sebenarnya masih banyak lagi. Sulit untuk memilihnya, jadi Anda pasti perlu memperhatikan aspek tambahan.
Kode sumber terbuka dari alat ini memungkinkan untuk memahami apa itu, serta menambahkan fitur baru dengan lebih cepat. Namun jika tidak berhasil, maka hanya mengandalkan diri sendiri dan bantuan masyarakat. Alat berbayar memberikan dukungan yang terkadang sangat penting.
Jika keamanan adalah prioritas utama Anda, ada baiknya menggunakan alat lokal. Jika tidak, maka memilih solusi SaaS adalah pilihan yang baik.
Dan terakhir, untuk memastikan proses penerapan berkelanjutan yang benar-benar efektif, Anda perlu merumuskan kriteria yang spesifiknya akan memungkinkan Anda mempersempit jangkauan alat yang tersedia.