Bagikan melalui


Rekomendasi untuk mengoptimalkan biaya aliran

Berlaku untuk rekomendasi daftar periksa Pengoptimalan Biaya Azure Well-Architected Framework ini:

CO:09 Optimalkan 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 terlalu banyak mengeluh pada sumber daya, yang mengakibatkan biaya operasional yang meningkat dan profitabilitas yang berkurang.

Definisi

Istilah Definisi
Memisahkan Strategi menghapus alur 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 alur dan pengeluaran 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 menyertakan 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 padat 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 antara komponen sistem, meminimalkan penyempitan, 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 inventarsi 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 inventarsi alur beban kerja:

  1. Alur dokumen. Mulailah dengan mencantumkan 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.

  2. Memvisualisasikan alur. Untuk mendapatkan perspektif yang lebih jelas, mewakili temuan Anda secara visual, mungkin dalam diagram atau diagram alur. Visualisasi membantu Anda melihat interdependensi antar komponen. Pertimbangkan untuk menggunakan alat seperti Visio untuk membantu Anda dengan visualisasi.

  3. 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 satu aliran bernilai. Alih-alih hanya memotong biaya, pertimbangkan untuk mengalihkan biaya untuk memprioritaskan aliran yang lebih berharga. Misalnya, alur checkout Anda sangat penting untuk bisnis, tetapi riwayat pembelian tidak. Anda harus mengalokasikan lebih banyak sumber daya dan anggaran untuk 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 pengeluaran performa, ketersediaan, atau kelangsungan bisnis.

  • Pertimbangkan metrik alur. Jika Anda berjuang untuk memprioritaskan alur Anda, pertimbangkan tujuan ketersediaan dan pemulihan yang Anda tetapkan untuk alur tersebut. 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:

  • Menghilangkan 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 persyaratan performa dan anggaran alur.

Pisahkan alur berbeda

Memisahkan aliran yang berbeda ke sumber daya yang berbeda adalah proses mengalokasikan tugas yang berbeda dengan berbagai kebutuhan komputasi ke sumber daya khusus. Alur yang berbeda 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 menempatkan 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 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 untuk 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 yang terlihat dalam desain atau niatnya, pertimbangkan untuk mengonsolidasikannya.

Terus memantau alur

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 dari setiap alur dengan menganalisis penggunaan komputasi, penyimpanan, dan 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 dipertimbangkan saat Anda meninjau pemanfaatan alur:

  • Menganalisis pola penggunaan. Menganalisis 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 penyempitan 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 mempertahankan 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, serta mendeteksi dan 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 menempatkan log dan menggunakan solusi khusus alih-alih yang dibagikan untuk mengelola biaya dengan lebih baik.

Daftar periksa Pengoptimalan Biaya

Lihat kumpulan rekomendasi lengkap.