CI \ CD untuk startup: alat apa yang ada di sana dan mengapa tidak hanya perusahaan besar dan terkenal yang menggunakannya

Pengembang alat-alat CI \ CD sering menunjukkan perusahaan besar sebagai Microsoft, Oculus, Red Hat, bahkan Ferrari dan NASA sebagai pelanggan. Tampaknya merek semacam itu hanya bekerja dengan sistem mahal yang tidak dapat dilakukan oleh beberapa pengembang dan perancang awal bersyarat. Tetapi sebagian besar alat tersedia untuk tim kecil.

Apa yang dapat Anda perhatikan - kami akan memberi tahu lebih lanjut.


Foto - Csaba Balazs - Unsplash



Sensor PHP


Server CI sumber terbuka yang membuatnya mudah untuk membangun proyek PHP. Ini adalah percabangan dari proyek PHPCI . PHPCI sendiri masih berkembang, tetapi tidak seaktif sebelumnya.

Sensor PHP dapat bekerja dengan repositori GitHub, GitLab, Mercurial dan beberapa lainnya. Untuk menguji kode, alat ini menggunakan pustaka Atoum, PHP Spec, Behat, Codeception. Berikut ini contoh file konfigurasi untuk kasus pertama:

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

Dipercaya bahwa Sensor PHP tidak buruk untuk menggelar proyek-proyek kecil, tetapi Anda harus meng-host dan mengkonfigurasinya sendiri (self-host). Tugas ini disederhanakan dengan dokumentasi yang cukup rinci - ada di GitHub .



Rex


Rex adalah kependekan dari Remote Execution. Sistem ini dikembangkan oleh insinyur Ferenc Erki untuk mengotomatisasi proses di pusat data. Pekerjaan Rex didasarkan pada skrip Perl, tetapi tidak perlu mengetahui bahasa ini untuk berinteraksi dengan alat - sebagian besar operasi (misalnya, menyalin file) dijelaskan dalam pustaka fungsi, dan skrip sering kali sesuai dalam sepuluh baris. Berikut adalah contoh untuk masuk ke beberapa server dan menjalankan uptime:

 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 sarankan untuk memulai perkenalan Anda dengan alat dari panduan resmi dan e-book , yang saat ini sedang ditambahkan.



Layanan Bangun Terbuka (OBS)


Ini adalah platform untuk mengoptimalkan pengembangan distribusi. Kodenya terbuka dan terletak di repositori di GitHub . Penulis alat ini adalah Novell . Dia berpartisipasi dalam pengembangan distribusi SuSE, dan proyek ini awalnya disebut openSUSE Build Service. Tidak mengherankan, Layanan Bangun Terbuka digunakan untuk membangun proyek di openSUSE, Tizen, dan VideoLAN. Alat ini juga berfungsi dengan Dell, SGI dan Intel. Tetapi ada di antara pengguna biasa dan startup kecil. Khusus untuk mereka, penulis mengumpulkan ( p. 10 ) paket perangkat lunak yang sudah dikonfigurasi sebelumnya. Sistem itu sendiri benar-benar gratis - Anda hanya perlu mengeluarkan uang untuk hosting atau server besi untuk menggunakannya.

Namun selama seluruh keberadaannya, alat ini belum memperoleh komunitas luas. Meskipun itu bagian dari Linux Developer Network, bertanggung jawab untuk menstandarisasi OS terbuka. Sulit untuk menemukan jawaban atas pertanyaan di forum topik. Tetapi salah satu warga Quora mencatat bahwa dalam obrolan IRC di Freenode, anggota komunitas merespons dengan agak sukarela. Masalah komunitas kecil tidak bersifat global, karena solusi untuk banyak masalah dijelaskan dalam dokumentasi resmi (PDF dan EPUB). Di sana Anda dapat menemukan praktik terbaik untuk bekerja dengan OBS (ada contoh dan kasus).



Rundeck


Alat terbuka ( GitHub ) yang mengotomatiskan tugas-tugas di pusat data dan cloud menggunakan skrip. Server skrip khusus bertanggung jawab atas eksekusi mereka. Kita dapat mengatakan bahwa Rundeck adalah "anak" dari platform untuk mengelola aplikasi ControlTier. Rundeck berpisah darinya pada tahun 2010 dan memperoleh fungsionalitas baru - misalnya, integrasi dengan Puppet, Chef, Git dan Jenkins.

Sistem ini digunakan oleh Perusahaan Walt Disney , Salesforce dan Ticketmaster . Tetapi proyek ini juga cocok untuk startup. Ini karena Rundeck dilisensikan di bawah lisensi Apache v2.0. Apalagi alat ini cukup mudah digunakan.

