Apa itu CI / CD? Integrasi Berterusan & Penghantaran Berterusan

Apakah Integrasi Berterusan?

Integrasi berterusan adalah kaedah pengembangan perisian di mana ahli pasukan mengintegrasikan kerja mereka sekurang-kurangnya sekali sehari. Dalam kaedah ini, setiap integrasi diperiksa oleh binaan automatik untuk mengesan kesalahan. Konsep ini pertama kali diperkenalkan lebih dari dua dekad yang lalu untuk mengelakkan 'neraka integrasi', yang berlaku ketika integrasi ditangguhkan hingga akhir projek.

Dalam Integrasi Berterusan setelah melakukan kod, perisian dibina dan diuji dengan segera. Dalam projek besar dengan banyak pembangun, komitmen dilakukan berkali-kali dalam sehari. Dengan setiap kod komit dibina dan diuji. Sekiranya ujian lulus, build diuji untuk penggunaan. Sekiranya penyebaran berjaya, kod tersebut ditolak ke Production. Komitmen, pembangunan, pengujian, dan penerapan ini adalah proses yang berterusan, dan dengan itu namanya integrasi / penerapan berterusan.

Dalam tutorial CI ini, anda akan belajar:

Pembangunan tanpa CI vs Pembangunan dengan CI

Berikut adalah perbezaan utama antara pembangunan menggunakan CI atau tanpa CI.

Pembangunan tanpa CIPembangunan dengan CI
Banyak pepijatLebih sedikit pepijat
Komitmen yang jarang berlakuKomitmen biasa
Pelepasan yang jarang dan lambatPelepasan kerja berkala
Kesepaduan yang sukarIntegrasi yang Mudah dan Berkesan
Ujian berlaku lewatUjian Integrasi Berterusan berlaku lebih awal dan kerap.
Masalah yang dibangkitkan lebih sukar untuk diselesaikanCari dan atasi masalah dengan lebih pantas dan cekap.
Penglihatan projek lemahPenglihatan projek yang lebih baik

Perbezaan antara Penyusunan dan Integrasi Berterusan

Aktiviti dalam Integrasi Berterusan



Walaupun penyusunan hanya menyusun kod, CI melakukan aktiviti berikut

Integrasi DB:

  • Pastikan DB dan kod selari
  • Pembuatan DB dan data ujian secara automatik.

Pemeriksaan Kod:

  • Memastikan pangkalan data yang sihat
  • Mengenal pasti masalah lebih awal dan menerapkan amalan terbaik

Penyebaran Automatik:

  • Membolehkan anda melepaskan produk pada bila-bila masa
  • Keadaan demo yang berterusan dan berfungsi pada mesin mana pun

Penjanaan dokumen:

  • Pastikan dokumentasi terkini
  • Membuang pembakar dari pembangun
  • Menghasilkan laporan dan metrik binaan

Penyusunan:

Penyusunan adalah proses yang dilakukan oleh komputer untuk menukar kod bahasa pengaturcaraan tahap tinggi menjadi bahasa mesin yang dapat difahami oleh komputer. Ia memastikan penyusun kod pada setiap platform sasaran.

Bilakah saya membina?

  • Pada setiap daftar masuk
  • Setiap kali pergantungan berubah

Bagaimana saya membina?

Proses CI

  • Sebaik-baiknya, binaan harus berasal dari baris arahan dan tidak bergantung pada IDE.
  • Pembinaan harus berlaku secara berterusan menggunakan pelayan Cl khusus, bukan pekerjaan cron.
  • CI built harus dicetuskan pada setiap daftar masuk dan bukan hanya pada tengah malam
  • Pembinaan harus memberikan maklum balas segera dan Tidak memerlukan usaha pemaju
  • Kenal pasti metrik utama dan jejaknya secara visual. Lebih penting lagi, bertindak segera kepada mereka

Apa yang anda perlukan untuk menjalankan proses CI?

