Pola dan strategi pengembangan aplikasi untuk SQL Server di Azure Virtual Machines

Berlaku untuk:SQL Server di Azure VM

Catatan

Azure memiliki dua model penyebaran yang berbeda untuk membuat dan bekerja dengan sumber daya: Resource Manager dan klasik. Artikel ini mencakup penggunaan kedua model, tetapi Microsoft merekomendasikan bahwa sebagian besar penyebaran baru menggunakan model Azure Resource Manager.

Gambaran Umum

Menentukan pola atau pola aplikasi mana yang digunakan untuk aplikasi berbasis SQL Server Anda di lingkungan Azure adalah keputusan desain penting dan memerlukan pemahaman mendalam tentang bagaimana SQL Server dan setiap komponen infrastruktur Azure bekerja sama. Dengan SQL Server di Azure Infrastructure Services, Anda dapat dengan mudah memigrasikan, memelihara, dan memantau aplikasi SQL Server yang ada yang dibangun di Windows Server ke komputer virtual di Azure.

Tujuan dari artikel ini adalah untuk memberikan solusi arsitek dan pengembang fondasi untuk arsitektur dan desain aplikasi yang baik, yang dapat mereka ikuti ketika memigrasikan aplikasi yang ada ke Azure serta mengembangkan aplikasi baru di Azure.

Untuk setiap pola aplikasi, Anda akan menemukan skenario lokal, solusi berkemampuan cloud masing-masing, dan rekomendasi teknis terkait. Selain itu, artikel ini membahas strategi pengembangan khusus Azure sehingga Anda dapat mendesain aplikasi dengan benar. Karena banyaknya pola aplikasi yang mungkin, disarankan agar arsitek dan pengembang harus memilih pola yang paling tepat untuk aplikasi dan pengguna mereka.

Kontributor teknis: Luis Carlos Vargas Herring, Madhan Arumugam Ramakrishnan

Peninjau teknis: Corey Sanders, Drew McDaniel, Narayan Annamalai, Nir Mashkowski, Sanjay Mishra, Silvano Coriani, Stefan Schackow, Tim Hickey, Tim Wieman, Xin Jin

Pendahuluan

Anda dapat mengembangkan banyak jenis aplikasi tingkat-n dengan memisahkan komponen dari berbagai lapisan aplikasi pada mesin yang berbeda serta dalam komponen terpisah. Misalnya, Anda dapat menempatkan komponen aplikasi dan aturan bisnis klien dalam satu mesin, tingkat web front-end dan komponen tingkat akses data di mesin lain, dan tingkat database back-end di mesin lain. Penataan semacam ini membantu mengisolasi setiap tingkatan satu sama lain. Jika Anda mengubah dari mana data berasal, Anda tidak perlu mengubah klien atau aplikasi web tetapi hanya komponen tingkat akses data.

Aplikasi tingkat-n yang khusus mencakup tingkat presentasi, tingkat bisnis, dan tingkat data:

Tingkat Deskripsi
Presentasi Tingkat presentasi (tingkat web, tingkat front-end) adalah lapisan di mana pengguna berinteraksi dengan aplikasi.
Bisnis Tingkat bisnis (tingkat tengah) adalah lapisan yang digunakan tingkat presentasi dan tingkat data untuk berkomunikasi satu sama lain dan mencakup fungsi core sistem.
Data Tingkat data pada dasarnya adalah server yang menyimpan data aplikasi (misalnya, server yang menjalankan SQL Server).

Lapisan aplikasi menjelaskan pengelompokan logis fungsionalitas dan komponen dalam aplikasi; sedangkan tingkatan menggambarkan distribusi fisik fungsionalitas dan komponen pada server fisik, komputer, jaringan, atau lokasi jarak jauh yang terpisah. Lapisan aplikasi dapat berada di komputer fisik yang sama (tingkat yang sama) atau dapat didistribusikan melalui komputer terpisah (tingkat-n), dan komponen di setiap lapisan berkomunikasi dengan komponen di lapisan lain melalui antarmuka yang terdefinisi dengan baik. Anda dapat menganggap istilah tingkat mengacu pada pola distribusi fisik seperti dua tingkat, tiga tingkat, dan n-tingkat. Pola aplikasi 2 tingkat berisi dua tingkat aplikasi: server aplikasi dan server database. Komunikasi langsung terjadi antara server aplikasi dan server database. Server aplikasi berisi komponen tingkat web dan tingkat bisnis. Dalam pola aplikasi 3 tingkat, ada tiga tingkat aplikasi: server web, server aplikasi, yang berisi tingkat logika bisnis dan/atau komponen akses data tingkat bisnis, dan server database. Komunikasi antara server web dan server database terjadi melalui server aplikasi. Untuk informasi terperinci tentang lapisan dan tingkat aplikasi, lihat Panduan Arsitektur Aplikasi Microsoft.

Sebelum Anda mulai membaca artikel ini, Anda harus memiliki pengetahuan tentang konsep dasar SQL Server dan Azure. Untuk informasi, lihat Dokumentasi Online Microsoft SQL Server, SQL Server di Azure Virtual Machines, dan Azure.com.

Artikel ini menjelaskan beberapa pola aplikasi yang dapat cocok untuk aplikasi sederhana Anda serta aplikasi perusahaan yang sangat kompleks. Sebelum merinci setiap pola, sebaiknya Anda membiasakan diri dengan layanan penyimpanan data yang tersedia di Azure, seperti Azure Storage, Azure SQL Database, dan SQL Server di komputer virtual Azure. Untuk membuat keputusan desain terbaik untuk aplikasi Anda, pahami kapan harus menggunakan layanan penyimpanan data mana dengan jelas.

Pilih SQL Server di Azure Virtual Machines, ketika:

  • Anda memerlukan kontrol pada SQL Server dan Windows. Misalnya, ini mungkin termasuk versi SQL Server, perbaikan khusus, konfigurasi performa, dll.

  • Anda memerlukan kompatibilitas penuh dengan SQL Server dan ingin memindahkan aplikasi yang ada ke Azure apa adanya.

  • Anda ingin memanfaatkan kemampuan lingkungan Azure tetapi Azure SQL Database tidak mendukung semua fitur yang diperlukan aplikasi Anda. Ini dapat mencakup area berikut:

