Tradeoff Efisiensi Performa

Beban kerja yang memenuhi target performanya tanpa provisi berlebih efisien. Tujuan efisiensi performa adalah untuk memiliki pasokan yang cukup untuk menangani permintaan setiap saat. Strategi utama untuk efisiensi performa termasuk penggunaan pengoptimalan kode yang tepat, pola desain, perencanaan kapasitas, dan penskalaan. Jelas target performa dan pengujian yang mendukung pilar ini.

Selama proses negosiasi target performa beban kerja dan merancang beban kerja untuk efisiensi performa, penting untuk mengetahui bagaimana prinsip desain Efisiensi Performa dan rekomendasi dalam daftar periksa tinjauan Desain untuk Efisiensi Performa dapat memengaruhi tujuan pengoptimalan pilar lain. Keputusan efisiensi performa tertentu mungkin menguntungkan beberapa pilar tetapi merupakan tradeoff bagi orang lain. Artikel ini mencantumkan contoh tradeoff yang mungkin dihadapi tim beban kerja saat merancang arsitektur dan operasi beban kerja untuk efisiensi performa.

Tradeoff Efisiensi Performa dengan Keandalan

Tradeoff: Mengurangi replikasi dan peningkatan kepadatan. Landasan keandalan adalah memastikan ketahanan dengan menggunakan replikasi dan membatasi radius ledakan kerusakan.

  • Beban kerja yang mencapai efisiensi dengan menunda penskalaan hingga saat penanggung jawab terakhir memenuhi permintaan dengan cermat tetapi rentan terhadap kegagalan simpul yang tidak terduga dan penskalaan penundaan.

  • Mengonsolidasikan sumber daya beban kerja dapat menggunakan kapasitas berlebih dan meningkatkan efisiensi. Namun, ini meningkatkan radius ledakan kerusakan pada komponen atau platform aplikasi yang terletak bersama.

  • Penskalaan dalam atau penurunan skala untuk meminimalkan kapasitas surplus dapat membuat beban kerja kurang diprovisikan selama lonjakan penggunaan, yang menyebabkan gangguan layanan karena pasokan yang tidak mencukupi.

Tradeoff: Peningkatan kompleksitas. Keandalan memprioritaskan kesederhanaan.

  • Menggunakan penskalaan otomatis untuk menyeimbangkan pasokan beban kerja terhadap permintaan memperkenalkan varianbilitas dalam topologi beban kerja dan menambahkan komponen yang harus bekerja dengan benar agar sistem dapat diandalkan. Penskalaan otomatis menyebabkan pemicu lebih banyak peristiwa siklus hidup aplikasi, seperti memulai dan menghentikan.

  • Pemartisian dan pemecahan data membantu menghindari masalah performa dalam himpunan data yang besar atau sering diakses. Namun, implementasi pola-pola ini meningkatkan kompleksitas karena konsistensi (akhirnya) perlu dipertahankan di seluruh sumber daya tambahan.

  • Mendenormalisasi data untuk pola akses yang dioptimalkan dapat meningkatkan performa, tetapi memperkenalkan kompleksitas karena beberapa representasi data perlu terus disinkronkan.

  • Pola desain cloud yang berpusat pada performa terkadang mengharuskan pengenalan komponen tambahan. Penggunaan komponen-komponen ini meningkatkan area permukaan beban kerja. Komponen kemudian harus dibuat andal untuk menjaga seluruh beban kerja tetap andal. Contoh meliputi:

    • Bus pesan untuk tingkatan beban, yang memperkenalkan komponen penting dan stateful.
    • Load balancer untuk replika terskalakan otomatis, yang memerlukan operasi yang andal dan pendaftaran replika.
    • Membongkar data ke cache, yang memerlukan pendekatan invalidasi cache yang andal.

