Panduan

Apa Itu CI/CD? Continuous Integration dan Delivery Diterangkan Ringkas

CI/CD ialah cara melancarkan perisian di mana setiap perubahan kod dibina, diuji secara automatik dan — jika lulus — disediakan untuk dikeluarkan atau dikeluarkan. CI (continuous integration) bermaksud perubahan kerap digabungkan dan disemak oleh ujian automatik setiap kali. CD (continuous delivery atau deployment) bermaksud perubahan yang lulus dibungkus dan ditolak ke arah pengguna anda dengan sedikit atau tanpa kerja manual.

Intinya mudah: tangkap kesilapan dalam beberapa minit selepas ia dibuat, bukan berminggu-minggu kemudian apabila pelanggan menjumpainya.

Mengapa CI/CD penting apabila anda membina dengan AI

Pembina AI mengubah kod dengan pantas. Satu arahan boleh menyentuh sepuluh fail. Kelajuan itu hebat sehingga satu perubahan pada halaman daftar keluar secara senyap merosakkan halaman log masuk, dan tiada siapa perasan sehingga seorang pengguna menghantar e-mel kepada anda.

CI/CD ialah jaring keselamatan untuk perkara ini. Daripada mempercayai setiap perubahan itu baik, saluran paip menjalankan pemeriksaan yang sama setiap kali:

  • Adakah aplikasi masih dibina tanpa ralat?
  • Adakah ujian automatik masih lulus?
  • Adakah kod mematuhi peraturan projek (jenis, pemformatan, pemeriksaan keselamatan)?

Jika mana-mana pemeriksaan gagal, perubahan dihentikan sebelum sampai kepada pengguna. Semakin pantas kod anda berubah, semakin berharga pemeriksaan yang tidak pernah letih dan tidak pernah terlepas satu langkah.

Analogi harian

Bayangkan sebuah kedai roti yang menjual roti kepada kedai runcit setiap pagi.

  • Tanpa CI/CD, setiap tukang roti bereksperimen dengan resipi sendiri selama seminggu, kemudian semua gabungan pada malam Jumaat dan berharap roti masih naik. Apabila tidak, tiada siapa tahu perubahan siapa yang menyebabkannya.
  • Dengan CI, setiap perubahan resipi kecil dibakar menjadi roti ujian serta-merta dan disemak — rasa, berat, bentuk. Perubahan yang buruk ditangkap pada hari yang sama, dan anda tahu tepat yang mana satu.
  • Dengan CD, roti yang lulus pemeriksaan terus dimasukkan ke dalam van penghantaran, dibungkus dan dilabel dengan cara yang sama setiap kali, bukan seseorang membungkus kotak dengan tangan pada pukul 5 pagi.

Pemeriksaan itu tidak menjadikan tukang roti lebih baik. Ia menjadikan kesilapan mereka murah.

Bagaimana saluran paip CI/CD berfungsi

Saluran paip (pipeline) ialah senarai langkah yang dijalankan secara automatik oleh perkhidmatan CI/CD apabila sesuatu berlaku — biasanya apabila seseorang menolak kod ke repositori seperti GitHub. Saluran paip biasa kelihatan seperti ini:

LangkahApa yang berlakuApa yang dikesan
1. PencetusKod ditolak atau permintaan tarik (pull request) dibuka—
2. PasangMesin baharu memuat turun kod dan kebergantungannyaPakej yang hilang atau rosak
3. BinaAplikasi dikompil atau dibungkusRalat sintaks dan jenis, import yang rosak
4. UjiUjian automatik dijalankanCiri yang tidak lagi berfungsi
5. PemeriksaanLinting, pemformatan, imbasan keselamatanMasalah gaya, pakej yang diketahui berisiko, kunci yang bocor
6. Lancar ke stagingAplikasi pergi ke salinan ujian pengeluaranMasalah yang hanya muncul dalam persekitaran sebenar
7. Lancar ke pengeluaranAplikasi menjadi aktif — secara automatik atau selepas kelulusan—

Setiap langkah berjalan pada mesin yang bersih, bukan pada komputer riba seseorang, jadi “ia berfungsi pada komputer saya” tidak lagi menjadi alasan. Jika satu langkah gagal, saluran paip berhenti dan memberitahu sesiapa yang membuat perubahan itu.

