Sabtu, 03 Desember 2011

Model Pemrograman pada Windows Azure

Sebelum memulai pemrograman pada Windows Azure, penting untuk memahami mengenai bagaimana aplikasi akan berjalan pada cloud. Mungkin sebagian dari anda sudah familiar mengenai bagaimana untuk membuat aplikasi menggunakan model pemrograman Windows Server, yang sebagian besar masih dapat digunakan pada Windows Azure. Namun, terdapat beberapa hal yang berbeda pada pemrograman pada platform ini. Hal ini dikarenakan Windows Azure menawarkan abstraksi pada level operating system (lebih lanjut baca Jenis-Jenis Layanan Cloud Computing), sehingga developer bisa berfokus pada pengembangan aplikasi.
Model pemrograman Windows Azure berfokus pada 3 hal, yaitu: 1) Administrasi yang lebih mudah, misalnya mampu melakukan update operating system secara otomatis, 2) Availability yang lebih tinggi, model pemrograman pada Windows Azure didesain untuk available setiap saat, meskipun pada waktu load sangat tinggi, dan 3) Scalabiity yang lebih mudah, programmer dapat dengan mudah menyesuaikan aplikasi sesuai dengan skala yang dibutuhkan.
Secara sederhana, model pemrograman pada Windows Azure mengikuti 3 aturan, yaitu:

1. Sebuah aplikasi Windows Azure terdiri atas satu atau lebih roles

Windows azure akan membagi aplikasi ke dalam beberapa logical part yang disebut roles. Roles terdiri atas 3 jenis sesuai fungsinya: 1) Web Role, yaitu serangkaian logic yang berinteraksi dengan menggunakan HTTP. Biasanya digunakan untuk mendapatkan input dan dapat dibuat dengan ASP.NET, PHP, dll. 2) Worker Rolemerupakan serangkaian logic yang berinteraksi dengan lebih banyak cara. Misalnya, sebuah worker role dapat melakukan analisis terhadap sejumlah data. 3) Virtual Machine (VM) Role, yaitu role yang mampu menjalankan Virtual Hardisk (VHD) pada cloud sehingga bisa digunakan sebagaimana virtual machine pada Windows Server.clip_image002

2. Sebuah aplikasi Windows Azure menjalankan beberapa instance untuk setiap role

Windows Azure akan menjalankan 2 buah copy, atau lebih sering disebut 2 instance berbeda dari setiap roles pada aplikasi tersebut. Banyaknya instance yang akan dibuat oleh sebuah aplikasi ditentukan oleh programmer (lihat Membuat Hello World pada Windows Azure). Setiap instance dari suatu role tertentu akan sama persis dengan instance lainnya, kemudian Windows Azure secara otomatis akan menyeimbangkan load ke dalam instance-instance tersebut. clip_image004
Pada Gambar diatas, sebuah aplikasi terdiri atas sebuah web role dan sebuah worker role, dan terlihat bahwa programmer yang membuat aplikasi tersebut mengalokasikan 4 instance untuk webrole, dan 3 instance untuk worker role.

3. Sebuah aplikasi Windows Azure akan tetap berjalan apabila terdapat kegagalan pada instance

Sebuah aplikasi pada Windows Azure harus memiliki minimal 2 instance pada setiap role yang dimilikinya, untuk memastikan aplikasi tersebut dapat tetap berjalan apabila terdapat instance yang mengalami kegagalan. Untuk memahami lebih lanjut mengenai aturan ini, mari kita lihat gambar berikut: clip_image006
Aplikasi tersebut telah kehilangan dua buah webrole instance nya, serta salah satu worker role instancenya. Apapun penyebab kegagalannya, aplikasi akan tetap dapat berjalan dengan instance yang ada.
Pada prakteknya, sebuah aplikasi Windows Azure dapat berjalan tanpa mengikuti aturan-aturan ini. Namun, ketiga aturan ini memastikan sebuah Platform-as-a-Service (PaaS) dapat memberikan benefit yang diharapkan sebagai layanan cloud.

Fabric Controller

Meskipun developer yang sudah pernah membuat aplikasi Windows sebelumnya tidak akan menemui banyak masalah pada Windows Azure, namun ada baiknya untuk mengetahui bagaimana Windows Azure bekerja. Untuk memahami cara kerja Windows Azure, penting untuk mengetahui konsep mengenai Fabric Controller. Seperti halnya teknologi cloud lainnya, Windows Azure didesain untuk berjalan di sebuah data center yang memiliki banyak komputer, dan setiap aplikasi pada Windows Azure akan dijalankan pada beberapa mesin secara bersamaan. Gambar berikut akan menjelaskan bagaimana hal ini diterapkan pada data center.
clip_image008
Pada gambar diatas, komputer-komputer yang terdapat pada data center dikelola oleh sebuah aplikasi yang bernama fabric controller. Pada saat seorang developer melakukan deploying sebuah aplikasi ke Windows Azure, fabric controller akan membaca file konfigurasi pada aplikasi tersebut, lalu membuat instance dan VM role sesuai dengan yang diinginkan oleh programmer. Seperti tampak pada gambar, instance-instance pada sebuah aplikasi akan tersebar di berberapa komputer di dalam data center. Apabila terjadi kegagalan pada suatu instance, maka secara otomatis fabric controller akan membuat instance baru, sehingga memastikan aplikasi tersebut akan selalu available. Hal ini menyebabkan Windows azure memiliki 3 keuntungan yang telah disebutkan sebelumnya, yaitu, administrasi yang lebih mudah, availability yang lebih tinggi, serta scalability yang lebih mudah.

Tidak ada komentar:

Posting Komentar

ASSALAMU ALAIKUM WARAHMATULLAHI WABARAKATUH