CICD untuk startup: alat apa saja yang ada dan mengapa tidak hanya perusahaan besar dan terkenal yang menggunakannya

Pengembang alat CICD sering kali mencantumkan perusahaan besar sebagai kliennya - Microsoft, Oculus, Red Hat, bahkan Ferrari dan NASA. Tampaknya merek-merek seperti itu hanya bekerja dengan sistem mahal yang tidak mampu dimiliki oleh sebuah startup yang terdiri dari beberapa pengembang dan seorang desainer. Namun sebagian besar alat tersedia untuk tim kecil.

Kami akan memberi tahu Anda apa yang dapat Anda perhatikan di bawah ini.

CICD untuk startup: alat apa saja yang ada dan mengapa tidak hanya perusahaan besar dan terkenal yang menggunakannya
Π€ΠΎΡ‚ΠΎ - Csaba Balazs β€” Hapus percikan

Sensor PHP

Server CI sumber terbuka yang memudahkan pembuatan proyek di PHP. Ini adalah cabang dari proyek ini PHPCI. PHPCI sendiri masih berkembang, namun tidak seaktif sebelumnya.

PHP Censor dapat bekerja dengan GitHub, GitLab, Mercurial dan beberapa repositori lainnya. Untuk menguji kode, alat ini menggunakan pustaka Atomum, PHP Spec, Behat, Codeception. Di Sini contoh berkas 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"

Dianggapbahwa Sensor PHP sangat cocok untuk menerapkan proyek kecil, tetapi Anda harus menghosting dan mengonfigurasinya sendiri (dihosting sendiri). Tugas ini disederhanakan dengan dokumentasi yang cukup rinci - itu ada di GitHub.

rex

Rex adalah kependekan dari Eksekusi Jarak Jauh. Sistem ini dikembangkan oleh insinyur Ferenc Erki untuk mengotomatisasi proses di pusat data. Rex didasarkan pada skrip Perl, tetapi tidak perlu mengetahui bahasa ini untuk berinteraksi dengan alat ini - sebagian besar operasi (misalnya, menyalin file) dijelaskan di pustaka fungsi, dan skrip sering kali dimasukkan ke 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 menyarankan Anda mulai mengenal alat ini dengan panduan resmi ΠΈ buku elektronik, yang saat ini sedang diselesaikan.

Layanan Pembuatan Terbuka (OBS)

Ini adalah platform untuk mengoptimalkan pengembangan distribusi. Kodenya terbuka dan ada di repositori di GitHub. Pembuat alat ini adalah perusahaan Novell. Dia berpartisipasi dalam pengembangan distribusi SuSE, dan proyek ini awalnya disebut openSUSE Build Service. Tidak mengherankan jika Open Build Service menggunakan untuk membangun proyek di openSUSE, Tizen dan VideoLAN. Dell, SGI dan Intel juga bekerja dengan alat ini. Namun di antara pengguna biasa ada juga startup kecil. Khusus untuk mereka, penulis mengumpulkan (halaman 10) telah dikonfigurasikan sebelumnya paket perangkat lunak. Sistemnya sendiri sepenuhnya gratis - Anda hanya perlu mengeluarkan uang untuk hosting atau server perangkat keras untuk menerapkannya.

Namun sepanjang keberadaannya, alat tersebut belum pernah mendapat komunitas luas. Meskipun dia adalah bagian dari Jaringan Pengembang Linux, yang bertanggung jawab untuk menstandardisasi OS terbuka. Ini bisa jadi sulit Temukan jawaban atas pertanyaan Anda di forum tematik. Namun salah satu warga Quora mencatat hal itu obrolan IRC Di Freenode, anggota komunitas merespons dengan cukup mudah. Permasalahan komunitas kecil tidak bersifat global, karena solusi terhadap banyak permasalahan telah dijelaskan dalam dokumentasi resmi (PDF dan EPUB). Ibid. dapat menemukan praktik terbaik untuk bekerja dengan OBS (ada contoh dan kasus).

dek lari

Buka alat (GitHub), yang mengotomatiskan tugas di pusat data dan cloud menggunakan skrip. Server skrip khusus bertanggung jawab atas pelaksanaannya. Kita dapat mengatakan bahwa Rundeck adalah β€œanak perempuan” dari platform manajemen aplikasi ControlTier. Rundeck berpisah darinya pada tahun 2010 dan memperoleh fungsionalitas baru - misalnya, integrasi dengan Puppet, Chef, Git, dan Jenkins.

Sistem ini digunakan di The Walt Disney Company, Salesforce ΠΈ Ticketmaster. Namun proyek ini juga cocok untuk startup. Hal ini karena Rundeck dilisensikan di bawah lisensi Apache v2.0. Apalagi alat ini cukup mudah digunakan.

