Bagikan melalui


Desain aplikasi beban kerja berkelanjutan di Azure

Saat membangun aplikasi baru atau memperbarui yang ada, sangat penting untuk mempertimbangkan bagaimana solusi akan berdampak pada iklim dan jika ada cara untuk meningkatkan dan mengoptimalkan. Pelajari tentang pertimbangan dan rekomendasi untuk mengoptimalkan kode dan aplikasi Anda untuk desain aplikasi yang lebih berkelanjutan.

Penting

Artikel ini adalah bagian dari seri beban kerja azure Well-Architected berkelanjutan . Jika Anda tidak terbiasa dengan seri ini, kami sarankan Anda memulai dengan apa itu beban kerja berkelanjutan?

Efisiensi kode

Tuntutan pada aplikasi dapat bervariasi, dan penting untuk mempertimbangkan cara untuk menstabilkan pemanfaatan untuk mencegah over-atau underutilization sumber daya, yang dapat menyebabkan tumpahan energi yang tidak perlu.

Mengevaluasi memindahkan monolit ke arsitektur layanan mikro

Aplikasi monolitik biasanya menskalakan sebagai unit, meninggalkan sedikit ruang untuk menskalakan hanya komponen individu yang mungkin membutuhkannya.

Keselarasan Green Software Foundation: Efisiensi energi, Efisiensi perangkat keras

Rekomendasi:

  • Mengevaluasi panduan arsitektur layanan mikro .
  • Arsitektur layanan mikro hanya memungkinkan penskalaan komponen yang diperlukan selama beban puncak; memastikan komponen diam dipersingkat atau dipersingkat. Selain itu, ini dapat mengurangi overhead dan sumber daya yang diperlukan untuk menyebarkan aplikasi monolitik.
  • Pertimbangkan tradeoff ini: Saat mengurangi sumber daya komputasi yang diperlukan, Anda dapat meningkatkan jumlah lalu lintas di jaringan, dan kompleksitas aplikasi dapat meningkat secara signifikan.
  • Pertimbangkan tradeoff lainnya ini: Pindah ke layanan mikro dapat mengakibatkan overhead penyebaran ekstra dengan banyak kesamaan dalam alur penyebaran. Pertimbangkan dengan cermat sumber daya penyebaran yang diperlukan untuk arsitektur monolitik versus layanan mikro.
  • Selain itu, baca tentang kontainerisasi aplikasi monolitik.

Meningkatkan efisiensi API

Banyak aplikasi cloud modern dirancang untuk bertransaksi banyak pesan antara layanan dan komponen secara asinkron. Pertimbangkan format yang digunakan untuk mengodekan data payload. Berapa banyak informasi yang perlu dikomunikasikan oleh aplikasi Anda, dan apakah ada ruang untuk mengurangi obrolan?

Keselarasan Green Software Foundation: Efisiensi energi

Rekomendasi:

Pastikan kompatibilitas perangkat lunak mundur untuk memastikan perangkat keras warisan berfungsi

Pertimbangkan bagaimana aplikasi merender informasi. Apakah aplikasi perlu secara kritis melayani segala sesuatu dalam kualitas tertinggi, menghasilkan bandwidth dan pemrosesan yang lebih tinggi? Apakah ada ruang untuk mengurangi kualitas komponen di UI untuk melayani tujuan keberlanjutan dengan lebih baik?

Keselarasan Green Software Foundation: Efisiensi perangkat keras

Rekomendasi:

  • Mendukung lebih banyak perangkat konsumen pengguna akhir, seperti browser dan sistem operasi yang lebih lama. Kompatibilitas mundur ini meningkatkan efisiensi perangkat keras dengan menggunakan kembali perangkat keras yang ada alih-alih memerlukan peningkatan perangkat keras agar solusi berfungsi.
  • Pertimbangkan tradeoff ini: Jika pembaruan perangkat lunak terbaru memiliki peningkatan performa yang signifikan, menggunakan versi perangkat lunak yang lebih lama mungkin tidak lebih efisien.

Memanfaatkan pola desain asli cloud

Mempelajari tentang pola desain cloud-native sangat membantu untuk membangun aplikasi, baik yang dihosting di Azure atau berjalan di tempat lain. Mengoptimalkan performa dan biaya aplikasi cloud Anda juga akan mengurangi pemanfaatan sumber dayanya, sehingga emisi karbonnya.

Keselarasan Green Software Foundation: Efisiensi energi, Efisiensi perangkat keras

Rekomendasi:

Pertimbangkan untuk menggunakan pola pemutus sirkuit

Pertimbangkan untuk mengevaluasi dan mencegah aplikasi melakukan operasi yang kemungkinan gagal. Kegagalan berulang dapat menyebabkan overhead dan pemrosesan yang tidak perlu yang dapat Anda hindari dengan pola desain yang tepat.

Keselarasan Green Software Foundation: Efisiensi energi

Rekomendasi:

  • Pemutus arus dapat bertindak sebagai proksi untuk operasi yang mungkin gagal dan harus memantau jumlah kegagalan terbaru yang telah terjadi dan menggunakan informasi tersebut untuk memutuskan apakah akan melanjutkan.
  • Pelajari pola Circuit Breaker, lalu pertimbangkan bagaimana Anda dapat menerapkan pola Circuit Breaker ke aplikasi Anda.
  • Pertimbangkan untuk menggunakan Azure Monitor untuk memantau kegagalan dan menyiapkan pemberitahuan.