Tradeoff: Pengujian dan pengamatan pada lingkungan aktif. Menghindari penggunaan sistem produksi yang tidak perlu adalah pendekatan pelestarian diri untuk keandalan.

  • Pengujian performa di lingkungan aktif, seperti penggunaan transaksi sintetis, membawa risiko menyebabkan kerusakan karena tindakan atau konfigurasi pengujian.

  • Beban kerja harus dilengkapi dengan sistem pemantauan performa aplikasi (APM) yang memungkinkan tim belajar dari lingkungan aktif. Alat APM diinstal dan dikonfigurasi dalam kode aplikasi atau di lingkungan hosting. Penggunaan yang tidak tepat, melebihi batasan, atau kesalahan konfigurasi alat dapat membahayakan fungsionalitas dan pemeliharaannya, yang berpotensi merusak keandalan.

Tradeoff Efisiensi Performa dengan Keamanan

Tradeoff: Pengurangan kontrol keamanan. Kontrol keamanan ditetapkan di beberapa lapisan, terkadang berlebihan, untuk memberikan pertahanan secara mendalam.

Salah satu strategi pengoptimalan performa adalah menghapus atau melewati komponen atau proses yang berkontribusi pada keterlambatan alur, terutama ketika waktu pemrosesan mereka tidak dibenarkan. Namun, strategi ini dapat membahayakan keamanan dan harus disertai dengan analisis risiko menyeluruh. Pertimbangkan contoh berikut:

  • Menghapus enkripsi saat transit atau tidak aktif untuk meningkatkan kecepatan transfer mengekspos data terhadap potensi pelanggaran integritas atau kerahasiaan.

  • Menghapus atau mengurangi alat pemindaian atau pemeriksaan keamanan untuk mengurangi waktu pemrosesan dapat membahayakan kerahasiaan, integritas, atau ketersediaan yang dilindungi alat tersebut.

  • Mengurangi frekuensi patching keamanan untuk membatasi dampak performa dapat membuat beban kerja lebih rentan terhadap ancaman yang muncul.

  • Menghapus aturan firewall dari alur jaringan untuk meningkatkan latensi jaringan dapat memungkinkan komunikasi yang tidak diinginkan.

  • Meminimalkan validasi data untuk pemrosesan data yang lebih cepat dapat membahayakan integritas data, terutama jika input berbahaya.

  • Menggunakan lebih sedikit entropi dalam algoritma enkripsi atau hashing, misalnya, pada vektor inisialisasi (IV), lebih efisien tetapi membuat enkripsi lebih mudah dipecahkan.

Tradeoff: Peningkatan area permukaan beban kerja. Keamanan memprioritaskan area permukaan yang berkurang dan terkandung untuk meminimalkan vektor serangan dan mengurangi pengelolaan kontrol keamanan.

Pola desain cloud yang berpusat pada performa terkadang mengharuskan pengenalan komponen tambahan. Komponen-komponen ini meningkatkan area permukaan beban kerja. Komponen baru harus diamankan, mungkin dengan cara yang belum digunakan dalam sistem, dan mereka sering meningkatkan cakupan kepatuhan. Pertimbangkan komponen yang umum ditambahkan ini:

  • Bus pesan untuk tingkatan beban

  • Load balancer untuk replika terskalakan otomatis

  • Membongkar data ke cache, jaringan pengiriman aplikasi, atau jaringan pengiriman konten

  • Membongkar pemrosesan ke pekerjaan latar belakang atau bahkan komputasi klien

Tradeoff: Menghapus segmentasi. Pilar Keamanan memprioritaskan segmentasi yang kuat untuk memungkinkan kontrol keamanan berbutir halus dan mengurangi radius ledakan.