Seorang penduduk Reddit yang bekerja dengan Rundeck, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, yang menyelesaikan sebagian besar kesulitan saya sendiri. Mereka membantunya dalam hal ini dokumentasi dan e-book, diterbitkan oleh pengembang.

Anda juga dapat menemukan panduan singkat untuk menyiapkan alat ini secara online:

GoCD

Buka alat (GitHub) mengotomatiskan kontrol versi kode. Itu diperkenalkan pada tahun 2007 oleh perusahaan ThoughtWorks β€” kemudian proyek itu disebut Cruise.

GoCD digunakan oleh para insinyur dari situs penjualan mobil online AutoTrader, layanan silsilah Ancestry, dan penyedia kartu kredit Barclaycard. Namun seperempat pengguna alat merupakan usaha kecil-kecilan.

Popularitas layanan di kalangan startup dapat dijelaskan oleh keterbukaannya - layanan ini didistribusikan di bawah lisensi Apache v2.0. Pada saat yang sama, GoCD Ini memiliki plugin untuk integrasi dengan perangkat lunak pihak ketiga - sistem otorisasi dan solusi cloud. Sistem yang benar cukup rumit dalam penguasaan - ia memiliki banyak operator dan tim. Selain itu, beberapa pengguna mengeluh tentang antarmuka yang buruk dan perlu konfigurasikan agen untuk penskalaan.

CICD untuk startup: alat apa saja yang ada dan mengapa tidak hanya perusahaan besar dan terkenal yang menggunakannya
Π€ΠΎΡ‚ΠΎ - Matt Wildbore β€” Hapus percikan

Jika Anda ingin mencoba GoCD dalam praktiknya, Anda dapat menemukannya di situs proyek dokumentasi resmi. Hal ini juga dapat direkomendasikan sebagai sumber informasi tambahan Blog Pengembang GoCD dengan manual pada pengaturan.

Jenkins

Jenkins dikenal luas dan dianggap semacam standar di bidang CICD - tentunya tanpanya seleksi ini tidak akan lengkap. Alat ini muncul pada tahun 2011, menjadi cabang Proyek Hudson dari Oracle.

Hari ini dengan Jenkins Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ di NASA, Nintendo dan organisasi besar lainnya. Namun lebih dari 8% akun pengguna untuk tim kecil hingga sepuluh orang. Produk ini sepenuhnya gratis dan didistribusikan di bawah lisensi MIT. Namun, Anda harus menghosting dan mengkonfigurasi Jenkins sendiri - ini memerlukan server khusus.

Sepanjang keberadaan instrumen tersebut, komunitas besar telah terbentuk di sekitarnya. Pengguna secara aktif berkomunikasi di thread Reddit ΠΈ Google Groups. Materi tentang Jenkins juga muncul secara rutin di HabrΓ©. Jika Anda ingin menjadi bagian dari komunitas dan mulai bekerja dengan Jenkins, ada dokumentasi resmi ΠΈ panduan pengembang. Kami juga merekomendasikan panduan dan buku berikut:

Jenkins memiliki beberapa proyek sampingan yang bermanfaat. Yang pertama adalah plugin Konfigurasi sebagai Kode. Itu membuat pengaturan Jenkins menjadi mudah dengan API yang mudah dibaca yang bahkan dapat dipahami oleh admin yang tidak memiliki pengetahuan mendalam tentang alat tersebut. Yang kedua adalah sistem Jenkins X untuk awan. Ini mempercepat pengiriman aplikasi yang diterapkan pada infrastruktur TI skala besar dengan mengotomatiskan beberapa tugas rutin.

membangunbot

Ini adalah sistem integrasi berkelanjutan untuk mengotomatiskan siklus pembuatan dan pengujian aplikasi. Secara otomatis memeriksa fungsionalitas kode setiap kali ada perubahan yang dilakukan.

Penulis alat ini adalah insinyur Brian Warner. Hari ini dia sedang bertugas berubah kelompok inisiatif Komite Pengawas Buildbot, yang mencakup enam pengembang.

membangunbot bekas proyek seperti LLVM, MariaDB, Blender dan Dr.Web. Tapi itu juga digunakan dalam proyek-proyek kecil seperti wxWidgets dan Flathub. Sistem ini mendukung semua VCS modern dan memiliki pengaturan build yang fleksibel dengan menggunakan Python untuk mendeskripsikannya. Ini akan membantu Anda menangani semuanya. dokumentasi resmi dan tutorial pihak ketiga, misalnya, ini yang singkat panduan IBM.

Tentu saja, itu belum semuanya Alat DevOps yang harus diperhatikan oleh organisasi kecil dan startup. Berikan alat favorit Anda di komentar, dan kami akan mencoba membicarakannya di salah satu materi berikut.

Apa yang kami tulis di blog perusahaan:

Sumber: www.habr.com

Tambah komentar