Optimalkan kode untuk penggunaan sumber daya yang efisien

Aplikasi yang disebarkan menggunakan kode yang tidak efisien dapat mengakibatkan dampak yang melekat pada keberlanjutan.

Keselarasan Green Software Foundation: Efisiensi energi, Efisiensi perangkat keras

Rekomendasi:

  • Kurangi siklus CPU dan jumlah sumber daya yang Anda butuhkan untuk aplikasi Anda.
  • Gunakan algoritma dan pola desain yang dioptimalkan dan efisien.
  • Pertimbangkan prinsip Jangan ulangi sendiri (DRY).

Optimalkan untuk pola akses asinkron

Tuntutan pada aplikasi dapat bervariasi, dan penting untuk mempertimbangkan cara untuk menstabilkan pemanfaatan untuk mencegah over-atau underutilization sumber daya, yang dapat menyebabkan tumpahan energi yang tidak perlu.

Keselarasan Green Software Foundation: Efisiensi energi

Rekomendasi:

  • Permintaan antrean dan buffer yang tidak memerlukan pemrosesan segera, lalu proses dalam batch. Merancang aplikasi Anda dengan cara ini membantu mencapai pemanfaatan yang stabil dan membantu meratakan konsumsi untuk menghindari permintaan lonjakan.
  • Baca tentang mengoptimalkan pola akses asinkron.

Mengevaluasi penyajian sisi server vs. sisi klien

Tentukan apakah akan merender di sisi server atau sisi klien saat membangun aplikasi dengan UI.

Keselarasan Green Software Foundation: Efisiensi energi, Efisiensi perangkat keras

Rekomendasi:

  • Pertimbangkan manfaat penyajian sisi server ini:

    • Ketika daya server berasal dari alternatif yang kurang berpolusi daripada lokal klien.
    • Ketika perangkat keras di server memiliki rasio pemrosesan-energi yang lebih baik.
    • Dapat menggunakan penembolokan terpusat untuk mengurangi beberapa render yang tidak perlu.
    • Mengurangi jumlah perjalanan pulang-pergi browser-ke-server bisa sangat penting ketika perangkat klien memiliki tautan lossy.
    • Ketika perangkat klien lebih tua dan memiliki CPU yang lebih lambat. Pengguna tidak perlu meningkatkan perangkat mereka untuk mendukung browser modern.
  • Pertimbangkan manfaat penyajian sisi klien ini:

    • Ketika perangkat pengguna akhir lebih cocok, mendorong tanggung jawab penyajian kepada klien.
    • Lebih efisien hanya untuk merender apa yang diperlukan dan seperti yang diminta, dibandingkan dengan merender semuanya setidaknya sekali.
    • Tidak perlu server, karena Anda dapat mengandalkan penyimpanan statis.
    • Penembolokan browser digunakan pada klien.

Waspadai desain UX untuk keberlanjutan

Pertimbangkan bagaimana desain UX beban kerja memengaruhi keberlanjutan dan menentukan opsi apa yang ada untuk meningkatkan efisiensi energi dan mengurangi beban jaringan, pemrosesan data, dan sumber daya komputasi yang tidak perlu.

Keselarasan Green Software Foundation: Efisiensi energi

Rekomendasi:

  • Pertimbangkan untuk mengurangi jumlah komponen yang akan dimuat dan dirender di halaman.
  • Tentukan apakah aplikasi dapat merender gambar dan video beresolusi lebih rendah.
    • Jangan merender gambar ukuran penuh sebagai gambar mini tempat browser melakukan pengubahan ukuran.
    • Menggunakan gambar ukuran penuh sebagai gambar mini atau gambar yang diubah ukurannya akan mentransfer lebih banyak data, lalu lintas jaringan yang tidak perlu, dan penggunaan CPU sisi klien tambahan karena pengubahan ukuran gambar dan pra-penyajian.
  • Memastikan tidak ada halaman yang tidak digunakan akan membantu meminimalkan desain UX.
  • Pertimbangkan pencarian dan ketercarian. Memudahkan pengguna untuk menemukan apa yang mereka cari membantu menurunkan jumlah data yang disimpan dan diambil.
  • Pertimbangkan untuk menyediakan UI yang lebih ringan, menggunakan lebih sedikit sumber daya dan dengan dampak yang lebih rendah pada keberlanjutan, dan memberi pengguna pilihan berdasarkan informasi.
  • Hemat energi dengan menawarkan aplikasi dan situs web Anda dalam mode gelap, dengan latar belakang gelap.
  • Pilih untuk menggunakan font sistem jika memungkinkan untuk menghindari memaksa klien mengunduh font tambahan, yang menyebabkan lebih banyak beban jaringan.

Memperbarui kode warisan

Pertimbangkan untuk meningkatkan atau menghentikan kode warisan jika tidak berjalan pada infrastruktur cloud modern atau dengan pembaruan terbaru.

Keselarasan Green Software Foundation: Efisiensi perangkat keras

Rekomendasi:

  • Identifikasi kode warisan yang tidak efisien yang cocok untuk modernisasi.
  • Tinjau apakah ada opsi untuk berpindah ke tanpa server atau opsi PaaS yang dioptimalkan.
  • Pertimbangkan tradeoff ini: Memperbarui kode lama yang mungkin tidak digunakan lagi dapat menghabiskan waktu yang berharga.

Langkah selanjutnya

Tinjau pertimbangan desain untuk platform aplikasi.