Rekomendasi untuk mengoptimalkan biaya alur
Berlaku untuk rekomendasi daftar periksa Azure Well-Architected Framework Cost Optimization ini:
CO:09 | Mengoptimalkan biaya alur. Menyelaraskan biaya setiap alur dengan prioritas alur. Saat Anda memprioritaskan alur, pertimbangkan fitur, fungsionalitas, dan persyaratan nonfungsi dari setiap alur. Mengoptimalkan pengeluaran aliran sering membutuhkan kompromi strategis. |
---|
Panduan ini menjelaskan rekomendasi untuk mengoptimalkan biaya setiap alur dalam beban kerja Anda. Mengoptimalkan biaya alur dalam beban kerja melibatkan alokasi dan pengelolaan sumber daya secara strategis untuk meminimalkan pengeluaran sambil mempertahankan performa. Pengoptimalan ini sangat penting karena memastikan pemanfaatan sumber daya yang diinvestasikan secara efisien, mengurangi pengeluaran yang tidak perlu, dan meningkatkan laba investasi secara keseluruhan untuk infrastruktur. Jika Anda tidak mengoptimalkan biaya alur dalam beban kerja, Anda berisiko mengesampingkan sumber daya, yang mengakibatkan biaya operasional yang meningkat dan profitabilitas yang berkurang.
Definisi
Istilah | Definisi |
---|---|
Dekopel | Strategi menghapus aliran dari sumber daya yang berisi beberapa alur dan menempatkannya ke sumber daya terpisah. |
Alur | Dalam beban kerja, urutan tindakan yang melakukan fungsi tertentu. Alur melibatkan pergerakan data dan berjalannya proses antar komponen beban kerja. |
Alur sistem | Alur informasi dan proses dalam sistem. Sistem secara otomatis mengikuti alur ini untuk mengaktifkan alur pengguna atau fungsionalitas beban kerja. |
Alur pengguna | Jalur atau urutan tindakan yang diambil pengguna dalam aplikasi atau sistem. |
Strategi desain utama
Investasikan lebih banyak dalam alur prioritas tinggi daripada dalam alur prioritas yang lebih rendah. Menyelaraskan prioritas dan pengeluaran alur dapat melibatkan alur pemisahan yang saat ini berbagi sumber daya yang sama. Ini juga dapat melibatkan menggabungkan alur yang memiliki persyaratan serupa tetapi dijalankan pada sumber daya terpisah. Misalnya, Anda memiliki aplikasi web yang mencakup beberapa alur, seperti pendaftaran pengguna, masuk, dan pemrosesan data. Alur ini berjalan pada satu server, meskipun memiliki kebutuhan sumber daya yang berbeda. Untuk mengoptimalkan biaya dan performa, Anda mungkin memisahkan alur atau menggabungkan alur:
Alur terpisah. Misalnya, Anda dapat memisahkan alur pendaftaran pengguna dari yang lain dan memindahkannya ke server khusus dengan biaya lebih rendah. Alur ini penting tetapi tidak intensif sumber daya, jadi ini adalah kandidat yang baik untuk server yang lebih murah.
Menggabungkan alur. Misalnya, Anda dapat menggabungkan alur masuk dan pemrosesan data, yang keduanya memiliki persyaratan sumber daya yang lebih tinggi, dan menjalankannya bersama-sama di server berperforma tinggi. Menggabungkan alur ini memungkinkan server untuk menangani kebutuhan intensif sumber daya dari kedua alur secara efisien. Ini mengoptimalkan performa dan biaya.
Dalam beban kerja, mungkin ada berbagai jenis alur atau jalur yang perlu Anda pertimbangkan. Panduan ini berfokus pada jenis alur berikut:
Alur sistem. Mengoptimalkan aliran sistem melibatkan persederhanaan komunikasi dan interaksi antar komponen sistem, meminimalkan hambatan, dan memastikan pemanfaatan sumber daya yang efisien.
Alur pengguna. Mengoptimalkan alur pengguna melibatkan peningkatan pengalaman pengguna, mengurangi titik gesekan, dan memastikan navigasi dan interaksi yang lancar dalam aplikasi atau sistem.
Membuat inventaris alur
Inventori alur adalah daftar dan deskripsi komprehensif tentang semua urutan tindakan, transisi data, dan interaksi sistem dalam beban kerja. Inventori alur adalah langkah pertama untuk memastikan investasi selaras dengan prioritas alur. Anda hanya boleh mengoptimalkan alur ketika Anda sepenuhnya memahami tujuan dan dependensinya. Berikut adalah langkah-langkah untuk membuat inventaris alur beban kerja:
Alur dokumen. Mulailah dengan mendokumentasikan dan mencantumkan semua alur yang ada dalam beban kerja Anda untuk mendapatkan pemahaman tentang status sistem yang komprehensif. Sertakan setiap urutan tindakan, transisi data, dan interaksi sistem. Biasakan diri Anda dengan setiap komponen, seperti layanan eksternal, database, middleware, dan integrasi pihak ketiga. Selain itu, lacak atau perkirakan volume permintaan dari waktu ke waktu.
Memvisualisasikan alur. Untuk mendapatkan perspektif yang lebih jelas, mewakili temuan Anda secara visual, mungkin dalam diagram atau diagram alur. Visualisasi membantu Anda melihat saling ketergantungan antar komponen. Pertimbangkan untuk menggunakan alat seperti Visio untuk membantu Anda dengan visualisasi.
Mengategorikan alur. Bundel alur serupa, dengan mempertimbangkan atribut seperti fungsionalitasnya (misalnya, autentikasi, pengambilan data, dan pemrosesan transaksi), kekritisan terhadap bisnis, atau sumber daya yang mereka gunakan (CPU, memori, atau bandwidth).
Memprioritaskan alur
Prioritas alur adalah proses mengklasifikasikan alur berdasarkan pengaruhnya pada hasil bisnis, implikasi pada pengalaman pengguna, dan sumber daya yang mereka konsumsi. Alur kritis sering membutuhkan tingkat ketersediaan yang lebih tinggi, waktu pemulihan yang lebih cepat, dan performa yang lebih baik untuk memenuhi tujuan beban kerja. Dengan memprioritaskan alur, Anda dapat menyelaraskan pengeluaran dengan lebih baik untuk prioritas alur. Untuk memprioritaskan alur, pertimbangkan langkah-langkah berikut:
Identifikasi nilai alur. Saat mengoptimalkan biaya alur beban kerja, Anda perlu mengidentifikasi alur yang memberikan nilai terbanyak. Anda tidak ingin menghabiskan lebih dari alur yang layak. Alih-alih hanya memangkas biaya, pertimbangkan untuk mengalihkan biaya untuk memprioritaskan alur yang lebih berharga. Misalnya, alur pembayaran Anda sangat penting untuk bisnis, tetapi riwayat pembelian tidak. Anda harus mengalokasikan lebih banyak sumber daya dan anggaran ke alur checkout.
Alur berprioritas rendah memiliki ekspektasi yang lebih rendah untuk ketersediaan, pemulihan, dan performa. Anda dapat mengurangi biaya dengan menggunakan konfigurasi yang lebih murah untuk mengurangi performa, ketersediaan, atau pengeluaran kelangsungan bisnis.
Pertimbangkan metrik alur. Jika Anda berjuang untuk memprioritaskan alur Anda, pertimbangkan tujuan ketersediaan dan pemulihan yang Anda tetapkan kepada mereka. Alur kritis sering memiliki persyaratan ketersediaan tinggi dan perjanjian tingkat layanan (SLA). Alur yang terkait dengan RPO dan RTO yang lebih rendah lebih penting daripada alur yang memiliki RPO dan RTO yang lebih tinggi.
Mengoptimalkan alur independen
Terkadang alur Anda sudah berjalan pada sumber daya yang berbeda. Dalam kasus ini, Anda dapat lebih mudah mengevaluasi dan mengoptimalkan pengeluaran. Evaluasi komponen dan proses yang terlibat dalam setiap alur independen untuk menentukan apakah ada cara untuk mengoptimalkan atau menyederhanakannya. Untuk mengoptimalkan alur independen, Anda dapat mengikuti langkah-langkah berikut:
Hilangkan komponen yang tidak perlu. Hapus elemen asing yang tidak berkontribusi pada fungsionalitas inti alur, sehingga mengurangi kompleksitas dan biaya.
Mendesain ulang alur. Pertimbangkan untuk mendesain ulang arsitektur alur untuk meningkatkan efisiensinya. Anda dapat mengubah urutan operasi, mengurangi latensi, atau meningkatkan kecepatan transfer data, misalnya.
Pilih tingkat performa yang sesuai. Alur yang berbeda mungkin memiliki berbagai tuntutan dalam hal kecepatan pemrosesan, memori, atau metrik sumber daya lainnya. Pastikan untuk memilih tingkat sumber daya yang selaras dengan persyaratan spesifik setiap alur.
Sesuaikan pengaturan penskalan. Jika alur mengalami permintaan variabel, pertimbangkan untuk menerapkan penskalaan otomatis untuk menyesuaikan sumber daya secara dinamis sesuai dengan kebutuhan real-time, sehingga mengoptimalkan biaya.
Menyempurnakan konfigurasi. Sesuaikan pengaturan lain, seperti opsi jaringan atau penyimpanan data, agar lebih selaras dengan performa alur dan persyaratan anggaran.
Pisahkan alur dissimilar
Memisahkan aliran yang berbeda ke sumber daya yang berbeda adalah proses mengalokasikan tugas yang berbeda dengan berbagai kebutuhan komputasi ke sumber daya khusus. Aliran dissimilar adalah alur yang memiliki atribut yang berbeda. Atribut ini dapat mencakup persyaratan komputasi, dependensi data, operasi I/O, sensitivitas latensi, kebutuhan keamanan, dan persyaratan kepatuhan. Seringkali lebih hemat biaya untuk menjalankan berbagai jenis alur pada sumber daya terpisah. Melakukannya memungkinkan alokasi sumber daya yang tepat untuk setiap alur, yang mengurangi pengeluaran yang tidak perlu dan memastikan efisiensi maksimum.
Pertimbangkan untuk memisahkan alur berbeda yang saat ini digabungkan. Pemisahan ini meningkatkan skalabilitas, toleransi kesalahan, dan kemampuan beradaptasi dan juga menyederhanakan biaya. Dengan memastikan bahwa setiap alur beroperasi secara independen, Anda mengurangi risiko gangguan dan dapat mengalokasikan sumber daya secara lebih hemat biaya berdasarkan prioritas setiap alur. Misalnya, asumsikan bahwa Anda mengkolokasikan CRM (alur pengguna) dengan mesin data (aliran data). Lalu lintas pengguna ke sistem CRM selama jam kerja mungkin memperlambat mesin data. Saat Anda memisahkan alur, mesin data dapat menskalakan setiap komponen atau layanan secara independen berdasarkan permintaan beban kerja. Pemisahan ini mengoptimalkan alokasi sumber daya dan mengurangi biaya.
Menggabungkan alur serupa
Menggabungkan alur serupa ke satu sumber daya adalah proses mengonsolidasikan tugas atau proses dengan atribut yang sebanding dan menggunakan sumber daya bersama untuk mereka. Strategi ini menghilangkan redundansi dan memastikan penggunaan sumber daya yang lebih efisien, yang menyebabkan penghematan biaya yang signifikan. Jenis alur serupa berbagi atribut serupa. Anda mungkin mempertimbangkan atribut yang sama yang Anda lihat saat memisahkan alur yang berbeda: persyaratan komputasi, dependensi data, operasi I/O, sensitivitas latensi, kebutuhan keamanan, dan persyaratan kepatuhan. Berikut adalah beberapa contoh di mana menggabungkan alur beban kerja serupa untuk menggunakan sumber daya yang sama dapat menyebabkan penghematan yang substansial:
Server web. Alih-alih mendedikasikan server web terpisah untuk setiap aplikasi, pertimbangkan untuk mengonsolidasikannya, terutama jika lalu lintas mereka tidak secara konsisten tinggi. Server web bersama, dipasangkan dengan proksi terbalik, dapat mengelola dan merutekan lalu lintas secara efektif ke beberapa aplikasi.
Gateway API. Daripada memelihara gateway API individual untuk layanan mikro atau aplikasi terpisah, Anda dapat menggunakan gateway API terpusat untuk menyederhanakan permintaan dan mengarahkannya ke layanan yang relevan. Melakukannya membuat manajemen lebih mudah dan juga mengurangi biaya.
Pemrosesan log. Alih-alih memiliki beberapa aplikasi atau layanan yang masing-masing mengoperasikan instans pemrosesan log mereka sendiri, pertimbangkan untuk mengarahkan semuanya ke alat pemrosesan log bersama. Pendekatan ini meminimalkan jumlah instans aktif, yang diterjemahkan ke penghematan biaya langsung.
Layanan autentikasi. Jika beberapa aplikasi menyebarkan mekanisme autentikasi mereka sendiri yang berbeda, redundansi diperkenalkan. Mengintegrasikan solusi akses menyeluruh (SSO) atau layanan autentikasi komunal mengurangi duplikasi ini dan mengoptimalkan penggunaan sumber daya, yang mengurangi biaya.
Risiko: Jangan salah kebetulan dengan desain. Dua alur yang terlihat serupa tidak selalu melayani tujuan yang sama. Anda perlu memahami fungsi dan desain setiap alur sebelum menggabungkan atau mengubahnya. Salah menafsirkan alur dengan hanya berfokus pada penampilannya dapat menyebabkan konsekuensi yang tidak diinginkan dan mengganggu layanan atau proses yang didukungnya. Jika beberapa alur melayani fungsi yang sama dan tidak ada perbedaan berbeda dalam desain atau niatnya, pertimbangkan untuk mengonsolidasikannya.
Memantau alur terus menerus
Sifat alur dan beban kerja dapat berubah dari waktu ke waktu, jadi Anda perlu meninjau pengeluaran alur untuk memastikan bahwa biaya selaras dengan prioritas. Evaluasi pemanfaatan sumber daya setiap alur dengan menganalisis komputasi, penyimpanan, dan penggunaan jaringan yang terkait dengan setiap alur. Identifikasi inefisiensi atau area di mana sumber daya kurang digunakan. Analisis ini membantu Anda menentukan peluang untuk pengoptimalan biaya. Berikut adalah beberapa pertimbangan yang perlu diperhitungkan saat Anda meninjau pemanfaatan alur:
Menganalisis pola penggunaan. Analisis pola penggunaan alur. Beberapa alur mungkin lebih aktif selama waktu tertentu dalam sehari atau bulan, sementara yang lain mungkin memiliki beban yang konsisten. Dengan memahami pola-pola ini, Anda dapat memprediksi kebutuhan sumber daya dan menyesuaikan alokasi untuk menghindari hambatan dan provisi berlebih.
Memantau metrik yang relevan. Tentukan metrik yang dapat membantu Anda menilai efisiensi dan efektivitas biaya setiap alur. Pertimbangkan pemanfaatan CPU, biaya transfer data, biaya transaksi, dan jejak penyimpanan. Gunakan alat pemantauan untuk mengumpulkan metrik terperinci tentang penggunaan dan performa sumber daya.
Pertimbangkan pemeliharaan yang sedang berlangsung. Pertimbangkan biaya pemeliharaan, terutama ketika Anda menggunakan solusi infrastruktur sebagai layanan seperti komputer virtual. Anda perlu memperhitungkan aktivitas seperti patching, peningkatan, pencadangan, pemantauan, dan keamanan.
Selama analisis Anda, identifikasi inefisiensi atau area di mana sumber daya tidak digunakan secara efektif. Pertimbangkan instans komputasi diam, data yang tidak digunakan, dan bandwidth jaringan rendah. Inefisiensi ini dapat menunjukkan peluang untuk pengoptimalan biaya.
Fasilitasi Azure
Memprioritaskan, mengoptimalkan, dan memantau alur: Alat Alur Pengguna di Application Insights menyediakan representasi visual navigasi pengguna di seluruh halaman dan fitur situs Anda. Alat ini membantu dalam mengidentifikasi area tempat pengguna sering keluar, mengulangi tindakan, atau mengikuti jalur tertentu. Dengan membandingkan perilaku pengguna aktual dengan hasil dan tujuan yang diantisipasi, Anda dapat mengidentifikasi alur penting. Ini juga memungkinkan Anda untuk mengoptimalkan potensi masalah seperti tingkat churn tinggi, tindakan berulang, atau kelemahan desain. Alat ini juga memungkinkan pemfilteran properti kustom melalui dimensi, menawarkan analisis yang lebih disesuaikan.
Azure Monitor membantu Anda mendapatkan wawasan tentang performa dan kesehatan aplikasi Anda. Ini menyediakan kemampuan pemantauan dan diagnostik. Kemampuan ini memungkinkan Anda mengidentifikasi hambatan performa, mengoptimalkan pemanfaatan sumber daya, dan mendeteksi serta memecahkan masalah yang mungkin memengaruhi biaya.
Log Analytics adalah alat yang memungkinkan Anda mengumpulkan, menganalisis, dan memvisualisasikan data log dari berbagai sumber. Dengan menggunakan Analitik Log, Anda dapat memperoleh wawasan tentang log aplikasi dan infrastruktur Anda, mengidentifikasi tren, dan mengoptimalkan biaya dengan mengelola penggunaan dan retensi data. Pertimbangkan untuk mengumpulkan log dan menggunakan solusi khusus alih-alih yang dibagikan untuk mengelola biaya dengan lebih baik.
Tautan terkait
Daftar periksa Pengoptimalan Biaya
Lihat kumpulan rekomendasi lengkap.