Bagikan melalui


Rekomendasi untuk menggunakan integrasi berkelanjutan

Berlaku untuk rekomendasi daftar periksa Azure Well-Architected Framework Operational Excellence ini:

OE:04 Optimalkan pengembangan perangkat lunak dan proses jaminan kualitas dengan mengikuti praktik pengembangan dan pengujian yang terbukti di industri. Untuk penetapan peran yang jelas, standarisasi praktik di seluruh komponen seperti peralatan, kontrol sumber, pola desain aplikasi, dokumentasi, dan panduan gaya.

Panduan terkait: Meningkatkan kecepatan build | Menstandarkan alat dan proses

Saat kode dikembangkan, diperbarui, atau bahkan dihapus, memiliki metode yang intuitif dan aman untuk mengintegrasikan perubahan ini ke dalam cabang kode utama memungkinkan pengembang untuk memberikan nilai.

Sebagai pengembang, Anda dapat membuat perubahan kode kecil, mendorong perubahan ini ke repositori kode, dan mendapatkan umpan balik yang hampir seketika tentang kualitas, cakupan pengujian, dan bug yang diperkenalkan. Proses ini memungkinkan Anda bekerja lebih cepat dan dengan lebih percaya diri dan lebih sedikit risiko.

Integrasi berkelanjutan (CI) adalah praktik di mana sistem kontrol sumber dan alur penyebaran perangkat lunak terintegrasi untuk menyediakan mekanisme pembuatan, pengujian, dan umpan balik otomatis untuk tim pengembangan perangkat lunak.

Strategi desain utama

Integrasi berkelanjutan adalah praktik pengembangan perangkat lunak yang digunakan pengembang untuk mengintegrasikan pembaruan perangkat lunak ke dalam sistem kontrol sumber pada irama reguler.

Proses integrasi berkelanjutan dimulai ketika teknisi membuat permintaan pull GitHub untuk memberi sinyal ke sistem CI bahwa perubahan kode siap untuk diintegrasikan. Idealnya, proses integrasi memvalidasi kode terhadap beberapa garis besar dan pengujian. Kemudian memberikan umpan balik kepada teknisi yang meminta tentang status pengujian ini.

Jika pemeriksaan dan pengujian garis besar berjalan dengan baik, proses integrasi menghasilkan dan menahapkan aset yang akan menyebarkan perangkat lunak yang diperbarui. Aset ini mencakup kode yang dikompilasi dan gambar kontainer.

Integrasi berkelanjutan dapat membantu Anda memberikan perangkat lunak berkualitas tinggi dengan lebih cepat dengan melakukan tindakan berikut:

  • Jalankan pengujian otomatis terhadap kode untuk memberikan deteksi dini perubahan yang melanggar.
  • Jalankan analisis kode untuk memastikan standar, kualitas, dan konfigurasi kode.
  • Jalankan pemeriksaan kepatuhan dan keamanan untuk memastikan bahwa perangkat lunak tidak memiliki kerentanan yang diketahui.
  • Jalankan penerimaan atau pengujian fungsional untuk memastikan bahwa perangkat lunak beroperasi seperti yang diharapkan.
  • Berikan umpan balik cepat tentang masalah yang terdeteksi.
  • Jika berlaku, buat aset atau paket yang dapat disebarkan yang menyertakan kode yang diperbarui.

Alur integrasi berkelanjutan

Untuk mencapai integrasi berkelanjutan, gunakan solusi perangkat lunak untuk mengelola, mengintegrasikan, dan mengotomatiskan proses. Praktik umumnya adalah menggunakan alur integrasi berkelanjutan.

Alur integrasi berkelanjutan melibatkan perangkat lunak (sering dihosting cloud) yang menyediakan:

  • Platform untuk menjalankan pengujian otomatis.
  • Pemindaian kepatuhan.
  • Pelaporan.
  • Semua komponen lain yang membentuk proses integrasi berkelanjutan.

Dalam kebanyakan kasus, perangkat lunak alur dilampirkan ke kontrol sumber sehingga ketika permintaan pull dibuat atau perangkat lunak digabungkan ke cabang tertentu, alur integrasi berkelanjutan dijalankan. Integrasi kontrol sumber juga memberikan kesempatan untuk memberikan umpan balik CI langsung pada permintaan pull.

