WINDOWS AZURE Windows Azure, Microsoft’un Genel Bulut uygulama ve altyapı platformudur. Bu platformu pek çok şekilde kullanabilirsiniz. Örneğin Windows Azure ile verilerini Microsoft veri merkezleri üzerinden çalıştıran ve saklayan bir internet uygulaması hazırlayabilirsiniz. Windows Azure'u, verileri kurum içerisinde (yani genel bulut dışında) kullanan uygulamalar için sadece veri depolamak amacıyla da kullanabilirsiniz. Windows Azure'u geliştirme ve test işlemleri veya SharePoint ve diğer uygulamaları çalıştırmak amacıyla sanal makineler oluşturmak için de kullanabilirsiniz. Windows Azure'u çok ama çok sayıda kullanıcıya sahip çok büyük ölçeklendirilebilir uygulamalar oluşturmak için de kullanabilirsiniz. Platform pek çok hizmet sunduğundan tüm bunlar ve çok daha fazlası mümkündür. Bunlardan herhangi birisini gerçekleştirebilmek için temel bilgileri anlamanız gerekmektedir. Bulut bilişim hakkında hiçbir şey bilmiyor olsanız bile bu makale Windows Azure ile ilgili temel bilgileri size sağlayacaktır. Amaç bulut platformunu anlamanız ve kullanmaya başlamanız için size bir temel sunmaktır. İçindekiler Windows Azure'un Bileşenleri ................................................................................................................ 2 Çalıştırma Modelleri ................................................................................................................................ 3 Veri Yönetimi ........................................................................................................................................... 6 Ağ İletişimi ............................................................................................................................................... 9 Business Analytics ................................................................................................................................. 12 Messaging ............................................................................................................................................. 14 Caching .................................................................................................................................................. 16 Kimlik ..................................................................................................................................................... 18 Yüksek Performanslı Bilişim .................................................................................................................. 19 Medya ................................................................................................................................................... 20 Ticaret ................................................................................................................................................... 22 SDK'lar ................................................................................................................................................... 23 Başlama ................................................................................................................................................. 24 1 Windows Azure'un Bileşenleri Windows Azure'un neler yapabileceğini anlamak için hizmetlerini kategorilere ayırmak yararlı olacak. Şekil 1'de bu gösteriliyor. Şekil 1: Windows Azure, Microsoft veri merkezleri üzerinde çalışan, internet üzerinden erişilebilir uygulama hizmetleri sunmaktadır. Windows Azure'a başlangıç yapmak için bileşenleri hakkında en azından temel bilgilere sahip olmanız gerekir. Bu makalenin geri kalanında şekilde gösterilen teknolojiler hakkında bilgiler sunulacak ve her birinin neler sunduğu ve ne zaman kullanabileceğiniz anlatılacaktır. 2 Çalıştırma Modelleri Bir bulut platformunun gerçekleştirdiği en temel işlerden birisi uygulamaları çalıştırmaktır. Windows Azure bunu yapmak için üç seçenek sunuyor. Bu seçenekler Şekil 2'de gösterilmektedir. Şekil 2: Windows Azure Hizmet olarak Altyapı (IaaS), internette barındırma ve Hizmet olarak Platform (PaaS) sunmaktadır. Bu üç yaklaşımdan (sanal makineler, internet siteleri ve bulut hizmetleri) her biri ayrı ayrı kullanılabilir. Ayrıca bu yaklaşımlardan ikisi veya daha fazlasını birlikte kullanabilecek bir uygulama da hazırlayabilirsiniz. Virtual Machines İster standart ister sizin sunacağınız bir imaj ile talep tabanlı sanal makine oluşturma yeteneği çok yararlı olabilir. Bu sanal makinenin saat başı ücretlendirilebilmesi ise daha da yararlıdır. Windows Azure Virtual Machines de genelde Hizmet olarak Altyapı (IaaS) olarak tanımlanan bu yaklaşımı size sunar. Bir VM (Sanal Makine) oluşturabilmek için hangi VHD'nin kullanılacağı ve VM boyutlarını belirtmeniz gerekir. Bunun ardından VM'in çalıştığı her saat için ücret ödersiniz. Şekil 2'de de gösterildiği gibi Windows Azure Virtual Machines standart VHD'lerden oluşan bir galeri sunmaktadır. Bunlar içerisinde Windows Server 2008 R2, Windows Server 2012 ve SQL Server ile Windows Server 2008 R2 gibi Microsoft tarafından sunulan seçenekler ve ayrıca Microsoft iş ortakları tarafından sunulan Linux imajları yer alır. Ayrıca kendi VHD'lerinizden de VM'ler yükleme ve oluşturma imkânına sahip olursunuz. İmaj nereden gelirse gelsin bir VM çalışırken yapılan değişiklikleri kalıcı bir şekilde kaydedebilirsiniz. Aynı VHD'den bir daha bir VM oluşturduğunuzda kaldığınız yerden de devam edebilirsiniz. Ayrıca değiştirilen VHD'yi Windows Azure dışına kopyalamak ve yerelde çalıştırmak mümkündür. 3 Windows Azure VM'leri çok farklı şekillerde kullanılabilir. Pahalı olmayan bir geliştirme ve test platformu oluşturmak ve kullanmayı bitirdiğinizde de kapatmak için kullanabilirsiniz. Aynı zamanda istediğiniz dilleri ve kütüphaneleri kullanan uygulamaları oluşturmak ve çalıştırmak da mümkündür. Bu uygulamalar Windows Azure tarafından sağlanan her türlü veri yönetimi seçeneğini kullanabilmektedir. Ayrıca bir veya daha fazla makine üzerinde çalıştırabileceğiniz SQL Server veya diğer DBMS'yi kullanmayı da seçebilirsiniz. Diğer seçenek ise Windows Azure'u SharePoint veya diğer uygulamaları çalıştıran kurum içi veri merkezinizin bir uzantısı olarak kullanmaktır. Bunun için Windows Azure VM'leri içerisinde Active Directory'yi çalıştırarak bulut üzerinde Windows etki alanları yaratmak mümkündür. Bulut bilişim için bu genel yaklaşım pek çok farklı problemi çözmek amacıyla kullanılabilir. Hangisini seçeceğiniz size bağlı. Web Sites İnsanların bulutta yaptığı en genel işlerden birisi internet siteleri ve uygulamalarını çalıştırmaktır. Windows Azure Virtual Machines bu iş için kullanılabilir fakat bir veya birden çok VM'in yönetim sorumluluğu yine sizdedir. Peki yönetim işlerinin bir başkası tarafından sizin adınıza yapıldığı bir internet sitesi istiyorsanız ne olacak? Windows Azure Web Sites sizin için tam da bu imkânı sunuyor. Internet Information Services'ın (IIS) kullanıldığı bu modelde yönetilen bir internet ortamı sunulur. Mevut bir IIS internet sitesini Windows Azure Web Sites üzerine değiştirmeden taşıyabilir veya bir yenisini direkt bulut üzerinde oluşturabilirsiniz. Bir internet sitesi çalıştığında örnekleri dinamik olarak ekleyebilir veya kaldırabilir ve bu sırada taleplerle ilişkili yüklerin dengelenmesi işini Web Sites'a bırakabilirsiniz. Şekil 2'de de gösterildiği gibi Windows Azure Web Sites hem internet sitesinin diğer sitelerle birlikte sanal bir makine üzerinde çalıştığı paylaşılan bir seçenek hem de sitenin kendi VM'inin içerisinde çalıştırılabildiği bir seçenekle sunuluyor. Windows Azure Web Sites hem geliştiriciler hem de internet tasarımı işi yapan ajanslara yarar sağlaması amaçlanmıştır. Geliştirme açısından, ilişkisel depolama için SQL Database ve (bir Microsoft ortağı olan ClearDB ile) MySQL'e ilave olarak .NET, PHP ve Node.js, desteği sunuyor. Ayrıca WordPress, Joomla ve Drupal de dahil olmak üzere çeşitli popüler uygulamalara dahili destek de mevcut. Amaç internet sitelerinin ve uygulamalarının genel bulut üzerinde oluşturulması için düşük maliyetli, ölçeklendirilebilir ve büyük ölçüde yararlı bir platform sunmaktır. Cloud Services Diyelim ki çok sayıda eş zamanlı kullanıcıyı desteklemesi gereken, çok fazla yönetim işi gerektirmeyen ve hiç bir zaman çökmeyen bir bulut uygulaması hazırlamak istiyorsunuz. Mesela, mevcut yazılımlarınızdan birisinin bulut sürümünü geliştirerek Hizmet Olarak Yazılımdan (SaaS) yararlanmaya karar vermiş tecrübeli bir yazılım satıcısı olabilirsiniz Veya hızla büyüyeceğini düşündüğünüz bir tüketici uygulaması oluşturmaya başlıyor olabilirsiniz. Yazılımınızı Windows Azure üzerinde oluşturuyorsanız hangi modeli kullanmanız gerek? 4 Windows Azure Web Sites bu tür bir internet uygulamasının hazırlanmasına izin verir fakat bazı kısıtlamalar bulunur. Örneğin yönetici erişimine sahip olmazsınız yani isteğe göre yazılımlar yükleyemezsiniz. Windows Azure Virtual Machines, yönetici erişimi dahil olmak üzere size çok fazla esneklik sunar ve yüksek derecede ölçeklendirilebilir bir uygulama oluşturmak için kullanabilirsiniz. Fakat güvenirlik ve yönetim ile ilişkili birçok işi de kendi kendinize yapmanız gerekir. İhtiyacınız olan ise sahip olan kontrolü size sunabilecek ve aynı zamanda güvenirlik ve yönetim alanında gereken işlerin çoğunu yerine getirebilecek bir seçenektir. Windows Azure Cloud Services tarafından sunulan da tam olarak budur. Bu teknoloji ölçeklendirilebilir, güvenilir ve düşük seviyede yönetim gerektiren uygulamaları destekleyecek şekilde tasarlanmıştır ve Hizmet olarak Platform (PaaS) olarak adlandırılan çözümün bir örneğidir. Kullanmak için C#, Java, PHP, Python, Node.js, veya istediğiniz başka bir teknolojiyi kullanan bir uygulama hazırlamanız gerekir. Ardından hazırladığınız kod Windows Server'ın bir sürümünü kullanan sanal makinelerde çalıştırılır ("örnek" olarak adlandırılmaktadır). Fakat bu VM'ler Windows Azure Virtual Machines ile oluşturduklarınızdan farklıdır. Birincisi bu kodlar Windows Azure tarafından yönetilir ve işletim sistemi yamalarının kurulumu ve yeni güncellenmiş imajlara otomatik geçiş gibi işlemler Windows Azure tarafından yerine getirilir. (Bu sebepten dolayı uygulamanız internet veya çalışan rolü örneklerinde kalmamalı bir sonraki bölümde anlatılan bir Windows Azure veri yönetimi seçeneklerinin birisi içerisinde yer almalıdır). Windows Azure VM'leri izler ve hata verenleri yeniden başlatır. Şekil 2'de de gösterildiği gibi bir örnek oluşturduğunuzda seçebileceğiniz iki rol bulunmaktadır ve her ikisi de Windows Server tabanlıdır. İkisi arasındaki temel fark bir internet rolünün IIS çalıştırması ve çalışan rolünün bunu kullanmamasıdır. İkisi de aynı şekilde yönetilir fakat bir uygulamanın her ikisini de kullanması genel olarak karşılaşılan bir durumdur. Örneğin bir internet rolü örneği, kullanıcılardan talepler kabul edebilir ve bunları işlenmek üzere çalışan rol örneğine aktarır. Uygulamanızı ölçeklendirmek için Windows Azure'un herhangi bir rolde daha fazla örnek oluşturmasını veya mevcut örnekleri kapatmasını talep edebilirsiniz. Windows Azure Virtual Machines'de olduğu gibi her bir internet ve çalışan rolü örneği için saat başına ücretlendirilirsiniz. Windows Azure'un üç çalıştırma modelinden her birinin oynayacağı ayrı bir rol vardır. Windows Azure Virtual Machines genel amaçlı bir bilişim ortamı sunmaktadır. Windows Azure Web Sites düşük maliyetli internet barındırma çözümü sunmaktadır ve Windows Azure Cloud Services düşük yönetim maliyetleri sunan ölçeklendirilebilir ve güvenilir uygulamaların oluşturulması için en iyi seçenektir. Daha önce de belirtildiği gibi bu teknolojileri birbirinden ayrı olarak kullanabilir veya ihtiyaca göre birlikte kullanarak uygulamanız için doğru altyapıyı oluşturabilirsiniz. Kullanacağınız yaklaşım çözmeniz gereken sorunlara bağlıdır. 5 Veri Yönetimi Uygulamalar veriye ihtiyaç duyar ve farklı türde uygulamalar farklı türde veri gerektirir. Bu yüzden Windows Azure verilerin depolanması ve yönetilmesine yönelik farklı yöntemlere sahiptir. Bunlardan birisi yukarıda açıklanmıştı: Windows Azure Virtual Machines ile oluşturulan bir VM içerisinde SQL Server veya diğer bir DBMS'nin çalıştırılması. (Bu seçeneğin ilgili sitelerle sınırlı olmadığını bilmek önemlidir; MongoDB ve Cassandra gibi NoSQL teknolojilerini de kullanabilirsiniz). Kendi veri tabanı sisteminizi çalıştırmak son derece kolaydır (kendi veri merkezlerinizin yerine geçer) fakat DBMS'nin yönetimini yapmanız gerekir. Bunu daha da kolay bir hale getirmek için Windows Azure yönetim işinin büyük ölçüde sizin adınıza yapıldığı üç farklı veri yönetimi seçeneği sunar. Şekil 3'te bu seçenekler gösterilmektedir. Şekil 3: Windows Azure veri yönetimi için ilişkisel depolama, ölçeklendirilebilir NoSQL tabloları ve yapılandırılmamış ikili depolama sunar. Bu üç seçenekten her biri farklı bir ihtiyacı karşılar: ilişkisel depolama, potansiyel olarak büyük miktarlarda basit olarak yazılmış verilere hızlı erişim ve yapılandırılmamış ikili depolama. Üç durumda da veriler, yüksek kullanılabilirlik sağlamak için otomatik olarak Windows Azure veri merkezinde yer alan üç farklı bilgisayarda çoğaltılır. Üç seçenekten her birinin Windows Azure uygulamaları tarafından veya kurum içi veri merkeziniz, dizüstü bilgisayarınız veya telefonunuz gibi başka yerlerde çalışan uygulamalar tarafından erişilebilir olduğunu belirtmekte fayda vardır. Ve nasıl uygularsanız uygulayın Windows Azure veri yönetimi hizmetlerine kullanıma göre ücret ödersiniz. Ödeyeceğiniz ücrette depolanan veriler için gigabayt başına aylık ödeme de bulunur. SQL Database Windows Azure ilişkisel depolama için SQL Database'i sağlar. Eski adı SQL Azure olan SQL Database bir ilişkisel veri tabanı yönetim sistemi için gereken tüm önemli özellikleri sunar. Buna atomik işlemler, verilere birden çok kullanıcı tarafından eş zamanlı erişim ve veri bütünlüğü, ANSI SQL sorguları ve bilinen bir programlama aracı da dahildir. SQL Server gibi, 6 SQL Database'e de Entity Framework, ADO.NET, JDBC ve diğer bilinen veri erişimi teknolojileri ile erişilebilir. Ayrıca T-­‐SQL dilinin büyük bir kısmı ve SQL Server Management Studio gibi SQL Server araçları da desteklenir. SQL Server (veya bir başka ilişkisel veri tabanı) kullanımını bilen herhangi birisi için SQL Database'in de kullanımı basittir. Fakat SQL Database sadece bulut içerisindeki bir DBMS değil bir PaaS hizmetidir. Halen daha verilerinizi ve verilerinize kimin eriştiğini siz kontrol edersiniz fakat SQL Database, donanım altyapısını yönetmek ve veri tabanını ve işletim sistemini güncel tutmak gibi yönetim işlerinin büyük kısmını sizin adınıza yapar. SQL Database ayrıca verileri birden çok sunucuya dağıtan federasyon seçeneği de sunmaktadır. Bu seçenek çok büyük verilerle çalışan veya daha iyi performans için veriye erişim taleplerini birden çok sunucu arasında dağıtması gereken uygulamalar için yararlıdır. Üç çalıştırma modelinden birisini kullanarak Bir Windows Azure uygulaması oluşturuyorsanız ve oluşturduğunuz uygulama ilişkisel depolama gerektiriyorsa SQL Database iyi bir seçenek olabilir. Bulut dışında çalışan uygulamalar da bu hizmeti kullanabilir fakat bu konuyla ilişkili daha birçok senaryo vardır. Örneğin SQL Database üzerinde saklanan verilere masaüstü, dizüstü, tablet bilgisayarlar ve telefon gibi farklı istemci sistemlerinden erişilebilir. Çoğaltma sayesinde dahili olarak yüksek kullanılabilirlik sağladığı için SQL Database aksama sürelerini azaltmaya da yardımcı olur. Tables Diyelim ki, yazılı verilere hızlı erişim gerektiren bir Windows Azure uygulaması oluşturmak istiyorsunuz ve diyelim ki bu veriler büyük boyutlarda fakat bu veriler üzerinde karmaşık SQL sorgularının yapılması gerekmiyor. Örneğin her bir kullanıcının müşteri profili bilgilerini saklayacak bir tüketici uygulaması hazırladığınızı varsayalım. Uygulamanız çok popüler olacak bu yüzden büyük ölçekte veriye izin vermeniz gerekecek fakat bu veriler saklamakta ve basit yöntemlerle geri çağırtmaktan daha fazla bir şey yapmayacaksınız. Bu da tam Windows Azure Tables'ın kullanılabileceği bir alandır. İsmi sizi şaşırtmasın bu teknoloji ilişkisel depolama sunmuyor. (aslında anahtar/değer depolama olarak adlandırılan bir NoSQL yaklaşımı). Buna karşın Windows Azure Tables, dize, bilgi ve tarihler gibi bir uygulamanın çeşitli türlerdeki özellikleri saklamasına izin veriyor. Uygulama da grupla ilişkili özgün bir anahtar sunarak o grubun özelliklerini elde edebiliyor. Birleştirme gibi karmaşık işlemler desteklenmese de tablolar yazılı verilere hızlı erişim sağlıyor. Aynı zamanda son derece ölçeklendirilebilirdir ve tek bir tablo bir terabayt kadar veriyi tutabiliyor. Basitliğine ilave olarak tabloların kullanımı SQL Database'in ilişkisel depolamasını kullanmaktan daha da ucuz. Bloblar Veri yönetimi için üçüncü seçenek yapılandırılmamış ikili verilerin depolanması için tasarlanmış olan Windows Azure Blobs'tur. Tables gibi Blobs da pahalı olmayan depolama sağlar ve tek bir blob bir terabayt büyüklüğünde olabilir. Örneğin videolar veya yedekleme 7 verileri veya diğer ikili bilgileri saklayan bir uygulama basit ve ucuz depolama için Blobs'u kullanabilir. Windows Azure uygulamaları ayrıca Windows Azure sürücülerini de kullanabilir ve bu sayede Blobs bir Windows Azure örneği üzerine takılmış olan Windows dosya sistemi için kalıcı depolama sağlar. Uygulama sıradan Windows belgelerini görür fakat içerikleri gerçekte bir blob içerisinde saklanır. 8 Ağ İletişimi Windows Azure bugün ABD, Avrupa ve Asya'da bulunan çeşitli veri merkezlerinde çalışıyor. Bir uygulama çalıştırdığınızda veya veri depoladığınızda kullanmak istediğiniz bir veya daha çok veri merkezini seçebiliyorsunuz. Bu veri merkezlerine çeşitli yollardan da bağlanabilirsiniz: • • • Kendi kurum içi yerel ağınızı belirli Windows Azure VM'lerine bağlamak için Windows Azure Virtual Network'ü kullanabilirsiniz. Bir veya daha çok Windows sunucusunu belli bir Windows Azure uygulamasına bağlamak için Windows Azure Connect'ten yararlanabilirsiniz. Windows Azure uygulamanız birden çok veri merkezinde çalışıyorsa kullanıcılardan gelen talepleri akıllı bir şekilde uygulamanın örnekleri arasında yönlendirmek için Windows Azure Traffic Manager'ı kullanabilirsiniz. Şekil 4'te bu üç seçenek gösterilmektedir. Şekil 4: Windows Azure bir bulut VPN’nin oluşturulmasına, bir Windows Azure uygulamasının kurum içi makinelere bağlanmasına ve kullanıcı taleplerinin akıllı bir şekilde farklı veri merkezleri arasında dağıtılmasına imkân sağlar. 9 Sanal Ağ Genel bulutun kullanımındaki yararlı bir yöntem genel bulutu kendi veri merkezinizin bir uzantısı olarak görmektir. Çünkü VM'leri talep temelli oluşturabilir ve ardından gerek kalmadığında kaldırabilir (ve ücret ödemeyi durdurabilir) ve sadece ihtiyacınız olduğunda gereken bilişim gücünden yararlanabilirsiniz. Windows Azure Virtual Machines, SharePoint, Active Directory ve diğer bilinen kurum içi yazılımlarla çalışan VM'ler oluşturmanıza izin verdiği için bu yaklaşım zaten sahip olduğunuz uygulamalarla da çalışır. Bunu daha da yararlı bir hale getirmek için kullanıcılarınızın bu uygulamaları sanki kendi veri merkezinizde çalışıyormuşçasına kullanması gerekir. Windows Azure Virtual Networks'ün yaptığı tam da budur. Bir VPN ağ geçidi aygıtı kullanan bir yönetici, yerel ağınız ve Windows Azure üzerinde çalışan belirli bir grup VM arasında bir sanal özel ağ (VPN) oluşturabilir. Bulut VM'lerine kendi IP v4 adreslerinizi atayacağınız için kendi ağınız üzerinde görüneceklerdir. Bu sayede işletmenizdeki kullanıcılar VM'ler içerisindeki bu uygulamalara yerelde çalışıyormuşçasına erişecektir. Connect Yerel ağınız ve bulut üzerinde yer alan bir dizi VM arasında bir VPN oluşturmak yararlıdır fakat aynı zamanda VPN ağ geçidi donanımı ve bir ağ yöneticisinin hizmetlerine ihtiyaç duyar. Diyelim ki siz tek bir Windows Azure uygulamasını işletmeniz içerisinde çalışan belirli bir grup Windows makinesine bağlamak istiyorsunuz. Örneğin bu sunuculardan birisi üzerindeki bir veri tabanına erişmesi gereken bir Bulut Hizmetleri uygulaması oluşturmuş ve bir VPN ağ geçidi yapılandırması işi içerisine girmek istemiyor olabilirsiniz. Windows Azure Connect bu gibi durumlar için tasarlanmıştır. Connect, bir Windows Azure uygulaması ve Windows çalıştıran bir grup bilgisayar arasında güvenli bir bağlantı kurmak için basit bir yol sunar. Geliştirici sadece Connect yazılımını kurum içi bilgisayarlara kurar (ve bu durumda bir ağ yöneticisine ihtiyaç kalmaz) ve Windows Azure uygulamasını yapılandırır. Bu işlem tamamlandıktan sonra uygulama sanki aynı ağ üzerindeymiş gibi kurum içerisindeki bilgisayarlarla iletişime geçebilir. Traffic Manager Dünyanın bir yerinde bulunan kullanıcılara sahip bir Windows Azure uygulaması sadece tek bir Windows Azure veri merkezinde çalışabilir. Dünyanın farklı yerlerine dağılmış olan kullanıcılara sahip bir uygulamanın birden çok veri merkezinde ve hatta hepsinde birden çalışması daha yüksek bir olasılıktır. İkinci durumda bir sorunla karşı karşıya kalırsınız: Kullanıcıları nasıl akıllı bir şekilde uygulama örneklerine atayacaksınız? Çoğu zaman her bir kullanıcının kendisine en yakın olan veri merkezine erişmesini istersiniz, çünkü en yakın veri merkezine erişim en iyi tepki süresini verecektir. Fakat ilgili uygulama örneği aşırı olarak kullanılıyorsa veya kullanılamaz haldeyse ne olacak? Bu durumda kullanıcının talebini otomatik olarak bir başka veri merkezine yönlendirmek yararlı olur. Windows Azure Traffic Manager'ın yaptığı da tam olarak budur. 10 Uygulamanın sahibi kullanıcı taleplerinin veri merkezlerine nasıl yönlendirileceği konusundaki kuralları belirler ve ardından Traffic Manager bu kuralları uygular. Örneğin kullanıcılar en yakın Windows Azure veri merkezine yönlendirilebilir fakat varsayılan veri merkezinin tepki süresi belirlenmiş bir eşiğin altında kaldığında bir başka veri merkezine yönlendirilir. Küresel olarak dağıtılmış ve çok sayıda kullanıcıya sahip uygulamalarda bu gibi sorunların çözülmesi için dahili bir hizmete sahip olmak yararlıdır. 11 Business Analytics Veri analizi işletmelerin bilgi teknolojilerini kullanırken yararlandığı temel bir konudur. Bir bulut platformu talep temelli, kullanıma bağlı olarak ücretlendirilen kaynaklar sunar ve bu tür bir bilişim yöntemi için iyi bir altyapı oluşturur. Buna uygun olarak Windows Azure işletme analizine yönelik iki seçenek sunar. Şekil 5'te bu seçenekler gösterilmektedir. Şekil 5: Windows Azure iş analizi için raporlama ve büyük veri desteği sağlar. Veri analizi birçok şekilde yapılabilir bu yüzden de bu iki seçenek birbirinden çok farklıdır. Seçenekleri ayrı ayrı incelemek yararlı olacaktır. SQL Reporting Depolanan verilerin kullanımına ilişkin en sık yararlanılan yöntemlerden birisi veriye dayanarak raporların oluşturulmasıdır. Windows Azure, SQL Database içerisindeki verilerle bunu gerçekleştirebilmek için SQL Reporting çözümünü sunuyor. SQL Server içerisinde bir dizi raporlama hizmeti yer alıyor ve SQL Reporting kurum içerisinde veya Windows Azure üzerinde çalışan uygulamalar içerisine raporlama özelliğini eklemenize izin veriyor. Oluşturacağınız raporlar HTML, XML, PDF, Excel ve daha başka formatlarda hazırlanabiliyor ve isterseniz uygulamaların içerisine gömmek veya bir internet tarayıcısı ile incelemek mümkün oluyor. SQL Database ile analiz işlemlerindeki bir diğer seçenek kurum içerisindeki iş zekası araçlarını kullanmaktır. Bir istemci için SQL Database, SQL Server gibi görünür ve bu sayede aynı teknolojiler ikisinde de çalışabilir. Örneğin SQL Database verileri ile raporlar oluşturmak için kurum içi SQL Server Reporting Services'tan faydalanabilirsiniz. Hadoop Uzun yıllar boyunca veri analizi işlemlerinin büyük çoğunluğu ilişkisel bir DBMS ile hazırlanan veri ambarlarında saklanan ilişkisel veriler üzerinde yapıldı. Bu tür veri analizi halen daha önemli ve önemini uzun süre daha sürdürecek. Fakat analiz etmek istediğiniz veri büyüklüğü ilişkisel veri tabanlarının kullanamayacağı kadar büyük olursa ne olacak? Ve hatta veri ilişkisel değilse ne olur? Örneğin sunucular bir veri merkezine veya sensörlerden gelen geçmiş etkinlik verilerine veya başka bir alana bağlanabilir. Bu gibi durumlarda büyük veri problemi olarak adlandırılan bir durum oluşur. Ve farklı bir yaklaşım kullanmanız gerekir. 12 Büyük verilerin analizi için bugün elimizde olan ana teknoloji Hadoop'tur. Açık kaynaklı bir Apache projesi olan bu teknoloji verileri Hadoop Dağıtılmış Dosya Sistemi (HDFS) ile saklar ve ardından geliştiricilerin veriyi analiz etmesi için MapReduce işlemleri oluşturmasına izin verir. HDFS birden çok sunucuya yayılır ve ardından her birinde MapReduce işlemlerini çalıştırır ve büyük verinin paralel olarak işlenmesini sağlar. Şekil 5'te de gösterildiği gibi Windows Azure için Apache Hadoop tabanlı hizmet HDFS'nin verileri birden çok sanal makineye dağıtmasını ve ardından bir MapReduce işinin mantığını o VM'lere yaymasını sağlıyor. Kurum içi Hadoop gibi veri yerelde (mantık ve üzerinde çalıştığı veri aynı VM üzerinde yer alıyor) ve daha yüksek performans için paralel olarak işleniyor. Windows Azure için Apache Hadoop tabanlı hizmet teknolojisinin diğer bileşenlerini de destekliyor buna Hive and Pig de dahil. Microsoft ise Hive sorgularının oluşturulması için bir Excel eklentisi hazırladı. 13 Messaging Ne yapıyor olursa olsun kodların diğer kodlarla etkileşime girmesi gerekir. Bazı durumlarda ise ihtiyaç duyulan tüm iş temel sıralı mesajlaşmadır. Diğer durumda ise daha karmaşık bir etkileşim gerekir. Windows Azure bu sorunları çözmek için birbirinden farklı yöntemler sunar. Şekil 6'sa bu seçenekler gösterilmektedir. Şekil 6: Windows Azure uygulamaların birbirine bağlanması için bulut üzerinden sorgular, yayınlama / abonelik ve senkronize bağlantılar sunar. Queues Sorgu basit bir konudur: Bir uygulama sıraya bir mesaj bırakır ve bu mesaj zamanı geldiğinde bir başka uygulama tarafından okunur. Uygulamanızın ihtiyacı olan basit bir hizmetse Windows Azure Queues sizin için en iyi seçenek olabilir. Queues'in bugünkü genel kullanımlarından birisi bir internet rolü örneğinin bir çalışan rolü örneği ile aynı Bulut Hizmetleri uygulaması içerisinde iletişime geçmesine izin vermektir. Örneğin video paylaşımı için bir Windows Azure uygulaması oluşturdunuz. Uygulama içerisinde, kullanıcıların videoları yüklemesine ve izlemesine imkân tanıyan bir internet rolü PHP kodlarından oluşuyor ve aynı zamanda C# ile hazırlanmış ve yüklenen videoları farklı formatlara çeviren bir çalışan rolü kullanılıyor. İnternet rolü örneği bir kullanıcıdan yeni bir video aldığında videoyu bir blob içerisine kaydedebilir ve ardından bir sordu içerisinden çalışan rolüne bir mesaj göndererek videonun nerede bulunduğunu belirtir. Bir çalışan örneği (hangisi olduğu önemli değildir) ardından sorgu içerisindeki bu mesajı okuyacak ve arka planda gereken video dönüşümünü gerçekleştirecektir. Bir uygulamayı bu şekilde yapılandırmak asenkron bir işleme izin verir ve internet rolü örneklerinin ve çalışan rolü örneklerinin sayısının birbirinden ayrı olması sayesinde uygulamanın ölçeklendirilmesini kolaylaştırır. 14 Service Bus İster bulut üzerinde ister veri merkezinizde, ister mobil bir aygıt veya başka bir yerde çalışıyor olsun uygulamaların birbiriyle etkileşimde olması gerekir. Windows Azure Service Bus'ın amacı çalışan uygulamaların neredeyse her yerde veri değişimi yapabilmesidir. Şekil 6'da da gösterildiği gibi Service Bus bir sorgu hizmeti sağlar. Buna karşın sağlanan hizmet biraz önce tanımlanan Queues ile tam olarak aynı değildir. Örneğin Windows Azure Queues'den farklı olarak, Service Bus bir yayınlama ve abonelik mekanizması sunar Bir uygulama bir konu ile ilgili mesajlar gönderirken diğer uygulamalar bu konu ile ilgili abonelikler oluşturabilir. Bu sayede bir dizi uygulama arasında çok sayıda iletişim yaratılır ve aynı mesajın birden çok alıcı tarafından okunabilmesi sağlanır. Sorgu ise tek seçenek değildir: Service Bus ayrıca geçiş hizmeti üzerinden direkt iletişime imkân verir ve bu sayede güvenlik duvarlarının üzerinden etkileşim için güvenli bir yol sunar. Service Bus üzerinden iletişim kuran uygulamalar Windows Azure uygulamaları olabileceği gibi diğer bulut platformları üzerinde çalışan yazılımlar da olabilir. Ayrıca bulut dışında çalışan uygulamalar da olabilir. Örneğin kendi veri merkezi içerisindeki bilgisayarlarda rezervasyon hizmetleri kullanan bir havayolu şirketi düşünün. Havayolu şirketi bu hizmetleri birçok müşteriye sunmak zorundadır. Bunlara havaalanlarındaki kiosklar, rezervasyon acentelerinin terminalleri ve hatta müşterilerin telefonları dahildir. Bunu gerçekleştirmek çeşitli uygulamalar arasında gevşek bağlar oluşturarak Service Bus'u kullanabilir. 15 Caching Uygulamalar aynı veriye sürekli olarak bağlanırlar. Performansı arttırmanın bir yolu verilerin bir kopyasını uygulamaya yakın tutmak ve bu sayede veriye ulaşmak için gereken süreyi en aza indirmektir. Windows Azure bunu yapmak için iki farklı hizmet sunar: Windows Azure uygulamaları tarafından kullanılan verilerin bellek içerisinde ön belleğe alınması ve blob verilerini kullanıcılara daha yakın olan disklerde ön belleğe alan bir içerik dağıtım ağı (CDN). Şekil 7'de ikisi de gösterilmektedir. Şekil 7: Bir Windows Azure uygulaması verileri bellek içerisinde önbelleğe alabilir ve blob kopyaları tüm dünyada çeşitli alanlarda önbelleğe alınabilir. Caching Herhangi bir Windows Azure veri yönetimi hizmetlerinde (SQL Database, Tables veya Blobs) yer alan verilere erişim son derece hızlıdır. Fakat bellek içerisinde tutulan verilere erişim daha bile hızlıdır. Bundan dolayı sıklıkla erişilen verilerin kopyalarını bellek içerisinde tutmak uygulama performansını arttırabilir. Bunun için Windows Azure’un bellek içerisinde Caching özelliğini kullanabilirsiniz. Bir Bulut hizmetleri uygulaması verilerini bu önbellek içerisinde tutabilir ve ardından kalıcı depoya erişme gereği olmadan direkt olarak erişebilir. Şekil 7'de gösterildiği gibi önbellek uygulamanızın VM'lerinin içerisinde tutulabilir veya sadece önbelleğe alma işine atanmış VM'ler tarafından sunulabilir. İki durumda da önbellek içerisindeki verilerle birlikte dağıtılabilir ve bir Windows Azure veri merkezi içerisindeki birden çok VM'lere yayılabilir. Örneğin bir ürün kataloğunu sürekli olarak okuyan bir uygulamanın ihtiyaç duyduğu veriler daha hızlı bir şekilde kullanılabilir hale geleceğinden bu tür bir önbelleğe alma işleminden 16 yararlanabilir. Bu teknoloji aynı zamanda kilitlemeyi de desteklemekte ve verilerin okuma / yazma veya salt okunur olarak kullanılmasına izin vermektedir. Ve ASP.NET uygulamaları oturum verilerini saklamak için tek bir yapılandırma değişikliği ile bu hizmetten yararlanabilir. CDN Diyelim ki tüm dünyadan kullanıcıların erişeceği blob verilerini saklamanız gerekiyor. Mesela saklanacak olan en son Dünya Kupası maçı veya sürücü güncellemeleri veya popüler bir e-­‐ kitap olsun. Verilerin bir kopyasını birden çok Windows Azure veri merkezinde saklamak uygun olacaktır fakat kullanıcı sayısı çok fazlaysa bu yeterli olmayacaktır. Daha da iyi bir performans elde etmek için Windows Azure CDN'den yararlanabilirsiniz. CDN tüm dünyada düzinelerce alana sahiptir ve her biri Windows Azure bloblarının kopyalarını saklayabilmektedir. Dünyanın bir köşesindeki bir kullanıcının belli bir bloba ilk kez erişmesi durumunda içerisindeki bilgiler bir Windows Azure veri merkezinden bölge içerisindeki yerel bir CDN deposuna kopyalanır. Bunun ardından dünyanın o bölgesinden yapılacak erişimler CDN içerisinde önbelleğe alınmış blob kopyasını kullanacaktır ve en yakın Windows Azure veri merkezine erişmek zorunda kalmayacaktır. Bunun sonucunda dünyanın herhangi bir yerindeki kullanıcılar tarafından sıklıkla erişilen verilere daha hızlı erişim elde edilir. 17 Kimlik Çoğu uygulamanın yaptığı işler arasında kimlik ile çalışmak yer alır. Örneğin bir kullanıcının kim olduğunu bilmek uygulamanın o kullanıcı ile nasıl etkileşime geçeceğine karar vermesine imkân verir. Bunun için Microsoft, Windows Azure Active Directory'i sunuyor. Çoğu dizin hizmeti gibi Windows Azure Active Directory kullanıcılar ve kullanıcıların bağlı oldukları kuruluşlar hakkında bilgileri saklamaktadır. Kullanıcıların bağlanmasına izin vermekte ve ardından kimliklerini kanıtlamak için uygulamalara sunabilecekleri belirteçler sağlamaktadır. Ayrıca kullanıcı bilgilerinin, kurum içerisindeki yerel ağınızda çalışan Windows Server Active Directory ile eşitlenmesine izin vermektedir. Windows Azure Active Directory tarafından kullanılan mekanizmalar ve veri formatları Windows Server Active Directory tarafından kullanılanlarla aynı olmasa da yerine getirdiği fonksiyonlar son derece benzerdir. Windows Azure Active Directory'nin temelde bulut uygulamaları tarafından kullanılacak şekilde tasarlanmış olduğunu anlamak önemlidir. Örneğin Windows Azure veya diğer bulut platformlarında çalışan uygulamalar tarafından kullanılabilir. Ayrıca Office 365'tekiler gibi Microsoft’un kendi bulut uygulamalarında da kullanılabilir. Fakat Windows Azure Virtual Machines ve Windows Azure Virtual Network ile veri merkezinizi bulut içerisine genişletmek istiyorsanız Windows Azure Active Directory doğru seçenek değildir. Bunun yerine daha önce anlatıldığı gibi bulut VM'lerinde Windows Server Active Directory kullanmanız gerekir. Windows Azure Active Directory, uygulamaların bilgilere erişmesini sağlamak için Windows Azure Active Directory Graph adında bir RESTful API sağlar. Bu API herhangi bir platformda çalışan uygulamaların dizin nesnelerine ve nesnelerin birbiri arasındaki ilişkilerine erişmesini sağlar. Örneğin yetkini bir uygulama bu API'yi kullanarak bir kullanıcı, o kullanıcının dahil olduğu gruplar ve daha başka bilgiler elde eder. Uygulamalar aynı zamanda kullanıcılar arasındaki ilişkileri (sosyal grafik) görebilir ve bu sayede insanların birbiriyle olan ilişkileri hakkında daha zeki bir şekilde çalışabilir. Windows Azure Active Directory Access Control bir uygulamanın Facebook, Google, Windows Live ID ve diğer popüler kimlik sağlayıcılarından kimlik bilgilerini kabul etmesini kolaylaştırır. Uygulamanın farklı veri formatlarını ve bu sağlayıcıların her birinin kullandığı protokolleri anlamasını gerektirmek yerine Access Control tümünü tek bir ortak formata dönüştürür. Aynı zamanda bir uygulamanın bir veya daha fazla Active Directory etki alanından girişleri kabul etmesini sağlar. Örneğin bir SaaS uygulaması sağlayan bir satıcı her bir müşterisinde bulunan kullanıcılarına tek bir giriş gerektiren bir uygulama sağlamak için Windows Azure Active Directory Access Control'ü kullanabilir. Dizin hizmetleri kurum işi bilişimin temel taşlarından birisidir. Bulut içerisinde önemli olmaları da şaşırtıcı değildir. 18 Yüksek Performanslı Bilişim Bir bulut platformunu kullanmanın en çekici yönlerinden birisi yüksek performanslı bilişim (HPC) gücüdür. HPC'nin temelinde aynı kodu aynı anda birçok makine üzerinde çalıştırabilmesi yatmaktadır. Windows Azure üzerinde bunun anlamı, bazı problemleri çözmek için paralel olarak görev alan eş zamanlı çok sayıda sanal makinenin çalıştırılmasıdır. Bunu yapmak için bir şekilde uygulamaları programlamak gerekir, yani yapılacak işi bu örnekler arasında dağıtmak gerekir. Windows Azure bunu yapmak için HPC Scheduler'ı kullanır. Bu bileşen, sektör standardı Message Passing Interface'i (MPI) kullanmak üzere tasarlanmış HPC uygulamalarını kullanabilmektedir. Araba çarpışma simülasyonları gibi sınırlı analiz yapmayan yazılımlar bu tür bir uygulamalardan pek çoğuna örnek olarak gösterilebilir. HPC Scheduler ayrıca Monte Carlo simülasyonları gibi sıkıcı paralel olarak adlandırılan uygulamalarla da kullanılabilir. Hangi problem üzerinde çalışılırsa çalışılsın sağlayacağı değer aynıdır: HPC Scheduler, birçok Windows Azure sanal makinesi üzerinde paralel bilişim programlaması gibi karmaşık bir sorunu çözer. Burada amaç bulut üzerinde çalışan HPC uygulamalarını oluşturmayı daha kolay bir hale getirmektir. 19 Medya Günümüzde internet trafiğinin büyük bir kısmını videolar oluşturmaktadır ve bu oran daha da artacaktır. Buna karşın internet üzerinde video sunmak basit bir iş değildir. Sıkıştırma algoritmaları ve kullanıcı ekranındaki görünüm çözünürlüğü gibi çok fazla değişken bulunur. Video ayrıca talep üzerinde patlamalar yaratmaktadır. Mesela insanların çevrimiçi bir film seyretmek istediği Cumartesi günleri talep çok yüksek seviyelere çıkmaktadır. Popülerliği dikkate alındığında birçok yeni uygulamanın da video kullanacak şekilde hazırlanacağı kolaylıkla tahmin edilebilir. Fakat tüm bu programların aynı problemleri çözmesi gerekecek ve her bir programın bu tür problemleri kendi başına çözmesini beklemek de anlamsızdır. Daha iyi bir yaklaşım birçok uygulamanın kullanabileceği ortak çözümler sunabilecek bir platform yaratmaktır. Bu platformu bulut üzerinde oluşturmanın da açık bir şekilde görülebilir olan avantajları bulunur. Kullandıkça öde tabanlı olarak geniş bir kullanıma sahip olabilir ve ayrıca video uygulamalarının genellikle karşı karşıya kaldığı talep artış ve azalmalarıyla da başa çıkabilir. Windows Azure Media Services bu soruna çözüm getirmektedir. Video ve başka medyalar kullanan uygulamalar hazırlayan ve çalıştıran insanlar için hayatı kolaylaştıran bir dizi bulut bileşeni sunmaktadır. Şekil 8'te bu teknoloji gösterilmektedir. Şekil 8: Media Services video ve diğer türlü medyaları tüm dünyadan istemcilere sunan uygulamalar için bir platformdur. Şekilde de gösterildiği gibi Media Services video ve diğer medyalarla çalışan uygulamalar için bir dizi bileşen sunmaktadır. Örneğin Media Services içerisine bir video yüklemek için kullanılabilecek bir medya alıcısına (Windows Azure Blobs içerisinde tutulmaktadır), çeşitli video ve ses formatlarına sahip bir şifreleme bileşenine, dijital hak yönetimi hizmeti sağlayan bir içerik koruma bileşenine, video akışı içerisine reklamların eklenmesine imkân sunan bir bileşene, akış bileşenine ve daha başka birçok bileşene sahiptir. Microsoft ortakları ayrıca platforma yönelik bileşenler sunmakta ve ardından bu bileşenleri Microsoft aracılığı ile sunup kendileri için faturalandırılmasını sağlamaktadır. Bu platformu kullanan uygulamalar Windows Azure veya başka yerlerde çalışabilir. Örneğin videolar hazırlayan bir ajansa yönelik bir masaüstü uygulaması kullanıcılarının videoları Media Services'e yüklemesine ve ardından çeşitli şekillerde o videoyu işlemesine imkân 20 sağlar. Alternatif olarak bulut tabanlı ve Windows Azure üzerinde çalışan bir içerik yönetim hizmeti videoların işlenmesi ve dağıtılması için Media Service'i kullanabilir. Nerede çalışırsa çalışsın ve ne yaparsa yapsın her uygulama kullanması gereken bileşenleri seçer ve RESTful arabirimleri üzerinden erişir. Bir uygulama ürettiğini dağıtmak için Windows Azure CDN, bir başka CDN kullanabilir veya verileri direkt olarak kullanıcılara gönderebilir. Ulaşması gereken noktaya nasıl ulaşırsa ulaşsın Media Services ile oluşturulmuş bir video çeşitli istemci sistemler tarafından tüketilebilir bunlara Windows, Macintosh, HTML 5, iOS, Android, Windows Phone, Flash ve Silverlight dahildir. Amaç modern medya uygulamalarını hazırlamayı daha kolay bir hale getirmektir. 21 Ticaret Hizmet olarak Yazılımın kullanılması uygulamaları hazırlama şeklimizi de değiştiriyor. Aynı zamanda uygulamaları nasıl sattığımızı da değiştiriyor. Bir SaaS uygulaması bulut üzerinde yaşadığı için potansiyel müşterilerin de çözümleri çevrimiçi ortamlarda araması mantıklıdır. Bu değişim veriler ve aynı zamanda uygulamalar için de geçerlidir. İnsanlar neden ticari olarak erişilebilir hale gelen veri setlerini bulut içerisinde aramasın? Microsoft bu iki durum için Şekil 9'da gösterildiği gibi Windows Azure Marketplace'i sunuyor. Şekil 9: Windows Azure Marketplace, Windows Azure uygulamalarını ve ticari veri setlerini bulmanızı sağlar. Potansiyel müşteriler Marketplace üzerinde aramalar yaparak ihtiyaç duydukları özellikleri karşılayan Windows Azure uygulamalarını bulabilir ve ardından ya uygulamanın sahibi ya da direkt olarak Marketplace üzerinden uygulamayı kullanmak üzere kayıt yapabilir. Müşterileri Marketplace üzerinde ticari veri setlerini de arayabilir bunlara demografik veriler, finansal veriler, coğrafi veriler ve daha birçok veri türü dahildir. İhtiyaç duydukları verileri bulduktan sonra satıcı üzerinden veya direkt olarak Marketplace aracılığıyla erişebilirler. Uygulamalar aynı zamanda Marketplace üzerinden Bing Search API'yi kullanıp internet aramalarının sonuçlarına erişebilirler. 22 SDK'lar 2008 yılında Windows Azure yayın öncesi sürümü sadece .NET geliştirmelerine izin veriyordu. Fakat bugün neredeyse her dilde Windows Azure uygulamaları hazırlayabilirsiniz. Microsoft şu anda .NET, Java, PHP, Node.js, ve Python için SDK'lar sunuyor. Ayrıca C++ dahil olmak üzere her dil için temel destek sunan genel bir Windows Azure SDK'sı da mevcuttur. Bu SDK'lar Windows Azure uygulamaları oluşturmanıza, dağıtmanız ve yönetmenize yardımcı olur. SDK'lara www.windowsazure.com veya GitHub üzerinden erişebilir ve SDK’ları Visual Studio ve Eclipse ile kullanabilirsiniz. Windows Azure ayrıca geliştiricilerin herhangi bir düzenleyici ile veya geliştirme ortamında kullanabilecekleri komut satırı araçları da sunmaktadır. Bu araçlara uygulamaları Linux ve Macintosh sistemler üzerinden Windows Azure'a dağıtmak için kullanılabilecek araçlar da dahildir. Windows Azure uygulamalarını hazırlamanıza yardımcı olmasının yanı sıra bu SDK'lar ayrıca Windows Azure hizmetlerini kullanan fakat bulut dışında çalışan uygulamalar oluşturmanıza yardımcı olacak istemci kütüphaneleri de sunmaktadır. Örneğin bir barındırma hizmetleri sağlayıcısı üzerinde çalışan fakat Windows Azure bloblarını kullanması gereken bir uygulama oluşturabilir veya Windows Azure uygulamalarını Windows Azure yönetim arabirimi üzerinden dağıtan bir araç oluşturabilirsiniz. 23 Başlama Şimdi artık büyük resmi gördüğünüze göre yapmanız gereken ilk Windows Azure uygulamanızı hazırlamak. Programlama dilinizi seçin, uygun SDK'yı edinin ve başlayın. Artık varsayılan hale gelen şey Bulut Bilişim; siz de hemen başlayın. Yazar Hakkında David Chappell, San Francisco, Kaliforniya'da bulunan Chappell & Associates'in başkandır (www.davidchappell.com). Konuşmaları, yazıları ve danışmanlık hizmetleriyle tüm dünyadan insanların yeni teknolojileri anlamasına, kullanmasına ve daha iyi kararlar vermesine yardımcı olmaktadır. 24