Berbagi sumber daya adalah pendekatan untuk meningkatkan efisiensi. Ini meningkatkan kepadatan untuk mengoptimalkan penggunaan kapasitas. Contohnya termasuk skenario multipenyewa atau menggabungkan aplikasi yang berbeda dalam arsitektur pada platform aplikasi umum. Kepadatan yang meningkat dapat menyebabkan masalah keamanan berikut:

  • Peningkatan risiko pergerakan lateral yang tidak sah dari satu penyewa ke penyewa lainnya.

  • Identitas beban kerja bersama yang melanggar prinsip hak istimewa paling sedikit dan mengaburkan jejak audit individu dalam log akses.

  • Kontrol keamanan perimeter, misalnya aturan jaringan, yang dikurangi untuk mencakup semua komponen yang terletak bersama, memberikan komponen individual akses lebih dari yang diperlukan.

  • Penyusupan host platform aplikasi atau komponen individual karena radius ledakan yang lebih besar. Peningkatan ini disebabkan oleh akses yang lebih mudah ke komponen yang terletak bersama.

  • Menemukan bersama komponen yang berbeda yang mengarah ke lebih banyak komponen dalam cakupan kepatuhan karena host bersama mereka.

Tradeoff Efisiensi Performa dengan Pengoptimalan Biaya

Tradeoff: Terlalu banyak pasokan untuk permintaan. Pengoptimalan Biaya dan Efisiensi Performa memprioritaskan memiliki pasokan yang cukup untuk melayani permintaan.

  • Provisi berlebih adalah risiko ketika tim mencoba mengurangi masalah performa dalam beban kerja. Beberapa penyebab umum provisi berlebih meliputi:

    • Perencanaan kapasitas awal salah dinilai karena tim hanya berfokus pada perkiraan beban puncak, mengabaikan strategi untuk pemulusan puncak dalam desain beban kerja.
    • Meningkatkan atau mempersingkat sumber daya selama langkah pemecahan masalah respons insiden.
  • Penskalaan otomatis dapat salah dikonfigurasi. Beberapa contoh penskalaan otomatis yang salah dikonfigurasi meliputi:

    • Meningkatkan skala dengan perubahan permintaan minimal atau periode cooldown yang diperpanjang dapat dikenakan lebih banyak biaya daripada yang dibutuhkan permintaan.
    • Menggunakan penskalaan otomatis tanpa batas atas yang ditetapkan dapat menyebabkan pertumbuhan yang tidak terkendali karena kerusakan sistem atau penyalahgunaan dan melebihi persyaratan beban kerja yang diharapkan.
  • Memperluas ke beberapa wilayah dapat meningkatkan performa dengan mendekatkan beban kerja dengan pengguna dan dapat menghindari batasan kapasitas sumber daya sementara. Namun, ini juga menambah kompleksitas dan duplikasi sumber daya.

Tradeoff: Lebih banyak komponen. Salah satu teknik pengoptimalan biaya adalah mengonsolidasikan dengan jumlah sumber daya yang lebih kecil dengan meningkatkan kepadatan, menghapus duplikasi, dan fungsionalitas lokasi bersama.

  • Pola desain cloud yang berpusat pada performa terkadang mengharuskan pengenalan komponen tambahan. Komponen tambahan ini biasanya menyebabkan peningkatan biaya keseluruhan untuk beban kerja. Misalnya, Anda dapat menyertakan bus pesan untuk tugas tingkat beban atau offload ke jaringan pengiriman aplikasi atau konten untuk waktu respons yang ditingkatkan.

  • Segmentasi sumber daya memungkinkan berbagai bagian beban kerja memiliki karakteristik performa yang berbeda, memungkinkan penyetelan independen untuk setiap segmen. Namun, ini dapat meningkatkan total biaya kepemilikan karena membutuhkan beberapa segmen yang dioptimalkan daripada satu komponen umum.

