Efisiensi Performa adalah tentang mempertahankan pengalaman pengguna bahkan ketika ada peningkatan beban dengan mengelola kapasitas. Strategi ini mencakup penskalaan sumber daya, mengidentifikasi dan mengoptimalkan potensi hambatan, dan mengoptimalkan performa puncak.
Model kematangan ini memandu Anda melalui perjalanan strategis pengoptimalan performa dengan menskalakan sumber daya, mengidentifikasi dan mengoptimalkan potensi hambatan, dan mengoptimalkan performa puncak.
Anda akan mulai dengan memilih komponen yang tepat dan menetapkan target performa, lalu maju untuk mengukur dan memantau perilaku beban kerja Anda. Saat Anda matang, Anda akan menggabungkan umpan balik pengguna nyata untuk memperbaiki pendekatan Anda, memanfaatkan wawasan produksi untuk peningkatan yang ditargetkan, dan pada akhirnya mencapai pengoptimalan tingkat lanjut melalui eksperimen dan otomatisasi. Setiap tahap dibangun berdasarkan yang sebelumnya, mengubah strategi performa Anda dari pemecahan masalah reaktif menjadi rekayasa efisiensi proaktif.
Model ini disusun menjadi lima tingkat kematangan yang berbeda, masing-masing dengan tujuan utama dan serangkaian strategi inti. Gunakan tampilan bertab di bawah ini untuk menjelajahi setiap tingkat. Pastikan juga untuk meninjau tradeoff yang disorot dan risiko terkait saat Anda maju.
Menetapkan ekspektasi performa yang jelas dan pilih komponen berukuran tepat yang selaras dengan kebutuhan Anda.
Model kematangan tingkat 1 berfokus pada pengumpulan ekspektasi performa dan memilih layanan cloud yang membantu Anda memenuhi harapan tersebut. Pada tingkat ini, Anda menyelidiki sumber daya dan komponen tersebut untuk menemukan yang paling cocok. Prioritaskan layanan yang hanya menyediakan kemampuan performa yang diperlukan. Pendekatan ini membantu mengontrol biaya dan mempertahankan kecepatan pengembangan Anda.
Strategi utama
Bekerja sama dengan pemangku kepentingan untuk memahami harapan umum untuk performa beban kerja. Harapan ini mungkin mencakup target untuk waktu pemuatan halaman untuk aplikasi web atau waktu respons untuk sistem interaktif. Pada tahap pengembangan beban kerja ini, perlakukan target ini sebagai pedoman daripada persyaratan keras karena fokus Anda belum mengukur metrik performa. Setelah Anda mengumpulkan harapan beban kerja, mulai selidiki jenis sumber daya yang mungkin sesuai dengan beban kerja Anda.
✓ Pilih sumber daya jaringan yang sesuai
Nilai kebutuhan jaringan Anda untuk menentukan layanan dan konfigurasi yang sesuai dengan beban kerja Anda. Pertimbangkan lalu lintas jaringan, bandwidth, latensi, dan throughput untuk memastikan bahwa jaringan mendukung beban kerja Anda secara efektif. Gunakan jaringan virtual privat dan jaringan backbone untuk mengurangi latensi.
Pastikan distribusi lalu lintas jaringan yang merata untuk mencegah kelebihan beban server dan mengurangi waktu respons. Menilai berbagai layanan penyeimbangan beban yang ditawarkan penyedia cloud Anda. Pertimbangkan jenis lalu lintas, perutean global atau regional, sasaran tingkat layanan, dan fitur tertentu seperti akselerasi situs dan penyeimbangan beban dengan latensi rendah.
Risiko: Luangkan waktu untuk sepenuhnya menyelidiki dan memahami berbagai opsi untuk jaringan dasar. Perubahan selanjutnya di area ini mungkin memerlukan desain ulang dan penyebaran ulang penuh.
✓ Pilih sumber daya komputasi yang sesuai
Menilai kebutuhan komputasi beban kerja Anda, termasuk jenis instans, skalabilitas, dan tingkat layanan. Pertimbangkan kontainerisasi untuk mencapai perolehan performa melalui isolasi, efisiensi sumber daya, waktu startup yang cepat, dan portabilitas.
Pilih layanan komputasi yang dapat memenuhi kebutuhan Anda, sekaligus memungkinkan Anda untuk dengan mudah menskalakan seiring berkembangnya beban kerja Anda. Membangun beban kerja Anda adalah proses berulang. Anda dapat memulai dari yang kecil dengan menggunakan SKU dengan kinerja rendah dan lebih sedikit instansi. Tingkatkan komponen-komponen ini nanti dalam siklus hidup beban kerja.
Trade-off: Bandingkan kebutuhan langsung Anda dengan anggaran. Cari peluang untuk mematikan atau membatalkan alokasi sumber daya komputasi saat tidak digunakan.
✓ Pilih layanan penyimpanan data yang sesuai
Tentukan kebutuhan beban kerja Anda untuk menyimpan, mengambil, dan mengelola data. Pertimbangkan karakteristik seperti:
Jenis data: Jenis data apa yang Anda harapkan untuk diserap, diproses, atau disimpan oleh beban kerja Anda?
Jilid: Berapa banyak data yang Anda harapkan untuk diserap, diproses, atau disimpan?
Throughput transaksi: Apa saja persyaratan performa untuk mengakses jenis data yang berbeda?
Konsistensi: Apa target Anda untuk konsistensi data di seluruh jenis data?
Daya tahan: Apa target Anda untuk durabilitas data di seluruh jenis data?
Pola akses: Jenis pola akses apa yang perlu didukung oleh beban kerja Anda? Misalnya, untuk komponen tertentu Anda mungkin perlu melakukan beberapa penulisan, tetapi sedikit pembacaan. Untuk komponen lain, Anda mungkin perlu melakukan sebaliknya.
Berdasarkan jawaban atas pertanyaan-pertanyaan ini, pilih layanan data terbaik untuk setiap kasus penggunaan beban kerja Anda.
Karena berbagai opsi untuk layanan data di lingkungan cloud, Anda dapat menyesuaikan desain Anda untuk menggunakan layanan yang berbeda agar paling sesuai dengan fungsionalitas setiap komponen dalam beban kerja Anda. Pendekatan ini membantu Anda mengoptimalkan performa setiap komponen.
Trade-off: Jangan terlalu rumit merancang komponen data Anda dengan memilih layanan data yang berbeda untuk komponen yang dapat Anda konsolidasikan ke dalam sebuah penyimpanan data tunggal. Seimbangkan antara performa versus biaya dan kompleksitas.
Terapkan pemantauan performa komprehensif untuk mendapatkan visibilitas ke dalam perilaku beban kerja Anda dan mengidentifikasi peluang pengoptimalan.
Tingkat 2 dari pilar Efisiensi Performa berfokus pada penggunaan informasi tentang beban kerja Anda untuk menginformasikan pengoptimalan performa Anda. Langkah pertama adalah mengidentifikasi alur beban kerja penting dari perspektif performa. Selanjutnya, uraikan beban kerja Anda ke dalam komponennya dan tetapkan target dan metrik terukur yang dapat Anda ambil dan analisis untuk pengoptimalan di masa mendatang. Terakhir, Anda harus menyelidiki pola desain yang mungkin membantu Anda meningkatkan efisiensi performa dan melakukan latihan perencanaan kapasitas awal. Aktivitas ini membantu Anda membangun rencana untuk masa depan segera beban kerja Anda. Pendekatan ini memastikan bahwa performa tidak menderita saat beban kerja berevolusi.
Strategi utama
Memberi peringkat dan mengategorikan alur beban kerja Anda adalah strategi penting di setiap pilar Well-Architected Framework. Menganalisis alur dari perspektif setiap pilar membantu Anda mengidentifikasi area yang perlu dioptimalkan. Anda dapat membandingkan pengoptimalan tersebut untuk membantu Anda menentukan tempat berinvestasi. Misalnya, dalam beberapa skenario, masalah keamanan untuk alur mungkin lebih besar dari masalah performa. Setelah Anda mengategorikan dan memberi peringkat alur, fokus pada alur yang Anda identifikasi sebagai penting untuk memulai perencanaan pengoptimalan Anda. Kriteria khusus performa yang dapat membantu Anda mengidentifikasi alur penting meliputi:
Frekuensi: Jumlah kali alur dilakukan, seperti mencari produk.
Criticality: Tingkat kepentingan yang dimiliki alur terhadap keberhasilan keseluruhan aplikasi, seperti pencarian profil pengguna.
Risiko: Tingkat risiko yang dimiliki alur pada performa keseluruhan, seperti menghasilkan laporan yang kompleks.
Intensitas data: Jumlah tekanan yang diberikan aliran pada lapisan data.
Intensifitas arsitektur: Sejauh mana alur berinteraksi dengan komponen di seluruh beban kerja.
✓ Membuat metrik utama untuk sumber daya dan komponen beban kerja Anda yang membantu Anda memenuhi target Anda
Tetapkan target performa untuk komponen dan sumber daya beban kerja Anda berdasarkan penelitian pasar, analisis kompetitif, dan survei. Fokus pada metrik utama seperti waktu respons, throughput, dan latensi. Menetapkan target untuk komponen yang berbeda, alur pengguna, alur kerja, aliran data, dependensi eksternal, dan performa beban kerja keseluruhan.
Tetapkan target yang realistis dan terukur untuk setiap metrik sambil mengingat harapan pelanggan. Gunakan persentil seperti P99, P95, dan P50 untuk mendapatkan perspektif komprehensif. Lakukan pengujian untuk menetapkan performa dasar, tetapi jangan menekankan pengoptimalan secara berlebihan.
Catat semua target performa di lokasi terpusat yang dapat diakses oleh tim pengembangan dan operasi. Gunakan dasbor dan laporan untuk membuat target terlihat dan dapat ditindaklanjuti.
Perencanaan kapasitas adalah proses berulang yang harus dilakukan secara teratur sepanjang siklus hidup beban kerja Anda. Pada tahap ini, Anda mungkin belum sepenuhnya terbiasa dengan semua teknologi yang digunakan atau mungkin masih mengevaluasi opsi yang berbeda. Ketidakpastian ini dapat membatasi kemampuan Anda untuk merencanakan secara komprehensif untuk kebutuhan di masa depan. Untuk latihan perencanaan kapasitas awal ini, tujuannya adalah untuk beralih dari manajemen kapasitas reaktif, yang mencakup penambahan sumber daya untuk memenuhi permintaan segera. Sebaliknya, fokusnya adalah pada perencanaan proaktif, di mana Anda mengantisipasi kapasitas yang diperlukan untuk periode yang ditentukan. Untuk mencapai perencanaan kapasitas yang efektif, kumpulkan dan analisis data tentang penggunaan sumber daya, termasuk pola historis untuk beban kerja yang ada. Gunakan analisis statistik, analisis tren, dan pemodelan prediktif untuk memperkirakan kebutuhan di masa mendatang. Pastikan prakiraan ini selaras dengan tujuan beban kerja.
Risiko: Dalam lingkungan tradisional berbasis pusat data, provisi berlebihan adalah pendekatan umum untuk perencanaan kapasitas. Di lingkungan cloud, provisi berlebihan dapat membuang-buang uang. Pertimbangkan dengan cermat harapan bisnis Anda untuk mengembangkan garis waktu untuk menambahkan kapasitas dengan cara yang memenuhi kebutuhan performa Anda tanpa memengaruhi anggaran Anda secara negatif.
Ada banyak pola desain aplikasi umum yang dapat membantu Anda mengoptimalkan beban kerja Anda untuk performa. Anda dapat mencapai perolehan performa dengan menambahkan cache atau mengembangkan strategi sharding. Untuk daftar pola komprehensif yang mungkin membantu Anda meningkatkan beban kerja, lihat Pola desain cloud.
Trade-off: Beberapa pola desain mungkin menambahkan tingkat kompleksitas ke beban kerja Anda. Bandingkan beban manajemen ekstra terhadap keuntungan efisiensi Anda untuk menentukan apakah pola tertentu layak diterapkan.
Pengoptimalan kode membuat seluruh beban kerja Anda lebih efisien. Tugas aplikasi berjalan lebih cepat dan menggunakan lebih sedikit sumber daya komputasi, sehingga Anda dapat memaksimalkan performa infrastruktur Anda. Pertimbangkan pendekatan pengoptimalan kode berikut:
Instrumen kode Anda. Menginstrumenasi kode Anda membantu Anda mengidentifikasi masalah dalam performa kode Anda dengan menangkap telemetri selama runtime. Proses ini membantu Anda mengidentifikasi dan menyelesaikan masalah di awal siklus pengembangan.
Identifikasi jalur panas. Melengkapi kode Anda membantu Anda mengidentifikasi jalur panas. Jalur panas adalah bagian penting atau penggunaan tinggi dari program yang membutuhkan performa tinggi dan latensi rendah.
Optimalkan logika kode. Temukan cara untuk menyederhanakan logika kode Anda untuk efisiensi yang lebih baik. Hapus panggilan fungsi dan operasi pemrosesan data yang tidak perlu. Minimalkan operasi pengelogan, permintaan jaringan, dan alokasi memori. Cari peluang untuk menggunakan SDK dan pustaka yang lebih berkinerja.
Gunakan konkurensi dan paralelisme. Menggunakan konkurensi dan paralelisme dapat meningkatkan efisiensi aplikasi Anda dengan mengelola beberapa tugas secara efektif. Konkurensi menangani beberapa tugas dengan beralih di antara tugas tersebut, sementara paralelisme memproses beberapa tugas secara bersamaan.
Kumpulkan data performa aplikasi seperti throughput, latensi, dan waktu penyelesaian untuk mengidentifikasi hambatan dan meningkatkan pengalaman pengguna. Gunakan pelacakan terdistribusi dan pengelogan terstruktur untuk analisis yang lebih mudah. Kumpulkan metrik dan log untuk semua sumber daya. Gunakan alat seperti Azure Monitor Insights untuk pemantauan performa. Kumpulkan data database dan penyimpanan, dan kumpulkan metrik performa untuk komputer virtual. Simpan semua data yang dikumpulkan di satu tempat untuk akses dan analisis yang mudah.
Risiko: Pastikan Anda menyiapkan rotasi log dan kebijakan retensi karena jumlah data yang Anda kumpulkan dan simpan dapat tumbuh dengan cepat dan biaya dapat meningkat secara tak terduga.
Manfaatkan wawasan pengguna nyata dan umpan balik sistem untuk mendorong peningkatan performa yang ditargetkan yang meningkatkan pengalaman pengguna.
Tingkat 3 pilar Efisiensi Performa berfokus pada penggabungan sinyal internal dan eksternal untuk menyempurnakan target performa, desain dan konfigurasi beban kerja, dan praktik operasional terkait. Dalam tingkat kematangan sebelumnya, Anda mungkin telah menetapkan target dan konfigurasi performa berdasarkan kebutuhan kecepatan pengembangan dan pengujian internal. Saat Anda mengembangkan beban kerja, menggabungkan umpan balik dari pengguna internal dan eksternal serta pemangku kepentingan membantu memastikan target performa yang realistis untuk beban kerja produksi Anda. Pendekatan ini memungkinkan Anda untuk memenuhi target tersebut tanpa mengorbankan persyaratan untuk pilar lain.
Strategi utama
Pindah ke produksi berarti Anda harus siap untuk segera merespons masalah performa. Pemantauan performa yang kuat dan peringatan yang berguna dan dapat ditindak lanjuti membantu memastikan bahwa tim yang tepat diberi tahu tentang masalah dan dapat memulai aktivitas penyelidikan dan pemecahan masalah mereka dengan cepat. Strategi berikut dapat membantu Anda menentukan aktivitas respons masalah performa Anda:
Konfigurasikan pemberitahuan performa di platform pemantauan Anda.
Sesuaikan pemberitahuan Anda untuk memberikan peringatan yang dapat ditindakkan saat komponen berisiko mengalami masalah performa. Pendekatan ini dapat mencakup pengaturan ambang batas pada nilai statis atau mendasaarnya pada perubahan tren untuk metrik tertentu. Tentukan nilai pemicu melalui pengujian berkelanjutan untuk mencegah positif palsu.
Analisis log dan metrik performa untuk mengidentifikasi penyebab masalah yang mendasar.
Terus informasikan kepada pemangku kepentingan tentang status dan kemajuan penyelesaian masalah kinerja.
Tetapkan kerangka kerja untuk memprioritaskan masalah performa berdasarkan dampaknya.
Dokumentasikan semua langkah, proses, dan praktik terbaik untuk merespons masalah performa.
Sebagai bagian dari strategi pemantauan performa Anda, pastikan Anda secara khusus memantau performa alur Anda. Pahami efek setiap alur pada performa beban kerja. Untuk alur, identifikasi potensi masalah melalui wawasan perilaku pengguna. Lacak waktu respons, kesalahan, dan metrik lainnya untuk mengoptimalkan alur penting. Analisis log untuk melacak performa alur dan mengidentifikasi masalah.
Tinjau umpan balik pengguna internal dan eksternal secara teratur tentang performa untuk menilai apakah target Anda selaras dengan harapan. Pertimbangkan untuk menggunakan polling kepuasan pelanggan, sistem komentar, dan pengujian pengguna yang ditargetkan untuk mengumpulkan umpan balik yang berguna.
Jika memungkinkan untuk beban kerja Anda, pertimbangkan untuk menggunakan pendekatan Pemantauan Pengguna Nyata (RUM). Pendekatan ini dapat membantu Anda menentukan apakah pengalaman pengguna memenuhi harapan Anda untuk performa.
Application Insights dan Azure Traffic Manager menyediakan fungsionalitas untuk menangkap data RUM untuk situs web.
Lacak performa aplikasi Anda dengan menggunakan metrik yang selaras dengan tujuan dan target Anda. Bandingkan metrik ini dengan umpan balik pemangku kepentingan pengguna dan bisnis untuk memastikan bahwa Anda mengumpulkan data yang tepat. Pisahkan metrik terkait bisnis dari data performa untuk analisis yang lebih mudah, meskipun ada beberapa tumpang tindih. Pendekatan ini membuat data lebih jelas dan membantu tim membuat keputusan berdasarkan informasi.
Menganalisis tren membantu Anda merencanakan persyaratan kapasitas Anda. Perbarui prediksi Anda agar sesuai dengan tujuan beban kerja dan permintaan pengguna sehingga Anda selalu memiliki sumber daya yang cukup. Tinjau perjanjian tingkat layanan penyedia cloud Anda secara teratur untuk memastikan bahwa Anda dapat menambahkan sumber daya sesuai kebutuhan tanpa mengalami batas layanan.
Saat Anda mengembangkan perencanaan kapasitas Anda, bekerja samalah dengan pembuat keputusan bisnis untuk tetap selaras dengan tujuan bisnis.
Trade-off: Menyeimbangkan perencanaan kapasitas performa dengan keandalan dan persyaratan anggaran. Bekerja sama dengan pemangku kepentingan untuk menemukan kompromi praktis ketika persyaratan bertentangan.
✓ Optimalkan strategi penskalakan Anda
Gunakan teknik penskalaan tingkat lanjut untuk mengoptimalkan penggunaan sumber daya Anda. Sesuaikan ambang batas yang digunakan untuk operasi penskalaan berdasarkan umpan balik internal dan eksternal. Bangun otomatisasi untuk melakukan operasi penskalaan untuk komponen yang tidak memiliki fungsionalitas penskalaan otomatis asli. Gunakan penskalaan terjadwal untuk komponen yang digunakan atau diam secara ringan pada waktu yang dapat diprediksi sepanjang hari, minggu, atau bulan. Terus mengevaluasi konfigurasi penskalaan dan membuat penyempurnaan untuk memenuhi tuntutan beban kerja yang berfluktuasi dengan lebih baik.
✓ Optimalkan manajemen data
Inefisiensi dalam manajemen data dapat menyebabkan masalah performa di seluruh beban kerja Anda. Gunakan strategi berikut untuk mengoptimalkan data estate Anda:
Bagi himpunan data atau beban kerja besar menjadi bagian yang lebih kecil, yang disebut partisi, untuk penyimpanan atau pemrosesan terpisah. Pendekatan ini memungkinkan pemrosesan paralel, mengurangi ketidakcocokan, dan meningkatkan waktu penggunaan dan pemrosesan sumber daya. Ini juga mendistribusikan data di beberapa perangkat penyimpanan, yang mengurangi beban individual dan meningkatkan performa keseluruhan. Sesuaikan jenis partisi dengan kasus penggunaan yang spesifik. Pemartisian dapat berupa horizontal, vertikal, atau fungsional, tergantung pada kebutuhan sistem. Untuk informasi selengkapnya tentang pola desain yang menggunakan partisi, lihat Pola desain Efisiensi Performa.
Optimalkan kueri dengan menggunakan fitur seperti wawasan performa kueri untuk Azure SQL Database.
Pastikan model data Anda sangat cocok untuk beban kerja Anda dengan mempertimbangkan faktor-faktor seperti normalisasi, pengindeksan, dan partisi.
Sesuaikan infrastruktur penyimpanan dengan persyaratan beban kerja dengan mengoptimalkan pengaturan seperti ukuran buffer dan caching.
Mendesain pengujian performa yang dapat membantu Anda memahami performa beban kerja Anda dalam skenario produksi yang berbeda. Gunakan berbagai pengujian seperti beban, stres, rendam, lonjakan, dan uji kompatibilitas berdasarkan kriteria dan metrik. Mengukur bagaimana setiap pengujian memengaruhi performa beban kerja Anda. Metrik harus mencakup aspek performa seperti waktu respons, throughput, dan memori dan penggunaan CPU. Tentukan kriteria penerimaan yang selaras dengan target. Untuk informasi selengkapnya, lihat Rekomendasi untuk pengujian performa.
Pengujian performa harus dilakukan di lingkungan khusus sebagai bagian dari strategi pengujian Anda secara keseluruhan. Pendekatan ini mencakup pengujian keandalan dan keamanan.
Tinjau hasil pengujian untuk menentukan hambatan dan inefisiensi. Membandingkan temuan terhadap tujuan, kriteria yang telah ditentukan sebelumnya, atau pelaksanaan sebelumnya.
Trade-off: Lingkungan pengujian dapat menjadi pendorong biaya utama. Desain lingkungan pengujian hanya dengan sumber daya yang diperlukan untuk meniru skenario tertentu yang diuji secara akurat. Untuk meminimalkan biaya penggunaan, pastikan sumber daya dimatikan atau dihapus setelah pengujian.
Risiko: Jika Anda perlu menggunakan data produksi, pastikan bahwa data sensitif dihapus sebelum Anda menyalinnya ke lingkungan pengujian. Gunakan data sintetis saat praktis.
Fungsi pengujian penting lainnya adalah membangun garis besar performa Anda. Garis dasar menyediakan titik referensi untuk membandingkan performa sepanjang waktu. Identifikasi metrik performa dan gunakan sebagai metrik dasar. Evaluasi performa di masa mendatang terhadap garis besar ini untuk mengidentifikasi peningkatan atau degradasi. Tinjau dan perbarui garis besar secara teratur untuk menangkap elemen dan fitur desain yang diperbarui. Garis besar yang usang dapat mengakibatkan target yang tidak realistis dan tidak dapat dicapai saat beban kerja matang dan fitur baru ditambahkan.
Menumbuhkan lingkungan peningkatan berkelanjutan di mana tim belajar dari produksi dan mendengarkan umpan balik internal dan eksternal. Lengkapi tim beban kerja dengan keterampilan dan pola pikir yang diperlukan untuk mengoptimalkan performa dan menangani fluktuasi permintaan. Alokasikan waktu untuk memantau dan mengatasi masalah performa. Tetapkan ekspektasi yang jelas dengan target performa yang terlihat, garis besar, dan ambang penyimpangan yang dapat diterima.
Mengubah wawasan produksi menjadi peningkatan performa sistematis melalui pengambilan keputusan berbasis data dan pengoptimalan proaktif.
Tingkat 4 dari model kematangan mengasumsikan bahwa beban kerja Anda sedang dalam produksi dan telah beroperasi untuk waktu yang cukup untuk mengumpulkan wawasan yang berguna tentang bagaimana biasanya beroperasi. Pada tingkat ini, Anda harus menggunakan informasi ini untuk membuat pembaruan yang diperlukan dan peningkatan lebih lanjut.
Gunakan mekanisme telemetri dan umpan balik untuk mengidentifikasi masalah performa seperti hambatan, dan mengembangkan rencana untuk melakukan perbaikan. Gunakan praktik manajemen perubahan yang matang untuk memastikan bahwa Anda tidak secara tidak sengaja menyebabkan lebih banyak masalah saat Membuat perubahan pada lingkungan Anda.
Perlu diingat bahwa peningkatan berulang mencapai titik pengembalian yang berkurang. Anda perlu memutuskan kapan Anda mencapai status berjalan yang memenuhi kebutuhan Anda. Status yang dapat diterima adalah ketika biaya dan beban perbaikan inefisiensi tidak melebihi peningkatan performa kecil yang Anda peroleh.
Ingatlah bahwa setiap perubahan yang Anda lakukan pada lingkungan Anda untuk meningkatkan performa secara langsung memengaruhi pilar lain dari Well-Architected Framework. Pengoptimalan biaya adalah kompromi yang paling umum. Menilai dampak dengan hati-hati ke pilar lain sebelum Anda melakukan peningkatan performa untuk menjaga keseimbangan yang tepat untuk kebutuhan Anda.
Strategi utama
Di Tingkat 4, Anda harus memantau dan menguji performa dalam produksi. Anda harus memiliki rencana dan skenario pengujian yang dikembangkan dengan baik dan data pengujian yang sudah ada. Tujuan pengujian adalah untuk menangkap potensi masalah performa sebelum terjadi dalam produksi. Jadi, pemantauan dan pengujian harus ketat, terstandarisasi, dan didokumenkan secara menyeluruh. Pertimbangkan rekomendasi berikut:
Tinjau kembali patokan Anda secara berkelanjutan. Terapkan apa yang Anda pelajari dari pemantauan performa Anda untuk memastikan bahwa garis besar Anda mencerminkan metrik performa aktual. Penting untuk mempertahankan garis besar karena Anda menjalankan pengujian terhadap garis besar tersebut untuk memastikan bahwa penyebaran seperti pembaruan fitur tidak memengaruhi performa secara negatif.
Geser ke kiri dalam pengujian Anda. Integrasikan pengujian sebelumnya dalam siklus pengembangan Anda untuk menangkap potensi masalah sebelum terjadi dalam produksi.
Geser ke kanan dalam pengujian Anda. Pengujian di lingkungan produksi. Untuk memastikan bahwa pengujian tidak mengganggu, gunakan strategi seperti penyebaran biru-hijau dan pengujian A/B.
Gunakan transaksi sintetis dalam pengujian Anda. Transaksi sintetis memungkinkan Anda menguji pengalaman pengguna dunia nyata secara konsisten. Pengujian ini membantu Anda mengidentifikasi masalah dan potensi peningkatan sebelum pengguna terpengaruh.
Mengotomatiskan pemantauan dan pengujian. Gunakan alat yang terbukti di industri untuk mengotomatiskan pemantauan dan pemberitahuan terhadap garis besar Anda dan untuk pengujian performa. Automation mengurangi langkah manual dan memastikan konsistensi.
Trade-off: Pengujian dalam produksi dapat menjadi kompleks dan biasanya membutuhkan upaya signifikan dari tim DevOps. Persyaratan ini dapat memengaruhi kecepatan pengembangan dan fungsi operasional lainnya. Penyebaran biru-hijau dan pengujian A/B juga dapat menambahkan biaya ke beban kerja dengan menggunakan sumber daya duplikat saat pengujian. Sertakan pertimbangan ini dalam perencanaan anggaran dan pengembangan Anda.
✓ Menerapkan pengoptimalan manajemen data tingkat lanjut
Di Tingkat 4, Anda harus memiliki banyak strategi pengoptimalan manajemen data yang sudah ada. Gunakan pengalaman produksi Anda untuk membuat pengoptimalan lebih lanjut untuk menyempurnakan manajemen data Anda dan memastikan bahwa beban kerja Anda berkinerja efisien karena terus berkembang.
Gunakan kompresi data lossless dan lossy untuk mengurangi jejak data Anda. Pendekatan ini membantu menghemat ruang penyimpanan dan penggunaan bandwidth dan dapat mengakibatkan transfer data dan waktu akses yang lebih cepat.
Mengembangkan dan menerapkan kebijakan arsip dan penghapusan untuk data yang jarang digunakan atau tidak lagi digunakan. Pindahkan data ke penyimpanan yang terpisah dan lebih murah atau hapus sama sekali untuk membantu menghemat ruang penyimpanan dan penggunaan bandwidth.
Optimalkan strategi caching dan sharding Anda berdasarkan pengalaman produksi.
Replikasi data ke wilayah yang dekat dengan pengguna Anda untuk mengurangi latensi. Beberapa teknologi database, seperti Azure Cosmos DB, menyediakan replika yang dapat dibaca dan dapat ditulis di beberapa wilayah. Replika semakin mengurangi latensi saat Anda menyebarkan beban kerja di seluruh wilayah.
Sertakan pemantauan performa penyimpanan dalam solusi pemantauan beban kerja Anda. Masalah performa dapat dengan cepat muncul saat batas penyimpanan dilanggar. Banyak layanan penyimpanan cloud menerapkan pembatasan kecepatan ketika ambang batas terlampaui, yang menyebabkan kemacetan yang memengaruhi fungsionalitas aplikasi hilir. Memantau performa penyimpanan dan mengawasi tren dapat membantu Anda secara proaktif menghindari batasan.
✓ Mengoptimalkan aliran kritis melalui isolasi
Jika praktis, isolasi alur penting untuk mencegah pertikaian sumber daya dan menyederhanakan manajemen. Pertimbangkan strategi berikut:
Dedikasikan sumber daya komputasi, penyimpanan, dan jaringan ke alur penting.
Gunakan pendekatan kontainerisasi untuk mengisolasi alur kritis di tingkat perangkat lunak atau logis.
Alokasikan kapasitas secara eksplisit untuk CPU, memori, dan input/output disk ke alur kritis untuk memastikan bahwa mereka disediakan dengan benar.
Trade-off: Mengisolasi alur dengan sumber daya khusus lebih mahal daripada berbagi sumber daya antar alur. Lakukan analisis cost-benefit sebelum Anda menerapkan pendekatan ini untuk memastikan bahwa ini adalah pendekatan terbaik untuk kasus penggunaan Anda.
✓ Perluas pengoptimalan kode yang Anda dapatkan dari pengalaman produksi
Kunjungi kembali pengoptimalan kode yang Anda buat sebelumnya dalam pengembangan beban kerja Anda untuk menemukan area yang membutuhkan peningkatan lebih lanjut. Misalnya, Anda sekarang harus memiliki telemetri dari produksi yang dapat membantu Anda menemukan inefisiensi seperti kebocoran memori. Anda juga dapat mengonfirmasi jalur panas yang Anda identifikasi dengan menggunakan data runtime produksi, atau Anda dapat menemukan jalur panas yang tidak terduga.
✓ Mengoptimalkan tugas operasional
Tugas operasional seperti pemindaian virus, rotasi rahasia, cadangan, pengoptimalan indeks seperti reorganisasi atau pembangunan ulang, dan penyebaran semuanya dapat memengaruhi performa beban kerja Anda. Mengoptimalkan efisiensinya membuat beban kerja Anda berjalan lancar. Pertimbangkan strategi berikut untuk mengoptimalkan jenis tugas ini:
Menyetel dengan sempurna perangkat operasional. Uji dan pahami bagaimana alat penting seperti pemantauan integritas file dan pemindaian virus memengaruhi performa. Selanjutnya, lakukan penyesuaian konfigurasi untuk mereka. Misalnya, buat daftar pengecualian untuk pemindaian virus untuk meminimalkan durasinya.
Menyempurnakan operasi database. Cari peluang untuk menyempurnakan operasi seperti pencadangan database, perubahan skema, penyetelan performa, dan pemantauan. Gunakan alat asli seperti penyetelan otomatis di Azure SQL Database untuk membantu upaya ini.
Selidiki dan uji fitur platform baru yang tersedia untuk menentukan apakah fitur tersebut dapat membantu Anda mendapatkan efisiensi. Pantau umpan balik dan metrik performa secara konsisten dari penambahan baru ini untuk menyempurnakan pendekatan Anda.
Trade-off: Ketahui bagaimana platform cloud Anda mengemas kemampuan ke dalam SKU. Beberapa SKU yang memberikan performa lebih tinggi mungkin dialokasikan secara berlebihan untuk kasus penggunaan Anda saat ini, tetapi bisa menghemat waktu dan upaya Anda dalam migrasi di masa depan.
Trade-off: Mengadopsi beberapa jenis layanan dapat berarti memigrasikan aplikasi atau data Anda, yang mungkin mengakibatkan waktu henti untuk menyelesaikan migrasi. Sebagai bagian dari evaluasi Anda, tentukan apakah Anda dapat mentolerir waktu henti yang diperlukan agar berhasil bermigrasi.
✓ Prioritaskan upaya pengoptimalan
Mengoptimalkan performa secara proaktif berarti meningkatkan efisiensi beban kerja Anda sebelum masalah terjadi dengan mengidentifikasi hambatan dan menerapkan pengoptimalan. Berdasarkan analisis, buat peningkatan khusus melalui perubahan kode, penyesuaian infrastruktur, atau pembaruan konfigurasi.
Mencapai performa puncak melalui eksperimen, otomatisasi, dan teknik pengoptimalan mutakhir yang memberikan nilai bisnis yang terukur.
Model kematangan tingkat 5 berfokus pada identifikasi peluang untuk membuat penyempurnaan performa yang berharga di seluruh beban kerja Anda. Ambil pendekatan berbasis eksperimen untuk pengoptimalan Anda. Kunjungi kembali area desain beban kerja seperti praktik penyebaran, pemantauan dan penelusuran kesalahan, dan otomatisasi operasional untuk menemukan peningkatan lebih lanjut. Mengadopsi pola pikir peningkatan berkelanjutan dengan meninjau desain beban kerja dan praktik operasional secara teratur. Gunakan proses manajemen perubahan yang ditetapkan untuk memastikan bahwa peningkatan diimplementasikan dengan aman dan efisien.
Strategi utama
Ambil pendekatan proaktif untuk meningkatkan efisiensi melalui eksperimen. Mulailah dengan hipotesis untuk pembaruan beban kerja yang Anda harapkan untuk memberikan keuntungan performa yang terukur, berdasarkan data performa yang diamati yang mengidentifikasi hambatan atau inefisiensi. Bangun lingkungan pengujian yang meniru kondisi dunia nyata sebanyak mungkin untuk memvalidasi atau menyangkal hipotesis Anda. Setelah Anda membuktikan hipotesis Anda, nilai return on investment (ROI) dari perubahan tersebut untuk memutuskan apakah itu layak diterapkan. Sertakan semua pilar Azure Well-Architected Framework dalam evaluasi ROI Anda. Jika pertukaran yang perlu Anda buat untuk pilar lain dapat diterima, perubahan kemungkinan layak diupayakan.
✓ Optimalkan penyebaran dan rilis fitur
Pada Tingkat 5, Anda harus memiliki proses peningkatan standar yang berfungsi dengan andal. Pada tingkat ini, evaluasi kembali proses Anda untuk menentukan apakah strategi Anda saat ini paling cocok untuk efisiensi operasional. Menilai apakah model penyebaran biru-hijau, kenari, atau lainnya selaras dengan kebutuhan organisasi Anda. Pertimbangkan untuk menggunakan bendera fitur untuk meluncurkan dan mengembalikan fitur dengan mudah ke grup pengguna tertentu. Pastikan strategi pencadangan Anda mendukung pemulihan cepat ke keadaan baik yang telah diketahui.
✓ Mengoptimalkan proses pemantauan dan debugging
Mengumpulkan log dan telemetri dari komponen Anda secara inheren memengaruhi performa Anda. Ukur bagaimana platform pemantauan Anda memengaruhi beban kerja Anda, termasuk elemen seperti pengelogan, telemetri, instrumentasi, dan penelusuran kesalahan jarak jauh. Identifikasi peluang untuk pengoptimalan. Jika salah satu proses ini mengurangi performa lebih dari yang meningkatkan pengamatan, pertimbangkan untuk mengonfigurasi ulang atau menonaktifkannya. Sebagai bagian dari praktik peningkatan berkelanjutan Anda, tinjau data pemantauan yang Anda kumpulkan secara teratur untuk memastikan bahwa Anda hanya mengumpulkan informasi paling berharga untuk wawasan performa yang Anda butuhkan.
Evaluasi ulang peringatan performa Anda untuk menentukan apakah Anda hanya menerima peringatan yang berharga. Hapus pemberitahuan yang tidak dapat ditindaklanjuti dan konfigurasi ulang pemberitahuan yang tidak memiliki informasi yang memadai untuk memahami dengan jelas sifat masalah performa dan komponen yang terpengaruh.
✓ Perluas otomatisasi operasi
Cari peluang untuk memperluas otomatisasi tugas operasional Anda untuk mencapai efisiensi lebih lanjut. Anda harus memiliki banyak tugas operasional berulang yang otomatis pada Tingkat 5, jadi lihat operasi komprehensif untuk mengidentifikasi target otomatisasi berharga lainnya. Pertimbangkan tugas terkait performa berikut:
Pengujian performa: Gunakan alat standar industri yang mapan untuk mensimulasikan beban kerja.
Penyebaran: Terapkan integrasi berkelanjutan dan alat penyebaran berkelanjutan untuk penyebaran yang konsisten dan efisien.
Manajemen insiden: Mengotomatisasi pengalihan pemberitahuan, pembuatan tiket, dan penugasan.
Tindakan remediasi: Mengotomatiskan tindakan seperti memulai ulang layanan dan menyesuaikan alokasi sumber daya.
Mekanisme penyembuhan diri: Bangun kemampuan untuk memperbaiki masalah performa yang diketahui secara otomatis.