CTP2 versiyonu yayında olan SQL Server 2014 ile birlikte çeşitli konularda birçok
yenilik geldi. Microsoft geçtiğimiz günlerde yenilikleri duyurma hızını
arttırabilmek amacıyla US’e davet ettiği MCT’lerle Train-the-Trainer
eğitimlerini de düzenledi. Bu yenilikler son halini almamış olsa da artık
yetenek olarak olgunlaştı ve üzerinde tartışılabilir, paylaşılabilir hale geldi
diyebiliriz. Ürün henüz piyasaya sürülmemiş olsa da yenilikleri takip etmek
isteyeceğinizi düşündüm. İleride tamamı üzerinde yazılarımın olacağı birkaç
başlıkta bunları inceleyeceğiz. Bu bölümde ise Hybrid Cloud başlığına yer veriyor olacağım.
Son zamanlarda bulut(Cloud) ile ilgili çalışmalar ciddi
manada hız kazandı ve birçok firma bu konuda çözümler üretmeye karar verdi. Firmalar
müşterilerinin çeşitli alt başlıklardaki teknoloji ihtiyaçlarını kendi veri
merkezlerinde(Datacenter) çözümleyip hizmet olarak sunmakta. Bu durumun
getirileri genel olarak şöyle; kullandığın kadar ödeyebilme, donanım
yatırımıyla ilgilenme ihtiyacının tamamen ortadan kalkması(güncelleme, bakım,
yedekleme, uzman vs.), sistemin sürekli ayakta kalabilmesi için ve yüksek
erişilebilirlik için ekstra çaba sarf etmeye gerek kalmaması(donanım, yazılım,
uzman vs.).
Microsoft’un bu kapsamdaki Windows Azure olarak bilinen çözümü son güncellemelerle oldukça
yetenekli hale geldi. Windows Azure’u test etmek isterseniz http://www.windowsazure.com/en-us/ sitesi üzerinden bir deneme hesabı
açabilirsiniz.
Windows Azure’un uygulama, altyapı ve veri konusundaki
hizmetleri dünya üzerine dağılmış çeşitli datacenterlar sayesinde sanal
makinelerden web sitelerine, karmaşık ve uzun işlemleri hızla yapan süper
bilgisayarlardan kolay ve sürekli erişilebilen veritabanlarına, sınırsız
storageden mobil servicelere kadar birçok ihtiyaca cevap verebilmektedir.
Windows Azure hakkında eğitici dokümanların sayısı giderek
artmakta ve daha da açıklayıcı hale gelmekte. Bu sebeple direk SQL Server
tarafını ilgilendiren kısma, yani Data
Services (Veri Hizmetleri) kısmına geçebiliriz. Bu durumda şöyle bir manzara
ile karşılaşıyoruz:
Bu görünümdeki henüz gelişmekte olan Big Data ve NoSQL ile
ilgili HDInsight, Tables çözümlerini başka bir yazımızda incelemek üzere geride
bırakalım istiyorum.
Relational kısımdaki SQL Database başlığı SQL Azure’u işaret etmektedir. Hem bir
web arayüzü(Silverlight) ile hem de SSMS ile bağlanılıp yönetilebilen SQL Azure hizmeti ilk haline göre yetenek
olarak biraz daha gelişti. Fakat asıl yenilikler Blob Storage ve SQL Server
in a VM hizmetleri olduğu için bu yazımızda odaklanacağımız kısımlar da
bunlar olacak.
Şimdi gelelim Hybrid Cloud
başlığı altındaki yeniliklere;
1- 1-Blob Storage :
a. Yedekleme Çözümü
Bir storage hizmetidir. Basitçe bir disk kiralamış oluyoruz.
Her hangi bir veriyi; resim, müzik, video, backup, database dosyaları vs.
klasörleyerek tutabiliyoruz. Konsept biraz farklı olduğu için Azuredaki bir Storage
üzerinde klasörler, Container lar ile temsil edilmektedir.
https://manage.windowsazure.com/
üzerinden Windows Azure’a bağlandıktan sonra soldaki STORAGE menüsü yardımıyla bulutdepo
adında bir alanı birkaç dakika içerisinde oluşturabiliyoruz. Oluşturma
esnasında storagein replicate olup olmayacağı ve dünya üzerinde hangi
datacenter grubunda konumlanacağını belirtebiliyoruz.
Kısa sürede oluşan Storage üzerinde monitörleme yapabilir,
yazma okuma ve replikasyon gibi ayarları değiştirebilirsiniz. Storage
içerisinde policyler yardımıyla erişim seviyesini, süresini vs.
yönetebileceğiniz CONTAINER’lar
oluşturarak yüklemek istediğiniz nesneleri klasörleyebilirsiniz. Ben de
örneğimde bulutdepo storagei altında
http://bulutdepo.blob.core.windows.net/yedekler
URLi ile erişebileceğim yedekler isimli
bir Container oluşturdum.
Containerlara silverlight arayüzünden bir şey upload
edilemiyor fakat download edilebiliyor. Eğer bu storagei bir skydrive
mantığında kullanmak isterseniz veya storagee erişim sınırlamaları getirmek
için kolayca policyler tanımlamak isterseniz Azure Storage Explorer uygulamasını şuradan http://azurestorageexplorer.codeplex.com/
indirip kurmanız işinizi kolaylaştırır. Aksi halde birçok ihtiyaca binaen
geliştirilen yaklaşık 5mblık bu küçük uygulamanın yaptıklarını kodlarla
yapmanız gerekecek.
Azure Storage
Explorer’ı açtıktan sonra Add Account butonu ile Storage Accountuzu ekleyip solda containerları listeleyebilir,
dosya upload-download edebilir bunları ön izleyebilirsiniz.
Ayrıca
bu uygulama yardımıyla storagee kısıtlı erişim sağlanabilmesi için policyler(Shared Access Policies) oluşturabilir
yazma, okuma ve silme haklarını verip-engelleyebilir hatta bunun için bir tarih
aralığı belirleyebilirsiniz.
Bu durumda birazdan geleceğimiz kısımla ilgili olarak Credential oluştururken veya storagee
bağlanılmak istenen herhangi bir durumda Access
Key veya Storage Account Key
alanında yukarıdaki resimde görünen Generate
Signature ile üretilmiş URLdeki soru işaretinin sağında kalan kısım
kullanılmalıdır.
Peki, storagelere
bağlanan daha entegre bir araç yok mu?
Var. SSMS storage bağlanabiliyor ve containerlar
içerisindeki dosyaları listeleyebiliyor. Ancak CTP2 versiyonundayız ve şimdilik
burada dosyalar için upload-download veya ön izleme gibi bir özellik yok sadece
silme ve listeleme özelliği var.
Peki, Azure Storage
hangi amaçlar için kullanılabilir?
En başta Skydrive
mantığında dosya deposu olarak kullanabiliriz. Veritabanı bakış açısıyla olaya
yaklaşırsak. SQL Server için disk ne ise Azure
Storagede o diyebiliriz. Yani üzerine backuplar alabilir, data ve log
dosyalarını tutabiliriz.
Azure Storage DR(Disaster Recovery) çerçevesinde güvenli,
yedekli, uzak ve sürekli erişilebilir kopyalar gereksinimine oldukça mantıklı
bir cevap olarak duruyor. Buraya yedeklemenin rahatça yapılabilmesi için klasik
backup seçeneklerine ek olarak URL Backup
opsiyonu da geldi. URL backup opsiyonunu tercih ettiğinizde ise dilerseniz Encryption Backup seçeneğini
kullanabilirsiniz. Bu sayade backuplarınızı AES 128, AES 192, AES 256 ve Triple DES algoritmaları ile
şifreleyerek bulutta güven altında tutabilirsiniz.
Azure Storage üzerine
backup nasıl alınır?
Öncelikle bir Credential
oluşturmamız gerekiyor. Credential
SQL Server’ın dışındaki bir kaynağa erişmesi için kullandığı bir güvenlik
nesnesidir.
Azure Storage için Credential oluşturmanın birkaç yolu var.
Bu işi backup öncesinde yapmak istiyorsak SQL script veya klasik olarak
SSMS’daki Object Explorer penceresinden Security/Credentials/New
Credential … seçeneğini kullanarak ara yüz yardımıyla yapabiliriz. Backup
için gereken ayarları yaptığımız kısımda oluşturmak istiyorsak şu linkten https://manage.windowsazure.com/publishsettings/Index?client=vs&SchemaVersion=1.0
indireceğimiz publishsettings uzantılı
dosyayı kullanabiliriz. Bu dosyayı Get-AzurePublishSettingsFile
PowerShell komutu ile de çağırıp indirebiliriz.
Script ve arayüz ile şu şekilde credential oluşturulabilir.
(Not: Credential
oluştururken Credentail Name kısmına https
ile başlayacak şekilde container urlinin verilmesi policy ile erişim gerektiren
durumlarda zorunludur.)
Credential oluşturduktan sonra şu şekilde script veya arayüz
yardımıyla backuplar alınarak Azure Storagee gönderilebilir.
İstenirse backup alınırken arayüzdeki SQL Credential
karşısında bulunan Create… butonu kullanılarak indirilen publishsetting dosyası
yardımıyla da credential bilgisi üretilebilir.
Yeni URL backup özelliği ile backup alma işleminin otomatize
edilebilmesi ve yönetilebilmesi için msdb
veritabanı altında bulabileceğiniz smart_admin
ile başlayan yeni fonksiyon ve procedureler işlerinizi oldukça
kolaylaştıracaktır.
Eğer Azure Storagei DR site olarak kabul ettiyseniz ve SQL
Server 2014 öncesi backuplarınızı da burada tutmak isterseniz az önce bahsi
geçen Azure Storage Explorer
uygulamasındaki upload seçeneğini kullanabileceğiniz gibi http://www.microsoft.com/en-us/download/details.aspx?id=40740
linkinden indirebileceğiniz bu iş için yapılmış Windows Azure Tools isimli aracı da kullanabilirsiniz. Basitçe
neredeki backupları nereye alacağını belirten bir kural ekleyerek alınan
backupların yakalanıp Azure Storagee upload edilmesini sağlayabilirsiniz.
Peki, restore
işlemini nasıl gerçekleştireceğiz?
Aşağıdaki gibi script veya arayüz yardımıyla restore
işlemini gerçekleştirebilirsiniz.
b. Veritabanı Lokasyonu
Azure Storagei backup/restore lokasyonu dışında data ve log
dosyalarını tutabileceğimiz bir alan olarak da kullanabiliriz. Bu durumda SQL
Server servisi bulut dışında çalışırken data ve log dosyaları bulutta yüksek
erişim konusunda daha güvenli bir yerde durabilir. Data ve Log dosyalarının
bulutta durmasının bilgi güvenliği bakımından riskli olduğunu düşünüyorsanız
veritabanınızı TDE(Transparent Data
Encryption) ile şifreleyip anahtarın sizde şifreli dosyaların bulutta
durmasını sağlayabilirsiniz.
Bulutta data ve log dosyası create etmek için şu şekilde;
Var olan dosyaları servera attach etmek için şu şekilde;
Kodlama yapabilirsiniz veya klasik ara yüzleri
kullanabilirsiniz. Tabi ki bunu yapabilmek için öncelikle policy tabanlı
erişimi sağlayacak bir Credential oluşturmanız gerekir.
Policy oluşturmak için Azure
Storage Explorer aracındaki Security
butonunu kullanabiliriz. Öncelikle Shared
Access Policies tabında bir policy tanımlayıp sonra Shared Access Signatures tabında bir Signature üretmemiz gerekir.
Hemen sonrasında buradaki bilgileri kullanarak yukarıdaki
script ile bir Credential
oluşturabiliriz. Credentialı başarıyla oluşturduğumuzda data ve log
dosyalarımızı bahsettiğimiz arayüz veya scriptleri kullanarak bulutta
tutabiliriz.
Hybrid Cloud
başlığı altında inceleyeceğimiz bir diğer yenilik ise buluttaki bir sanal
makine içerisinde konumlayabileceğimiz SQL Server kurulumu ile çalışabilme
özelliğidir.
1- 2-SQL Server in a Windows Azure VM:
Windows Azure hizmetlerinden birisi de dakikalar içerisinde
bir sanal makine kurulumunu edinebilmeniz ve bu makineye Remote Desktop ile
erişip yönetebilmeniz ile ilgili.
CENTOS’tan ORACLE, SUSE’dan MS SQL Server’a farklı VM
kurulumlarını bünyesinde barındıran Windows Azure erişilebilirlik, donanım, bakım
gibi konuları üstlenmiş ve garanti altına almıştır.
Ancak sonuç itibari ile oluşan şey bir sanal makinedir. Bu
noktada bizim ilgimizi çeken kısım içerisine kurduğumuz SQL Server ile
yapabileceklerimiz oluyor.
a. a-Cloud DR
VM içerisindeki bu SQL Server’ı On-Primeses(bulutta olmayan)
serverlarımızla bir arada High Availability kapsamına alabiliriz. Yani
read-write komutlarını gönderildiği primary sunucu localde, replica bulut
üzerinde bulunabilir veya tam tersi kurulum gerçekleştirilebilir.
Bu bağlamda SQL Server 2014’ün AlwaysOn konusundaki
yeniliklerinden birisi de bulutta bir replica oluşturabilmektir.
a. b-Database deploye to SQL Server in a VM
Eğer lokaldeki bir veritabanını artık bulutta
barındırdığınız bir VM içerisindeki SQL Server’a deploy etmek istiyorsanız SSMS
üzerinde entegre bir çözüm de mevcut. Aşağıdaki gibi Task/Deploy Database to a Windows Azure VM… seçeneği ile deploy
işlemini gerçekleştirebilirsiniz.
Bunun için Windows Azure üzerinde port açmalı ve VM’in Cloud Adapter servisinin açık olduğundan
emin olmalısınız. Test etmek isteyenler CTP2 versiyonunun bu konuyu içeren
hotfixini uygulamaları gerekecek. Hotfixi şu linkten temin edebilirsiniz http://support.microsoft.com/kb/2907705/en-us.
Cloud ile ilgili olarak Big Data konusu haricinde veritabanı
bakış acısı ile neredeyse gelen tüm yeniliklere değinmiş olduk.
Bulut konusunda verdiğim eğitimlerdeki katılımcıların ortak
fikri ileride bu teknolojinin çok daha yaygın olacağı yönünde olsa da günümüzde
bazı çekinceleri olduğunu gizlemiyorlar. Bu çekincelerden en çok duyduklarım
internet alt yapısı ve yurt dışına veri çıkarma konusundaki kanunlar olmuştur.
Belki de bu çekinceler size hitap etmiyordur ve bulut tam aradığınız ucuz bir
çözümdür.
Big Data konusunda tekrar dönmek kaydıyla şimdilik bulut ile
ilgili olarak bu kadarı yeterli. Diğer SQL Server 2014 yenilikleri başlıklarına
da yakın zamanda bir göz atmış olacağız.
Faydalı olması dileğiyle,
Gerçekten güzel yazı olmuş. Uzun süredir sql server kullanıyorum ve big data hakkındaki yorumları sabırsızlıkla bekliyorum.
YanıtlaSilhttp://blog.oncuweb.com/