Tradeoff: Peningkatan investasi pada item yang tidak selaras dengan persyaratan fungsional. Salah satu pendekatan untuk pengoptimalan biaya adalah mengevaluasi nilai yang disediakan oleh solusi apa pun yang disebarkan.

  • Layanan premium dan SKU dapat membantu beban kerja memenuhi target performa. Layanan ini biasanya lebih mahal dan dapat menyediakan fitur tambahan. Mereka mungkin kurang dimanfaatkan jika banyak fitur premium tidak digunakan khusus untuk memenuhi target performa.

  • Beban kerja berkinerja memerlukan data telemetri untuk pengamatan yang harus ditransfer dan disimpan. Peningkatan telemetri performa yang dikumpulkan dapat meningkatkan biaya transfer dan penyimpanan data telemetri.

  • Aktivitas pengujian performa menambahkan biaya yang tidak terkait dengan nilai sistem produksi. Contoh biaya pengujian performa meliputi:

    • Membuat instans lingkungan yang didedikasikan untuk pengujian yang ber sentris performa.
    • Menggunakan alat performa khusus.
    • Menghabiskan waktu untuk menjalankan pengujian.
  • Anggota tim pelatihan untuk tugas pengoptimalan performa khusus atau membayar layanan penyetelan performa menambah biaya beban kerja.

Tradeoff Efisiensi Performa dengan Keunggulan Operasional

Tradeoff: Mengurangi pengamatan. Pengamatan diperlukan untuk memberikan beban kerja dengan peringatan yang bermakna dan membantu memastikan respons insiden yang berhasil.

  • Mengurangi volume log dan metrik untuk mengurangi waktu pemrosesan yang dihabiskan untuk mengumpulkan telemetri alih-alih tugas lain mengurangi pengamatan sistem secara keseluruhan. Beberapa contoh pengurangan pengamatan yang dihasilkan meliputi:

    • Ini membatasi titik data yang digunakan untuk membangun pemberitahuan yang bermakna.
    • Ini menyebabkan kesenjangan dalam cakupan untuk aktivitas respons insiden.
    • Ini membatasi pengamatan dalam interaksi dan batas yang sensitif terhadap keamanan atau sensitif terhadap kepatuhan.
  • Ketika pola desain performa diterapkan, kompleksitas beban kerja sering meningkat. Komponen ditambahkan ke alur kritis. Strategi pemantauan beban kerja dan pemantauan performa harus mencakup komponen tersebut. Ketika alur mencakup beberapa komponen atau batas aplikasi, kompleksitas pemantauan performa alur tersebut meningkat. Performa alur perlu dikorelasikan di semua komponen yang saling terhubung.

Tradeoff: Peningkatan kompleksitas dalam operasi. Lingkungan yang kompleks memiliki interaksi yang lebih kompleks dan kemungkinan dampak negatif yang lebih tinggi dari operasi rutin, ad hoc, dan darurat.

  • Meningkatkan efisiensi performa dengan meningkatkan kepadatan meningkatkan risiko dalam tugas operasional. Kesalahan dalam satu proses dapat memiliki radius ledakan besar.

  • Saat pola desain performa diterapkan, pola tersebut memengaruhi prosedur operasional seperti pencadangan, rotasi kunci, dan strategi pemulihan. Misalnya, pemartisian dan pemecahan data dapat mempersulit tugas rutin ketika tim mencoba memastikan bahwa tugas tersebut tidak memengaruhi konsistensi data.

Tradeoff: Stres budaya. Keunggulan Operasional berakar pada budaya tanpa cela, rasa hormat, dan peningkatan berkelanjutan.

  • Melakukan analisis akar penyebab masalah performa mengidentifikasi kekurangan dalam proses atau implementasi yang memerlukan koreksi. Tim harus mempertimbangkan latihan sebagai kesempatan belajar. Jika anggota tim disalahkan atas masalah, moral dapat terpengaruh.

  • Proses rutin dan ad hoc dapat memengaruhi performa beban kerja. Sering dianggap lebih disukai untuk melakukan aktivitas ini selama jam sibuk. Namun, jam sibuk bisa merepotkan atau di luar jam reguler bagi anggota tim yang bertanggung jawab atau terampil dalam tugas-tugas ini.

Jelajahi tradeoff untuk pilar lain: