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).

Skillbox merekomendasikan: Tentu saja praktis "Pengembang Seluler PRO".

Kami mengingatkan: untuk semua pembaca "Habr" - diskon 10 rubel saat mendaftar di kursus Skillbox apa pun menggunakan kode promosi "Habr".

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

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:
3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

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:

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

Perbarui repositori paket:

sudo apt update

Instal Jenkins:

sudo tepat instal jenkins

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:

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

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.

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

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.

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

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:

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

Tahapan/Pekerjaan/Tugas:

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

Instalasi untuk Linux

echo "deb unduh.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

keriting unduh.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key tambahkan -
tambahkan-apt-repositori ppa:openjdk-r/ppa

Update apt-get

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

/etc/init.d/go-server [mulai|berhenti|status|mulai ulang]

/etc/init.d/go-agent [mulai|berhenti|status|mulai ulang]

Secara default, GoCd berjalan localhost: 8153.

Kelebihan GoCd:

  • sumber terbuka;
  • instalasi dan konfigurasi sederhana;
  • dokumentasi yang baik;

  • Antarmuka pengguna yang hebat:

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

  • kemampuan untuk menampilkan jalur penerapan GoCD langkah demi langkah dalam satu tampilan:

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

  • tampilan luar biasa dari struktur pipa:

3 alat populer untuk mengatur penerapan berkelanjutan (Continuous Deployment)

  • 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.

Skillbox merekomendasikan:

Sumber: www.habr.com

Tambah komentar