You are on page 1of 5

Database di Awan

Oleh Norman Sasono Saat ini, dalam membangun suatu aplikasi, mutlak diperlukan adanya database. Hal ini juga berlaku untuk aplikasi yang di deploy di environment Cloud Computing. Berbeda dengan database yang di deploy di Data Center on-premise, database di Cloud Computing dapat dilihat sebagai Database as a Service. Maksudnya, di database di awan ini, layanan berupa Relational Database, Reporting dan Data Sync tersedia lengkap dengan kemampuan scalability yang elastis, provisioning dan deployment yang mudah, high availability dan fault tolerance yang otomatis, hingga tidak perlu dilakukannya administrasi fisik database. Microsoft SQL Azure adalah database yang tersedia di data center cloud computing milik Microsoft yang dapat kita pergunakan. SQL Azure adalah satu-satunya layanan Database as a Service yang ada di pasaran saat ini. SQL Azure merupakan bagian dari Cloud Computing milik Microsoft yang disebut Windows Azure Platform.

Microsoft SQL Azure


SQL Azure adalah layanan Database as a Service yang sebenarnya, yang pertama kali ada di pasaran, dan hingga saat ini merupakan satu-satunya layanan yang tersedia di pasaran. SQL Azure menawarkan tiga kemampuan berikut sehingga disebut sebagai layanan Database as a Service yang sebenarnya: Managed Service Scale on Demand Innovate Faster

Di SQL Azure, database yang kita bangun akan di deploy di server di data center cloud computing Azure milik Microsoft. Provisioning dan deployment dapat dilakukan dengan sangat mudah melalui suatu portal di web, maupun dari tools yang familiar seperti halnya SQL Server Management Studio. Database yang kita deploy akan mendapat dukungan high availability dan fault tolerance secara otomatis tanpa perlu kita sendiri yang mengerjakannya. Dengan kata lain, kita tidak perlu lagi me-manage server fisik ataupun virtual machine untuk database kita, karena semuanya di urus oleh SQL Azure. Sebagai layanan Cloud Computing, SQL Azure menawarkan Database seperti halnya utility, dimana kita hanya akan membayar sesuai dengan pemakaian kita, dan tentu saja mendukung scalability berupa naik turun-nya load database secara elastis. SLA yang ditawarkan adalah business ready yang artinya dapat digunakan untuk scenario-skenario aplikasi bisnis pada umumnya. Selain itu, datacenter Azure terdapat di tiga benua, yang memungkinkan international presence untuk aplikasi yang kita bangun.

Pada dasarnya, SQL Azure sebenarnya adalah relational database seperti Microsoft SQL Server yang sudah kita kenal. Jadi, Developer maupun Database Administrator dapat menggunakan skill yng sudah mereka miliki di SQL Server, untuk dapat dipakai di SQL Azure. Jadi, singkatnya, di SQL Azure, kita tinggal membuat database dan deploy. Tidak lagi diusingkan masalah scalability, high availability, fault tolerance, administrasi server secara fisik dan sebagainya.

Topologi Aplikasi
Dalam membangun aplikasi yang menggunakan database di awan SQL Azure ini, terdapat tiga opsi topologi berikut:

Gambar 1 Application Topologies SQL Azure Opsi pertama, Code Near, artinya, kode program aplikasi, di deploy dekat dengan database di SQL Azure. Maksudnya adalah, kita membangun suatu aplikasi, baik itu aplikasi web/website maupun web services, dan kita deploy aplikasi tersebut di Windows Azure. Nah, aplikasi tadi akan bekerja dengan database SQL Azure ini. Jadi, baik aplikasi mapupun database, dua-duanya di deploy di data center Azure, sehingga merek berdekatan. Opsi kedua, Code Far, yang artinya kode aplikasi berada jauh dari SQL Azure. Dengan kata lain, mungkin aplikasi-nya berupa aplikasi desktop yang mengkonsumsi langsung SQL Azure melalui internet, maupun aplikasi di suatu server di data center on premise, yang kemudian mengakses data di SQL Azure.

Opsi ketiga, Hybrid tidak lebih dari kombinasi Code Near maupun Code Far ini. Selain itu, dari SQL Azure, kita juga dapat melakukan sinkronisai data dengan database SQL Server yang kita deploy di server di data center on-premise milik kita.

Replika Database
Ada hal menarik tentang high availability support di SQL Azure. Setiap database yang kita deploy, akan otomatis dibuatkan dua replica-nya di data center Azure yang lain.

