Menyebarkan aplikasi ke simpul komputasi dengan paket aplikasi Batch

Paket aplikasi dapat menyederhanakan kode dalam solusi Azure Batch Anda dan mempermudah pengelolaan aplikasi yang dijalankan tugas Anda. Dengan paket aplikasi, Anda dapat mengunggah dan mengelola beberapa versi aplikasi yang dijalankan tugas Anda, termasuk file pendukungnya. Anda kemudian dapat secara otomatis menyebarkan satu atau beberapa aplikasi ini ke simpul komputasi di kumpulan Anda.

API untuk membuat dan mengelola paket aplikasi adalah bagian dari pustaka Batch Management .NET. API untuk menginstal paket aplikasi pada simpul komputasi adalah bagian dari pustaka Batch .NET. Fitur yang sebanding ada di API Batch yang tersedia untuk bahasa pemrograman lainnya.

Artikel ini menjelaskan cara mengunggah dan mengelola paket aplikasi di portal Microsoft Azure. Ini juga menunjukkan cara menginstalnya pada simpul komputasi kumpulan dengan pustaka Batch .NET.

Persyaratan paket aplikasi

Untuk menggunakan paket aplikasi, Anda perlu menautkan akun Azure Storage ke akun Batch Anda.

Ada pembatasan jumlah aplikasi dan paket aplikasi dalam akun Batch dan pada ukuran paket aplikasi maksimum. Untuk informasi selengkapnya, lihat Kuota dan batasan layanan Batch.

Catatan

Kumpulan batch yang dibuat sebelum 5 Juli 2017 tidak mendukung paket aplikasi (kecuali dibuat setelah 10 Maret 2016 dengan menggunakan Konfigurasi Cloud Services). Fitur paket aplikasi yang dijelaskan di sini menggantikan fitur Aplikasi Batch yang tersedia di versi layanan sebelumnya.

Memahami aplikasi dan paket aplikasi

Dalam Azure Batch, aplikasi mengacu pada serangkaian biner berversi yang dapat diunduh secara otomatis ke simpul komputasi di kumpulan Anda. Aplikasi berisi satu atau beberapa paket aplikasi, yang mewakili versi aplikasi yang berbeda.

Setiap paket aplikasi merupakan file .zip yang berisi biner aplikasi dan semua file pendukung. Hanya format .zip yang didukung.

Diagram yang menunjukkan tampilan aplikasi dan paket aplikasi tingkat tinggi.

Anda dapat menentukan paket aplikasi di tingkat kumpulan atau tugas.

  • Paket aplikasi kumpulan disebarkan ke setiap simpul di kumpulan. Aplikasi disebarkan saat simpul bergabung dengan kumpulan dan saat di-boot ulang atau digambar ulang.

    Paket aplikasi kumpulan sesuai ketika semua simpul dalam kumpulan menjalankan tugas pekerjaan. Anda dapat menentukan penyebaran satu atau beberapa paket aplikasi saat membuat kumpulan. Anda juga dapat menambahkan atau memperbarui paket kumpulan yang ada. Untuk memasang paket baru ke kumpulan yang ada, Anda harus memulai ulang simpulnya.

  • Paket aplikasi tugas hanya disebarkan ke simpul komputasi yang dijadwalkan untuk menjalankan tugas, tepat sebelum menjalankan baris perintah tugas. Jika paket dan versi aplikasi yang ditentukan sudah ada di simpul, paket dan versi tersebut tidak disebarkan ulang dan paket yang ada digunakan.

    Paket aplikasi tugas berguna di lingkungan kumpulan bersama, tempat pekerjaan yang berbeda berjalan pada satu kumpulan, dan kumpulan tidak dihapus saat pekerjaan itu selesai. Jika tugas Anda memiliki tugas yang lebih sedikit dari simpul di dalam kumpulan, paket aplikasi tugas dapat meminimalkan transfer data karena aplikasi Anda hanya disebarkan ke simpul yang menjalankan tugas.

    Skenario lain yang dapat memperoleh manfaat dari paket aplikasi tugas adalah pekerjaan yang menjalankan aplikasi besar tetapi hanya untuk beberapa tugas. Misalnya, aplikasi tugas mungkin berguna untuk tahap pra-pemrosesan kelas berat atau tugas penggabungan.