1 tingkat (sederhana): Komputer virtual tunggal

Dalam pola aplikasi ini, Anda menerapkan aplikasi dan database SQL Server Anda ke komputer virtual mandiri di Azure. Komputer virtual yang sama berisi aplikasi klien/web Anda, komponen bisnis, lapisan akses data, dan server database. Kode presentasi, bisnis, dan akses data dipisahkan secara logis tetapi secara fisik terletak di komputer server tunggal. Sebagian besar pelanggan memulai dengan pola aplikasi ini, kemudian mereka menskalakan dengan menambahkan lebih banyak peran web atau komputer virtual ke sistem mereka.

Pola aplikasi ini berguna ketika:

  • Anda ingin melakukan migrasi sederhana ke platform Azure untuk mengevaluasi apakah platform menjawab persyaratan aplikasi Anda atau tidak.
  • Anda ingin menyimpan semua tingkat aplikasi yang dihosting di komputer virtual yang sama di pusat data Azure yang sama untuk mengurangi latensi antar tingkatan.
  • Anda ingin dengan cepat memprovisikan lingkungan pengembangan dan pengujian untuk waktu yang singkat.
  • Anda ingin melakukan pengujian stres untuk berbagai tingkat beban kerja tetapi pada saat yang sama Anda tidak ingin memiliki dan memelihara banyak mesin fisik sepanjang waktu.

Diagram berikut menunjukkan skenario lokal sederhana dan bagaimana Anda dapat menyebarkan solusi berkemampuan cloud-nya dalam satu komputer virtual di Azure.

1-tier application pattern

Menyebarkan lapisan bisnis (logika bisnis dan komponen akses data) pada tingkat fisik yang sama dengan lapisan presentasi dapat memaksimalkan performa aplikasi, kecuali Anda harus menggunakan tingkat terpisah karena masalah skalabilitas atau keamanan.

Karena ini adalah pola yang sangat umum untuk memulai, Anda mungkin menemukan artikel berikut tentang migrasi yang berguna untuk memindahkan data Anda ke komputer virtual SQL Server Anda: Panduan migrasi: SQL Server ke SQL Server di Azure Virtual Machines.

3 tingkat (sederhana): Beberapa komputer virtual

Dalam pola aplikasi ini, Anda menerapkan aplikasi 3 tingkat di Azure dengan menempatkan setiap tingkat aplikasi di komputer virtual yang berbeda. Ini memberikan lingkungan yang fleksibel untuk skenario peningkatan dan peluasan skala yang mudah. Ketika satu komputer virtual berisi aplikasi klien/web Anda, satu aplikasi meng-host komponen bisnis Anda, dan aplikasi lain meng-host server database.

Pola aplikasi ini berguna ketika:

  • Anda ingin melakukan migrasi aplikasi database kompleks ke Azure Virtual Machines.
  • Anda ingin berbagai tingkat aplikasi dihosting di berbagai wilayah. Misalnya, Anda mungkin memiliki database bersama yang disebarkan ke beberapa wilayah untuk tujuan pelaporan.
  • Anda ingin memindahkan aplikasi perusahaan dari platform virtual lokal ke Azure Virtual Machines. Untuk diskusi terperinci tentang aplikasi perusahaan, lihat Apa itu Aplikasi Perusahaan.
  • Anda ingin dengan cepat memprovisikan lingkungan pengembangan dan pengujian untuk waktu yang singkat.
  • Anda ingin melakukan pengujian stres untuk berbagai tingkat beban kerja tetapi pada saat yang sama Anda tidak ingin memiliki dan memelihara banyak mesin fisik sepanjang waktu.

Diagram berikut menunjukkan bagaimana Anda dapat menempatkan aplikasi 3 tingkat sederhana di Azure dengan menempatkan setiap tingkat aplikasi di komputer virtual yang berbeda.

3-tier application pattern

Dalam pola aplikasi ini, hanya ada satu komputer virtual di setiap tingkatan. Jika memiliki beberapa komputer virtual di Azure, sebaiknya Anda menyiapkan jaringan virtual. Azure Virtual Network membuat batas keamanan tepercaya dan juga memungkinkan komputer virtual untuk berkomunikasi antar satu sama lain melalui alamat IP privat. Selain itu, selalu pastikan bahwa semua koneksi Internet hanya masuk ke tingkat presentasi. Ketika mengikuti pola aplikasi ini, kelola aturan kelompok keamanan jaringan untuk mengontrol akses. Untuk informasi selengkapnya, lihat Mengizinkan akses eksternal ke komputer virtual Anda menggunakan portal Microsoft Azure.

Dalam diagram, Protokol Internet bisa berupa TCP, UDP, HTTP, atau HTTPS.

Catatan

Menyiapkan jaringan virtual di Azure tidak dikenakan biaya. Namun, Anda dikenakan biaya untuk gateway VPN yang tersambung ke lokal. Biaya ini didasarkan pada jumlah waktu koneksi disediakan dan tersedia.

2 tingkat dan 3 tingkat dengan peluasan skala tingkat presentasi

Dalam pola aplikasi ini, Anda menyebarkan aplikasi database 2 tingkat atau 3 tingkat ke Azure Virtual Machines dengan menempatkan setiap tingkat aplikasi di komputer virtual yang berbeda. Selain itu, Anda melakukan peluasan skala tingkat presentasi karena peningkatan volume permintaan klien masuk.

Pola aplikasi ini berguna ketika:

  • Anda ingin memindahkan aplikasi perusahaan dari platform virtual lokal ke Azure Virtual Machines.
  • Anda ingin melakukan peluasan skala tingkat presentasi karena peningkatan volume permintaan klien masuk.
  • Anda ingin dengan cepat memprovisikan lingkungan pengembangan dan pengujian untuk waktu yang singkat.
  • Anda ingin melakukan pengujian stres untuk berbagai tingkat beban kerja tetapi pada saat yang sama Anda tidak ingin memiliki dan memelihara banyak mesin fisik sepanjang waktu.
  • Anda ingin memiliki lingkungan infrastruktur yang dapat meningkatkan dan menurunkan skala sesuai permintaan.

