Rekomendasi untuk mengoptimalkan tugas operasional
Berlaku untuk rekomendasi daftar periksa Efisiensi Performa Azure Well-Architected Framework ini:
PE:10 | Mengoptimalkan tugas operasional. Pantau dan minimalkan efek siklus hidup pengembangan perangkat lunak dan operasi rutin lainnya pada performa beban kerja. Operasi ini termasuk pemindaian virus, rotasi rahasia, cadangan, database pengindeksian ulang, dan penyebaran. |
---|
Panduan ini menjelaskan rekomendasi untuk mengoptimalkan tugas operasional. Mengoptimalkan tugas operasional adalah proses meminimalkan efek tugas yang Anda lakukan sebagai bagian dari operasi beban kerja perutean. Aktivitas operasi menggunakan sumber daya komputasi yang sama dengan beban kerja itu sendiri. Kegagalan untuk mempertimbangkan efek tugas operasi dapat menyebabkan beban kerja melewatkan target performanya. Ini juga dapat berdampak negatif pada performa beban kerja untuk pelanggan Anda.
Definisi
Istilah | Definisi |
---|---|
Penyebaran biru/hijau | Strategi penyebaran yang menggunakan dua lingkungan yang identik dan mengontrol arah lalu lintas ke penyebaran baru (penyebaran hijau). |
Pembangunan ulang indeks database | Aktivitas pemeliharaan yang menghilangkan dan membuat ulang indeks. |
Reorganisasi indeks database | Aktivitas pemeliharaan yang mengoptimalkan indeks database saat ini. |
Skema database | Struktur umum database dan hubungannya dengan data lain. |
Slot penyebaran | Fitur Azure App Service yang memungkinkan Anda menyebarkan aplikasi langsung dengan nama host mereka sendiri. |
Peningkatan di tempat | Proses peningkatan komponen atau aplikasi tanpa menggantinya atau memigrasikannya ke lingkungan baru. |
Infrastruktur sebagai Kode (IaC) | Model deskriptif untuk mendefinisikan dan menyebarkan infrastruktur, termasuk jaringan, komputer virtual, load balancer, dan topologi koneksi. |
Strategi desain utama
Anda perlu mengambil langkah-langkah untuk mengurangi efek siklus hidup pengembangan perangkat lunak dan operasi rutin lainnya pada performa beban kerja. Tujuannya adalah untuk memastikan bahwa operasi rutin, seperti pemindaian virus, rotasi rahasia, cadangan, pengoptimalan indeks (reorganisasi atau pembangunan kembali), dan penyebaran, tidak secara signifikan menurunkan performa beban kerja.
Akun untuk tugas operasional
Penting untuk mempertimbangkan tugas operasional saat Anda menetapkan target performa. Dengan menggabungkan tugas rutin, reguler, dan ad-hoc ke dalam target performa, Anda dapat memastikan bahwa beban kerja beroperasi secara efisien. Untuk mempertimbangan tugas operasional dalam target performa, berikut adalah beberapa poin penting yang perlu dipertimbangkan:
Identifikasi tugas operasional. Identifikasi dan sertakan tugas operasional yang relevan dalam target performa. Contoh tugas rutin dapat mencakup pemindaian virus, reorganisasi indeks database, pembangunan ulang indeks database, pencadangan disk atau database, rotasi sertifikat, patch sistem operasi, memutar kata sandi, memutar kunci API, pengujian penetrasi, dan tinjauan audit dalam produksi.
Mengevaluasi target performa. Evaluasi target performa saat ini dan sesuaikan untuk mempertanyakan tugas operasional yang khusus untuk beban kerja. Melakukannya memastikan bahwa target performa selaras dengan persyaratan operasional beban kerja.
Optimalkan penyebaran
Mengoptimalkan penyebaran mengacu pada penyempurnaan proses melepaskan sumber daya dan kode untuk menjamin performa yang mulus dan gangguan minimal. Ini melibatkan perencanaan, distribusi sumber daya yang efektif, dan pengujian menyeluruh dari infrastruktur sebagai kode (IaC) dan kode aplikasi sebelum diperkenalkan ke lingkungan langsung. Ketidaksesuaian penyebaran dapat menyebabkan pengurangan kecepatan dan efisiensi beban kerja, potensi kendala sumber daya, dan pengalaman pengguna yang disusupi dalam pengaturan operasional. Untuk mengoptimalkan penyebaran, pertimbangkan strategi berikut:
Menilai waktu henti yang dapat diterima. Jika waktu henti dapat diterima, Anda dapat menerapkan strategi penyebaran yang memprioritaskan kecepatan dan efisiensi. Namun, penting untuk menilai dengan cermat efek waktu henti pada persyaratan bisnis sebelum Anda membuat keputusan tersebut. Di sisi lain, jika waktu henti tidak dapat diterima, Anda perlu menerapkan strategi penyebaran yang memastikan ketersediaan beban kerja yang berkelanjutan. Pertimbangkan untuk menggunakan teknik seperti penyebaran biru-hijau atau penyebaran kenari, di mana Anda secara bertahap meluncurkan versi baru beban kerja saat Anda memantau masalah. Strategi ini membantu meminimalkan efek waktu henti dan memastikan pengalaman pengguna yang mulus.
Sebarkan pada jumlah instans saat ini. Anda juga harus menghindari penyebaran yang menyebabkan operasi skala langsung. Anda tidak boleh menyebarkan sumber daya ke dalam sistem langsung dengan jumlah instans yang sangat rendah sehingga memaksa sistem untuk segera melakukan operasi skala. Misalnya, templat infrastructure-as-code (IaC) Anda mungkin tidak cocok dengan jumlah instans yang Anda butuhkan pada saat penyebaran. Ini mungkin memiliki jumlah instans dua, meskipun lingkungan yang disebarkan saat ini menjalankan delapan instans. Penyebaran akan menghapus enam instans dan berdampak negatif pada performa.
Gunakan strategi penyebaran biru-hijau. Penyebaran dapat menyebabkan gangguan layanan dan waktu henti. Untuk mengurangi masalah ini, pilih strategi penyebaran yang meminimalkan dampak performa, seperti penyebaran biru-hijau. Pendekatan ini memungkinkan transisi yang mulus antar lingkungan dan mengurangi risiko gangguan layanan. Saat Anda menggunakan pendekatan penyebaran biru-hijau, Anda memiliki dua lingkungan terpisah: lingkungan biru dan hijau. Jika ada masalah atau penurunan performa yang terdeteksi di lingkungan hijau, Anda dapat dengan mudah kembali ke lingkungan biru yang stabil. Strategi ini membantu Anda memastikan waktu henti minimal dan memungkinkan Anda mempertahankan tingkat performa yang tinggi untuk beban kerja Anda. Untuk menyebarkan dengan menggunakan pendekatan biru-hijau, ikuti langkah-langkah umum berikut:
Sebarkan lingkungan baru. Siapkan lingkungan baru (hijau) bersama lingkungan yang ada (biru) dengan versi aplikasi Anda yang diperbarui.
Validasi lingkungan baru. Penyebaran dapat memperkenalkan latensi dan meningkatkan waktu respons. Pertimbangkan instans yang sudah ada sebelumnya sebelum cutover. Prapenangan melibatkan persiapan lingkungan baru dengan mensimulasikan lalu lintas dan beban kerja seperti produksi untuk memastikan bahwa lingkungan siap menangani beban yang diharapkan. Ini membantu meminimalkan efek pada latensi dan waktu respons. Uji dan validasi lingkungan baru secara menyeluruh untuk memastikan bahwa lingkungan tersebut berfungsi dengan benar dan memenuhi ekspektasi performa. Pengujian membantu menghangatkan cache, membangun Penghubungan Database, dan memastikan bahwa lingkungan siap untuk menangani beban yang diharapkan.
Secara bertahap mengalihkan lalu lintas. Setelah lingkungan baru dipersiapkan dan divalidasi, secara bertahap mengalihkan lalu lintas produksi dari lingkungan lama (biru) ke lingkungan baru (hijau). Awalnya, arahkan sebagian kecil lalu lintas ke lingkungan hijau dan secara bertahap meningkatkannya setelah memverifikasi stabilitas dan kesehatan aplikasi yang diharapkan. Anda dapat menggunakan penyeimbang beban global atau mekanisme manajemen lalu lintas. Pergeseran lalu lintas terkontrol memungkinkan Anda mengidentifikasi masalah performa lebih awal dan mengambil tindakan korektif sebelum sepenuhnya melakukan transisi beban kerja ke lingkungan baru.
Pantau dan optimalkan. Penyebaran mungkin menggunakan sumber daya komputasi bersama. Terus pantau performa dan kesehatan lingkungan baru setelah Anda mengalihkan lalu lintas. Buat pengoptimalan atau penyesuaian yang diperlukan untuk memastikan performa dan pengalaman pengguna yang diinginkan.
Hapus lingkungan lama. Setelah Anda berhasil mentransisikan semua lalu lintas ke lingkungan hijau, hapus lingkungan biru dari koneksi yang ada. Langkah ini membantu mengoptimalkan biaya pemeliharaan lingkungan lama dan memastikan bahwa lingkungan baru bebas dari penyimpangan konfigurasi.
Ulangi prosesnya. Untuk penyebaran di masa mendatang, balik peran lingkungan biru dan hijau. Sebarkan perubahan pada lingkungan biru baru, validasi, atur transisi lalu lintas, dan nonaktifkan lingkungan hijau lama.
Gunakan beberapa build. Berbagai jenis build dapat membantu Anda mengoptimalkan waktu build dan memastikan kualitas penyebaran. Misalnya, Anda dapat memiliki build integrasi berkelanjutan (CI) yang memicu dengan setiap penerapan kode. Anda dapat memiliki build malam hari yang menjalankan pengujian otomatis secara teratur, dan merilis build yang digunakan untuk penyebaran ke produksi. Setiap jenis build harus memiliki tujuan tertentu, seperti integrasi berkelanjutan, pengujian otomatis, atau penyebaran produksi. Pengujian dan validasi beban kerja sebelum penyebaran membantu mengidentifikasi dan mengatasi masalah atau bug di awal proses pengembangan.
Pertimbangkan bendera fitur. Bendera fitur digunakan dalam pengembangan perangkat lunak untuk mengontrol visibilitas dan perilaku fitur tertentu dalam aplikasi. Dengan menggunakan bendera fitur, pengembang dapat mengaktifkan atau menonaktifkan fitur tertentu tanpa perlu menyebarkan ulang aplikasi. Bendera fitur berfungsi dengan memperkenalkan logika kondisional dalam kode yang menentukan apakah fitur harus diaktifkan atau dinonaktifkan. Logika ini dapat didasarkan pada berbagai faktor, seperti peran pengguna, preferensi pengguna, atau kondisi tertentu yang ditentukan oleh tim pengembangan. Dengan menggunakan bendera fitur, pengembang dapat secara bertahap meluncurkan fitur baru ke subset pengguna atau mengaktifkan fitur untuk grup tertentu untuk pengujian (pengujian kenari).
Optimalkan peningkatan
Peningkatan di tempat adalah peningkatan ke sumber daya atau aplikasi yang ada. Peningkatan di tempat untuk sementara waktu dapat memperlambat atau mengganggu beban kerja. Penting untuk memastikan bahwa peningkatan kompatibel dengan beban kerja. Sebelum Menerapkan peningkatan, kami sarankan Anda mengujinya di lingkungan terpisah untuk mengidentifikasi potensi masalah. Berikan rencana putar kembali jika terjadi masalah selama proses peningkatan. Sangat penting untuk mengambil cadangan lengkap data dan konfigurasi penting sebelum Anda menerapkan peningkatan. Pantau sistem yang ditingkatkan dengan cermat setelah peningkatan untuk memastikan bahwa semuanya berfungsi seperti yang diharapkan. Pencadangan memungkinkan Anda memulihkan ke keadaan yang baik jika perlu. Anda harus memprioritaskan penjadwalan peningkatan selama jam sibuk untuk meminimalkan efek pada pengguna dan performa beban kerja. Beri tahu pengguna terlebih dahulu tentang peningkatan yang direncanakan, termasuk waktu henti yang diharapkan dan tindakan yang diperlukan yang perlu mereka ambil.
Tradeoff: Menunggu untuk melakukan aktivitas operasi selama jam sibuk dapat memengaruhi efisiensi operasional. Mungkin kurang nyaman untuk memiliki personel dengan pekerjaan set keterampilan yang tepat selama jam sibuk.
Mengoptimalkan perkakas
Alat penting untuk pemantauan integritas file, pemindaian virus, deteksi intrusi, dan tugas operasional lainnya dapat memengaruhi performa beban kerja. Mereka menggunakan sumber daya komputasi dan dapat menambahkan latensi dan overhead performa. Anda perlu menguji dan memahami efek yang dimiliki alat Anda terhadap performa beban kerja. Berdasarkan hasil pengujian, Anda harus menyempurnakan konfigurasi alat, menyesuaikan frekuensi pemindaian, dan merealokasi sumber daya komputasi. Untuk pemindaian virus, Anda dapat membuat daftar pengecualian yang relevan untuk meminimalkan durasi pemindaian.
Mengoptimalkan operasi database
Mengoptimalkan operasi database mengacu pada proses penyempurnaan dan penyempurnaan tugas database untuk memastikan efisiensi maksimum dan pemanfaatan sumber daya minimal. Operasi ini mencakup tugas seperti pencadangan, perubahan skema, penyetelan performa, dan pemantauan. Operasi database yang efisien menyebabkan respons kueri yang lebih cepat, overhead sistem yang berkurang, dan pengalaman pengguna yang lebih lancar secara keseluruhan.
Perubahan skema melibatkan modifikasi struktur database, seperti menambahkan atau mengubah tabel, kolom, atau indeks. Perubahan ini mungkin memerlukan pemrosesan ekstra dan pemanfaatan sumber daya selama proses penyebaran, berpotensi memengaruhi performa keseluruhan beban kerja. Perubahan skema dapat mengganggu performa pada kueri aktif, indeks, atau transaksi atau menyebabkan data tidak tersedia.
Untuk meminimalkan efek ini, Anda harus merencanakan dan menguji perubahan skema di lingkungan nonproduksi. Anda dapat menggunakan berbagai teknik penyebaran untuk menerapkan pembaruan skema. Anda juga harus menggunakan alat perubahan skema yang tersedia untuk mengoptimalkan proses. Pengarsipan data dan partisi dapat membantu mengurangi efek perubahan skema.
Mengoptimalkan pencadangan
Cadangan menggunakan sumber daya beban kerja seperti daya pemrosesan, bandwidth jaringan, dan I/O disk. Anda perlu menguji dan memilih strategi cadangan yang meminimalkan efek ini. Anda harus melakukan pencadangan selama jam sibuk ketika Anda bisa. Strategi Anda harus menyertakan pencadangan inkremental alih-alih pencadangan penuh setiap kali. Rekam jepret bisa kurang intensif sumber daya daripada cadangan. Anda harus mempertimbangkan fitur pencadangan dan pemulihan platform bawaan daripada membangun solusi kustom. Anda perlu menguji opsi ini dan menggunakan kombinasi yang memberikan performa terbaik untuk beban kerja Anda.
Mengoptimalkan pemantauan dan penelusuran kesalahan
Pengelogan, telemetri, instrumentasi, dan pengambilan dan pengumpulan pelacakan yang berlebihan atau tidak diimplementasikan dengan buruk dapat memengaruhi performa. Demikian juga, fitur kenyamanan seperti penelusuran kesalahan jarak jauh juga dapat memengaruhi performa. Anda perlu mengukur dan mengetahui efek performanya pada lingkungan. Anda tidak ingin proses ini menurunkan performa. Anda harus mengonfigurasi atau menonaktifkan proses apa pun yang efek performanya melebihi manfaatnya.
Fasilitasi Azure
Akuntansi untuk tugas operasional: Azure DevOps adalah sekumpulan alat dan layanan pengembangan yang memungkinkan tim merencanakan, mengembangkan, menguji, dan memberikan perangkat lunak secara efisien. Ini termasuk fitur seperti kontrol versi, integrasi dan pengiriman berkelanjutan, manajemen proyek, dan banyak lagi.
Azure menyediakan integrasi layanan-ke-layanan yang meminimalkan efek dari banyak tugas operasional. Misalnya, layanan yang terintegrasi dengan Azure Key Vault sering mendukung rotasi sertifikat yang mulus atau rotasi rahasia yang meminimalkan efek pada performa.
Mengoptimalkan penyebaran: App Service menyediakan slot penyebaran. Anda dapat menggunakan slot penyebaran untuk menyebarkan kode ke lingkungan nonproduksi. Anda dapat menukar konten aplikasi dan elemen konfigurasi di antara dua slot penyebaran. Misalnya, Anda dapat mengalihkan konten aplikasi dari slot nonproduksi ke slot produksi.
Azure Front Door dan Azure Traffic Manager memungkinkan Anda menerapkan strategi penyebaran biru-hijau. Beberapa layanan komputasi Azure juga mendukung strategi penyebaran tingkat lanjut seperti penyebaran biru-hijau. Anda dapat menggabungkan layanan tersebut dengan pergeseran lalu lintas atau strategi pemanasan instans untuk mengurangi efek performa penyebaran.
Mengoptimalkan operasi database: Azure SQL Database secara otomatis mengambil cadangan penuh, pencadangan diferensial, dan pencadangan log transaksi. Azure Cosmos DB secara otomatis mengambil cadangan data Anda secara berkala. Pencadangan otomatis diambil tanpa memengaruhi performa atau ketersediaan operasi database. Azure Cosmos DB menyimpan cadangan dalam layanan penyimpanan terpisah.
Mengoptimalkan pencadangan: Beberapa layanan data Azure mendukung dampak performa rendah hingga tidak ada untuk pemulihan dan pengindeksan titik waktu. Azure Backup adalah solusi pencadangan berbasis cloud yang andal dan dapat diskalakan yang memungkinkan Anda melindungi data dan aplikasi Anda. Ini menyediakan fitur seperti pencadangan inkremental, kompresi, dan enkripsi untuk meminimalkan efek pada performa selama operasi pencadangan. Azure Site Recovery membantu Anda melindungi aplikasi dengan mereplikasinya ke lokasi sekunder. Ini memberikan replikasi berkelanjutan dan kemampuan failover otomatis untuk meminimalkan dampak waktu henti dan performa selama operasi pencadangan dan pemulihan bencana.
Tautan terkait
Daftar periksa Efisiensi Performa
Lihat kumpulan rekomendasi lengkap.