Dengan paket aplikasi, tugas-mulai kumpulan Anda tidak harus menentukan daftar panjang file sumber daya individual untuk diinstal pada simpul. Anda tidak perlu mengelola beberapa versi file aplikasi secara manual di Azure Storage atau pada simpul Anda. Dan Anda tidak perlu khawatir tentang membuat URL SAS untuk menyediakan akses ke file di akun Azure Storage Anda. Batch bekerja di latar belakang dengan Azure Storage untuk menyimpan dan menyebarkan paket aplikasi ke simpul komputasi.

Catatan

Ukuran total tugas mulai harus kurang dari atau sama dengan 32.768 karakter, termasuk file sumber daya dan variabel lingkungan. Jika tugas mulai Anda melebihi batas ini, opsi lain adalah dengan menggunakan paket aplikasi. Anda juga dapat membuat file .zip yang berisi file sumber daya Anda, mengunggah file sebagai blob ke Azure Storage, lalu membuka zip dari baris perintah tugas mulai Anda.

Mengunggah dan mengelola aplikasi

Anda dapat menggunakan portal Microsoft Azure atau API Management Batch untuk mengelola paket aplikasi di akun Batch Anda. Bagian berikut menjelaskan cara menautkan akun penyimpanan, Anda mempelajari cara menambahkan dan mengelola aplikasi dan paket aplikasi di portal Azure.

Catatan

Meskipun Anda dapat menentukan nilai aplikasi di sumber daya Microsoft.Batch/batchAccounts dari templat ARM, saat ini tidak dimungkinkan untuk menggunakan templat ARM untuk mengunggah paket aplikasi untuk digunakan di akun Batch Anda. Anda harus mengunggahnya ke akun penyimpanan tertaut seperti yang dijelaskan di Menambahkan aplikasi baru.

Untuk menggunakan paket aplikasi, Anda harus menautkan akun Azure Storage ke akun Microsoft Azure Batch Anda. Layanan Batch menggunakan akun penyimpanan terkait untuk menyimpan paket aplikasi Anda. Idealnya, Anda harus membuat akun penyimpanan khusus untuk digunakan dengan akun Batch Anda.

Jika Anda belum mengonfigurasi akun penyimpanan, portal Azure menampilkan peringatan saat pertama kali Anda memilih Aplikasi dari menu navigasi kiri di akun Batch Anda. Untuk perlu menautkan akun penyimpanan ke akun Batch Anda:

  1. Pilih jendela Peringatan yang menyatakan, "Tidak ada akun Penyimpanan yang dikonfigurasi untuk akun batch ini."
  2. Lalu pilih Set Akun Penyimpanan... pada halaman berikutnya.
  3. Pilih tautan Pilih akun penyimpanan di bagian Informasi Akun Penyimpanan .
  4. Pilih akun penyimpanan yang ingin Anda gunakan dengan akun batch ini dalam daftar pada panel Pilih akun penyimpanan .
  5. Lalu pilih Simpan di sudut kiri atas halaman.

Setelah Anda menautkan dua akun, Batch dapat secara otomatis menyebarkan paket yang disimpan di akun Penyimpanan tertaut ke simpul komputasi Anda.

Penting

Anda tidak dapat menggunakan paket aplikasi dengan akun Azure Storage yang dikonfigurasi dengan aturan firewall atau dengan namespace hierarkis diatur ke Diaktifkan.

Layanan Batch menggunakan Azure Storage untuk menyimpan paket aplikasi Anda sebagai blob blok. Anda dikenakan biaya normal untuk data blob blok, dan ukuran setiap paket tidak boleh melebihi ukuran blob blok maksimum. Untuk informasi selengkapnya, lihat Skalabilitas dan target performa untuk penyimpanan Blob. Untuk meminimalkan biaya, pastikan untuk mempertimbangkan ukuran dan jumlah paket aplikasi Anda, dan secara berkala menghapus paket yang tidak digunakan lagi.

Tambahkan aplikasi baru

Untuk membuat aplikasi baru, Anda menambahkan paket aplikasi dan menentukan ID aplikasi yang unik.

Di akun Batch Anda, pilih Aplikasi dari menu navigasi kiri, lalu pilih Tambahkan.

Cuplikan layar proses pembuatan aplikasi Baru di portal Microsoft Azure.