Gambar 2 Database Replicas Kemudian, jika terjadi kegagalan di database utama, maka replika database yang lain akan mengambil alih fungsi. Dan pada saat itu juga, akan dibuatkan replika baru-nya. Sehingga, selalu terdapat lebih dari satu replika untuk cadangan. Sekali lagi, semua ini tersedia secara otomatis. Dengan demikian, kita tidak pusing lagi untuk memikirkan masalah high availability dan kegagalan.

Bekerja dengan SQL Azure


Perlu diketahui bahwa SQL Azure meng-ekspos protocol TDS (Tabular Data Stream) yang native, seperti halnya di SQL Server. Akses data dilakukan melalui library standar seperti ADO.NET, ODBC maupun PHP. Jika aplikasi kit di deploy di Windows Azure, library standar tadi sudah terinstall di Windows Azure. Jika anda menggunakan ASP.NET, SQL Azure mendukung untuk digunakan dari control-control ASP.NET. Untuk digarisbawahi di sini, aplikasi terhubung langsung ke database di SQL Azure.

Connection String untuk koneksi ke database di SQL Azure juga menggunakan syntax standar di SQL Server. Aplikasi terkoneksi langsung ke database yang tertulis di Initial Catalog = nama database di connection string. Koneksi yang digunakan hanya mendukung koneksi terenkripsi yaitu SSL. Format username dan password di connection string untuk keperluan autentikasi user juga menggunakan syntax standar SQL Server. Kita juga harus mendefinisikan firewall rules, yaitu mendaftarkan IP address dari mesin-mesin mana saja (server maupun client) yang boleh mengakses server database SQL Azure kita. Untuk administrasi, di SQL Azure DBA hanya cukup menangani administrasi logical saja. Misalnya; pembuatan dan manajemen schema, optimasi query, dan manajemen security. DBA tidak lagi harus direpotkan urusan administrasi fisik server seperti halnya; load balancing, fail over dan high availability. Semuanya sudah ditangani oleh SQL Azure itu sendiri. Maka DBA akan menjadi lebih efisien dan efektif. Di sisi deployment, kita dapat men-deploy database kita dengan menggunakan T-SQL. Kita juga dapat menggunakan fitur SQL Server yaitu Data Tier (DAC), untuk membuat sebuah unit deployment. Pada intinya, saat kita membangun database tersebut, tidak ada bedanya apakah kita akan deploy database tersebut di SQL Serve on-Premise maupun di SQL Azure. Hendak di deploy di data center on-premise maupun di SQL Azure, keputusannya dapat saja kita ambil saat akan deployment nanti. Jadi, tidak ada bedanya saat kita membangun database tersebut (schema, stored procedures, etc). Perlu diperhatikan, jika kita menggunakan aplikasi Windows Azure untuk mengakses database di SQL Azure, ada baikny kita menggunakan data center SQL Azure yang sama. Misal, yang sama-sama di Asia. Untuk model security, SLQ Azure menggunakan autentikasi SQL. Jadi, kita harus menyediakan user name dan password. Model security juga kompatibel dengan SQL Server on-premise. SQL Azure sudah mendukung fitur-fitur utama seperti halnya yang ada pada SQL Server on-premise. Misal: table, index, view, store procedure, trigger, constraint, table variables, session temp table, special types, maupun HierarchyID. Namun demikian, SQL Azure belum punya fitur-fitur berikut: Data Type (FieStream, Sparse Columns), Partitions, Full-Text Index, dan SQL CLR.

Kesimpulan
Dari penjelasan singkat di artikel ini, dapat kita simpulkan bahwa SQL Azure adalah Database as a Service, yang menyediakan layanan database di cloud yang high availability-nya sangat tinggi. SQL Azure merupakan layanan yang termanajemen DBA hanya focus pada administrasi logical dan bukan adinistrasi fisk, SQL Azure dapat mengikuti scalability on demand dan elastis, serta kita dapat bekerja dengan skill set mapun tool yang sudah familiar karena pada dasarnya sama aja dengan bekerja dengan SQL Server on-premise. Tentang Penulis Norman Sasono adalah Architect Advisor di Microsoft Indonesia yang saat ini merupakan Subject Matter Expert untuk Windows Azure Platform di Indonesia. Dia juga menjabat sebagai Vice President dari IASA (International Association of Software Architects) Chapter Indonesia.

You might also like