Diagram berikut menunjukkan bagaimana Anda dapat menempatkan tingkat aplikasi di beberapa komputer virtual di Azure dengan meluaskan skala tingkat presentasi karena peningkatan volume permintaan klien masuk. Seperti yang terlihat dalam diagram, Azure Load Balancer bertanggung jawab untuk mendistribusikan lalu lintas di beberapa komputer virtual serta menentukan server web mana yang akan disambungkan. Memiliki beberapa instans server web yang dijalankan di penyeimbang beban memastikan ketersediaan tinggi dari tingkat presentasi.

Application pattern - presentation tier scale-out

Praktik terbaik untuk pola 2 tingkat, 3 tingkat, atau n-tingkat yang memiliki beberapa komputer virtual dalam satu tingkat

Disarankan agar Anda menempatkan komputer virtual yang termasuk dalam tingkat yang sama di layanan cloud yang sama dan dalam set ketersediaan yang sama. Misalnya, tempatkan set server web di CloudService1 dan AvailabilitySet1 dan set server database di CloudService2 dan AvailabilitySet2. Set ketersediaan di Azure memungkinkan Anda menempatkan simpul ketersediaan tinggi ke domain kesalahan dan domain peningkatan secara terpisah.

Untuk memanfaatkan beberapa instans komputer virtual dari suatu tingkatan, Anda perlu mengonfigurasi Azure Load Balancer di antara tingkat aplikasi. Untuk mengonfigurasi Load Balancer di setiap tingkatan, buat titik akhir yang seimbang pada setiap VM tingkat secara terpisah. Untuk tingkat tertentu, pertama-tama buat komputer virtual di layanan awan yang sama. Ini memastikan bahwa komputer virtual memiliki alamat IP Virtual publik yang sama. Selanjutnya, buat titik akhir pada salah satu komputer virtual di tingkat tersebut. Kemudian, tetapkan titik akhir yang sama ke komputer virtual lainnya pada tingkat tersebut untuk penyeimbangan beban. Dengan membuat set seimbang beban, Anda mendistribusikan lalu lintas di beberapa komputer virtual serta mengizinkan Load Balancer untuk menentukan simpul mana yang akan disambungkan ketika simpul komputer virtual backend gagal. Misalnya, memiliki beberapa instans server web yang dijalankan di penyeimbang beban memastikan ketersediaan tinggi dari tingkat presentasi.

Sebagai praktik terbaik, selalu pastikan bahwa semua koneksi internet terlebih dahulu masuk ke tingkat presentasi. Lapisan presentasi mengakses tingkat bisnis, dan kemudian tingkat bisnis mengakses tingkat data. Untuk informasi selengkapnya tentang cara mengizinkan akses ke lapisan presentasi, lihat Mengizinkan akses eksternal ke komputer virtual Anda menggunakan portal Microsoft Azure.

Perhatikan bahwa Load Balancer di Azure berfungsi mirip dengan penyeimbang beban di lingkungan lokal. Untuk informasi selengkapnya, lihat Penyeimbangan beban untuk layanan infrastruktur Azure.

Selain itu, sebaiknya Anda menyiapkan jaringan privat untuk komputer virtual Anda dengan menggunakan Azure Virtual Network. Ini memungkinkan komputer virtual berkomunikasi satu sama lain melalui alamat IP privat. Untuk informasi selengkapnya, lihat Azure Virtual Network.

2 tingkat dan 3 tingkat dengan peluasan skala tingkat bisnis

Dalam pola aplikasi ini, Anda menyebarkan aplikasi database 2 tingkat atau 3 tingkat ke Azure Virtual Machines dengan menempatkan setiap tingkat aplikasi di komputer virtual yang berbeda. Selain itu, Anda mungkin ingin mendistribusikan komponen server aplikasi ke beberapa komputer virtual karena kompleksitas aplikasi Anda.

Pola aplikasi ini berguna ketika:

  • Anda ingin memindahkan aplikasi perusahaan dari platform virtual lokal ke Azure Virtual Machines.
  • Anda ingin mendistribusikan komponen server aplikasi ke beberapa komputer virtual karena kompleksitas aplikasi Anda.
  • Anda ingin memindahkan aplikasi LOB (aplikasi lini bisnis) lokal yang banyak menjalankan logika bisnis ke Azure Virtual Machines. Aplikasi lini bisnis adalah set aplikasi komputer penting yang sangat penting untuk menjalankan perusahaan, seperti akuntansi, sumber daya manusia (SDM), penggajian, manajemen rantai pasokan, dan aplikasi perencanaan sumber daya.
  • Anda ingin dengan cepat memprovisikan lingkungan pengembangan dan pengujian untuk waktu yang singkat.
  • Anda ingin melakukan pengujian stres untuk berbagai tingkat beban kerja tetapi pada saat yang sama Anda tidak ingin memiliki dan memelihara banyak mesin fisik sepanjang waktu.
  • Anda ingin memiliki lingkungan infrastruktur yang dapat meningkatkan dan menurunkan skala sesuai permintaan.

Diagram berikut menunjukkan skenario lokal dan solusi berkemampuan cloud-nya. Dalam skenario ini, Anda menempatkan tingkat aplikasi di beberapa komputer virtual di Azure dengan meluaskan skala tingkat bisnis, yang berisi tingkat logika bisnis dan komponen akses data. Seperti yang terlihat dalam diagram, Azure Load Balancer bertanggung jawab untuk mendistribusikan lalu lintas di beberapa komputer virtual serta menentukan server web mana yang akan disambungkan. Memiliki beberapa instans server aplikasi yang dijalankan di penyeimbang beban memastikan ketersediaan tinggi dari tingkat bisnis. Untuk informasi selengkapnya, lihat Praktik terbaik untuk pola aplikasi 2 tingkat, 3 tingkat, atau n-tingkat yang memiliki beberapa komputer virtual dalam satu tingkat.

Application pattern with business tier scale-out

2 tingkat dan 3 tingkat dengan peluasan skala tingkat presentasi dan tingkat bisnis dan HADR

Dalam pola aplikasi ini, Anda menyebarkan aplikasi database 2 tingkat atau 3 tingkat ke Azure Virtual Machines dengan mendistribusikan komponen tingkat presentasi (server web) dan tingkat bisnis (server aplikasi) ke beberapa komputer virtual. Selain itu, Anda menerapkan solusi ketersediaan tinggi dan pemulihan bencana (HADR) untuk database Anda di Azure Virtual Machines.