Berikut adalah elemen penting yang anda perlukan untuk menyempurnakan keseluruhan proses CI:

  • Sistem Kawalan Versi (VCS): Ia menawarkan kaedah yang boleh dipercayai untuk memusatkan dan mengekalkan perubahan yang dibuat pada projek anda dari masa ke masa.
  • Mesin maya: Anda harus mempunyai pelayan ganti atau sekurang-kurangnya satu mesin maya untuk membina sistem anda.
  • Penyelesaian Alat CI yang dihoskan: Untuk mengelakkan pelayan atau mesin maya, anda harus mencari penyelesaian alat CI yang dihoskan. Alat ini membantu dalam penyelenggaraan keseluruhan proses dan menawarkan skalabiliti yang lebih mudah.
  • Alat: Sekiranya anda memilih varian yang dihoskan sendiri, anda perlu memasang salah satu daripada banyak Alat CI seperti Jenkins, TeamCity, Bamboo, GitLab, dll.

Bagaimana integrasi berterusan berfungsi?

Anda pasti menyedari Nokia telefon lama. Nokia digunakan untuk melaksanakan prosedur yang disebut pembuatan malam. Setelah melakukan pelbagai komitmen dari pelbagai pembangun pada waktu siang, perisian tersebut dibina setiap malam. Oleh kerana perisian itu dibina hanya sekali dalam sehari, sangat menyakitkan untuk mengasingkan, mengenal pasti, dan memperbaiki kesalahan dalam pangkalan data yang besar.

Kemudian, mereka mengadopsi pendekatan Integrasi Berterusan. Perisian ini dibina dan diuji sebaik sahaja pembangun membuat kod. Sekiranya terdapat ralat, pengembang masing-masing dapat memperbaiki kerosakan dengan cepat.

Contoh Integrasi Berterusan



Ciri CI

Berikut adalah ciri dan faedah penting dari Integrasi Berterusan:

  • Membolehkan anda mengekalkan hanya satu repositori sumber
  • Anda boleh menguji klon persekitaran CI pengeluaran
  • Persekitaran yang dibina harus dekat dengan persekitaran pengeluaran.
  • Salah satu kelebihan integrasi berterusan ialah ketersediaan bangunan semasa yang berterusan
  • Proses pembinaan dan pengujian dan penyebaran yang lengkap harus dilihat oleh semua pemegang timbunan.

Mengapa Menggunakan CI?

Berikut adalah sebab penting untuk menggunakan Integrasi Berterusan:

  • Membantu anda membina perisian yang lebih berkualiti
  • Proses CI membantu meningkatkan jumlah dan penghantaran hasil pasukan kejuruteraan.
  • CI membolehkan pembangun perisian bekerja secara bebas pada ciri secara selari.
  • Membantu anda melakukan ujian berulang
  • Tingkatkan penglihatan yang membolehkan komunikasi lebih baik
  • Membantu mengembangkan produk yang berpotensi dihantar untuk pembuatan automatik sepenuhnya
  • Membantu anda mengurangkan risiko dengan membuat penggunaan lebih cepat dan lebih mudah diramalkan
  • maklum balas segera apabila isu tiba
  • Elakkan kekeliruan pada saat akhir dan tarikh pelepasan

Amalan terbaik menggunakan Sistem CI

Berikut adalah beberapa amalan terbaik yang penting semasa melaksanakan

  • Komitmen Awal dan Komitmen Selalunya tidak pernah Melakukan Kod yang Pecah
  • Betulkan kegagalan binaan dengan segera
  • Bertindak berdasarkan sukatan
  • Bina setiap persekitaran sasaran Buat artifak dari setiap binaan
  • Pembinaan perisian perlu dijalankan dengan cara yang betul agar dapat automatik
  • Jangan bergantung pada IDE
  • Bina dan uji segala-galanya apabila ia berubah
  • Skema pangkalan data dikira sebagai segalanya
  • Membantu anda mengetahui metrik utama dan mengesannya secara visual
  • Daftar masuk kerap dan awal
  • Kawalan kod sumber yang lebih kuat
  • Integrasi berterusan menjalankan ujian unit setiap kali anda melakukan kod
  • Automatikkan pembinaan dan uji semua orang
  • Terus membina dengan cepat dengan penggunaan automatik

