Hibrit Bulut Platformu Teknik Makale Yayınlanma Tarihi: Haziran 2013 İlgili Konu: Microsoft SQL Server ve Windows Azure Özet: Bulut bilişim, bilişimde bir paradigma değişimine yol açıyor ve şirketler veritabanı uygulamalarını bulut üzerinde daha büyük bir ölçek ve esneklik ile çalıştırarak elde edebilecekleri potansiyel tasarrufları anlamaya devam ediyor. Microsoft SQL Server bulut ortamında çok iyi bir performans gösterir. Şirketiniz SQL Server'ı özel bulut, hibrit bulut ve genel bulut üzerinde kolayca kurabilir geliştirebilir ve yönetimi için alışkın olduğunuz araçları kullanabilirsiniz. Genel bulutta SQL Server'ı Windows Azure Virtual Machine veya Windows Azure SQL Database içerisinde çalıştırma seçeneklerine sahip olursunuz. Microsoft SQL Server, Windows Azure Virtual Machine içerisinde de kurum içi SQL Server özellikleri ile tam uyumludur. Windows Azure SQL Database, milyonlarca kullanıcıya ölçeklenebilecek bulut tabanlı ilişkisel veritabanı uygulamaları için güçlü bir altyapı sunar. Telif Hakları Bu teknik makalede sunulan bilgiler Microsoft Corporation'ın yayın tarihi itibariyle konu hakkındaki görüşlerini yansıtmaktadır. Microsoft, değişen pazar koşullarına cevap vermek zorunda olduğundan, burada yer alanlar Microsoft’un bir taahhüdü olarak kabul edilmemelidir ve Microsoft iş bu yayın tarihinden sonra yayında sunulan bilgilerin doğruluğunu garanti edemez. Bu teknik inceleme sadece bilgilendirme amaçlıdır. MICROSOFT, BU BELGEDE YER ALAN BİLGİLER İÇİN AÇIK, DOLAYLI VEYA RESMİ OLARAK HERHANGİ BİR GARANTİ VERMEMEKTEDİR. Uygulanabilir tüm telif hakları kanunlarına uymak kullanıcının sorumluluğundadır. Telif hakları altında sunulan haklara herhangi bir kısıtlama getirmeksizin, Microsoft Corporation'ın yazılı ve açık bir izni olmaksızın bu belgenin hiçbir parçası çoğaltılamaz, tekrar elde edilebilir sistemler içerisinde saklanamaz veya bu gibi sistemler içerisine yüklenemez veya herhangi bir şekilde veya herhangi bir yöntemle (elektronik, mekanik, fotokopi, kayıt veya diğer) ve herhangi bir amaçla gönderilemez. Microsoft'un bu belgedeki ana konuyu kapsayan patentleri, patent başvuruları, ticari markaları, telif hakları ve başka fikri mülkiyet hakları bulunabilir. Microsoft tarafından verilen herhangi bir yazılı lisans anlaşmasında açık bir şekilde ifade edilmiş olması durumu hariç bu belge size Microsoft'un ilgili patentleri, ticari markaları, telif hakları ve diğer fikri mülkiyet hakları üzerinde herhangi bir lisans hakkı sunmaz. © 2013 Microsoft Corporation. Tüm hakları saklıdır. Microsoft, Access, Azure, Office 365, SQL Server, Visual Studio, Windows ve Windows Server Microsoft grubu şirketlerinin ticari markalarıdır. Tüm diğer ticari markalar kendi sahiplerinin mülkiyetindedir. Sayfa 2 İçindekiler TOC Sayfa 3 Hibrit Bulut: Veritabanınız her yerde En büyük websitelerden, küçük kurum içi uygulamalara kadar herhangi bir uygulama senaryosunu düşünün; Bu uygulamalrın büyük çoğunluğunun belli bir ölçekte bir veritabanına üzerinde çalıştığını göreceksiniz. Kurumlar bulut bilişimden yararlanmak istemeye başladıkça, buluta uygun veritabanı sistemleri kullanmaları başarılarında kritik öneme sahip olacaktır. Bu makalede Microsoft'un bulut bilişim kapsamında ilişkisel veritabanı yönetim sistemleri ile ilgili vizyonu anlatılmaktadır. Bu vizyon, sektörde standart hale gelmiş Microsoft SQL Server teknolojisinden yararlanan hibrit bir BT vizyonudur ve günümüzde şirketlerin dağıtım yaklaşımlarında kullanılabilmektedir (Şekil 1). Şekil 1: Modern BT departmanları ticari ihtiyaçlarını kurum içi ve bulut üzerindeki sistemlerin bir kombinasyonuyla karşılayabilmektedir. Veritabanı uygulamaları portföyü Hibrit bulut kurumların iş ihtiyaçları için kullandıkları farklı tip uygulamalardan oluşan bir portföye ve özgün ihtiyaçları olan çok çeşitli ortamlara sahip olduklarını kabul etmektedir. Bazı uygulamalar bulut bilişim tarafından sunulan ticarileşmiş, her ortamda kurulamayacak kadar detaylı ve karmaşık donanım konfigürasyonları gerektirmektedir. Benzer şekilde birçok şirket çok büyük genel bulut ortamları için son derece uygun iş yüklerine de sahiptir. Çok büyük talep dalgalanmaları yaşayan uygulamalar için gerekli donanım seviyesini oluşturmak ekonomik olarak mümkün olamayabilir. Microsoft'un hibrit bulut hedefi şirketlere uygulamalarını nerede ve nasıl çalıştıracakları konusunda geniş seçenekler sunmak ve aynı zamanda da geniş çaplı çözümlerle ortak sunucu ürün ve araçlarından ve uzmanlıktan yararlanmalarını sağlamaktır (Şekil 2). Sayfa 4 Şekil 2: Veritabanı dağıtımı ile ilişkili her bir yaklaşım özgün yarar ve zorluklara sahiptir. Şirketler gittikçe artan bir şekilde iş yüklerini buluta taşımaktadır Geleneksel donanım üzerine kurulum Son on senede sanallaştırma teknolojisinde gerçekleşen büyük iyileştirmelere rağmen bazı iş yüklerinin sanallaştırılmasında önemli bir performans kaybı olduğu gerçeği değişmemiştir. Büyük, karmaşık ve iş için kritik öneme sahip çevrimiçi işlem yürütme sistemleri (OLTP), işletim sistemi ve veri tabanı platformunun direkt olarak donanımın üzerine kurulduğu çok büyük ve adanmış sunucuların alanında kalmaktadır. Sanallaştırılmamış, adanmış donanım Çoğu iş yükü için sanallaştırma ideal bir yaklaşımdır çünkü toplam sahip olma maliyetine önemli avantajlar sağlamaktadır. Fakat şirketlerin bazen satın alabileceklerien gelişmiş sunucularda en yüksek performansı elde etmeye ihtiyaç duyduğu, yüksek ölçeklendirme yeteneğinin ve en ufak performans artışının bile önemli olduğu durumlarda şirketlerin iş yüklerinin donanım üzerinde çalıştırılması gerekmektedir. Sanallaştırılmamış bir ortamda çalıştırma gereksiniminin doğal bir sonucu uygulamaların üzerinde çalıştıkları spesifik adanmış sunucu donanımlarına sahip olmasıdır. Fiziksel yapılandırma Önemli ölçüde adanmış donanım kaynaklarını çalıştırmanın temel bir faydası ileri düzey fiziksel yapılandırma için çok sayıda fırsat sunuyor olmasıdır. SQL Server gibi veritabanı dağıtımının en önemli alanlarından birisi depolama alt sistemindeki fiziksel yapılandırmadır. Fiziksel yapılandırma imkânına sahip olma şirketlerin bulut ortamına geçerken kaybettiği şeylerden birisidir. Bulut dağıtımı: Genel bulut ve özel bulut Özel bir bulut, genel bir bulutun tüm karakteristik özelliklerine sahip olabilse de bu durum tüm bu karakteristik özelliklere sahip olmak zorunda olduğu anlamına gelmemektedir. Örneğin pek çok özel bulut eksiksiz bir geriye dönük ödeme muhasebe sistemi kullanmamaktadır. Buna karşın şirketler özel bulut stratejilerini olgunlaştırdıkça, özel bulutlar tarafından sağlanan hizmet ve hizmet seviyeleri genel bulut hizmeti sağlayıcıları tarafından sunulanlara daha da yaklaşmaya başlamıştır. Sayfa 5 Havuzda biriken sanallaştırılmış kaynaklar Sunucu sanallaştırma hem özel hem de genel bulut ortamları ile ilişkilidir. Buna karşın bilişimde bulut tabanlı yaklaşım sadece iş yüklerinin sanallaştırılmasından daha fazlasını gerektirmektedir. Kurum içi sanallaştırma ortamlarının pek çoğu spesifik uygulama hedeflerine sahiptir. Ortam sanallaştırılmış olsa bile uygulamalar belirli, adanmış sunucu konakları üzerinde çalışmak zorundadır. Bazı durumlarda bu teknik bir zorunluluktan kaynaklanmaktadır; bazı durumlarda ise bunun sebebi belli bir departmanın ilgili düğüme "sahip" olmasıdır. Bulut ortamı donanım kaynaklarının havuzda toplanmasına dayanmaktayken, sanallaştırma ise havuzda biriktirme kapasitesi için anahtar konumdayken kendi başına yeterli değildir. Havuzda biriktirme mekanizması, kaynakların bir araya getirildiği ve ardından herhangi bir iş yükünü çalıştırma imkânına sahip homojen bir kapasite havuzu olarak sunulmasını ifade etmektedir. Havuzda biriktirme yoluyla oluşturulmuş bir bulut ortamında çalışan iş yüklerinin gerçekte hangi fiziksel donanım üzerinde yer aldığı bilinmemektedir. Yukarıda bahsedilen birinci katman iş yükleri ileri seviye fiziksel yapılandırma gereksinimi yüzünden havuza ilişkin şablonlardan farklıdır. Örneğin fiziksel yapılandırma için özel bir yaklaşım ve belirli sabit disk iğne düzenleri gerektiren bir SQL Server iş yükü sanallaştırılabilse de başka uygulamalar tarafından ihtiyaç duyulmayacak türde özgün kaynak gereksinimleri sebebiyle havuzda toplanmış kaynakları kullanamamaktadır. Bahsi geçen iğne yapılandırmaları bir havuza uygulandığında muhtemelen başka hiç kimse tarafından kullanılmak istenmeyecektir. Esneklik Esneklik bulutun talepteki artış ve azalmalara cevap verebilme imkânıdır. Pek çok iş süreci mevsimsel karakteristiklere sahiptir. Tarımda yıllık olarak hazırlanan saman balyaları buna bir örnektir. Çoğu çiftçi saman balyalarını hazırlamak için dışarıdan yüklenicileri ve iş makinelerini kullanmaktadır çünkü gerekli olan traktör ve saman balyası teçhizatını yılın büyük bir bölümünde çalışmadan tutmak ekonomik değildir. Bilgi teknolojisi iş yükleri de büyük ölçüde mevsimseldir fakat bu iş yüklerini desteklemek için kurulan makineler genellikle iş yükünün arttığı zamanlardaki ihtiyacı karşılamak için yeterli kapasitede satın alınmakta ve kalan zamanlarda da "ambarda bekletilmektedir". Mevsimsel iş yüklerine dair tipik bir örnek spor ve kültürel etkinlik biletlerinin satışı ile ilişkilidir. Büyük bir etkinliğe ilişkin bilet satışları başladığında bilet almak isteyen müşteri sayısı genellikle tedarik edilebilecek mevcuttan daha fazla olmaktadır. Geçmişte müşteriler biletlerini almak için tüm gece bilet gişesinin önlerinde kamp kurarlardı. Çevrimiçi dünyada ise bu doğal sıra mekanizması ortadan kalkmakta ve etkinliğe katılmak isteyen müşteriler sanal bilet ofisine yığılarak kapasitenin üzerine çıkmaktadır. Bulut kaynakları hem genel olduğundan hem de havuzda toplandığından ilave kapasitenin "boşta duruyor olmasını" gerekçelendirmek kolaydır. Özel veya genel olsun bulut sağlayıcıları tipik olarak her zaman kapasitelerinin bir kısmının talep artışlarına karşın hazır olmasını sağlamaya çalışmaktadır. Genel bulutlar ise bu konuda önemli bir avantaja sahiptir. Genel bulutlar çok büyük bir ölçekte çalıştığından ve havuzda toplanan kaynaklarına binlerce müşteri eriştiğinden daha küçük özel bulutlardan çok daha büyük bir boş alanı tutabilmektedirler. 100 sunuculu bir bulutun % 1'i hızla artan talep karşısında çok fazla bir kapasite sunmasa da 10.000 sunuculu bir bulutun % 1'i önemli bir kapasite sunmaktadır. Esneklik özel bir veri merkezinde elde edilebilecek en zorlu bulut karakteristiğidir çünkü şirketin elindeki kapasitesini boşta bırakmasını gerektirir fakat boş kapasite aslında bulut tabanlı bir yapıya geçmenin temel gerekçelerinden birisidir. Biletlerle ilgili örnekteki gibi bazı iş yükleri özel bulut ortamı için uygun değildir. Bulutun ölçeğini anlamak için iyi bir test "bulut tarafından oluşturulan kapasite esneklik konusundaki beklentilerimizden kaç kat daha Sayfa 6 fazla?" sorusunu sormaktır. Kapasite çarpanlar yerine üslü sayılarla ölçülmelidir. Anlık talep artışlarına karşı onlarca sunucuya ihtiyaç duyuyorsanız en az binlerce düğüme sahip bir buluta sahip olmanız gerekir. Kendi kendine hizmet Bulut bilişimde kendi kendine hizmet özelliği birbirini tamamlayan iki hedefe cevap vermektedir. Bunlardan birincisi kaynakların hazırlanması için gereken işgücünü azaltarak veya tamamen kaldırarak masrafları daha da azaltmaktır. İkincisi ise iyi bir şekilde kurgulandığında kullanıcılara kendi kendine hizmet imkânını vermesidir. Bulut kullanıcıları, kaynaklara direkt erişme sayesinde daha güçlüdür. Zorlayıcı onay süreçleri ve taleplerinin BT yöneticileri için öncelik olmasını bekleme süreciortadan kalkmaktadır. Bir bulut ortamı kullanıcılara talep temelli olarak havuzdan kaynak elde etme imkanı vermektedir. Kullanıcıların iş yüklerinin diğer iş yükleri ile karışmamasını sağlamaktadır ve kullanıcılar kapasiteden sadece kendilerine izin verilen (veya genel bir bulut durumunda kredi limitlerinin izin verdiği) ölçüde yararlanabilmektedir. Kendi kendine hizmet, şirketlerin yeni şeyler denemesine ve yeni pazarlara hızla erişmesine imkân sağlayarak işlerinde çeviklik yaratmaktadır. İster kurum içerisindeki ister Windows Azure üzerindeki özel bir bulut olsun, uygulamalar diğer dağıtım yaklaşımlarıyla kıyaslandığında geliştirme aşamasından üretime çok daha hızlı bir şekilde taşınabilmektedir. Kullanıcı tabanlı modeller Paylaşılan BT ortamlarının birçoğu “ortak varlık trajedisinden1” zarar görmektedir—BT kapasitesinde sınır bulunmuyorsa, tüm tüketicilerin çıkarının korunması için tek bir tüketicinin kapasiteyi korumasına teşvik edici bir durum bulunmamaktadır. Tüketiciler su, gaz ve elektrik gibi diğer kaynaklara birim başına ödemeye alışkındırlar. Bulut bilişim ile sunulan kullanım başına ödeme modeli kullanılmayan kapasitenin kapatılması konusunda teşvik edicidir. Bulut bilişim satıcıları sundukları hizmetlerden para talep etmek durumundadır ve bu yüzden bu ortamlar her zaman ölçülecek ve faturalandırılacaktır. Özel bulutlarda ise bu durum değişkenlik göstermektedir. Geriye dönük ödeme modeli, özellikle de şirket bunu destekleyecek muhasebe sistemlerine sahip değilse karmaşıktır fakat yine de önemli avantajları bulunmaktadır. Özel bulutlarda kullanım başına ödeme modelinin hedefi kullanıcı davranışlarını yönlendirmek ve bulut kaynaklarının kısıtlı kaynaklar olarak algılanmasını ve mümkün olduğunda tasarruf edilmesini sağlamaktır. Kotalar ve diğer kaynak dağıtım mekanizmaları bazı özel bulut ortamları için uygun olabilir. Özel ve genel bulut operatörlerinin karşılaştığı zorluklardan birisi "hangi ölçüm yönteminin kullanılacağıdır." Ücretleri belirlemek için ölçülecek şey ne olmalıdır? Ölçüm sunulan hizmetin gerçek maliyeti ile yakından ilişkili olmalıdır fakat bulut hizmetinin kullanıcılarının anlayabileceği kadar da basit olmalıdır. Bulut kullanıcları kullandıkları uygulama ile ilişkili beklenen sorgu zamanının ne olduğunu biliyorlarsa "sorgu saatlerini" ölçmek çok anlamlı değildir. Ücretlendirme modeli bir bulut hizmeti sağlayıcısının verimliliği belirlediği bir mekanizmadır. Şirketler tüm gerçek kaynakların sanallaştırma katmanlarının altında gizlendiği bir bulut ortamında uygulama mimarilerini öncelikle maliyet etkinliğini sağlayacak şekilde oluşturmalıdır. Uygunluk Bazı senaryolarda uygulamaların spesifik kurumsal veya sektörel standart ilkelere uygun olması gerekmektedir. Bu ilkeler genellikle güvenlik, sistem yönetimi ve hukuki konularla ilişkilidir. İlkeler, sunucular 1 "Ortak Mal Trajedisi." Science 162 (3859): 1243–1248. 1968. http://www.sciencemag.org/cgi/reprint/162/3859/1243.pdf Sayfa 7 üzerine kurulacak antivirüs programları gibi basit şeylerden, ISO/IEC 27001 gibi Bilgi Güvenliği Yönetim Sistemi standartları gibi karmaşık uygulamalara kadar uzamaktadır. Şirket tüm sistem üzerinde ne kadar çok kontrole sahipse sistem akla gelebilecek tüm ilke ve şartlara o kadar uygun olacaktır. Normalde fazlakapasitenin oluşturulmasını gerektiren bir kurumsal ilke genel bulut için uygun değildir ve aynı şekilde izole bir özel bulut da havuzda toplanmış donanımı kullanan internete bağlı bir özel bulut ile birlikte var olamaz. Uygunluk şartları ne kadar zorluysa, sistemi kuran şirketin tam kontrolü içerisinde çalışan adanmış bir ortama olan ihtiyaç da o kadar fazla olacaktır. Genel bulut hizmeti sağlayıcılarının büyük çoğunluğu sistemlerinin sektördeki standart çerçevelere uygun olduğunu göstermek için hızla denetimler gerçekleştirmiş ve sistemlerini sertifikalandırmıştır. Pek çok küçük ve orta ölçekli şirket için uygunluğun sağlanması aşırı maliyetli olabilir. Bu durum küçük şirketler için ilgili standartları kendi veri merkezlerine kurmak zorunda kalmadan uygulamalarını sertifikalandırılmış genel bulut bilişim ortamlarına dağıtmak gibi yeni fırsatlar sunmaktadır. Bazı uygunluk konuları sadece genel bulut bilişim ile ilişkilidir. Sistemleri üzerinde tam hakimiyete ihtiyaç duyan şirketler genellikle verilerinin sadece belli bir ülkede kalmasını ve bu sistemlere sadece kendi çalışanları tarafından erişilebilmesini sağlamak zorundadır. Bu tür şirketler için adanmış sistemler veya özel bulut ortamları tek uygulanabilir çözüm olarak kalmaktadır. Windows Azure'un çeşitli sektörel standartlara uygunluğu hakkında daha fazla bilgi için bakınız http://www.windowsazure.com/en-us/support/trust-center/compliance/. Örneğin SQL Server, Ortak Ölçüt sertifikasını alabilmek için SQL Server 2005'ten bu yana çok önemli uygunluk çalışmalarında bulunmuştur. Bu sertifika, Ortak Ölçütlerin Karşılıklı Tanınması Düzenlemesini (CCRA) imzalayan 26 ülkenin devletleri tarafından ve ayrıca 40 ülke tarafından da ürü bazında resmi olarak kabul edilmektedir. Ortak Ölçüt güvenlik işlevlerinin ve güvence gereksinimlerinin kısa tanımlarından çok daha fazlasıdır. Ayrıca Ortak Değerlendirme Metodolojisi belgesinde tanımlanan dikkatli bir değerlendirme sürecidir. Ayrıca Ortak Ölçüt değerlendirmelerini yapan her bir ülke için resmi ve onaylanmış bir değerlendirme şablonudur ve ayrıca ilgili ülkede sertifikalandırılmış özel bir değerlendirme laboratuvarına dayanan ülkeler tarafından sunulan bir sertifikadır. SQL Server ve uygunluk hakkında daha fazla bilgi için bakınız http://www.microsoft.com/en-us/sqlserver/common-criteria.aspx#tab1. Microsoft Genel Bulutu ve SQL Server Windows Azure, SQL Server veritabanlarının kullanımını mümkün kılmak için iki genel seçenek sağlamaktadır: Bir Windows Azure Virtual Machine içerisinde Microsoft SQL Server: Bu yaklaşım kurum için dağıtıma benzemektedir. Şirketler hem işletim sistemi hem de kurulu uygulamalar üzerinde tam denetime sahiptir ve kurum içi SQL Server ile neredeyse tam uyumluluğu elde edebilmektedir. Şirketler Windows Azure Virtual Machine kullanım saatini birkaç kuruş karşılığında satın alabilmektedir. Ayrıca kendi SQL Server lisanslarını taşıma veya SQL Server lisansını saatlik olarak kiralama seçeneğini elde etmektedir. Bir Windows Azure Virtual Machine içerisinde SQL Server mevcut uygulamalarını buluta taşımak isteyen şirketler için idealdir. Windows Azure SQL Database: SQL Database tam anlamıyla bulut içerisinde hizmet olarak platformdur. Şirketler bu hizmeti veritabanları için ayrı ayrı satın almakta ve Microsoft bu hizmeti veritabanı seviyesine kadar her aşamada yönetmektedir. Yani şirketlerin işletim sistemi için ve hatta veritabanı sunucu yazılımının yamalarının yüklenmesi için sorumluluk almasına gerek yoktur. Bu hizmet özellikle yeni uygulamalar geliştiren şirketler için uygundur ve ister sanal makine yöntemiyle Sayfa 8 ister kurum içerisinde olsun başarılması zorlu olan yüksek kullanılabilirlik ve ölçeklendirme gibi ilave avantajlar sağlamaktadır. Şekil 3: Microsoft genel bulutu SQL Server için iki önemli avantaj sağlamaktadır Bulut dağıtımı neden ve ne zaman anlamlıdır Windows Azure Virtual Machine içerisinde SQL Server Windows Azure Virtual Machine'i kullanan şirketler bulut üzerinde çalıştırabilecekleri ve yönetebilecekleri bir sunucu oluşturabilmektedir. Bu sunucular Windows Server 2008 R2 veya sonraki sürümlerini ve çok sayıda farklı Linux dağıtımlarını çalıştırabilmektedir. Şirketler sunucu üzerinde tam denetime sahip olmakta; uygulamalar yükleyebilmekte ve Windows Azure bulutunda neredeyse her türlü iş yükünü çalıştırabilmektedir. SQL Server'ı bir Windows Azure Virtual Machine üzerine kurmak Microsoft'un sağladığı ve desteklediği ana senaryolardan birisidir. Uyumluluk açısından ise SQL Server'ı bir Windows Azure Virtual Machine üzerinde çalıştırmak SQL Server'ı kurum içerisindeki bir sanal makinede çalıştırmak ile aynı şeydir. Tipik olarak şirketler uygulamalarını herhangi bir kod değişikliği yapmadan buluta taşıyabilmektedir. Şirketler, Windows Azure Image Gallery (Microsoft, SQL Server Web, Standard veya Enterprise için yapılandırılmış çeşitli imajlar sunmaktadır) içerisindeki önceden oluşturulmuş sanal makine imajlarını kullanarak bulut sunucuları oluşturabilmektedir. Sunucuyu oluşturduktan ve başlattıktan sonra veritabanlarını genel SQL Server veritabanı taşıma tekniklerinden (yedekleme ve kurtarma veya belge kaldırma ve ekleme dahil olmak üzere) birisini kullanarak sunucuya taşıyabilmektedirler. Alternatif olarak şirketler kurum içindeki sanal makinelerini bir bütün olarak alıp Windows Azure'a taşıyabilmektedir. Şekil 4: Bir Windows Azure Virtual Machine içerisinde SQL Server uygulamalarını buluta taşımak için ideal bir yöntem sunmaktadır Sayfa 9 Windows Azure Virtual Machine içerisinde çalışan SQL Server düşük maliyetli ve az çaba gerektiren bir geçiş yöntemi sunmaktadır. Uygulamalar için toplam sahip olma maliyeti konusundaki önemli bir belirleyici uygulamanın geliştirilmesi ve bakımı konusundaki maliyettir. Veritabanlarını Windows Azure Virtual Machines'e taşımak genelde herhangi bir kod değişikliği gerektirmemektedir. SQL Server Standard Edition'ı (lisanslar dahil) çalıştıran bir Windows Azure Virtual Machine saatte 64 cent veya aylık olarak 476 dolar ücrete sahiptir. SQL Server Web Edition'a uygun iş yükleri için maliyet saatte 13,5 sentten başlamaktadır (veya aylık 100 dolar). Şirketler daha yüksek veritabanı yoğunlukları ile daha da büyük maliyet etkinliğine de ulaşabilmektedir. Kurum içi SQL Server'da az ve tek bir maliyet kalemi elde etmek için düşük yüke sahip onlarca veya yüzlerce veritabanı tek bir sanal makine üzerinde çalıştırılabilmektedir. Microsoft SQL Server ilişkisel bir veritabanı yönetim sistemi (RDBMS) olmasının yanı sıra farklı yeteneklere de sahiptir. Bu yetenekler arasında zengin raporlama teknolojileri; çıkarma, dönüştürme ve yükleme (ETL) araçları ve ayrıca iş yönetimi ve programlama özellikleri bulunmaktadır. SQL Server'ı bir Windows Azure Virtual Machine içerisine kurmak şirketlerin hangi SQL Server sürümünü kurmuş olurlarsa olsunlar o sürümün tüm özelliklerinden yararlanabilecekleri anlamına gelmektedir. Birkaç küçük istisna dışında kullanıcılar SQL Server kutulu ürününün tüm özelliklerine erişebilmektedir. Spesifik olarak desteklenen özellikler arasında aşağıdakiler yer almaktadır: SQL Server Integration Services SQL Server Analysis Services SQL Server Reporting Services SQL Server Agent SQL Server'ı bir Windows Azure Virtual Machine içerisinde kullanan şirketler dağıtım süreci üzerinde tam denetime sahip olur. Bunun anlamı Windows ve SQL Server'ı özgün olarak yapılandırabilecekleridir. Bir uygulama üçüncü taraflara ait araç veya teknolojilerin kullanılmasını gerektiriyorsa bu öğeler kurulabilmektedir. Kurumsal ölçekte şirketler ise SQL Server dağıtımları konusunda parola gücü veya virüs tarayıcıları gibi spesifik ilkelere sahip olabilmektedir; bu gibi gereksinimler kolayca bir Windows Azure Virtual Machine'e kurulabilmekte ve desteklenebilmektedir. Windows Azure Virtual Network'ü kullanan BT yöneticileri bir Windows Azure Virtual Machine etki alanını kurum içi etki alanlarıyla birleştirebilmektedir. Bu yetenek, tek bir kurumsal güven sınırı ile kurum içi ve kurum dışında kurulu hibrit uygulamaların geliştirilmesine imkân sunmaktadır. Windows Azure, Windows Azure Virtual Machine kapsamındaki tüm altyapının yönetilmesine imkân sağlamaktadır. BT yöneticilerinin herhangi bir fiziksel donanımı veya fiziksel ağ yapılandırmasını yönetmesi gerekmemektedir. Buna rağmen denetim daha büyük sorumluluğu da beraberinde getirmektedir. BT departmanları işletim sistemlerine yamaların yüklenmesinden ve SQL Server'ın Sayfa 10 güncellenmesinden sorumludur. Buna karşın bu kurulum sadece Windows Server'dır ve bu yüzden Microsoft System Center 2012 ve önceki sürümleri dahil olmak üzere standart yönetim teknolojilerini kullanarak yardım alabilmektedirler. Sanal sabit diskler (VHD), Windows Azure Storage içerisinde tutulmaktadır ve bu hizmet tarafından sunulan yüksek kullanılabilirlik özelliğine sahip depolamadan faydalanmaktadır. Gerçek anlamda yüksek kullanılabilirlik özelliğine sahip bir veritabanı çözümü elde etmek isteyen BT yöneticilerinin SQL Server 2012 ve sonraki sürümlerinde bulunan AlwaysOn özelliğini yapılandırması gerekir. Tipik olarak şirketler sanal makineleri için %99,9 çalışma süresi hizmet düzeyi anlaşmalarına (SLA) sahiptir. Şirketler, SQL Server veritabanı hizmetinin kendisi de dahil olmak üzere ilgili sanal makine üzerinde çalışan uygulamalarının çalışır kalma sürelerinden sorumludur. Windows Azure SQL Database Windows Azure SQL Database, Windows Azure bulutu üzerinde çalışan yüksek kullanılabilirlik sunan, ölçeklendirilebilir, çok müşterili ilişkisel bir veritabanı sağlamaktadır. SQL Database bulut için tasarlanmış yeni uygulamalar için harikadır. Bu tür uygulamalar özgün ölçeklendirilebilirlik özelliklerinden yararlanabilir. SQL Database, SQL Server ile son derece uyumlu olduğundan mevcut çok sayıda uygulamayı çok az veritabanı ve kod değişimi ile SQL Database'e taşımak mümkündür. SQL Database taşınabilecek basit veritabanlarına sahip şirketler için çok düşük bir toplam sahip olma maliyeti ve yüksek kullanılabilirlik ve ölçeklendirme gibi kurum içerisinde elde etmesi zor avantajlar sunmaktadır. Bu seçenek, yalnızca bulut üzerinde çalışan uygulamalar veya kurum içi uygulamalar için veri depolarının buluta uzaktan bağlanmasından doğan bir miktar gecikmenin tolere edilebileceği durumlarda harika bir seçenek olabilir. SQL Database diğer çözüm sağlayıcılar tarafından sunulan bulut çözümlerinin sahip olmadığı çok sayıda özgün avantaja sahiptir. Bu özellikler günümüzde tercih edilen her zaman çalışan büyük ölçekli uygulamalar ile birlikte iyi çalışsa da, eski uygulamaları taşımak yerine yeni uygulamalar geliştirme seçeneğini kullanmak isteyen şirketlere daha uygun olması nedeniyle uygulama geliştiricilerinin spesifik destek sunmasını da gerektirmektedir. Bu özelliklerden birincisi SQL Federation adlı bir özelliktir. Federation, veritabanı sharding modeline (satır tabanlı bölüm) yönelik gerekli araçları ve T-SQL desteğini sunarak, şirketlerin veritabanını ölçeklendirmesine imkân verir. Mimarisi uygun bir uygulamada SQL Database hem veri büyüklüğü hem de işlem yükü anlamında neredeyse sınırsız ölçeklendirme imkânı sunar. Bu özellikten yararlanmak için hem veritabanı hem de uygulama tasarımında spesifik bir yaklaşım gerekir. Federation asgari olarak mevcut uygulama üzerinde önemli bir çalışma gerektirir. İdeal olanı uygulama geliştiricilerinin uygulamayı en başından sharding modeline göre geliştirmesidir. SQL Database'in bir başka özgün özelliği veritabanının yapılan işlemler açısından birbiriyle tutarlı üç kopyasını Windows Azure farklı bölgelere dağıtılmış hataya karşı dayanıklı veri merkezlerinde tutarak yüksek kullanılabilirlik sağlamasıdır. Yinelenen örneklerden birisinde hata oluştursa SQL Database trafiği çalışan diğer kopyalara yönlendirmekte, yeni bir örnek oluşturmakta ve eski örneği tekrar diğerleriyle tutarlı hale getirmektedir. Şirketler kurum içerisinde ve IaaS'te gelişmiş yüksek kullanılabilirlik özellikleri kullanabilse de bu özelliklerin kurulumundaki karmaşıklık şirketlerce erişilmesini zorlaştırmaktadır. SQL Database içerisindeki ayda birkaç dolar ücrete sahip en küçük veritabanları bile yüksek kullanılabilirlik için yapılandırılmaktadır. Yüksek kullanılabilirlikten tam anlamıyla yararlanabilmek için geliştiricilerin hazırladıkları kodların güvenilir bir şekilde veritabanındaki bağlantı kopmalarıyla başa çıkabilmesini Sayfa 11 sağlaması gerekir. İş yükünün bir başka yedeğe taşınması halinde SQL Database uygulamanın bağlantısını kesmektedir. Geliştiriciler bağlantı kopmalarını yeniden deneme mantığı ile ele alabilirler. 2 Şekil 5: Windows Azure SQL Database çok büyük ölçekli uygulamalar geliştirmek için özgün yetenekler sağlamakta ve bulut için tasarlanmış yeni uygulamalara yönelik en düşük toplam sahip olma maliyetini sunmaktadır SQL Database'i kullanan şirketler veritabanı uygulamalarını daha hızlı bir şekilde dağıtabilir. Oluşturulması gereken bir veri merkezi olmadığından veya kurulması gereken bir yazılım bulunmadığından yeni bir veritabanı dakikalar içerisinde hazırlanabilir. Bu çeviklik şirketlerin yeni şeyler denemesine ve yeni pazarlara hızla erişmesine imkân sağlamaktadır. Uygun bir uygulama mimarisinin bulunması halinde bir uygulamanın yüzlerce veya binlerce kullanıcıya dağıtılması aynı şeydir ve sadece birkaç dakika sürer. SQL Database, bir sunucu yerine iki etkin bekleyen sunucuyla çalışan SQL Server'ın kurum içi örneğine denktir. Bu tür bir kurum içi çözüm donanım ve kurulum süresi hesaba katılırsa tipik olarak binlerce dolar yatırım gerektirecektir fakat SQL Database fiyatları sadece aylık birkaç dolardan başlamaktadır. Bunun tekrar söylenmesi uygun olacaktır: SQL Database, aylık 5 dolardan başlayan fiyatlarla gerçek yüksek kullanılabilirlik ve kurumsal ölçeğe uygun bir ilişkisel veritabanı sunmaktadır. İnternet ile birbirine tam anlamıyla bağlanmış olan dünyada büyük başarılar elde etmek son derece büyük zorluklarla mücadeleyi gerektirebilir. Yeni lanse edilen bir ticari uygulama belki de yüksek trafiğe sahip bir blog sitesinde iyi bir şekilde tanıtıldıktan sonra hızla ölçeklendirmeye ihtiyaç duyacaktır. Burada "hızlı" kelimesi dakikalar veya saatler içerisinde anlamına gelmektedir; daha fazla kapasite yaratmak için ölçeklendirme işi günler veya haftalar alırsa en önemli zaman kaçırılmış olur. Hızla ölçeklendirme için platformun iki temel özelliğe sahip olması gerekir: İşletim sistemini etkilemeden kapasite ekleme imkânı Talep ne kadar hızlı artarsa artsın yeterli kaynağın bulunacağına dair güçlü bir taahhüt 2 “Windows Azure SQL Database'te Geçici Hatalarda Yeniden Deneme Mantığı.” Microsoft TechNet. http://social.technet.microsoft.com/wiki/contents/articles/4235.retry-logic-for-transient-failures-in-windows-azure-sqldatabase.aspx Sayfa 12 SQL Federation kullanan ve uygulamalarını SQL Database ile hazırlayan yazılım geliştiricileri verilerini çok sayıda veri tabanı arasında bölebilir. Bu tür ölçeklendirme hızla olur, kullanıcılar tarafından hissedilmez ve BT profesyonellerinin yoğun destek sunmasını gerektirmez. Veritabanları yük altında ölçeklendirilebilir veya bölünebilir. Bölme işlemleri (re-sharding) uygulamalarda aksama süresi olmadan çevrimiçi olarak yapılır. SQL Database çok büyük bir ölçekte sunulduğu için gerçek zamanlı olarak her zaman "yedek kapasite" mevcuttur (Şekil 6). Bu tür kullanılabilirlik kurum içi dağıtım yaklaşımlarından farklıdır. Özel bulutlarda bile önemli ölçüde yeni bir kapasite talebi oluştuğunda, yeni donanımın önce veri merkezine kurulması gerekir. Çok başarılı yeni bir uygulama şirketin tedarik zinciri üzerinden yeni sunucu donanımını satın alma hızını yetersiz bırakabilir. Kurum içi sunucuları sipariş etmek ve hazırlamak günler veya haftalar almaktadır. Şekil 6: Federation şirketler tarafından T-SQL, SQL Server Management Studio veya Management Portal üzerinden yönetilebilir SQL Federation sayesinde şirketler ilişkisel veritabanlarını ölçeklendirebilir; bu kapasite güçlü işlem tutarlılığına ve tipik olarak "NoSQL" türü bulut veri depoları ile feda edilen diğer özelliklere önem veren şirketler için önemlidir. Çok az sayıda şirket farklılıklarını BT altyapılarını ne kadar iyi yönettikleri ile göstermektedir. Şirketler harika bir iş çıkarmak istemektedir; rakipleri kadar veya rakiplerinden daha iyi olmak istemektedir fakat iyi yönetim genellikle stratejik avantajlarının bir parçası haline gelmemektedir. SQL Database ile şirketler sadece ölçek ekonomisinin avantajını elde etmeyecek aynı zamanda niteliklerini de elde edecektir. SQL Database veritabanı seviyesinde %99,9 kullanılabilirlik sunmaktadır ve bunu hizmet düzeyi anlaşmasıyla desteklemektedir. Bunun anlamı Microsoft'un sadece SQL Server'ı çalıştıran sunucuların değil aynı zamanda veritabanının da çalışma süresini garanti ediyor oluşudur. Sayfa 13 Hem altyapı hem de platform bileşenlerini yönettiği için SQL Database güncellemeleri (donanım terfileri, yazılım yamaları ve diğerleri) BT yöneticilerinin müdahalesine gerek kalmadan aksama süresi olmadan sağlamaktadır. SQL Database'i kullanmaya başlayan şirketler kurumsal sınıfta masraflarla karşılaşmadan kurumsal sınıfa uygun kullanılabilirliğe sahip uygulamalar sunabilmektedir. Mevcut sistemleri işletmek için daha az zaman harcanacağından BT çalışanları sistemlerde yenilikler yapmak ve uygulamaları iyileştirmek için daha fazla zamana sahip olabilecektir. BT'nin odağı işletmeden, işe stratejik değer katmaya kaymaktadır. SQL Database protokolü SQL Server ile uyumludur yani geliştiriciler ve BT profesyonelleri Microsoft Visual Studio entegre geliştirme ortamı (IDE) ve SQL Server Management Studio gibi bildikleri araçları kullanabilmektedir. Geliştiriciler ve BT profesyonelleri SQL Server'ı kullanan kurum içi uygulamalarla çalıştıklarında tablo verisi akışı (TDS) protokolünü kullanan istemci kütüphanelerinden yararlanarak istemci ve sunucu arasında iletişim kurabilmektedir. Windows Azure SQL Database, SQL Server ile aynı TDS arabirimini sunmaktadır, yani verilerle çalışan uygulamalar Windows Azure SQL Database içerisinde saklanan kütüphanelerin aynılarını kullanabilmektedir. İlişkisel veritabanı programlamasındaki genel yaklaşımlar içerisinde ADO.NET, Entity Framework ve ODBC yer almaktadır. SQL Database, JDBC ve hatta PHP ve Node.JS için sürücülerle diğer platformları da desteklemektedir. Kurum içi SQL Server uygulamaları için geliştirilen kodlar kolayca Windows Azure SQL Database'e taşınabilmektedir. SQL Database tam bir ilişkise veritabanıdır. İlişkisel veritabanı modeli ve işlem özellikleri kurumsal uygulama veri depolaması için en önemli standart olmaya devam etmektedir. Diğer çok sayıda bulut tarafından barındırılan veri depolarından farklı olarak SQL Database ile çalışan geliştiricilerin veri modellemesi konusunda yeni yaklaşımlar öğrenmeye veya işlem tutarlılığı gibi fonksiyonlar üzerinde ödün vermeye ihtiyacı yoktur. SQL Database depolanan prosedürleri, depolanan fonksiyonları ve denenmiş ve doğrulanmış SQL Server özelliklerinin büyük çoğunluğunu desteklemektedir. Genel bulut senaryolarında fonksiyonların sunulması Windows Azure Virtual Machine içerisinde SQL Server senaryoları Bu bölümde Windows Azure Virtual Machine üzerinde SQL Server'ı kullanan şirketler için dört ana senaryo ele alınmaktadır. Şekil 7 bu senaryoları özetlemektedir. Sayfa 14 Şekil 7: Windows Azure Virtual Machine içerisinde SQL Server dört ana senaryoyu hedeflemektedir Windows Server'a dayanan neredeyse tüm imajları çalıştırabildiğinden Windows Azure Virtual Machine mevcut bir uygulamayı buluta taşımayı kolaylaştırmaktadır. Hem veritabanı hem de uygulama katmanı Windows Azure Virtual Machines'e taşınabilmektedir. ASP.NET gibi bazı iş yüklerinde ise Windows Azure Cloud Services'a ve hatta Windows Azure Web Sites'a daha dönüştürmek uygun olabilir. Bu hizmet olarak platform (PaaS) uygulama katmanı ise ardından daha kolay bir şekilde Windows Azure Virtual Machine içerisinde çalışan SQL Server hizmet olarak altyapı (IaaS) katmanına bağlanabilir. Bir veritabanını kurum içi SQL Server'dan bir Windows Azure Virtual Machine içerisinde çalışan SQL Server'a taşımak genellikle Şekil 8'de gösterilen yöntemlerden birisini gerektirmektedir. Şekil 8: Bir veritabanını Windows Azure Virtual Machine içerisindeki SQL Server'a taşıma yöntemleri Tüm sanal makineyi taşımak Şekil 8'de birinci seçenek tüm sanal makinenin kurum içi bir Hyper-V sunucusundan Windows Azure'a taşınmasını göstermektedir. Tüm sanal makineyi taşımak, geliştirme ve test senaryoları için ve özellikle de kurum içi makinenin ilave ve karmaşık bir yapılandırmaya sahip olduğu durumlar için uygundur. Tüm sanal makine taşındığında diğer makinede aynı yapılandırmayı tekrar oluşturmaya gerek yoktur. BT Sayfa 15 profesyonelleri tüm sanal makineyi taşımak için sunucu işletim sisteminin Windows Server 2008 R2 SP1 x64 veya sonraki bir sürümü olduğundan ve SQL Server'ın ise 64-bit SQL Server 2008 SP3 veya sonraki bir sürümü olduğundan emin olmak durumundadır. Bu spesifik gereksinimlere uygun olmayan sanal makinelere sahip şirketlerin ya terfi etmesi ya da seçenek 2'de sunulan "yedekleme ve geri yükleme" yaklaşımını kullanması gerekmektedir. VMWare gibi üçüncü taraflara ait hipervizörler ve hatta fiziksel sunucular üzerinde çalışan sanal makineleri de taşımak mümkündür; bunun için öncelikle bu sunucu kurulumlarını Hyper-V'ye taşımak gerekir. Bu taşıma işlemi için şirketler öncelikle bir sanal-sanal (V2V) veya fiziksel-sanal (P2V) geçiş yapmalıdır. Microsoft bu konuda System Center Virtual Machine Manager ve Virtual Machine Converter Solution Accelerator içerisinde araçlar sağlamaktadır. Şirketler sanal makineleri Windows Azure tarafından desteklenen araçları kullanarak yükleyebilir. System Center App Controller 2012 SP1 ayrıca tüm SQL Server sanal makinesini Windows Azure'a taşımak için bir mekanizma da sağlamaktadır. Sadece veritabanının taşınması Şekil 8'de sunulan ikinci seçenek sadece veritabanının buluta taşınmasını kapsamaktadır. Bu taşıma işleminde tam bir veritabanı yedeği veya veri dosyası taşınabilir; fakat veritabanı şablonunu ve veriyi ayrı ayrı taşımak daha uygun da olabilir. Bu yaklaşımın temel faydalarından birisi şirketlerin sadece veritabanını kablo üzerinden göndermesinin gerekmesidir. Tüm sanal makineyi yavaş bir internet bağlantısı üzerinden göndermek zaman alıcı olabilir. Şirketler Image Gallery (Şekil 9) içerisindeki imajları kullanarak bir Windows Azure Virtual Machine oluşturma ile başlamalıdır. Şekil 9: Image Gallery ile sanal bir makine oluşturmak Şekil 10'de gösterildiği gibi Microsoft SQL Server 2012 imajlarından birisinin seçilmesini öneriyoruz. Şekil 10: Microsoft SQL Server 2012 Evaluation makine imajının seçimi Sayfa 16 Kurulum sırasında bir makine ismi belirtmeniz Windows Administrator hesabı için güçlü bir parola sunmanız ve makine boyutunu seçmeniz gerekir. Makine boyutu sonradan değiştirilebilir. Test amaçlarıyla genellikle Small (Küçük) örnek boyutunun seçilmesi yeterlidir (Şekil 11). Şekil 11: Sanal makine özelliklerinin yapılandırılması Kalan ayarlar sanal makinenin nerede bulunacağını, DNS amaçlarıyla nasıl çözümleneceğini ve kullanılacak aboneliği belirtir (Şekil 12). Şekil 12: Ağ iletişimi, DNS, depolama, veri merkezi ve abonelik özelliklerinin yapılandırılması düğmesine tıklamak sanal makinenin oluşturulma işlemini başlatır ve bu işlem birkaç dakika sürebilir. Portalın sağ alt kısmındaki gösterge yeşil çubuklarla ilerlemeyi gösterir (Şekil 13). Şekil 13: Sanal makine oluşturma işleminde ilerleme göstergesi Portal içerisinde sanal makine listesinde Durum sütununda da gösterildiği gibi hazırlama işleminin bitmesini beklemeniz gerekir. Durum Running olarak değiştiğinde bir bağlantı oluşturabilirsiniz. Sayfa 17 Şekil 14: Connect üzerine tıklamak sanal makineye bir RDP bağlantısı oluşturur Bu aşamada yapılabilecekler aşağıdaki gibir: Kurum içi veritabanının bir kopyasını çıkarmak Bu kopyayı bulut üzerinde çalışan sanal makineye taşımak Daha fazla bilgi için “Windows Azure Virtual Machines içerisinde SQL Server ile Geçiş Yapmak” sayfasına bakınız: http://msdn.microsoft.com/en-us/library/windowsazure/jj156165.aspx. Aşağıdaki aşamalarda da gösterildiği gibi kurum içi veritabanını yedekleyebilir (Şekil 15), yedek belgeyi direkt olarak RDP bağlantısı üzerinden sunucuya kopyalayabilir ve ardından veritabanı dosyasını Windows Azure Virtual Machine içerisinde çalışan SQL Server örneği üzerinde geri yükleyebilirsiniz. Bu özellikle yaklaşım küçük veritabanları için çok uygundur. Şekil 15: Kurum içi veritabanının yedeklenmesi Uzak Masaüstü protokolü küçük belgelerin Windows Explorer içerisinde kesip yapıştırarak taşınmasını kolaylaştırır (Şekil 16). Sayfa 18 Şekil 16: Bir belgenin kurum içerisindeki makine üzerinde kopyalanması ve Windows Azure Virtual Machine'e yapıştırılması (Uzak Masaüstü Protokolü) Belgeyi kopyaladıktan sonra Windows Azure Virtual Machine içerisinde çalışan SQL Server örneği üzerinde geri yükleyebilirsiniz (Şekil 17). Veritabanı, kullanıcı veritabanında saklanmayan metaverileri kullanıyorsa ilave aşamaların da kullanılması gerekebilir. Daha fazla bilgi için bakınız “Bir Veritabanını Başka Bir Sunucu Örneği Üzerinde Kullanılabilir Hale Getirirken Metaverileri Yönetmek”: http://msdn.microsoft.com/library/ms187580(v=sql.110).aspx . Şekil 17: Bir belgenin kurum içerisindeki makine üzerinden kopyalanması ve Windows Azure Virtual Machine'e yapıştırılması (SQL Server Management Studio) Son olarak SQL Server veritabanını Windows Azure Virtual Machine içerisinde çalışan bir başka SQL Server örneğine kurmak için bir sihirbaz sağlıyor. Karmaşık işlem tam otomatik olarak gerçekleştiriliyor ve derinlemesine Windows Azure bilgisine gerek duyulmuyor. Ayrıca kurulum süresini belirleyen ana faktör veritabanı büyüklüğü olduğundan bu işlem için ekstra performansa ihtiyaç duyulmuyor. Pek çok şirket uygulama geliştirirken uygulama yaşam döngülerinin bir parçası olarak dağıtım, test ve hazırlama sunucuları kullanmaktadır. Bu tür düzenler geliştiricinin masaüstünde barındırılan bir sanal makineden adanmış sanal sunucularda barındırılan bir ortama kadar farklı türlerde olabilmektedir. Büyük şirketlerde, özellikle de büyük kurumsal şirketler ve sistem entegratörlerinde, geliştirme sunucuları daha çok özel buluta benzeyen ortamlar gerektirebilmektedir. Windows Azure Virtual Machine bu tür iş yüklerini desteklemek için genel bulut seçeneğine sahiptir. Bir uygulama en sonunda kurum içerisinde barındırılacak olsa bile geliştirme ve hazırlama sunucularını çalıştırmak için Windows Azure'u kullanmak maliyet açısından etkin bir seçenek olabilir. Kendi kendine makine hazırlama esnekliği ve kullandıkça öde esaslı faturalandırma özelliği ile maliyetleri azaltma imkânı sunmaktadır. Sayfa 19 Windows Azure Storage yüksek kullanılabilirlik özelliğine sahip bulut üzerinde barındırılan GB başına aylık birkaç cent ücret ile bir depolama mekanizması sunmaktadır. Bu çözüm, Windows Azure Virtual Machine hizmeti ile birlikte yedekleme ve felaket kurtarma yeteneklerine ihtiyaç duyan şirketlere yeni seçenekler sunmaktadır. Şirketler kendi veritabanlarının veya sanal makinelerinin tamamının yedeklerini saklamak için Storage'dan yararlanabilmektedir. Windows Azure Storage bu tür dosyalar için yüksek kullanılabilirlik, dayanıklılık ve güvenlik özelliklerine sahip ve dışarıda bulunan bir depolama imkânı sunmaktadır. Birbiriyle tutarlı üç kopya ana veri merkezinde saklanmaktadır ve dördüncü kopya ise eşzamanlı olmadan ikincil bir veri merkezine kopyalanmaktadır. Bir felaket yaşanması durumunda şirketler dosyalarını Storage'dan alabilmekte veya Windows Azure Virtual Machine'i kullanarak yedek makine imajlarını geri yükleyip belli bir dönem için bulut üzerinde çalıştırabilmektedir. SQL Server 2012 SP1 CU2 içerisinde Storage'ı veritabanı yedeklerinin alınması ve geri yüklenmesi için kullanma fonksiyonu yer almaktadır (Şekil 18). Şekil 18: Portalı kullanarak bir Windows Azure Storage hesabının oluşturulması Yedekleme verilerini direkt olarak Windows Azure Storage'a yüklemek için depolama hesaplarıyla ilgili güvenlik anahtarlarından birisini almanız gerekmektedir (Şekil 19). Şekil 19: Portal üzerinden depolama anahtarlarının alınması Sayfa 20 “BACKUP DATABASE …. TO URL” T-SQL komutunu kullanarak SQL Server Management Studio 2012 içerisinden Windows Azure Storage yedekleme desteğine ulaşabilirsiniz. Doğrulama bilgilerini Windows Azure Storage'a yükleyebilmek için öncelikle SQL Server kimlik bilgilerine ihtiyacınız olacaktır. Kimlik bilgileri Storage hesabının adını ve erişim anahtarı değerlerini kaydetmektedir. Şekil 20: Windows Azure Storage doğrulama bilgilerini saklamak için SQL Server kimlik bilgilerinin oluşturulması Kimlik bilgilerini oluşturduktan sonra BACKUP/RESTORE ve WITH CREDENTIAL ile veritabanınızı direkt olarak yedekleyip Windows Azure Storage'a geri yükleyin (Şekil 21). Sayfa 21 Şekil 21: SQL Server Management Studio'da verileri Windows Azure Storage'a yedeklemek Daha fazla bilgi için bakınız “Windows Azure Blob Storage Service ile SQL Server'ın Yedeklenmesi ve Geri Yüklenmesi” http://msdn.microsoft.com/en-us/library/jj919148.aspx. Şirketler bu özelliği kurum içerisindeki bir SQL Server örneğindeki veya Windows Azure Virtual Machine gibi barındırılan bir ortamda çalışan SQL Server'ın bir örneğindeki veritabanlarını yedeklemek için kullanabilir. Bulut üzerinde yedekleme kullanılabilirlik, neredeyse sınırsız coğrafi olarak çoğaltılmış harici depolama ve verileri buluta veya buluttan kolayca taşıma avantajları sunmaktadır. Bu avantajlara ayrıca yedek arşiv mekanizması sunan ve donanım yönetimi ihtiyacı olmadan esnek, güvenilir ve neredeyse sınırsız harici depolama da dahildir. SQL Server 2014, Windows Azure Storage'a içeriğe duyarlı olan (iş yükü ve azaltmaya karşı) otomatik yedekleme ilkesi sağlamakta, tutma dönemini belirtmek için asgari yapılandırma kullanmakta ve tüm veritabanı örneğini veya belli veritabanlarını yönetebilmektedir. Son olarak verileri SQL Server içerisinden yedeklemenin yanı sıra Windows Server 2012 ve System Center 2012 Data Protection Manager kullanıcıları tam sanal makine imajları dahil olmak üzere diğer verileri de direkt olarak Windows Azure'a yedeklemek için Windows Azure Online Backup'ı kullanabilir. Bazı durumlarda şirketler, bir uygulamanın sadece belli bir kısmını buluta taşımak ve uygulamanın ilave ölçeklendirme ihtiyacı yaratan kısımlarını genel buluta taşırken hassas verileri kurum içerisinde tutmak isteyebilir. Buna örnek olarak bir e-ticaret sitesi verilebilir. Müşteri bilgileri ve kredi kartı bilgileri gibi hassas bilgilerin kurum içerisinde kalması gerekebilir; fakat artan yükü karşılamak için ürün kataloğu ve alışveriş sepeti verileri Windows Azure'a taşınabilir. Bu tür hibrit uygulamaları daha sonraki senaryolarda daha detaylı olarak ele alacağız. Sayfa 22 Windows Azure SQL Database senaryoları Bu bölümde Windows Azure SQL Database ile çalışmak isteyen şirketler için iki ana senaryo ele alınacaktır. Şekil 22: SQL Database bulut için tasarlanmış uygulamalar geliştiren yazılım geliştiriciler için idealdir SQL Database'in çok sayıdaki özgün avantajından yararlanmak için bir uygulamanın mimarisinin o özelliklere göre özel olarak yapılandırılmış olması gerekmektedir. Örneğin SQL Federation uygulamalarını kullanmak için geliştiricilerin sharding ölçeklendirme modeli ile gelen kısıtlamaları anlaması ve shard üyelerini FEDERATION T-SQL ifadeleriyle nasıl erişebileceğini bilmesi gerekmektedir. Yazlım Geliştiriciler genellikle bulut için yeni bir uygulamaya yönelik geliştirme işini Windows Azure SQL Database'te çalışan uzak bir veritabanına bağlı olarak SQL Database içerisinde oluşturabilmektedir. Şirketler genellikle sunucu ve veritabanlarını Windows Azure veya SQL Database yönetim portalları üzerinden oluşturmaktadır. Ardından mevcut araçlarını uzaktaki bu veritabanlarına bağlayabilmektedir. Daha önce de belirtildiği gibi SQL Database, SQL Server ile son derece uyumludur ve bu yüzden de Visual Studio ve SQL Server Management Studio 2012 dahil olmak üzere SQL Server ile ilişkili araçların çoğunu desteklemektedir. Geliştiriciler veritabanı şemalarını oluşturmak için bu araçları kullanmakta, uzak sunucular ile çalışmaktadır. Geliştiriciler genellikle uygulama katmanını Azure Cloud Services veya Windows Azure Web Sites özelliklerini kullanarak hazırlamaktadır. Bu araçlar ile uygulama geliştiricileri Windows Azure yük dengeleyicilerinin ardında daha kolay bir şekilde ölçeklendirilebilecek uygulamalar geliştirebilmektedir. Uygulama katmanının ölçeklendirilmesi, veri katmanının ölçeklendirilmesi için kullanılan yaklaşıma çok benzemektedir.Bunun anlamı geliştiricilerin çok büyük iş yüklerini karşılayabilecek uygulamaları bulut üzerinde oluşturabiliyor olmasıdır. Geliştiriciler sadece Microsoft .NET Framework ile sınırlı kalmamaktadır. Cloud Services, Java ile ve SQL Database SQL Server 2012 için JDBC sürücüleri ile iyi çalışmaktadır. Microsoft ayrıca Windows Azure'a yönelik olarak popüler bir Java IDE'si olan Eclipse eklentisi için açık kaynaklı projeyi de desteklemektedir. Ruby, PHP ve Node.js gibi diğer çerçeveler de aynı şekilde SQL Database ve Windows Azure tarafından desteklenmektedir. BT profesyonelleri veritabanını yönetmek için Windows Azure ve SQL Database portlarının ve mevcut SQL Server yönetim araçlarının bir kombinasyonunu kullanmaktadır (Şekil 23). Sayfa 23 Şekil 23: Yazılım Geliştiriciler SQL Database içerisinde uygulamaları uygulama ve veri katmanlarında ölçeklendirebilmektedir Bir SQL Database oluşturmak için Windows Azure Management Portal'ı kullanabilirsiniz. Bir SQL Database sunucusu oluşturmak için Custom Create seçeneğini kullanın (Şekil 24). Şekil 24: Yeni bir SQL Database için Custom Create seçeneğinin kullanımı SQL Database içerisindeki bir sunucunun sadece mantıksal olduğunu unutmayın; herhangi bir SQL Database örneğinin gerçek veritabanı çoğaltmaları bir veri merkezi içerisindeki bir dizi farklı fiziksel düğümlerde yer almaktadır (Şekil 25). Sayfa 24 Şekil 25: Bir veritabanı oluşturulurken yeni bir sunucunun belirtilmesi Şekil 26: Giriş detayları dahil olmak üzere yeni bir sunucunun oluşturulması SQL Database içerisinde bilinmeyen IP adreslerinden gelen bağlantı denemelerine karşı koruma sunan bir güvenlik duvarı mevcuttur. Veritabanı sunucusuna bağlanması beklenen her bir adres veya adres aralığı için açık bir şekilde erişim sunan güvenlik duvarı kurallarını (Şekil 27) oluşturmanız gerekmektedir (Şekil 28). Windows Azure içerisindeki Windows Azure Compute ve Windows Azure Virtual Machines gibi diğer hizmetlerin veritabanı sunucusuna erişimine izin vermek üzere güvenlik duvarı kurallarını yapılandırmak için Windows Azure Services seçeneğini seçin. Management Studio veya kurum içi makinelerdeki başka araçlarla bağlantı kurmak için ilave kurallar oluşturmanız gerekmektedir. Şekil 27: Güvenlik duvarı kurallarının eklenmesi (sunucu özelliklerini açmak için server bağlantısına tıklayın) Sayfa 25 Şekil 28: Güvenlik duvarı kurallarının eklenmesi (izin verilen adres aralığının belirtilmesi) Sunucu yapılandırıldıktan sonra Management Portal içerisinden veritabanı özellikleri üzerinden bağlantı dizelerini alabilirsiniz (Şekil 29). Şekil 29: Management Studio'ya bağlanmak için bağlantı dizesinin kullanımı (bilgilerin alınması) SQL Server Management Studio'yu uzak veritabanına bağlamak için bağlantı dizesi içerisindeki bilgileri kullanın. Sayfa 26 Şekil 30: Management Studio'ya bağlanmak için bağlantı dizesinin kullanımı (ayarların girilmesi) Buradan da veritabanı şemasını oluşturmak için Management Studio içerisindeki bilinen araçları kullanın. SQL Server Management Studio 2012 ayrıca Federation'ların oluşturulmasını ve yönetilmesini desteklemektedir. Hibrit senaryolar Hibrit BT, şirketlere uygulamalarını nerede çalıştırabilecekleri hakkında seçenekler vermesinin yanı sıra uygulamalarını genel bulut ve özel veri merkezi içerisinde dağıtma arasında seçim yapma imkânını da sunmaktadır. Code-far uygulamaları: Kurumsal sınıfa uygun veri katmanı için basit bir yöntem SQL Database yüksek kullanılabilirlik dahil olmak üzere çok sayıda kurumsal sınıfa uygun veritabanı özelliği sunmaktadır. Pek çok departman bu yeteneklerden fayda sağlayabiliyor olsa da bu özellikleri kurum içerisinde sunmak genellikle çok masraflı olmaktadır. Bir code-far hibrit yaklaşımı kurum içerisindeki bir uygulamayı internet üzerinden bir SQL Database örneğine bağlamayı kapsamaktadır (Şekil 31). Şekil 31: Hafif uygulamalara uzaktan erişilen SQL Database üzerinden kurumsal sınıfa uygun bir veritabanının sunulması Sayfa 27 Microsoft Access 2013 bu dağıtım mimarisi için mükemmel bir örnek sunmaktadır. Access 2013 geliştiricileri, Microsoft Office 365 veya kurum içi sunucularda çalışan fakat verilerini bir Windows Azure SQL Database içerisinde saklayan Access 2013 uygulamalarının hazırlanması konusunda desteklemektedir. Düzensiz olarak SQL Data Sync ile bağlanan uygulamalar SQL Data Sync, Microsoft Sync Framework üzerinde oluşturulmuş olan bir hizmettir. Şirketler bunu verileri SQL Server ve SQL Database örnekleri arasında iki yönlü senkronize etmek için kullanabilmektedir. SQL Data Sync, Windows Azure içerisindeki bir hizmet olarak sunulduğundan geliştiricilerin özel kodlar yazmasına gerek yoktur; SQL Data Sync'i Azure portalı içerisinde yapılandırabilmekte ve ardından SQL Data Sync Agent'i kurum içi sunuculara kurabilmektedir (Şekil 32). Şekil 32: SQL Database ve SQL Data Sync'i kullanan hibrit mimari ile çeşitli zamanlarda bağlanan işlerin desteklenmesi Bu hibrit mimari, şirketlerin çeşitli zamanlarda bağlanan işleri destekleyen uygulamalar geliştirmesine imkân vermektedir. Kullanıcılar bağlanmadığında veriler yerel SQL Server veritabanında depolanmakta ve ardından tekrar bağlantı oluştuğunda SQL Database merkezi üzerinden eşitlenmektedir. Tek bir uygulama içerisinde Windows Azure Virtual Machines'te SQL Database ve SQL Server Daha önceden de anlatıldığı gibi bir Windows Azure Virtual Machine içerisinde SQL Database ve SQL Server ayrı ayrı güçlere sahiptir. Bir başka hibrit yaklaşım da ikisini tek bir uygulama içerisinde birleştirmektir. Örnek olarak bir şirket bir OLTP web uygulaması için SQL Database'in ölçeklendirme avantajından yararlanmak isteyebilir. Ayrıca çok boyutlu analiz ve raporlama ihtiyaçlarına sahiptir ve bu yetenek sanal bir makine üzerine kurulmuş SQL Server fonksiyonlarını gerektirmektedir (Şekil 33). Sayfa 28 Şekil 33: Uygulamaların farklı dağıtım seçenekleriyle sunulan imkânları kullanmasını sağlamak (SQL Server ile birlikte SQL Database) SQL Data Sync'i sayesinde şirketler SQL Database'i uygulamalarının işlem ihtiyaçlarını karşılamak için kullanırken analitik işlem ihtiyaçlarını karşılamak için ise SQL Server Reporting and Analysis Services'i kurum içerisinde kullanabilmektedir. Sonuç Bulut bilişim şirketlere uygulamaları daha önceden mümkün olmayan büyüklüklerdeki ölçeklerde daha ucuz bir şekilde dağıtmak için yeni fırsatlar sunmaktadır. Aynı zamanda Microsoft'un hibrit BT stratejisi çoğu şirketin genelde birbirinden farklı türlerde uygulamalara sahip olduğunu, bunlardan bazılarının bulut üzerine kurulduğunu ve diğerlerinin de kurum içerisinde kaldığını kabul etmektedir. Detaylı donanım yapılandırması ve optimizasyon gerektiren karmaşık uygulamalar veya şirketler tarafından hassas kabul edilen veriler bulut bilişim tarafından sunulan ticari hizmet türüne tam olarak uygun değildir. Bu tür uygulamaların bir süre daha kurum içerisinde kalacağı muhtemeldir. Diğer yandan, bazı iş yükleri genel bulut ortamı için çok uygundur. Buna örnek olarak talep seviyesi büyük değişkenlikler gösteren uygulamalar verilebilir. Microsoft'un hibrit BT stratejisi şirketlere sektördeki aynı lider teknolojiyi, teknikleri ve uzmanlığı kurum içi sunucularda, özel bulutlarda ve genel bulut platformlarında kullanma konusunda seçenekler sunmaktır. Hibrit BT, SQL Server'ın gücünü, sektörün lider veritabanı yönetim sistemini tüm dağıtım topolojilerinde sunmaktadır. Şirketlerin dağıtım tercihleri ister kurum içi, ister genel veya özel bulut üzerinde olsun, aynı SQL Server deneyimi ve araçları sağlanmaktadır. Bir Windows Azure Virtual Machine içerisinde yer alan Microsoft SQL Server ile şirketler bir yandan bulut bilişimin veriminden yararlanabilirken diğer yandan da kurum içi SQL Server dağıtımlarıyla neredeyse aynı özellikleri kullanabilmektedir. Yeni uygulamalarını çok geniş kesimlere sunmak için bulutu kullanmak isteyen şirketler, milyonlarca kullanıcı için ölçeklendirilebilecek yeni nesil ilişkisel veritabanı uygulamalarını oluşturmak için Windows Azure SQL Database'i kullanabilirler. Uygulama senaryonuzun spesifik ihtiyaçları ne olursa olsun ve nereye kurulacak olursa olsun,Microsoft'un ihtiyaç duyduğunuz kapasite, esneklik ve bilinirliği sunacağından emin olabilirsiniz. Daha fazla bilgi için SQL Server internet sitesini inceleyiniz: http://www.microsoft.com/sqlserver/. Sayfa 29 Geri Bildirim Bu makale size yardımcı oldu mu? Lütfen 1 (zayıf) ila 5 (mükemmel) arasında bir not vererek ve verdiğiniz notun sebebini açıklayarak bize geri bildirimde bulunun. Daha spesifik olarak: Yüksek notu ilgili örnekler, yararlı ekran görüntüleri, açık yazım veya bir başka sebepten mi verdiniz? Kötü notu örneklerin ilgilendiğiniz alanla alakalı olmaması, kötü ekran görüntüleri veya net olmayan bir yazım dilinden dolayı mı verdiniz? Bu geri bildiriminiz yayınlayacağımız diğer teknik makalelerin kalitesini artıracaktır. Lütfen geri bildiriminizi şu adrese gönderin: mailto:sqlfback@microsoft.com Sayfa 30