Pola aplikasi ini berguna ketika:

  • Anda ingin memindahkan aplikasi perusahaan dari platform virtual lokal ke Azure dengan menerapkan kemampuan ketersediaan tinggi dan pemulihan bencana SQL Server.
  • Anda ingin meluaskan skala tingkat presentasi dan tingkat bisnis karena peningkatan volume permintaan klien yang masuk dan kompleksitas aplikasi Anda.
  • Anda ingin dengan cepat memprovisikan lingkungan pengembangan dan pengujian untuk waktu yang singkat.
  • Anda ingin melakukan pengujian stres untuk berbagai tingkat beban kerja tetapi pada saat yang sama Anda tidak ingin memiliki dan memelihara banyak mesin fisik sepanjang waktu.
  • Anda ingin memiliki lingkungan infrastruktur yang dapat meningkatkan dan menurunkan skala sesuai permintaan.

Diagram berikut menunjukkan skenario lokal dan solusi berkemampuan cloud-nya. Dalam skenario ini, Anda meluaskan skala tingkat presentasi dan komponen tingkat bisnis di beberapa komputer virtual di Azure. Selain itu, Anda menerapkan teknik ketersediaan tinggi dan pemulihan bencana (HADR) untuk database SQL Server di Azure.

Menjalankan banyak salinan aplikasi di komputer virtual yang berbeda memastikan bahwa Anda menyeimbangkan beban permintaan di semua komputer virtual tersebut. Ketika memiliki beberapa komputer virtual, Anda perlu memastikan bahwa semua komputer virtual Anda dapat diakses dan berjalan pada satu titik waktu. Jika Anda mengonfigurasi penyeimbangan beban, Azure Load Balancer melacak keadaan komputer virtual dan mengarahkan panggilan masuk ke simpul komputer virtual yang berfungsi baik dengan benar. Untuk informasi tentang cara menyiapkan penyeimbangan beban komputer virtual, lihat Penyeimbangan beban untuk layanan infrastruktur Azure. Memiliki beberapa instans server web dan aplikasi yang dijalankan di penyeimbang beban memastikan ketersediaan tinggi dari tingkat bisnis dan presentasi.

Scale-out and high availability

Praktik terbaik untuk pola aplikasi yang membutuhkan SQL HADR

Saat Anda menyiapkan solusi ketersediaan tinggi dan pemulihan bencana SQL Server di Azure Virtual Machines, Anda wajib menggunakan Azure Virtual Network untuk menyiapkan jaringan virtual untuk komputer virtual. Komputer virtual dalam Virtual Network akan memiliki alamat IP privat yang stabil bahkan setelah waktu henti layanan, sehingga Anda dapat menghindari waktu pembaruan yang diperlukan untuk resolusi nama DNS. Selain itu, jaringan virtual memungkinkan Anda untuk memperluas jaringan lokal Anda ke Azure dan membuat batas keamanan tepercaya. Misalnya, jika aplikasi Anda memiliki pembatasan domain perusahaan (seperti, NTLM, Direktori Aktif), perlu menyiapkan Azure Virtual Network.

Sebagian besar pelanggan, yang menjalankan kode produksi di Azure, menyimpan replika utama dan sekunder di Azure.

Untuk informasi dan tutorial komprehensif tentang teknik ketersediaan tinggi dan pemulihan bencana, lihat Ketersediaan Tinggi dan Pemulihan Bencana untuk SQL Server di Azure Virtual Machines.

2 tingkat dan 3 tingkat menggunakan Azure Virtual Machines dan Cloud Services

Dalam pola aplikasi ini, Anda menyebarkan aplikasi 2 tingkat atau 3 tingkat ke Azure dengan menggunakan Azure Cloud Services (peran web dan pekerja - Platform as a Service (PaaS)) dan Azure Virtual Machines (Infrastructure as a Service (infrastruktur sebagai layanan)). Menggunakan Azure Cloud Services untuk tingkat presentasi/bisnis dan SQL Server di Azure Virtual Machines untuk tingkat data bermanfaat bagi sebagian besar aplikasi yang berjalan di Azure. Alasannya adalah bahwa memiliki instans komputasi yang berjalan di Cloud Services memberikan manajemen, penyebaran, pemantauan, dan peluasan skala yang mudah.

Dengan Cloud Services, Azure mempertahankan infrastruktur untuk Anda, melakukan pemeliharaan rutin, mem-patch sistem operasi, dan berusaha memulihkan dari kegagalan layanan dan perangkat keras. Saat aplikasi Anda memerlukan peluasan skala, opsi peluasan skala otomatis dan manual tersedia untuk proyek layanan awan Anda dengan menambah atau mengurangi jumlah instans atau komputer virtual yang digunakan oleh aplikasi Anda. Selain itu, Anda dapat menggunakan Visual Studio lokal untuk menyebarkan aplikasi Anda ke proyek layanan awan di Azure.

Singkatnya, jika Anda tidak ingin memiliki tugas administratif yang luas untuk tingkat presentasi/bisnis dan aplikasi Anda tidak memerlukan konfigurasi perangkat lunak atau sistem operasi yang kompleks, gunakan Azure Cloud Services. Jika Azure SQL Database tidak mendukung semua fitur yang Anda cari, gunakan SQL Server di komputer virtual Azure untuk tingkat data. Menjalankan aplikasi di Azure Cloud Services dan menyimpan data di Azure Virtual Machines menggabungkan manfaat dari kedua layanan. Untuk perbandingan terperinci, lihat bagian dalam topik ini tentang Membandingkan strategi pengembangan di Azure.

Dalam pola aplikasi ini, tingkat presentasi mencakup peran web, yang merupakan komponen Cloud Services yang berjalan di lingkungan eksekusi Azure dan dikustomisasi untuk pemrograman aplikasi web seperti yang didukung oleh IIS dan ASP.NET. Tingkat bisnis atau backend mencakup peran pekerja, yang merupakan komponen Layanan Cloud yang berjalan di lingkungan eksekusi Azure dan berguna untuk pengembangan umum, dan dapat melakukan pemrosesan latar belakang untuk peran web. Tingkat database berada di komputer virtual SQL Server di Azure. Komunikasi antara tingkat presentasi dan tingkat database terjadi secara langsung atau di atas tingkat bisnis – komponen peran pekerja.