Kekurangan CI

Berikut adalah kekurangan / kekurangan proses Integrasi Berterusan:

  • Masa dan latihan persediaan awal diperlukan untuk berkenalan dengan pelayan Cl
  • Pembangunan prosedur ujian yang sesuai adalah mustahak
  • Suite ujian yang dibangunkan dengan baik memerlukan banyak sumber untuk pelayan Cl
  • Penukaran proses yang biasa
  • Memerlukan pelayan dan persekitaran tambahan
  • Masa menunggu mungkin berlaku apabila beberapa pembangun ingin mengintegrasikan kod mereka pada masa yang sama

Alat untuk proses CI

Berikut adalah beberapa alat CI / CD yang paling penting:

Jenkins:

Jenkins adalah perisian integrasi berterusan sumber terbuka. Ia ditulis menggunakan bahasa pengaturcaraan Java. Ini memudahkan pengujian dan pelaporan masa nyata mengenai perubahan terpencil dalam pangkalan data yang lebih besar. Perisian ini membantu pembangun untuk mencari dan menyelesaikan kecacatan dalam pangkalan kod mereka dengan cepat & menguji automatik binaannya.

Buluh:

Bamboo adalah pelayan binaan integrasi berterusan yang berfungsi - pembuatan, ujian, dan pelepasan automatik dalam satu tempat. Ia berfungsi dengan lancar dengan perisian JIRA dan Bitbucket. Buluh menyokong banyak bahasa dan teknologi seperti baldi CodeDeply, Ducker, Git, SVN, Mercurial, AWS, dan Amazon S3.

TeamCity:

TeamCity adalah pelayan Integrasi Berterusan yang menyokong banyak ciri hebat. Ia mengekalkan pelayan CI yang sihat dan stabil walaupun tidak ada binaan yang dijalankan. Ia memberikan kualiti kod yang lebih baik untuk sebarang projek

Ringkasan:

  • Definisi Integrasi Berterusan: Integrasi berterusan adalah kaedah pengembangan perisian di mana anggota pasukan dapat mengintegrasikan kerja mereka sekurang-kurangnya sekali sehari
  • CI / CD bermaksud gabungan Integrasi Berterusan dan Penghantaran Berterusan atau Penerapan Berterusan.
  • Pembangunan tanpa CI menghasilkan banyak bug sedangkan Pembangunan dengan CI menawarkan Lebih sedikit bug
  • Kegiatan penting Integrasi Berterusan adalah 1) Integrasi DB, 2) Pemeriksaan Kod, 3) Penyebaran Automatik, penghasilan Dokumen, dan Penyusunan.
  • Pembinaan harus berlaku secara berterusan menggunakan pelayan Cl khusus, bukan pekerjaan cron.
  • Elemen penting CI adalah 1) Sistem Kawalan Versi 2) Mesin Maya 3) Penyelesaian Alat Host CI 4) Alat
  • Sistem Integrasi Berterusan membolehkan anda mengekalkan hanya satu repositori sumber
  • Proses CI / CD membantu anda membina perisian berkualiti lebih baik
  • Amalan terbaik yang paling penting dalam proses Integrasi Berterusan Azure adalah Melakukan Awal dan Berkomitmen Selalunya tidak pernah Melakukan Kod Pecah
  • Kelemahan utama proses saluran paip CICD adalah bahawa rangkaian ujian yang dikembangkan dengan baik memerlukan banyak sumber untuk pelayan Cl
  • Jenkins, Bambook, dan Team City adalah beberapa alat Integrasi Berterusan AWS yang berguna.