Masukkan informasi berikut:

  • ID Aplikasi: ID aplikasi baru Anda.
  • Versi": Versi untuk paket aplikasi yang Anda unggah.
  • Paket aplikasi: File .zip yang berisi biner aplikasi dan file pendukung yang diperlukan untuk menjalankan aplikasi.

ID Aplikasi dan Versi yang Anda masukkan harus mengikuti persyaratan berikut:

  • Pada simpul Windows, ID dapat berisi kombinasi karakter alfanumerik, tanda hubung, dan garis bawah. Pada node Linux, hanya karakter alfanumerik dan garis bawah yang diizinkan.
  • Tidak boleh memuat lebih dari 64 karakter.
  • Harus unik dalam akun Microsoft Azure Batch.
  • ID yang bersifat mempertahankan-huruf besar/kecil dan tidak peka huruf besar kecil.

Jika Anda sudah siap, pilih Kirim. Setelah file .zip diunggah ke akun Azure Storage Anda, portal menampilkan pemberitahuan. Bergantung pada ukuran file yang Anda unggah dan kecepatan koneksi jaringan Anda, proses ini mungkin memakan waktu.

Lihat aplikasi saat ini

Untuk melihat aplikasi di akun Batch Anda, pilih Aplikasi di menu navigasi kiri.

Cuplikan layar item menu Aplikasi di portal Microsoft Azure.

Memilih opsi menu ini akan membuka jendela Aplikasi. Jendela ini menampilkan ID setiap aplikasi di akun Anda dan properti berikut:

  • Paket: Jumlah versi yang terkait dengan aplikasi ini.
  • Versi default: Jika berlaku, versi aplikasi yang diinstal jika tidak ada versi yang ditentukan saat menyebarkan aplikasi.
  • Izinkan pembaruan: Menentukan apakah pembaruan dan penghapusan paket diperbolehkan.

Untuk melihat struktur file paket aplikasi pada simpul komputasi, navigasikan ke akun Microsoft Azure Batch Anda di portal Microsoft Azure. Pilih Kumpulan. Kemudian pilih kumpulan yang berisi simpul komputasi. Pilih simpul komputasi tempat paket aplikasi diinstal dan buka folder aplikasi.

Lihat detail aplikasi

Untuk melihat detail aplikasi, pilih di jendela Aplikasi. Anda dapat mengonfigurasi aplikasi dengan memilih Pengaturan di menu navigasi kiri.

  • Izinkan pembaruan : Menunjukkan apakah paket aplikasi dapat diperbarui atau dihapus. Defaultnya adalah Ya. Jika disetel ke Tidak, paket aplikasi yang ada tidak dapat diperbarui atau dihapus, tetapi versi paket aplikasi baru masih dapat ditambahkan.
  • Versi default: Paket aplikasi default yang digunakan saat aplikasi disebarkan jika tidak ada versi yang ditentukan.
  • Nama tampilan: Nama sederhana yang dapat digunakan oleh solusi Batch Anda saat menampilkan informasi tentang aplikasi. Misalnya, nama ini dapat digunakan dalam UI layanan yang Anda berikan kepada pelanggan Anda melalui Batch.

Tambahkan aplikasi baru

Untuk menambahkan versi paket aplikasi untuk aplikasi yang sudah ada, pilih aplikasi di halaman Aplikasi akun Batch Anda. Kemudian pilih Tambahkan.

Seperti yang Anda lakukan untuk aplikasi baru, tentukan Versi untuk paket baru Anda, unggah file .zip Anda di bidang paket Aplikasi, lalu pilih Kirim.

Perbarui atau hapus paket aplikasi

Untuk memperbarui atau menghapus paket aplikasi yang ada, pilih aplikasi di halaman Aplikasi akun Batch Anda. Pilih elipsis di baris paket aplikasi yang ingin Anda ubah. Lalu pilih tindakan yang ingin Anda lakukan.

Cuplikan layar yang memperlihatkan opsi pembaruan dan penghapusan untuk paket aplikasi di portal Azure.

Jika Anda memilih Perbarui, Anda dapat mengunggah file .zip baru. File ini menggantikan file .zip sebelumnya yang Anda unggah untuk versi tersebut.

