Bagikan melalui


Alur kerja Integrasi Berkelanjutan dan Pengiriman Berkelanjutan untuk DevOps LUIS

Penting

LUIS akan dihentikan pada 1 Oktober 2025 dan mulai 1 April 2023 Anda tidak akan dapat membuat sumber daya LUIS baru. Sebaiknya migrasikan aplikasi LUIS Anda ke pemahaman bahasa percakapan untuk mendapatkan manfaat dari dukungan produk berkelanjutan dan kemampuan multibahasa.

Teknisi perangkat lunak yang mengembangkan aplikasi Language Understanding (LUIS) dapat menerapkan praktik DevOps seputar kontrol sumber, pembuatan otomatis, pengujian, dan manajemen rilis. Artikel ini menjelaskan konsep untuk mengimplementasikan build otomatis untuk LUIS.

Alur kerja otomatisasi pembuatan untuk DevOps LUIS

CI workflows

Di sistem manajemen kode sumber (SCM), konfigurasikan alur pembuatan otomatis untuk dijalankan pada peristiwa berikut:

  1. Alur kerja PR dipicu saat permintaan pull (PR) diaktifkan. Alur kerja ini memvalidasi konten PR sebelum pembaruan digabungkan ke dalam cabang utama.
  2. Alur kerja CI/CD dipicu ketika pembaruan didorong ke cabang utama, misalnya setelah menggabungkan perubahan dari PR. Alur kerja ini memastikan kualitas semua pembaruan ke cabang utama.

Alur kerja CI/CD menggabungkan dua proses pengembangan komplementer:

  • Integrasi Berkelanjutan (CI) adalah praktik rekayasa untuk menerapkan kode secara sering di repositori bersama, dan melakukan pembangunan otomatis di atasnya. Dipasangkan dengan pendekatan pengujian otomatis, integrasi berkelanjutan memungkinkan kita memverifikasi apakah untuk setiap pembaruan, sumber LUDown masih valid dan dapat diimpor ke dalam aplikasi LUIS, tetapi juga apakah meneruskan grup pengujian yang memverifikasi aplikasi terlatih dapat mengenali niat dan entitas yang diperlukan untuk solusi Anda.

  • Pengiriman Berkelanjutan (CD) mengambil konsep Integrasi Berkelanjutan lebih lanjut untuk secara otomatis menyebarkan aplikasi ke lingkungan tempat Anda dapat melakukan pengujian yang lebih mendalam. CD memungkinkan kita untuk belajar lebih awal tentang masalah tidak terduga yang timbul dari perubahan kita secepat mungkin, dan juga untuk mempelajari kesenjangan dalam cakupan pengujian kita.

Tujuan integrasi berkelanjutan dan pengiriman berkelanjutan adalah untuk memastikan bahwa "utama selalu dapat dikirim,". Untuk aplikasi LUIS, ini berarti kita bisa, jika kita perlu, mengambil versi apa pun dari cabang utama aplikasi LUIS dan mengirimkannya di produksi.

Alat untuk membangun alur kerja otomatisasi untuk LUIS

Tip

Anda dapat menemukan solusi lengkap untuk menerapkan Azure DevOps di repo templat LUIS DevOps.

Ada berbagai teknologi otomatisasi build yang tersedia untuk membuat alur kerja otomatisasi build. Semuanya mengharuskan Anda dapat membuat skrip langkah-langkah menggunakan antarmuka baris perintah (CLI) atau panggilan REST agar dapat dijalankan di server build.

Gunakan alat berikut untuk membangun alur kerja otomatisasi untuk LUIS:

Alur kerja PR

Seperti yang disebutkan, Anda mengonfigurasi alur kerja ini agar berjalan ketika pengembang mengaktifkan PR untuk mengusulkan perubahan yang akan digabungkan dari cabang fitur ke cabang utama. Tujuannya adalah untuk memverifikasi kualitas perubahan dalam PR sebelum digabungkan ke cabang utama.

Alur kerja ini harus:

  • Membuat aplikasi LUIS sementara dengan mengimpor sumber .lu di PR.
  • Melatih dan menerbitkan versi aplikasi LUIS.
  • Menjalankan semua pengujian unit terhadapnya.
  • Meneruskan alur kerja jika semua tes lulus, jika tidak, akan gagal.
  • Bersihkan dan hapus aplikasi sementara.

Jika didukung oleh SCM Anda, konfigurasikan aturan perlindungan cabang sehingga alur kerja ini akan berhasil diselesaikan sebelum PR dapat diselesaikan.

Alur kerja CI/CD cabang utama