Pola aplikasi ini berguna ketika:

  • Anda ingin memindahkan aplikasi perusahaan dari platform virtual lokal ke Azure dengan menerapkan kemampuan ketersediaan tinggi dan pemulihan bencana SQL Server.
  • Anda ingin memiliki lingkungan infrastruktur yang dapat meningkatkan dan menurunkan skala sesuai permintaan.
  • Azure SQL Database tidak mendukung semua fitur yang dibutuhkan aplikasi atau database Anda.
  • Anda ingin melakukan pengujian stres untuk berbagai tingkat beban kerja tetapi pada saat yang sama Anda tidak ingin memiliki dan memelihara banyak mesin fisik sepanjang waktu.

Diagram berikut menunjukkan skenario lokal dan solusi berkemampuan cloud-nya. Dalam skenario ini, Anda menempatkan tingkat presentasi dalam peran web, tingkat bisnis dalam peran pekerja tetapi tingkat data di komputer virtual di Azure. Menjalankan beberapa salinan tingkat presentasi dalam peran web yang berbeda memastikan untuk menyeimbangkan beban permintaan di seluruhnya. Saat Anda menggabungkan Azure Cloud Services dengan Azure Virtual Machines, sebaiknya Anda juga menyiapkan Azure Virtual Network. Dengan Azure Virtual Network, Anda dapat memiliki alamat IP privat yang stabil dan persisten dalam layanan awan yang sama di cloud. Setelah Anda menentukan jaringan virtual untuk komputer virtual dan layanan awan Anda, komputer virtual dan layanan awan dapat mulai berkomunikasi satu sama lain melalui alamat IP privat. Selain itu, memiliki komputer virtual dan peran web/pekerja Azure Virtual Network yang sama memberikan latensi rendah dan konektivitas yang lebih aman. Untuk informasi selengkapnya, lihat Apa itu layanan awan.

Seperti yang terlihat pada diagram, Azure Load Balancer mendistribusikan lalu lintas di beberapa komputer virtual dan juga menentukan server web atau server aplikasi mana yang akan disambungkan. Memiliki beberapa instans server web dan aplikasi yang dijalankan di penyeimbang beban memastikan ketersediaan tinggi dari tingkat bisnis dan tingkat presentasi. Untuk informasi selengkapnya, lihat Praktik terbaik untuk pola aplikasi yang membutuhkan SQL HADR.

Diagram shows on-premises physical or virtual machines connected to web role instances in an Azure virtual network through an Azure load balancer.

Pendekatan lain untuk menerapkan pola aplikasi ini adalah menggunakan peran web terkonsolidasi yang berisi komponen tingkat presentasi dan tingkat bisnis seperti yang ditunjukkan dalam diagram berikut. Pola aplikasi ini berguna untuk aplikasi yang memerlukan desain berstatus. Karena Azure menyediakan simpul komputasi tanpa status pada peran web dan pekerja, sebaiknya Anda menerapkan logika untuk menyimpan keadaan sesi menggunakan salah satu teknologi berikut: Azure Caching, Azure Table Storage, atau Azure SQL Database.

Diagram shows on-premises physical or virtual machines connected to consolidated web/worker role instances in an Azure virtual network.

Pola dengan Azure Virtual Machines, Azure SQL Database, dan Azure App Service (Web Apps)

Tujuan utama dari pola aplikasi ini adalah untuk menunjukkan kepada Anda cara menggabungkan komponen infrastruktur sebagai layanan (IaaS) Azure dengan komponen platform as a service (PaaS) Azure dalam solusi Anda. Pola ini difokuskan pada Azure SQL Database untuk penyimpanan data relasional. Ini tidak termasuk SQL Server dalam komputer virtual Azure, yang merupakan bagian dari penawaran infrastruktur sebagai layanan Azure.

Dalam pola aplikasi ini, Anda menyebarkan aplikasi database ke Azure dengan menempatkan tingkat presentasi dan bisnis di komputer virtual yang sama dan mengakses database di server Azure SQL Database (SQL Database). Anda dapat mengimplementasikan tingkat presentasi dengan menggunakan solusi web tradisional berbasis IIS. Atau, Anda dapat menerapkan presentasi gabungan dan tingkat bisnis dengan menggunakan Azure App Service.

Pola aplikasi ini berguna ketika:

  • Anda sudah memiliki server Database SQL yang dikonfigurasi di Azure dan Anda ingin menguji aplikasi Anda dengan cepat.
  • Anda ingin menguji kemampuan lingkungan Azure.
  • Anda ingin dengan cepat memprovisikan lingkungan pengembangan dan pengujian untuk waktu yang singkat.
  • Logika bisnis dan komponen akses data Anda dapat mandiri dalam aplikasi web.

Diagram berikut menunjukkan skenario lokal dan solusi berkemampuan cloud-nya. Dalam skenario ini, Anda menempatkan tingkat aplikasi dalam satu komputer virtual di Azure dan mengakses data di Azure SQL Database.

Mixed application pattern

Jika Anda memilih untuk menerapkan tingkat web dan aplikasi gabungan dengan menggunakan Azure Web Apps, sebaiknya Anda mempertahankan tingkat menengah atau tingkat aplikasi sebagai pustaka tautan dinamis (DLL) dalam konteks aplikasi web.

Selain itu, tinjau rekomendasi yang diberikan di bagian Membandingkan strategi pengembangan web di Azure di akhir artikel ini untuk mempelajari selengkapnya tentang teknik pemrograman.

Pola aplikasi hibrid tingkat n

Dalam pola aplikasi hibrid tingkat n, Anda menerapkan aplikasi Anda di beberapa tingkatan yang didistribusikan antara lokal dan Azure. Oleh karena itu, Anda membuat sistem hibrid yang fleksibel dan dapat digunakan kembali, yang dapat memodifikasi atau menambahkan tingkat tertentu tanpa mengubah tingkatan lainnya. Untuk memperluas jaringan perusahaan Anda ke cloud, Anda menggunakan layanan Azure Virtual Network.

