Pola penskalaan otomatis umum

Selesai

Di unit ini, kita melihat pola untuk penskalaan otomatis.

Penskalaan otomatis bukanlah solusi instan. Cukup menambahkan sumber daya ke sistem atau menjalankan lebih banyak instans proses tidak menjamin peningkatan performa untuk sistem. Pertimbangkan poin-poin berikut saat merancang strategi penskalaan otomatis:

Rekomendasi

Mengidentifikasi hambatan: Penskalaan keluar bukanlah perbaikan ajaib untuk setiap masalah performa. Misalnya, jika database backend Anda adalah hambatan, tidak membantu menambahkan lebih banyak server web. Identifikasi dan atasi hambatan dalam sistem sebelum melempar lebih banyak instans pada masalah. Bagian stateful dari sistem adalah penyebab paling mungkin dari penyempitan.

Menguraikan beban kerja berdasarkan persyaratan skalabilitas: Aplikasi sering terdiri dari beberapa beban kerja dengan persyaratan yang berbeda untuk penskalaan. Misalnya, aplikasi mungkin memiliki situs publik dan situs administrasi terpisah. Situs publik mungkin mengalami lonjakan lalu lintas yang tiba-tiba, sementara situs administrasi memiliki beban yang lebih kecil dan lebih dapat diprediksi.

Tugas intensif sumber daya offload: Tugas yang memerlukan banyak sumber daya CPU atau I/O harus dipindahkan ke pekerjaan latar belakang jika memungkinkan. Tugas offloading meminimalkan beban di ujung depan yang menangani permintaan pengguna.

Gunakan fitur autoscaling bawaan: Jika aplikasi memiliki beban kerja reguler yang dapat diprediksi, peluasan skala sesuai jadwal. Misalnya, turunkan skalanya selama jam kerja. Jika tidak, jika beban kerja tidak dapat diprediksi, gunakan metrik performa seperti CPU atau minta panjang antrean untuk memicu penskalaan otomatis.

Pertimbangkan penskalaan otomatis agresif untuk beban kerja penting: Untuk beban kerja penting, Anda ingin tetap di depan permintaan. Sebaiknya tambahkan instans baru dengan cepat di bawah beban berat untuk menangani lalu lintas lain, lalu secara bertahap mengurangi skalanya.

Desain untuk skala dalam: Ingatlah bahwa dengan skala elastis, aplikasi memiliki periode skala dalam, ketika instans dihapus. Aplikasi harus dengan anggun menangani instans yang dihapus. Berikut adalah beberapa cara untuk menangani penurunan skala:

  • Dengarkan peristiwa matikan saat tersedia dan dimatikan dengan bersih.
  • Mendukung penanganan kesalahan sementara dan coba lagi.
  • Pertimbangkan untuk memecah pekerjaan untuk tugas yang berjalan lama.
  • Letakkan item kerja pada antrean sehingga instans lain dapat mengambil pekerjaan jika instans dihapus di tengah pemrosesan.

Pemberitahuan

  • Semua kegagalan penskalaan otomatis dicatat ke Log Aktivitas. Anda kemudian dapat mengonfigurasi pemberitahuan log aktivitas yang memberi tahu Anda melalui email, Short Message Service (SMS), atau webhook setiap kali ada kegagalan skala otomatis.
  • Demikian pula, semua tindakan skala berhasil diposting ke Log Aktivitas. Anda kemudian dapat mengonfigurasi pemberitahuan log aktivitas sehingga Anda dapat diberi tahu melalui email, SMS, atau webhook setiap kali ada tindakan skala otomatis yang berhasil. Anda juga dapat mengonfigurasi pemberitahuan email atau webhook untuk mendapatkan pemberitahuan tentang tindakan skala yang berhasil melalui tab Pemberitahuan pada pengaturan skala otomatis.

Diagram alur proses webhook.

Pola umum untuk menskalakan sumber daya Anda di Azure

Menskalakan berdasarkan permintaan

Anda dapat secara otomatis menskalakan jumlah instans layanan di awal hari kerja ketika permintaan pelanggan meningkat. Di penghujung hari kerja, secara otomatis menskalakan jumlah instans aplikasi untuk meminimalkan biaya sumber daya dalam semalam saat penggunaan aplikasi rendah.

Melakukan penskalaan secara berbeda pada hari kerja vs akhir pekan

Pada malam atau akhir pekan, Anda mungkin memiliki permintaan aplikasi yang lebih rendah. Jika beban ini konsisten selama jangka waktu tertentu, Anda dapat mengonfigurasi aturan penskalaan otomatis untuk menurunkan jumlah instans layanan dalam kumpulan skala. Mengambil tindakan penyempurnaan skala ini mengurangi biaya untuk menjalankan set skala Anda karena Anda hanya menjalankan jumlah instans yang diperlukan untuk memenuhi permintaan saat ini.

Melakukan penskalaan secara berbeda selama liburan

Jika Anda memiliki penggunaan yang berat untuk layanan pada bagian tertentu pada bulan atau siklus fiskal, Anda dapat secara otomatis menskalakan jumlah instans layanan untuk mengakomodasi permintaan tambahan mereka. Saat ada peristiwa pemasaran, promosi, atau obral liburan, Anda dapat secara otomatis menskalakan jumlah instans layanan sebelum permintaan pelanggan yang diharapkan.

Melakukan penskalaan berdasarkan metrik kustom

Terakhir, sebaiknya tentukan aturan penskalaan otomatis Anda dengan hati-hati. Misalnya, serangan Denial of Service (DoS) kemungkinan akan mengakibatkan masuknya lalu lintas masuk dalam skala besar. Mencoba menangani lonjakan permintaan yang disebabkan oleh serangan DoS akan sia-sia dan mahal. Permintaan ini tidak asli, dan harus dibuang daripada diproses. Solusi yang lebih baik adalah menerapkan deteksi dan pemfilteran permintaan yang terjadi selama serangan seperti itu sebelum mereka mencapai layanan Anda.

Setelah mengonfigurasi aturan penskalaan otomatis, pantau performa aplikasi Anda dari waktu ke waktu. Gunakan hasil pemantauan ini untuk menyesuaikan pola di mana sistem diskalakan, jika perlu.