Jika Anda memilih Hapus, Anda akan diminta untuk mengonfirmasi penghapusan versi tersebut. Setelah Anda memilih OK, Batch menghapus file .zip dari akun Azure Storage Anda. Jika Anda menghapus versi default aplikasi, pengaturan Versi Default akan dihapus untuk aplikasi tersebut.

Instal aplikasi pada simpul komputasi

Anda telah mempelajari cara mengelola paket aplikasi di portal Azure. Sekarang Anda dapat mempelajari cara menyebarkannya ke simpul komputasi dan menjalankannya dengan tugas Batch.

Instal paket aplikasi kumpulan

Untuk menginstal paket aplikasi pada semua simpul komputasi dalam kumpulan, tentukan satu atau beberapa referensi paket aplikasi untuk kumpulan. Paket aplikasi yang Anda tentukan untuk kumpulan diinstal pada setiap simpul komputasi yang bergabung dengan kumpulan dan pada simpul apa pun yang di-boot ulang atau dicitrakan ulang.

Di Batch .NET, tentukan satu atau beberapa CloudPool.ApplicationPackageReferences saat Anda membuat kumpulan baru atau saat Anda menggunakan kumpulan yang ada. Kelas ApplicationPackageReference menentukan ID aplikasi dan versi untuk diinstal pada simpul komputasi kumpulan.

// Create the unbound CloudPool
CloudPool myCloudPool =
    batchClient.PoolOperations.CreatePool(
        poolId: "myPool",
        targetDedicatedComputeNodes: 1,
        virtualMachineSize: "standard_d1_v2",
        VirtualMachineConfiguration: new VirtualMachineConfiguration(
            imageReference: new ImageReference(
                                publisher: "MicrosoftWindowsServer",
                                offer: "WindowsServer",
                                sku: "2019-datacenter-core",
                                version: "latest"),
            nodeAgentSkuId: "batch.node.windows amd64");

// Specify the application and version to install on the compute nodes
myCloudPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "litware",
        Version = "1.1001.2b" }
};

// Commit the pool so that it's created in the Batch service. As the nodes join
// the pool, the specified application package is installed on each.
await myCloudPool.CommitAsync();

Penting

Jika penyebaran paket aplikasi gagal, layanan Batch menandai simpul yang tidak dapat digunakan dan tidak ada tugas yang dijadwalkan untuk dieksekusi pada simpul tersebut. Jika ini terjadi, hidupkan ulang simpul untuk menginisasi kembali penerapan paket. Menghidupkan ulang simpul juga memungkinkan penjadwalan tugas lagi pada simpul.

Instal paket aplikasi tugas

Mirip dengan kumpulan, Anda menentukan referensi paket aplikasi untuk tugas. Ketika tugas dijadwalkan untuk berjalan pada simpul, paket diunduh dan diekstrak tepat sebelum baris perintah tugas berjalan. Jika paket dan versi tertentu sudah diinstal pada simpul, paket tidak diunduh dan paket yang ada digunakan.

Untuk menginstal paket aplikasi tugas, konfigurasikan properti tugasCloudTask.ApplicationPackageReferences:

CloudTask task =
    new CloudTask(
        "litwaretask001",
        "cmd /c %AZ_BATCH_APP_PACKAGE_LITWARE%\\litware.exe -args -here");

task.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference
    {
        ApplicationId = "litware",
        Version = "1.1001.2b"
    }
};

Jalankan aplikasi yang diinstal

Paket yang Anda tentukan untuk kumpulan atau tugas diunduh dan diekstrak ke direktori bernama dalam AZ_BATCH_ROOT_DIR simpul. Batch juga membuat variabel lingkungan yang berisi jalur ke direktori bernama. Baris perintah tugas Anda menggunakan variabel lingkungan ini saat mereferensikan aplikasi pada simpul.

Pada simpul Windows, variabel tertulis dalam format berikut:

Windows:
AZ_BATCH_APP_PACKAGE_APPLICATIONID#version