Pola aplikasi ini berguna ketika:

  • Anda ingin membangun aplikasi yang sebagian berjalan di cloud dan sebagian di lokal.
  • Anda ingin memigrasikan beberapa atau semua elemen aplikasi lokal yang ada ke cloud.
  • Anda ingin memindahkan aplikasi perusahaan dari platform virtual lokal ke Azure.
  • Anda ingin memiliki lingkungan infrastruktur yang dapat meningkatkan dan menurunkan skala sesuai permintaan.
  • Anda ingin dengan cepat memprovisikan lingkungan pengembangan dan pengujian untuk waktu yang singkat.
  • Anda ingin cara hemat biaya untuk mengambil cadangan untuk aplikasi database perusahaan.

Diagram berikut menunjukkan pola aplikasi hibrid tingkat n yang membentang di seluruh lokal dan Azure. Seperti yang ditunjukkan dalam diagram, infrastruktur lokal mencakup pengontrol domain Layanan Domain Active Directory untuk mendukung autentikasi dan otorisasi pengguna. Perhatikan bahwa diagram menunjukkan skenario, di mana beberapa bagian tingkat data berada di pusat data lokal, sedangkan beberapa bagian dari tingkat data berada di Azure. Bergantung pada kebutuhan aplikasi Anda, Anda dapat menerapkan beberapa skenario hibrid lainnya. Misalnya, Anda mungkin menyimpan tingkat presentasi dan tingkat bisnis di lingkungan lokal tetapi tingkat data di Azure.

N-tier application pattern

Di Azure, Anda dapat menggunakan ID Microsoft Entra (sebelumnya Azure Active Directory) untuk manajemen identitas dan akses, atau Anda dapat mengintegrasikan Active Directory lokal yang ada dengan ID Microsoft Entra. Seperti yang terlihat dalam diagram, komponen tingkat bisnis dapat mengautentikasi ke beberapa sumber data, termasuk: SQL Server di Azure VM melalui alamat IP internal privat, SQL Server lokal melalui Azure Virtual Network, atau Azure SQL Database menggunakan teknologi penyedia data .NET Framework. Dalam diagram ini, Azure SQL Database adalah layanan penyimpanan data opsional.

Dalam pola aplikasi hibrid tingkat n, Anda dapat menerapkan alur kerja berikut dalam urutan yang ditentukan:

  1. Mengidentifikasi aplikasi database perusahaan yang perlu dipindahkan ke cloud dengan menggunakan Toolkit Microsoft Assessment and Planning (MAP). Toolkit MAP mengumpulkan data inventaris dan performa dari komputer yang Anda pertimbangkan untuk virtualisasi dan memberikan rekomendasi tentang kapasitas dan perencanaan penilaian.

  2. Merencanakan sumber daya dan konfigurasi yang diperlukan di platform Azure, seperti akun penyimpanan dan komputer virtual.

  3. Menyiapkan konektivitas jaringan antara jaringan lokal perusahaan dan Azure Virtual Network. Untuk menyiapkan koneksi antara jaringan lokal perusahaan dan komputer virtual di Azure, gunakan salah satu dari dua metode berikut:

    1. Membuat koneksi antara lokal dan Azure melalui titik akhir publik pada komputer virtual di Azure. Metode ini menyediakan penyiapan yang mudah dan memungkinkan Anda untuk menggunakan autentikasi SQL Server di komputer virtual Anda. Selain itu, siapkan aturan grup keamanan jaringan Anda untuk mengontrol lalu lintas publik ke komputer virtual. Untuk informasi selengkapnya, lihat Mengizinkan akses eksternal ke komputer virtual Anda menggunakan portal Microsoft Azure.

    2. Membuat koneksi antara lokal dan Azure melalui tunnel Jaringan Privat Maya (VPN) Azure. Metode ini memungkinkan Anda untuk memperluas kebijakan domain ke komputer virtual di Azure. Selain itu, Anda dapat menyiapkan aturan firewall dan menggunakan NTLM di komputer virtual Anda. Saat ini, Azure mendukung VPN situs-ke-situs yang aman dan koneksi VPN titik-ke-situs:

      • Dengan koneksi situs-ke-situs yang aman, Anda dapat membangun konektivitas jaringan antara jaringan lokal dan jaringan virtual Anda di Azure. Sebaiknya menghubungkan lingkungan pusat data lokal Anda ke Azure.
      • Dengan koneksi titik-ke-situs yang aman, Anda dapat membangun konektivitas jaringan antara jaringan virtual Anda di Azure dan komputer individual Anda yang berjalan di mana saja. Sebagian besar direkomendasikan untuk tujuan pengembangan dan pengujian.

      Untuk informasi tentang cara menyambungkan ke SQL Server di Azure, lihat Menyambungkan ke komputer virtual SQL Server di Azure.

  4. Siapkan pekerjaan terjadwal dan pemberitahuan yang mencadangkan data lokal di disk komputer virtual di Azure. Untuk informasi selengkapnya, lihat Pencadangan dan Pemulihan SQL Server dengan layanan Azure Blob Storage dan Pencadangan dan Pemulihan untuk SQL Server di Microsoft Azure Virtual Machines.

  5. Bergantung pada kebutuhan aplikasi, Anda dapat menerapkan salah satu dari tiga skenario umum berikut:

    1. Anda dapat menyimpan server web, server aplikasi, dan data yang tidak sensitif di server database di Azure, sedangkan Anda menyimpan data sensitif di lokal.
    2. Anda dapat menyimpan server web dan server aplikasi Anda di lokal, sedangkan server database di komputer virtual di Azure.
    3. Anda dapat menyimpan server database, server web, dan server aplikasi di lokal, sedangkan Anda menyimpan replika database di komputer virtual di Azure. Pengaturan ini memungkinkan server web lokal atau aplikasi pelaporan untuk mengakses replika database di Azure. Sehingga, Anda dapat mencapai untuk menurunkan beban kerja dalam database lokal. Sebaiknya Anda menerapkan skenario ini untuk beban kerja baca berat dan tujuan pengembangan. Untuk informasi tentang membuat replika database di Azure, lihat Grup Ketersediaan AlwaysOn di Ketersediaan Tinggi dan Pemulihan Bencana untuk SQL Server di Azure Virtual Machines.

Membandingkan strategi pengembangan web di Azure

