CICD untuk pemula: apakah alat yang ada dan mengapa tidak hanya syarikat besar dan terkenal menggunakannya

Pembangun alatan CICD sering menyenaraikan syarikat besar sebagai pelanggan - Microsoft, Oculus, Red Hat, malah Ferrari dan NASA. Nampaknya jenama sedemikian hanya berfungsi dengan sistem mahal yang tidak mampu dimiliki oleh syarikat permulaan yang terdiri daripada beberapa pembangun dan pereka bentuk. Tetapi sebahagian besar alat tersedia untuk pasukan kecil.

Kami akan memberitahu anda perkara yang boleh anda perhatikan di bawah.

CICD untuk pemula: apakah alat yang ada dan mengapa tidak hanya syarikat besar dan terkenal menggunakannya
Π€ΠΎΡ‚ΠΎ - Csaba Balazs - Nyah percikan

Penapis PHP

Pelayan CI sumber terbuka yang memudahkan untuk membina projek dalam PHP. Ini adalah garpu projek PHPCI. PHPCI sendiri masih berkembang, tetapi tidak seaktif dahulu.

Penapis PHP boleh berfungsi dengan GitHub, GitLab, Mercurial dan beberapa repositori lain. Untuk menguji kod, alat ini menggunakan perpustakaan Atoum, PHP Spec, Behat, Codeception. Di sini contoh fail konfigurasi untuk kes pertama:

test:
    atoum:
        args: "command line arguments go here"
        config: "path to config file"
        directory: "directory to run tests"
        executable: "path to atoum executable"

Dianggapbahawa Penapis PHP sangat sesuai untuk menggunakan projek kecil, tetapi anda perlu mengehos dan mengkonfigurasinya sendiri (hos sendiri). Tugas ini dipermudahkan dengan dokumentasi yang agak terperinci - ia berada di GitHub.

Rex

Rex ialah singkatan dari Remote Execution. Sistem ini dibangunkan oleh jurutera Ferenc Erki untuk mengautomasikan proses dalam pusat data. Rex adalah berdasarkan skrip Perl, tetapi tidak perlu mengetahui bahasa ini untuk berinteraksi dengan alat - kebanyakan operasi (contohnya, menyalin fail) diterangkan dalam pustaka fungsi, dan skrip sering dimuatkan ke dalam sepuluh baris. Berikut ialah contoh untuk log masuk ke berbilang pelayan dan menjalankan masa operasi:

use Rex -feature => ['1.3'];

user "my-user";
password "my-password";

group myservers => "mywebserver", "mymailserver", "myfileserver";

desc "Get the uptime of all servers";
task "uptime", group => "myservers", sub {
   my $output = run "uptime";
   say $output;
};

Kami mengesyorkan memulakan kenalan anda dengan alat dengan panduan rasmi ΠΈ e-buku, yang sedang disiapkan.

Perkhidmatan Binaan Terbuka (OBS)

Ini adalah platform untuk mengoptimumkan pembangunan pengedaran. Kodnya terbuka dan berada dalam repositori di GitHub. Pengarang alat itu ialah syarikat Novell. Beliau mengambil bahagian dalam pembangunan pengedaran SuSE, dan projek ini pada mulanya dipanggil OpenSUSE Build Service. Tidak menghairankan bahawa Perkhidmatan Binaan Terbuka menggunakan untuk membina projek dalam openSUSE, Tizen dan VideoLAN. Dell, SGI dan Intel juga berfungsi dengan alat tersebut. Tetapi di kalangan pengguna biasa terdapat juga pemula kecil. Khusus untuk mereka, penulis mengumpul (halaman 10) prakonfigurasi pakej perisian. Sistem itu sendiri adalah percuma sepenuhnya - anda hanya perlu membelanjakan wang untuk pengehosan atau pelayan perkakasan untuk menggunakannya.

Tetapi sepanjang kewujudannya, alat itu tidak pernah memperoleh komuniti yang luas. Walaupun beliau sebahagian daripada Rangkaian Pembangun Linux, bertanggungjawab untuk menyeragamkan OS terbuka. Ia boleh menjadi sukar Cari jawapan kepada soalan anda di forum tematik. Tetapi salah seorang penduduk Quora menyatakan bahawa dalam Sembang IRC Pada Freenode, ahli komuniti bertindak balas dengan mudah. Masalah komuniti kecil bukanlah global, kerana penyelesaian kepada banyak masalah telah diterangkan dalam dokumentasi rasmi (PDF dan EPUB). Ibid. boleh cari amalan terbaik untuk bekerja dengan OBS (ada contoh dan kes).

Rundeck

Buka alat (GitHub), yang mengautomasikan tugas di pusat data dan awan menggunakan skrip. Pelayan skrip khas bertanggungjawab untuk pelaksanaannya. Kita boleh mengatakan bahawa Rundeck ialah "anak perempuan" platform pengurusan aplikasi ControlTier. Rundeck berpisah daripadanya pada tahun 2010 dan memperoleh fungsi baharu - contohnya, penyepaduan dengan Puppet, Chef, Git dan Jenkins.