Banyak solusi, seperti Azure Pipelines atau GitHub Actions, menyediakan kemampuan alur integrasi berkelanjutan.

Integrasi kontrol sumber

Integrasi alur integrasi berkelanjutan Anda dengan sistem kontrol sumber Anda adalah kunci untuk mengaktifkan kontribusi kode layanan mandiri yang cepat.

Alur CI berjalan pada permintaan pull yang baru dibuat. Alur mencakup semua pengujian, penilaian keamanan, dan pemeriksaan lainnya. Hasil pengujian CI muncul langsung dalam permintaan pull untuk memungkinkan umpan balik yang hampir real-time tentang kualitas.

Praktik populer lainnya adalah membangun laporan kecil atau lencana yang dapat disajikan dalam kontrol sumber untuk membuat status build saat ini terlihat.

Gambar berikut menunjukkan integrasi antara GitHub dan alur Azure DevOps. Dalam contoh ini, pembuatan permintaan pull memicu alur Azure DevOps. Status alur muncul dalam permintaan pull.

Cuplikan layar lencana status Azure DevOps di repositori GitHub.

Integrasi pengujian

Elemen kunci dari integrasi berkelanjutan adalah pembangunan dan pengujian kode yang berkelanjutan saat pengembang membuat kontribusi kode. Menguji permintaan pull saat dibuat memberikan umpan balik cepat bahwa penerapan belum memperkenalkan perubahan yang melanggar. Keuntungannya adalah bahwa pengujian dalam alur integrasi berkelanjutan dapat menjadi pengujian yang sama yang berjalan selama pengembangan berbasis pengujian.

Cuplikan kode berikut menunjukkan langkah pengujian dari alur Azure DevOps. Langkah ini memiliki dua tugas:

  • Tugas pertama menggunakan kerangka kerja pengujian Python populer untuk menjalankan pengujian CI. Pengujian ini berada di kontrol sumber di samping kode Python. Hasil pengujian masuk ke file bernama test-results.xml.
  • Tugas kedua menggunakan hasil pengujian dan menerbitkannya ke alur Azure DevOps sebagai laporan terintegrasi.
- script: |
    pip3 install pytest
    pytest azure-vote/azure-vote/tests/ --junitxml=junit/test-results.xml
    continueOnError: true

- task: PublishTestResults@2
    displayName: 'Publish Test Results'
    inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '**/test-results.xml'
    failTaskOnFailedTests: true
    testRunTitle: 'Python $(python.version)'

Gambar berikut menunjukkan hasil pengujian yang muncul di portal Azure DevOps.

Cuplikan layar pengujian alur Azure DevOps di portal Azure DevOps.

Pengujian yang gagal

Pengujian yang gagal harus memblokir penyebaran untuk sementara waktu dan mengarah pada analisis yang lebih dalam tentang apa yang terjadi. Pengujian yang gagal juga harus menyebabkan penyempurnaan pengujian atau peningkatan dalam perubahan yang menyebabkan pengujian gagal.

Lencana hasil CI

Banyak pengembang menunjukkan bahwa kualitas kode mereka tinggi dengan menampilkan lencana status di repositori mereka. Gambar berikut menunjukkan lencana Azure Pipelines yang ditampilkan pada file readme untuk proyek sumber terbuka di GitHub.

Cuplikan layar lencana Azure Pipelines pada file readme di GitHub.

Fasilitasi Azure

Azure DevOps adalah kumpulan layanan yang membantu Anda membangun praktik pengembangan kolaboratif, efisien, dan konsisten.

Azure Pipelines menyediakan layanan build dan rilis untuk mendukung integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) aplikasi Anda.

GitHub for Actions for Azure memungkinkan otomatisasi proses CI/CD. Ini terintegrasi langsung dengan Azure untuk menyederhanakan penyebaran. Anda dapat membuat alur kerja yang membangun dan menguji setiap permintaan pull di repositori Anda, atau yang menyebarkan permintaan pull gabungan ke produksi.

Pelajari cara membuat alur integrasi berkelanjutan dengan menggunakan GitHub atau Azure DevOps:

Pelajari cara menampilkan lencana di repositori Anda:

Daftar periksa Keunggulan Operasional