Seorang penduduk Reddit yang bekerja dengan Rundeck mengatakan dia menyelesaikan sebagian besar kesulitannya sendiri. Dengan ini, dokumentasi dan e-book yang diterbitkan oleh pengembang membantunya.

Anda juga dapat menemukan panduan cepat tentang pengaturan alat secara online:




Ya Tuhan


Alat terbuka ( GitHub ) mengotomatiskan kontrol versi kode. Saat itu diperkenalkan pada 2007 oleh ThoughtWorks - maka proyek itu disebut Cruise.

AutoCD Autoder, layanan silsilah Ancestry, dan Barclaycard, penyedia kartu kredit, bekerja dengan GoCD. Namun, seperempat dari pengguna alat ini adalah usaha kecil .

Popularitas layanan di antara startup dapat dijelaskan dengan keterbukaannya - itu didistribusikan di bawah lisensi Apache v2.0. Pada saat yang sama, GoCD memiliki plugin untuk integrasi dengan perangkat lunak pihak ketiga - sistem otorisasi dan solusi cloud. Benar, sistem ini cukup sulit untuk dikuasai - ia memiliki banyak operator dan tim. Juga, beberapa pengguna mengeluh tentang antarmuka yang buruk dan perlunya mengkonfigurasi agen untuk penskalaan.


Foto - Matt Wildbore - Unsplash

Jika Anda ingin mencoba GoCD dalam praktiknya, maka di situs web proyek Anda dapat menemukan dokumentasi resmi . Anda juga dapat merekomendasikan Blog Pengembang GoCD dengan panduan penyesuaian sebagai sumber informasi tambahan.



Jenkins


Jenkins dikenal luas dan dianggap sebagai semacam standar di bidang CI \ CD - tentu saja, tanpa itu seleksi ini tidak akan lengkap. Alat itu muncul pada 2011, menjadi cabang dari proyek Hudson dari Oracle.

Hari ini, mereka bekerja dengan Jenkins di NASA, Nintendo, dan organisasi besar lainnya. Namun, lebih dari 8% pengguna adalah kelompok kecil hingga sepuluh orang. Produk ini sepenuhnya gratis dan didistribusikan di bawah lisensi MIT . Namun, Anda harus meng-host dan mengkonfigurasi Jenkins sendiri - ini membutuhkan server khusus.

Selama seluruh umur instrumen, komunitas yang luas telah terbentuk di sekitarnya. Pengguna secara aktif berkomunikasi di utas di Reddit dan Grup Google . Materi tentang Jenkins juga secara teratur muncul di HabrΓ©. Jika Anda ingin menjadi bagian dari komunitas dan memulai dengan Jenkins, ada dokumentasi resmi dan panduan dari pengembang . Kami juga merekomendasikan buku dan panduan berikut:


Jenkins memiliki beberapa proyek pihak ketiga yang bermanfaat. Yang pertama adalah plugin Konfigurasi sebagai Kode . Ini menyederhanakan pengaturan Jenkins dengan API yang dapat dibaca yang dapat dimengerti bahkan untuk administrator tanpa pengetahuan mendalam tentang alat ini. Yang kedua adalah sistem cloud Jenkins X. Ini mempercepat pengiriman aplikasi yang digunakan pada infrastruktur TI skala besar dengan mengotomatisasi beberapa tugas rutin.



Buildbot


Ini adalah sistem integrasi berkesinambungan untuk mengotomatisasi siklus perakitan dan pengujian aplikasi. Secara otomatis memeriksa fungsionalitas kode setiap kali ada perubahan yang dilakukan terhadapnya.

Penulis alat ini adalah insinyur Brian Warner (Brian Warner). Hari ini ia digantikan oleh kelompok inisiatif Komite Pengawas Buildbot, yang mencakup enam pengembang.

Buildbot digunakan oleh proyek-proyek seperti LLVM, MariaDB, Blender, dan Dr.Web. Tetapi juga digunakan dalam proyek yang lebih kecil seperti wxWidgets dan Flathub. Sistem ini mendukung semua VCS modern dan memiliki pengaturan pembangunan yang fleksibel melalui penggunaan Python untuk menggambarkannya. Dokumentasi resmi dan tutorial pihak ketiga akan membantu Anda menangani semuanya, misalnya, berikut adalah panduan cepat dari IBM .



Tentu saja, ini tidak semua alat DevOps yang harus diperhatikan oleh organisasi kecil dan pemula. Berikan alat favorit Anda di komentar, dan kami akan mencoba membicarakannya di salah satu bahan berikut.



Apa yang kami tulis di blog perusahaan:

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


All Articles