Konfigurasikan alur kerja ini agar berjalan setelah pembaruan di PR sudah digabungkan ke dalam cabang utama. Tujuannya adalah untuk menjaga standar kualitas untuk cabang utama Anda tetap tinggi dengan menguji pembaruan. Jika pembaruan memenuhi bilah kualitas, alur kerja ini menyebarkan versi aplikasi LUIS baru ke lingkungan tempat Anda dapat melakukan pengujian lebih mendalam.

Alur kerja ini harus:

  • Buat versi baru di aplikasi LUIS utama Anda (aplikasi yang Anda simpan untuk cabang utama) menggunakan kode sumber yang diperbarui.

  • Melatih dan menerbitkan versi aplikasi LUIS.

    Catatan

    Seperti yang dijelaskan dalam Menjalankan pengujian dalam alur kerja build otomatis, Anda harus menerbitkan versi aplikasi LUIS yang sedang diuji sehingga alat seperti NLU. DevOps bisa mengaksesnya. LUIS hanya mendukung dua slot publikasi bernama, penahapan dan produksi untuk aplikasi LUIS, tetapi Anda juga dapat menerbitkan versi secara langsung dan mengkueri berdasarkan versi. Gunakan penerbitan versi langsung di alur kerja otomatisasi Anda agar tidak dibatasi menggunakan slot penerbitan bernama.

  • Jalankan semua pengujian unit.

  • Secara opsional jalankan pengujian batch untuk mengukur kualitas dan akurasi versi aplikasi LUIS serta membandingkannya dengan beberapa garis besar.

  • Jika pengujian berhasil diselesaikan:

    • Tandai sumber di repositori.
    • Jalankan tugas Pengiriman Berkelanjutan (CD) untuk menyebarkan versi aplikasi LUIS ke lingkungan untuk pengujian lebih lanjut.

Pengiriman berkelanjutan (CD)

Tugas CD dalam alur kerja CI/CD berjalan secara kondisional pada keberhasilan pengujian unit build dan otomatis. Tugasnya adalah menyebarkan aplikasi LUIS secara otomatis ke lingkungan tempat Anda dapat melakukan lebih banyak pengujian.

Tidak ada solusi yang direkomendasikan terkait cara terbaik untuk menyebarkan aplikasi LUIS Anda, dan Anda harus menerapkan proses yang sesuai untuk proyek Anda. Repositori templat DevOps LUIS menerapkan solusi sederhana untuk ini, yaitu menerbitkan versi aplikasi LUIS baru ke slot penerbitan produksi. Ini dapat dilakukan untuk penyiapan sederhana. Namun, jika Anda perlu mendukung sejumlah lingkungan produksi yang berbeda pada saat yang sama, seperti pengembangan, penahapan, dan UAT, batas dua slot penerbitan bernama per aplikasi akan terbukti tidak mencukupi.

Opsi lain untuk menyebarkan versi aplikasi meliputi:

  • Biarkan versi aplikasi diterbitkan ke titik akhir versi langsung dan terapkan proses untuk mengonfigurasi lingkungan produksi hilir dengan titik akhir versi langsung sesuai yang diperlukan.
  • Pertahankan aplikasi LUIS yang berbeda untuk setiap lingkungan produksi dan tulis langkah-langkah otomatisasi untuk mengimpor .lu ke versi baru di aplikasi LUIS untuk lingkungan produksi target, untuk melatih, dan menerbitkannya.
  • Ekspor versi aplikasi LUIS yang diuji ke dalam wadah docker LUIS dan sebarkan kontainer LUIS ke Azure Container instances.

Pengelolaan rilis

Umumnya kami menyarankan Anda melakukan pengiriman berkelanjutan hanya ke lingkungan non-produksi Anda, seperti untuk pengembangan dan penahapan. Sebagian besar tim memerlukan proses ulasan dan persetujuan manual untuk penyebaran ke lingkungan produksi. Untuk penyebaran produksi, Anda mungkin ingin memastikan hal itu terjadi ketika orang-orang kunci di tim pengembangan tersedia untuk dukungan, atau selama periode lalu lintas rendah.

Menerapkan DevOps ke pengembangan aplikasi LUIS menggunakan GitHub Actions

Buka repositori templat DevOps LUIS untuk solusi lengkap yang mengimplementasikan DevOps dan praktik terbaik rekayasa perangkat lunak untuk LUIS. Anda dapat menggunakan repositori templat ini untuk membuat repositori Anda sendiri dengan dukungan bawaan untuk alur kerja CI/CD dan praktik yang memungkinkan kontrol sumber, build otomatis, pengujian, dan pengelolaan rilis dengan LUIS untuk proyek Anda sendiri.

Repositori templat DevOps LUIS berisi panduannya:

Langkah berikutnya