Langkah-langkah itu ditakrifkan dalam fail konfigurasi yang berada bersama kod. Dalam GitHub Actions, sebagai contoh, ia ialah fail YAML dalam folder .github/workflows repositori.

Continuous delivery vs continuous deployment

Perkataan “CD” itu samar, dan orang menggunakannya dengan dua cara:

Continuous deliveryContinuous deployment
Ujian berjalan secara automatikYaYa
Keluaran dibungkus secara automatikYaYa
Menjadi aktif secara automatikTidak — seseorang klik “lancar”Ya — setiap perubahan yang lulus dilancarkan
Sesuai untukKebanyakan pasukan kecil, aplikasi dengan pengguna berbayarPasukan dengan liputan ujian yang kukuh dan pemantauan

Continuous deployment hanya berfungsi dengan baik jika ujiannya bagus. Jika ujian anda tidak meliputi proses daftar keluar, continuous deployment dengan senang hati akan melancarkan daftar keluar yang rosak.

Contoh kerja: aplikasi tempahan dengan saluran paip

Katakan anda mempunyai aplikasi tempahan salon, dan kodnya berada dalam repositori GitHub. Anda minta pembina AI untuk “tambah diskaun 10% untuk pelanggan kali pertama”.

  1. Perubahan ditolak ke cawangan (branch) baharu dan permintaan tarik (pull request) dibuka.
  2. Saluran paip bermula. Ia memasang pakej dan membina aplikasi — ini lulus.
  3. Ia menjalankan ujian. Satu ujian, “pelanggan yang kembali membayar harga penuh”, gagal: diskaun itu digunakan kepada semua orang.
  4. Permintaan tarik menunjukkan tanda silang merah. Perubahan itu tidak boleh digabungkan.
  5. Anda minta AI membetulkannya. Ia menolak pembetulan; saluran paip berjalan semula dan semuanya lulus.
  6. Perubahan digabungkan. Saluran paip melancarkannya ke persekitaran staging, di mana anda mencuba satu tempahan ujian.
  7. Anda meluluskan, dan ia dilancarkan ke pengeluaran.

Tanpa saluran paip, langkah 3 akan berlaku pada dompet pelanggan anda.

Istilah utama

IstilahMaksud
Saluran paip (pipeline)Urutan langkah automatik yang dijalankan pada setiap perubahan.
Build (bina)Menukar kod sumber kepada sesuatu yang boleh dijalankan.
Ujian automatikKod yang menyemak bahawa kod lain melakukan apa yang sepatutnya.
Permintaan tarik (pull request, PR)Perubahan yang dicadangkan yang disemak oleh orang lain (dan saluran paip) sebelum digabungkan. Lihat apa itu GitHub.
Cawangan (branch)Garisan perubahan yang berasingan, supaya kerja yang sedang berjalan tidak menjejaskan kod utama.
StagingSalinan peribadi aplikasi anda yang mencerminkan pengeluaran, untuk menyemak perubahan sebelum pengguna melihatnya.
Pengeluaran (production)Aplikasi langsung yang digunakan oleh pengguna anda.
RollbackKembali kepada versi kerja sebelumnya apabila keluaran tersilap.
Binaan hijau / merahLarian saluran paip yang lulus / gagal.

Salah faham yang biasa

  • “CI/CD bermaksud aplikasi saya diuji.” Saluran paip hanya menjalankan ujian yang anda ada. Jika tiada ujian, CI hanya membuktikan aplikasi dibina — tidak lebih. Minta AI anda menulis ujian untuk aliran yang paling penting.
  • “CI/CD hanya untuk syarikat besar.” Alat hos seperti GitHub Actions memerlukan fail konfigurasi pendek untuk disediakan, dan pasukan kecil menggunakannya sepanjang masa. Ujianlah yang memerlukan usaha, bukan alatnya.
  • “Penyebaran automatik bermakna tiada siapa memeriksa apa-apa.” Saluran paip yang baik menambah pemeriksaan, bukan membuangnya. Banyak pasukan mengekalkan langkah kelulusan manusia sebelum pengeluaran.
  • “Jika saluran paip hijau, aplikasi berfungsi.” Ini bermakna pemeriksaan automatik lulus. Anda masih patut mencuba perubahan itu sendiri, sebaik-baiknya dalam pratonton atau pada staging.
  • “CI/CD menggantikan sandaran.” Tidak. Migrasi pangkalan data yang buruk yang lulus ujian masih boleh merosakkan data sebenar. Simpan sandaran dan cara untuk rollback.