Pada simpul Linux, formatnya sedikit berbeda. Tanda titik (.), tanda hubung (-), dan angka (#) diratakan ke garis bawah dalam variabel lingkungan. Selain itu, kasus ID aplikasi dipertahankan. Contohnya:

Linux:
AZ_BATCH_APP_PACKAGE_applicationid_version

APPLICATIONID dan version merupakan nilai yang sesuai dengan versi aplikasi dan paket yang telah Anda tentukan untuk digunakan. Misalnya, jika Anda menentukan bahwa blender aplikasi versi 2.7 harus diinstal pada simpul Windows, baris perintah tugas Anda akan menggunakan variabel lingkungan ini untuk mengakses filenya:

Windows:
AZ_BATCH_APP_PACKAGE_BLENDER#2.7

Pada simpul Linux, tentukan variabel lingkungan dalam format ini. Meratakan titik (.), tanda hubung (-) dan angka (#) untuk menggarisbawahi, dan mempertahankan kasus ID aplikasi:

Linux:
AZ_BATCH_APP_PACKAGE_blender_2_7

Saat mengunggah paket aplikasi, Anda dapat menentukan versi default untuk diterapkan ke simpul komputasi Anda. Jika Anda telah menentukan versi default untuk aplikasi, Anda dapat menghilangkan akhiran versi saat mereferensikan aplikasi. Anda dapat menentukan versi aplikasi default di portal Microsoft Azure, di jendela Aplikasi, seperti yang ditunjukkan di Unggah dan kelola aplikasi.

Misalnya, jika Anda menetapkan "2.7" sebagai versi default untuk blender aplikasi, dan tugas Anda mereferensikan variabel lingkungan berikut, maka simpul Windows Anda menggunakan versi 2.7:

AZ_BATCH_APP_PACKAGE_BLENDER

Cuplikan kode berikut menunjukkan contoh baris perintah tugas yang meluncurkan versi default aplikasi blender:

string taskId = "blendertask01";
string commandLine =
    @"cmd /c %AZ_BATCH_APP_PACKAGE_BLENDER%\blender.exe -args -here";
CloudTask blenderTask = new CloudTask(taskId, commandLine);

Tip

Untuk informasi selengkapnya tentang menggunakan variabel lingkungan, lihat Pengaturan lingkungan untuk tugas.

Perbarui paket aplikasi kumpulan

Jika kumpulan yang ada telah dikonfigurasi dengan paket aplikasi, Anda dapat menentukan paket baru untuk kumpulan tersebut. Ini berarti:

  • Layanan Batch menginstal paket yang baru ditentukan pada semua simpul baru yang bergabung dengan kumpulan dan pada simpul yang ada yang di-boot ulang atau dicitrakan ulang.
  • Simpul komputasi yang sudah ada di kumpulan saat Anda memperbarui referensi paket tidak secara otomatis menginstal paket aplikasi baru. Simpul komputasi ini harus di-boot ulang atau dicitrakan ulang untuk menerima paket baru.
  • Saat paket baru digunakan, variabel lingkungan yang dibuat mencerminkan referensi paket aplikasi baru.

Dalam contoh ini, kumpulan yang ada memiliki versi 2.7 dari aplikasi blender yang dikonfigurasi sebagai salah satu CloudPool.ApplicationPackageReferences. Untuk memperbarui simpul kumpulan dengan versi 2.76b, tentukan ApplicationPackageReference baru dengan versi baru, dan lakukan perubahan.

string newVersion = "2.76b";
CloudPool boundPool = await batchClient.PoolOperations.GetPoolAsync("myPool");
boundPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "blender",
        Version = newVersion }
};
await boundPool.CommitAsync();

Setelah versi baru dikonfigurasi, layanan Batch menginstal versi 2.76b ke simpul baru yang bergabung dengan kumpulan. Untuk menginstal 2.76b pada simpul yang sudah ada di kumpulan, lakukan boot ulang atau pencitraan ulang. Simpul yang di-boot ulang menyimpan file dari penyebaran paket sebelumnya.

Mencantumkan aplikasi dalam akun Batch

Anda dapat mencantumkan aplikasi dan paketnya di akun Batch dengan menggunakan metode ApplicationOperations.ListApplicationSummaries.

// List the applications and their application packages in the Batch account.
List<ApplicationSummary> applications = await batchClient.ApplicationOperations.ListApplicationSummaries().ToListAsync();
foreach (ApplicationSummary app in applications)
{
    Console.WriteLine("ID: {0} | Display Name: {1}", app.Id, app.DisplayName);

    foreach (string version in app.Versions)
    {
        Console.WriteLine("  {0}", version);
    }
}

Langkah berikutnya