Untuk mengimplementasikan dan menyebarkan aplikasi berbasis SQL Server multi-tingkat di Azure, Anda bisa menggunakan salah satu dari dua metode pemrograman berikut ini:

  • Siapkan server web tradisional (IIS - Layanan Informasi Internet) di Azure dan akses database di SQL Server di Azure Virtual Machines.
  • Terapkan dan sebarkan layanan awan ke Azure. Lalu, pastikan bahwa layanan awan ini dapat mengakses database di SQL Server di Azure Virtual Machines. Layanan awan dapat mencakup beberapa peran web dan pekerja.

Tabel berikut ini menyediakan perbandingan pengembangan web tradisional dengan Azure Cloud Services dan Azure Web Apps sehubungan dengan SQL Server di Azure Virtual Machines. Tabel ini menyertakan Azure Web Apps karena dimungkinkan untuk menggunakan SQL Server di komputer virtual Azure sebagai sumber data untuk Azure Web Apps melalui alamat IP virtual publik atau nama DNS-nya.

Pengembangan web tradisional di Azure Virtual Machines Layanan awan di Azure Hosting web dengan Azure Web Apps
Migrasi aplikasi dari lokal Aplikasi yang ada apa adanya. Aplikasi membutuhkan peran web dan pekerja. Aplikasi yang ada apa adanya tetapi cocok untuk aplikasi web dan layanan web mandiri yang membutuhkan skalabilitas cepat.
Pengembangan dan penyebaran Visual Studio, WebMatrix, Visual Web Developer, WebDeploy, FTP, TFS, IIS Manager, PowerShell. Visual Studio, Azure SDK, TFS, PowerShell. Setiap layanan awan memiliki dua lingkungan di mana Anda dapat menyebarkan paket dan konfigurasi layanan Anda: penahapan dan produksi. Anda dapat menyebarkan layanan awan ke lingkungan penahapan untuk mengujinya sebelum Anda mempromosikannya ke produksi. Visual Studio, WebMatrix, Visual Web Developer, FTP, GIT, BitBucket, CodePlex, DropBox, GitHub, Mercurial, TFS, Web Deploy, PowerShell.
Administrasi dan penyiapan Anda bertanggung jawab atas tugas administratif pada aplikasi, data, aturan firewall, jaringan virtual, dan sistem operasi. Anda bertanggung jawab atas tugas administratif pada aplikasi, data, aturan firewall, dan jaringan virtual. Anda bertanggung jawab atas tugas administratif pada aplikasi dan data saja.
Ketersediaan tinggi dan pemulihan bencana (HADR) Sebaiknya Anda menempatkan komputer virtual dalam set ketersediaan yang sama dan dalam layanan awan yang sama. Menyimpan komputer virtual Anda dalam set ketersediaan yang sama memungkinkan Azure untuk menempatkan simpul ketersediaan tinggi ke domain kesalahan terpisah dan meningkatkan domain. Demikian pula, menjaga komputer virtual Anda di layanan awan yang sama memungkinkan penyeimbangan beban dan komputer virtual dapat berkomunikasi langsung satu sama lain melalui jaringan lokal dalam pusat data Azure.

Anda bertanggung jawab untuk menerapkan ketersediaan tinggi dan solusi pemulihan bencana untuk SQL Server di Azure Virtual Machines untuk menghindari waktu henti. Untuk teknologi HADR yang didukung, lihat Ketersediaan Tinggi dan Pemulihan Bencana untuk SQL Server di Azure Virtual Machines.

Anda bertanggung jawab untuk mencadangkan data dan aplikasi Anda sendiri.

Azure dapat memindahkan komputer virtual Anda jika komputer host di pusat data gagal karena masalah perangkat keras. Selain itu, mungkin ada waktu henti yang direncanakan dari komputer virtual Anda ketika komputer host diperbarui untuk pembaruan keamanan atau perangkat lunak. Oleh karena itu, sebaiknya Anda mempertahankan setidaknya dua komputer virtual di setiap tingkat aplikasi untuk memastikan ketersediaan berkelanjutan. Azure tidak menyediakan SLA untuk satu komputer virtual.
Azure mengelola kegagalan akibat perangkat keras atau perangkat lunak sistem operasi yang mendasarinya. Sebaiknya Anda menerapkan beberapa instans peran web atau pekerja untuk memastikan ketersediaan tinggi aplikasi Anda. Untuk informasi, lihat Cloud Services, Virtual Machines, dan Perjanjian Tingkat Layanan Virtual Network.

Anda bertanggung jawab untuk mencadangkan data dan aplikasi Anda sendiri.

Untuk database yang berada dalam database SQL Server di komputer virtual Azure, Anda bertanggung jawab untuk menerapkan ketersediaan tinggi dan solusi pemulihan bencana untuk menghindari waktu henti. Untuk teknologi HDAR yang didukung, lihat Ketersediaan Tinggi dan Pemulihan Bencana untuk SQL Server di Azure Virtual Machines.

Pencerminan Database SQL Server: Gunakan dengan Azure Cloud Services (peran web/pekerja). Komputer virtual SQL Server dan proyek layanan awan dapat berada di Azure Virtual Network yang sama. Jika komputer virtual SQL Server tidak berada di Virtual Network yang sama, Anda perlu membuat Alias SQL Server untuk merutekan komunikasi ke instans SQL Server. Selain itu, nama alias harus cocok dengan nama SQL Server.
Ketersediaan Tinggi diwariskan dari peran pekerja Azure, Azure Blob Storage, dan Azure SQL Database. Misalnya, Azure Storage mempertahankan tiga replika dari semua data blob, tabel, dan antrean. Pada satu waktu, Azure SQL Database menyimpan tiga replika data yang berjalan—satu replika utama dan dua replika sekunder. Untuk informasi selengkapnya, lihat Azure Storage dan Azure SQL Database.