Sistem ini digunakan dalam The Walt Disney Company, Salesforce ΠΈ Ticketmaster. Tetapi projek itu juga sesuai untuk permulaan. Ini kerana Rundeck dilesenkan di bawah lesen Apache v2.0. Selain itu, alat ini agak mudah digunakan.

Seorang penduduk Reddit yang bekerja dengan Rundeck, ia berkata-kata, yang menyelesaikan kebanyakan kesukaran saya sendiri. Mereka membantunya dengan ini dokumentasi dan e-buku, diterbitkan oleh pembangun.

Anda juga boleh mendapatkan panduan ringkas untuk menyediakan alat dalam talian:

GoCD

Buka alat (GitHub) mengautomasikan kawalan versi kod. Ia diperkenalkan pada tahun 2007 oleh syarikat itu ThoughtWorks β€” kemudian projek itu dipanggil Cruise.

GoCD digunakan oleh jurutera dari tapak jualan kereta dalam talian AutoTrader, perkhidmatan genealogi Ancestry dan penyedia kad kredit Barclaycard. Walau bagaimanapun, satu perempat daripada pengguna alat membentuk perniagaan kecil.

Populariti perkhidmatan dalam kalangan pemula boleh dijelaskan oleh keterbukaannya - ia diedarkan di bawah lesen Apache v2.0. Pada masa yang sama, GoCD Ia mempunyai pemalam untuk penyepaduan dengan perisian pihak ketiga - sistem kebenaran dan penyelesaian awan. Sistem yang benar agak rumit dalam penguasaan - ia mempunyai sejumlah besar pengendali dan pasukan. Juga, sesetengah pengguna mengadu tentang antara muka yang lemah dan perlu konfigurasikan ejen untuk penskalaan.

CICD untuk pemula: apakah alat yang ada dan mengapa tidak hanya syarikat besar dan terkenal menggunakannya
Π€ΠΎΡ‚ΠΎ - Matt Wildbore - Nyah percikan

Jika anda ingin mencuba GoCD secara praktikal, anda boleh mencari di tapak web projek dokumentasi rasmi. Ia juga boleh disyorkan sebagai sumber maklumat tambahan Blog Pembangun GoCD dengan manual pada persediaan.

Jenkins

Jenkins dikenali secara meluas dan dianggap sejenis standard dalam bidang CICD - sudah tentu, tanpa itu pemilihan ini tidak akan lengkap sepenuhnya. Alat ini muncul pada tahun 2011, menjadi satu garpu Projek Hudson dari Oracle.

Hari ini bersama Jenkins sedang bekerja di NASA, Nintendo dan organisasi besar lain. Namun begitu lebih daripada 8% akaun pengguna untuk pasukan kecil sehingga sepuluh orang. Produk ini adalah percuma dan diedarkan sepenuhnya di bawah lesen MIT. Walau bagaimanapun, anda perlu mengehos dan mengkonfigurasi Jenkins sendiri - ia memerlukan pelayan khusus.

Sepanjang kewujudan instrumen itu, komuniti besar telah terbentuk di sekelilingnya. Pengguna berkomunikasi secara aktif dalam urutan pada Reddit ΠΈ Google Groups. Bahan pada Jenkins juga muncul secara tetap di HabrΓ©. Jika anda ingin menjadi sebahagian daripada komuniti dan mula bekerja dengan Jenkins, ada dokumentasi rasmi ΠΈ panduan pembangun. Kami juga mengesyorkan panduan dan buku berikut:

Jenkins mempunyai beberapa projek sampingan yang berguna. Yang pertama ialah pemalam Konfigurasi sebagai Kod. Ia memudahkan penyediaan Jenkins dengan API yang mudah dibaca yang boleh difahami oleh pentadbir tanpa pengetahuan mendalam tentang alat tersebut. Yang kedua ialah sistem Jenkins X untuk awan. Ia mempercepatkan penghantaran aplikasi yang digunakan pada infrastruktur IT berskala besar dengan mengautomasikan beberapa tugas rutin.

Buildbot

Ini ialah sistem penyepaduan berterusan untuk mengautomasikan kitaran binaan dan ujian aplikasi. Ia secara automatik menyemak kefungsian kod setiap kali sebarang perubahan dibuat padanya.

Pengarang alat itu ialah jurutera Brian Warner. Hari ini dia bertugas berubah kumpulan inisiatif Jawatankuasa Pemantauan Buildbot, yang merangkumi enam pembangun.

Buildbot digunakan projek seperti LLVM, MariaDB, Blender dan Dr.Web. Tetapi ia juga digunakan dalam projek yang lebih kecil seperti wxWidgets dan Flathub. Sistem ini menyokong semua VCS moden dan mempunyai tetapan binaan yang fleksibel dengan menggunakan Python untuk menerangkannya. Ia akan membantu anda berurusan dengan mereka semua. dokumentasi rasmi dan tutorial pihak ketiga, sebagai contoh, berikut adalah tutorial ringkas manual IBM.

Sudah tentu, bukan itu sahaja Alat DevOps yang perlu diberi perhatian oleh organisasi kecil dan syarikat permulaan. Berikan alat kegemaran anda dalam ulasan, dan kami akan cuba membincangkannya dalam salah satu bahan berikut.

Perkara yang kami tulis dalam blog korporat:

Sumber: www.habr.com

Tambah komen