Apa nak minta daripada pembina AI anda

  • “Tulis ujian automatik untuk pendaftaran, log masuk dan daftar keluar, dan tunjukkan cara menjalankannya.”
  • “Sediakan aliran kerja GitHub Actions yang memasang kebergantungan, membina aplikasi dan menjalankan ujian pada setiap permintaan tarik.”
  • “Tambah semakan jenis dan linter pada saluran paip, dan jadikannya gagal apabila ada ralat.”
  • “Terangkan dalam bahasa mudah apa yang dilakukan oleh setiap langkah saluran paip.”
  • “Apa yang berlaku jika penyebaran gagal di tengah jalan? Bagaimana saya boleh rollback?”
  • “Pastikan tiada rahsia dikodkan keras dalam repositori atau dicetak dalam log saluran paip.”

Jika aplikasi anda menggunakan kunci API, saluran paip juga memerlukannya — disimpan sebagai rahsia yang disulitkan dalam alat CI, bukan dalam fail konfigurasi. Lihat pembolehubah persekitaran dan rahsia.

CI/CD dan Mythex

Mythex tidak menjalankan saluran paip CI untuk anda, tetapi ia memenuhi beberapa keperluan yang sama dengan cara tersendiri:

  • Pusat semak (checkpoints). Selepas setiap giliran ejen yang berjaya, Mythex menyimpan pusat semak git, dan Revert to this point memulangkan projek jika perubahan tersilap. Lihat Chat.
  • App Testing. Taip /test dan ejen mengklik melalui pratonton langsung anda seperti pengguna dan melaporkan aliran yang rosak — berguna sebelum setiap penerbitan. Lihat App Testing.
  • Penerbitan ialah langkah yang disengajakan. Perubahan muncul dalam pratonton peribadi dahulu; aplikasi awam anda hanya dikemas kini apabila anda menerbitkan semula — lebih hampir kepada continuous delivery berbanding continuous deployment.
  • Penyegerakan GitHub (Pro). Segerakkan projek ke repositori GitHub dan anda boleh menambah aliran kerja GitHub Actions anda sendiri untuk menjalankan ujian pada setiap penolakan. Lihat GitHub dan eksport.

Untuk senarai semak perkara yang perlu diuji secara manual sebelum melancarkan, lihat cara menguji aplikasi anda sebelum pelancaran, dan untuk bekerja dengan kawalan versi, cara menggunakan Git dengan aplikasi yang dibina AI.

Soalan lazim

Apakah maksud CI/CD?

CI bermaksud continuous integration: setiap perubahan kod kerap digabungkan dan dibina serta diuji secara automatik. CD bermaksud continuous delivery atau continuous deployment: perubahan yang lulus disediakan secara automatik untuk dikeluarkan (delivery) atau dikeluarkan kepada pengguna tanpa langkah manual (deployment).

Apakah perbezaan antara continuous delivery dan continuous deployment?

Dengan continuous delivery, setiap perubahan yang lulus saluran paip sedia untuk dikeluarkan, tetapi seseorang masih memutuskan bila ia dilancarkan. Dengan continuous deployment, setiap perubahan yang lulus terus dilancarkan secara automatik, tanpa langkah kelulusan manusia.

Adakah saya memerlukan CI/CD untuk aplikasi kecil yang dibina dengan AI?

Tidak pada hari pertama. Aplikasi kecil dengan beberapa pengguna boleh bergantung kepada ujian dalam pratonton dan menerbitkan secara manual. CI/CD berbaloi apabila beberapa orang mengubah kod, apabila pelanggan sebenar bergantung pada aplikasi, atau apabila anda kerap memecahkan perkara yang sebelum ini berfungsi.

Apakah alat yang digunakan untuk CI/CD?

Antara yang biasa ialah GitHub Actions, GitLab CI/CD, CircleCI dan Jenkins, serta saluran paip penyebaran terbina dalam platform hosting. Semuanya melakukan tugas asas yang sama: menjalankan senarai langkah secara automatik setiap kali kod berubah.

Mythex · Pricing · Bina apa sahaja dengan AI · Templat laman web dan aplikasi · Mythex dibandingkan · Glosari pembinaan aplikasi AI · Alat percuma untuk membina aplikasi dengan AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)