Saat menggunakan SQL Server di komputer virtual Azure sebagai sumber data untuk Azure Web Apps, ingatlah bahwa Azure Web Apps tidak mendukung Azure Virtual Network. Dengan kata lain, semua koneksi dari Azure Web Apps ke komputer virtual SQL Server di Azure harus melalui titik akhir publik komputer virtual. Ini dapat menyebabkan beberapa keterbatasan untuk ketersediaan tinggi dan skenario pemulihan bencana. Misalnya, aplikasi klien di Azure Web Apps yang tersambung ke komputer virtual SQL Server dengan pencerminan database tidak akan dapat tersambung ke server utama baru karena pencerminan database mengharuskan Anda menyiapkan Azure Virtual Network antara komputer virtual host SQL Server di Azure. Oleh karena itu, menggunakan Pencerminan Database SQL Server dengan Azure Web Apps saat ini tidak didukung.

Grup Ketersediaan AlwaysOn SQL Server: Anda dapat menyiapkan Grup Ketersediaan AlwaysOn saat menggunakan Azure Web Apps dengan komputer virtual SQL Server di Azure. Tetapi Anda perlu mengonfigurasi Pendengar Grup Ketersediaan AlwaysOn untuk merutekan komunikasi ke replika utama melalui titik akhir yang seimbang beban publik.
Konektivitas lintas lokasi Anda dapat menggunakan Azure Virtual Network untuk menyambungkan ke lokal. Anda dapat menggunakan Azure Virtual Network untuk menyambungkan ke lokal. Azure Virtual Network didukung.
Skalabilitas Peluasan skala tersedia dengan meningkatkan ukuran komputer virtual atau menambahkan lebih banyak disk. Untuk informasi selengkapnya tentang ukuran komputer virtual, lihat Ukuran komputer virtual untuk Azure.

Untuk Server Database: Peluasan skala tersedia melalui teknik pemartisian database dan grup Ketersediaan AlwaysOn SQL Server.

Untuk beban kerja baca berat, Anda dapat menggunakan Grup Ketersediaan AlwaysOn pada beberapa simpul sekunder serta Replikasi SQL Server.

Untuk beban kerja tulis yang berat, Anda dapat mengimplementasikan data pemartisian horizontal di beberapa server fisik untuk memberikan peluasan skala aplikasi.

Selain itu, Anda dapat menerapkan peluasan skala dengan menggunakan SQL Server dengan Data Dependent Routing. Dengan Data Dependent Routing (DDR), Anda perlu menerapkan mekanisme pemartisian dalam aplikasi klien, biasanya di lapisan tingkat bisnis, untuk merutekan permintaan database ke beberapa node SQL Server. Tingkat bisnis berisi pemetaan tentang bagaimana data dipartisi dan simpul mana yang berisi data.

Anda dapat menskalakan aplikasi yang menjalankan komputer virtual. Untuk informasi selengkapnya, lihat Cara Menskalakan Aplikasi.

Catatan Penting: Fitur AutoScale di Azure memungkinkan Anda untuk secara otomatis menambah atau mengurangi komputer virtual yang digunakan oleh aplikasi Anda. Fitur ini menjamin bahwa pengalaman pengguna akhir tidak terpengaruh negatif selama periode puncak, dan komputer virtual dimatikan ketika permintaan rendah. Disarankan agar Anda tidak mengatur opsi AutoScale untuk layanan cloud Anda jika menyertakan komputer virtual SQL Server. Alasannya adalah bahwa fitur AutoScale memungkinkan Azure mengaktifkan komputer virtual ketika penggunaan CPU di VM tersebut lebih tinggi dari beberapa ambang batas, dan untuk mematikan komputer virtual ketika penggunaan CPU lebih rendah darinya. Fitur AutoScale berguna untuk aplikasi tanpa status, seperti server web, di mana komputer virtual apa pun dapat mengelola beban kerja tanpa referensi ke status sebelumnya. Namun, fitur AutoScale tidak berguna untuk aplikasi yang bertatus, seperti SQL Server, di mana hanya satu instans yang memungkinkan penulisan ke database.
Peluasan skala tersedia dengan menggunakan beberapa peran web dan pekerja. Untuk informasi selengkapnya tentang ukuran komputer virtual untuk peran web dan peran pekerja, lihat Mengonfigurasi Ukuran untuk Cloud Services.

Saat menggunakan Cloud Services, Anda dapat menentukan beberapa peran untuk mendistribusikan pemrosesan serta mencapai penskalaan fleksibel aplikasi Anda. Setiap layanan awan mencakup satu atau beberapa peran web dan/atau peran pekerja, masing-masing dengan file dan konfigurasi aplikasinya sendiri. Anda dapat meningkatkan layanan awan dengan meningkatkan jumlah instans peran (komputer virtual) yang digunakan untuk peran dan menurunkan skala layanan awan dengan mengurangi jumlah instans peran. Untuk informasi selengkapnya, lihat Model Azure Execution.

Peluasan skala tersedia melalui dukungan ketersediaan tinggi Azure bawaan melalui Cloud Services, Virtual Machines, dan Perjanjian Tingkat Layanan Virtual Network dan Load Balancer.

Untuk aplikasi multi-tingkat, sebaiknya Anda menyambungkan aplikasi peran web/pekerja ke komputer virtual server database melalui Azure Virtual Network. Selain itu, Azure menyediakan penyeimbangan beban untuk komputer virtual dalam layanan awan yang sama, menyebarkan permintaan pengguna di seluruh komputer virtual. Komputer virtual yang tersambung dengan cara ini dapat berkomunikasi langsung satu sama lain melalui jaringan lokal dalam pusat data Azure.

Anda dapat menyiapkan AutoScale di portal Microsoft Azure serta waktu jadwal. Untuk informasi selengkapnya, lihat Cara mengonfigurasi penskalaan otomatis untuk Cloud Service di portal.
Peningkatan dan pengurangan skala: Anda dapat meningkatkan/mengurangi ukuran instans (komputer virtual) yang disediakan untuk situs web Anda.

Peluasan skala: Anda dapat menambahkan lebih banyak instans (komputer virtual) yang dipesan untuk situs web Anda.

Anda dapat menyiapkan AutoScale di portal serta waktu jadwal. Untuk informasi selengkapnya, lihat Cara Menskalakan Web Apps.

Untuk informasi selengkapnya tentang memilih antara metode pemrograman ini, lihat Azure Web Apps, Cloud Services, dan komputer virtual: Kapan menggunakannya.

Langkah selanjutnya

Untuk informasi selengkapnya tentang menjalankan SQL Server di Azure Virtual Machines, lihat Ringkasan SQL Server pada Azure Virtual Machines.