Etiket Arşivi [ Windows Azure ] - Sayfa 1 / 1

  1. Windows Azure ile Cloud Computing – 1

    31/10/2010 13:09 |Windows Azure |Cloud Computing |

    Cloud Computing Düşüncesi isimli yazımda, Cloud Computing ne olduğunu, yaralarını ve getirdiği kolaylıklardan bahsetmiştim. Bu yazımda ise Microsoft ‘ un Cloud Computing ürünü olan Windows Azure incelemeye başlayacağız.

    image

    Cloud Computing uygulamalarını “Cloud Computing Düşüncesi” isimli yazıda da bahsettiğim gibi maliyetler, güvenlik gibi nedenlerden dolayı Microsoft gibi büyük firmaların sunucularına taşımaktayız. Eğer bir uygulamamız Microsoft ‘un Cloud sistemlerine taşımak istiyor isek, Windows Azure platform kullanmalıyız. Konuya birde geliştirme yönünden bakacak olursak uygulamalarımızı Visual Studio 2010(Web Express 2010 dahil) tüm sürüleri ve Eclipse IDE kullanarak uygulama geliştirme şansımız bulunmaktadır. Windows Azure aşağıdaki teknolojiler destek vermektedir;

    • ASP.Net MVC 2
    • ASP.Net WebFrom 3.5 ve 4
    • Silverlight 4
    • Python
    • F#
    • Ruby
    • Java
    • Php

    Windows Azure birçok dile ve platforma destek vermesinin en büyük nedeni, Windows Azure ile hazırlanan uygulamanın Web 2.0 ile gelen SOAP, Rest ve XML ile haberleşme yeteneğine sahip olmasıdır. Windows Azure ile geliştirdiğimiz uygulamalarımız kolay bir şekilde Cloud taşımamız için, geliştiricilerin kullanabileceği potal ara yüzüne sahiptir.

    image 

    Windows Azure Portal içerisinde SQL Azure, AppFabric ve hazırladığımız ürünümüzü pazarlamak için Marketplace ayarlarını yapabilmekteyiz.( Portal ile ilgili olarak ileriki yazılarımda değineceğim.) Windows Azure Portal üzerinde yerine alana kadar geliştirici birçok katmanda geliştirme yapmaktadır. Bu katmanlar;

    image

    Yukarıdaki grafikte, Windows Azure katmansal parçalarını görmektesiniz. Şimdi bu katmanlarını inceleyelim.(Microsoft ‘un Windows Azure ile ilgili SDK tümünde gördüğümüz özellikleri bazı şeyler dışında aynıdır.) Yukarıda da görmüş olduğunuz gibi Compute,Storage ve Azure AppFabric olarak üç güçlü çekirdeğin üzerinde bulunmaktadır.Bu katmalar;

    • Compute: Windows Azure ile geliştirmiş olduğumuz uygulamamızın kullanacak olan kullanıcı sayısı ve bunların yönetimini sağlayabileceğimiz bölümdür.
    •  Storage: Windows Azure ile ilgili depolama işlemlerimi sağlandığı bölümdür. Söz konusu bölüm kendisi içerisinde Blobls, Tables, Queues olarak üç parçadan ayrılmaktadır.
    • Blobls: Windows Azure kullanarak geliştirdiğimiz uygulama ile clinet arasındaki media iletişimini sağlamaktadır.
    • Tables: Windows Azure ’un NoSQL veritabanı yapısı diyebileceğimiz parçasıdır.
    • Queues : Clinet ve Server arasında mesajlaşmayı ve veri aktarımını sağlayabileceğimiz Storage bölümüdür.
    • Windows Azure AppFabric: Windows Azure ile Cloud Computing ortamına taşıdığımız Web uygulamalarının performans ve yönetim konusunda kolaylıklar sağlayan önemli bir parçadır.

    Windows Azure ile uygulama geliştirme istediğiniz durumda minimum gereksimin olarak .Net Framework 3.5 SP 1, Visual Studio 2008, SQL Server 2005, IIS 7 ve Vista işletim sistemi gerekmektedir. Şimdi Windows 7 işletim sistemi, IIS 7.5, SQL Server 2008 R2 ve Visual Studio 2010 Ultimate IDE kullanarak ilk Windows Azure uygulamamızı gerçekleştirelim.

    image

    Öncelikli olarak Windows Azure SDK ve Visual Studio ortamında işimizi kolaylaştıracak araçları kurmamız gerekmektedir. Bunu için bağlantıdaki adresi tıklayalım. Gerekli uygulama paketini indirip, kurulumu gerçekleştirelim. Kurulum işlemlerini tamamladıktan sonra Visual Studio başlatalım ve New Project diyerek projesi oluşturalım.

    image

    Projemize bir isim verdikten sonra yukarıdaki ekran gelmektedir. Şuanda yukarı görmüş olduğunuz resimde, sistemde kurulu olup Windows Azure ‘un destelediği proje şablonları listelemektedir. Yukarıdaki resimde bazı proje şablonlarını inceleyecek olur isek;

    • Worker Role: Windows Azure uygulaması içerinde tüm işlem görebileceğimiz ve bunları günlüklere yazabileceğimiz, proje şablonudur.
    • CGI Web Role : .Net dışı olan nesnelerin, Windows Azure ile oluşturmuş olduğumuz WebRole ve Strage uyum sağlaması için kullandığımız proje şablonudur.

    image Gerekli şablon seçimlerini yaptıktan sonra ise solution Explorer üzerinde projemizi inceleyelim. Solution adımız HelloWorld dür. Bu proje içerisinde sisteme WebRole, Worker , Queues, Blobs ve Table ile ilgili gerekli bildirimleri Solution içerisinde bulunan HelloWorld projesin yürütmektedir. HelloWorld projesi uygulama içerisinde kullanılacak olan Role yapılarını yönetilmesi konusunda büyük önem taşımaktadır.

    Solution içerisinde yer alan bir değer projesi ise HelloWorld.Web projesidir. HelloWorld.Web projesi bir ASP.Net MVC şablonudur. Ama standart olarak oluşturduğumuz ASP.Net MVC şablonlarında bazı farklar göstermektedir. Bu farklardan en çok göze çarpan ise “WebRoles” class olmaktadır. Söz konusu class Web uygulaması içerisindeki Role yönetim yapmaktadır.

    public class WebRole : RoleEntryPoint
        {
    public override bool OnStart()
            {
    DiagnosticMonitor.Start("DiagnosticsConnectionString");
    RoleEnvironment.Changing += RoleEnvironmentChanging;
    return base.OnStart();
            }
    private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e)
            {
    if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange))
                {
                    e.Cancel = true;
                }
            }
        }

    WebRole Class sayede HelloWorld içerisinde tanımlamış olduğumuz ayarlara uygun olarak çalışan bir Web uygulaması oluşturulmuş olur. Web projemiz içerisinde gerçekleşene durumları monitorüze etmek amacı ile ise Web.Config dosyasında aşağıdaki bildirimler mevcuttur.

      <system.diagnostics>

         <trace>
           <listeners>
             <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener,

    Microsoft.WindowsAzure.Diagnostics,

    Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
               name="AzureDiagnostics">
               <filter type="" />
             </add>
           </listeners>
         </trace>
       </system.diagnostics>

    Söz konusu bildirimler sayesinde projemiz içerisinde yer alan HelloWorld.Worker projemiz içerisinden Web uygulamamız üzerinde gerçekleşen tüm durumları görebilmekteyiz. (Windows Azure uygulamalarında Trace izleme işlemlerini gelecek yazılarımda konu alacağım.)

    Bu yazımda Windows Azure ‘un nelere desteklediğinde, katmanlarından ve .Net tabanında oluşturduğumuz ASP.Net MVC uygulaması nasıl hazırlandığı konusunda incelemelerde bulunduk. Gelecek yazılarımda Windows Azure konusunda daha detaylı olarak incelemeye devam edeceğiz. Konu ile ilgili sorularınızı info@ibrahimatay.org adresine iletebilirsiniz.

    IBRAHIM ATAY

    İyi çalışmalar

    developermania.net

    footer