Skip to main content

· 2 min read

Uzun bir zaman aralığından beri PowerShell ISE'yi kullanmaktayım. Powershell 2.0 versiyonu ile hayatımıza giren Integrated Script Envoirment artık yerini devretme zamanı geldi mi? Bunun dışında Third Party olarak çok sık kullandığım Powershell Studio aracından hiç bahsetmiyorum fakat bazen çok fazla kaynak tüketip beni üzüntü ve muz kabuğuna uğratabiliyor. Ek olarak, PowerShell de Visual Studio Code tarafından şahane bir şekilde desteklendiğini söyleyebilirim. Ayrıca, Visual Studio Code, PowerShell Core için tüm platformlarda (Windows, MacOS ve Linux) desteklenirken Powershell Integrated Script Environment henüz Powershell Core desteklemiyor. Powershell Core merak edenler için uzun bir seri hazılıyorum.

Powershell Integrated Script Environment ( ISE ) destek verenler kullanmaya devam ettiğim ve hayatımı kolaylaştıran inanılmaz eklentiler geliştirdiler. Bunların bir kaçtanesi; "Azure Automation", "ScriptBrowser", "ISESteroids", "ISEPack", "WMIQuery" saymakla bitmeyecek bir çok eklentiler benim çoğu zaman hayatımı hep kolaylaştırdı. Kolay değil bu değişimi Kabul etmek benim tarafımdan fakat Visual Studio Code yetenekleri ile çok daha hızlı gelişti ve sonucunda bende değişime ayak uydurmak zorunda kaldım. ( Team Services Extesion bunun başındaki sebep aslında ). Mevcut işletim sisteminizde en az PowerShell 5.0 versiyonu ile Windows'da Visual Studio Code ile Powershell geliştirmeye başlayabilirsiniz. Windows 10'u veya diğer Windows İşletim Sistemleri (ör. Windows 8.1 vb.) Için Windows Management Framework 5.0 yükleyerek Visual Studio Code üzerinden Powershell geliştirmenin keyfine varın.

Visual Studio Code yukarıda bahsettiğimiz gibi farklı platformlarda desteklenmektedir. Bunlar sırasıyla,

  1. Windows
  2. Linux
  3. macOS

Visual Studio Code kurulumu ve kullanımı için adımları göstermeyeceğim. Bununla ilgili internette sayfalarca döküman var. Visual Studio Code kurulumu yaptıktan sonra sol kısımda gördüğünüz extension ekranı içerisinden Powershell aramasını yaparak ilgili extension kurulum yapmanız gerekmektedir. Daha sonra Visual Studio Code içerisinde geliştirdiğiniz Powershell satırlarını Execute, Debug etc. süreçlere dahil edebilir hale geleceksiniz.

Bu geçiş sürecine bende alışmaya çalışıyorum ama oldukça hoşuma gidiyor artık. Visual Studio Team Services bağlantısı benim için çok fazla önem arz etmekteydi. Artık Visual Studio Code ile hayatıma devam edeceğim. Powershell Studio ( SAPHIEN ) benim için ayrı bir yeri var.

· 3 min read

Azure Resource Manager şablonlarının yazılması ve deploy edilmesi size esneklik ve otomatik bir ortam sunmasını sağlarken bazı durumlarda, Azure Resource Manager şablonları kısa sürede çok karmaşık hale gelebilir. Ayrıca, Azure Infrastructure ortamınız için Microsoft'un en iyi uygulamalarının ekibiniz tarafından yazılan her şablona yansıtılması sağlamak bazı durumlarda zor olabilir. Eğer Azure Resource Manager dağıtım modeline hakim değilseniz, Azure Resource Manager makale serimi okumanızı tavsiye ederim.

Bu makale serisinde, Azure Resource Manager şablonunu geliştirirken ve dağıtımını basitleştirmeye yardımcı olan açık kaynak kodlu Azure Building Blocks ele alacağız. Microsoft içerisinde bulunan dağıtım modelleri ve uygulamalar ekibi tarafından öngörülen en iyi uygulamaları yansıtan ( IaaS, PaaS ) – benzeri olan Azure Resource Manager şablonlarını içerir. Azure Resource Manager şablonlarını kullanarak ( Template Deployment – Github) kaynak dağıtımını destekler. Azure kaynaklarını yöneten bir kişi, Resource Manager Deployment API sayesinde JSON formatında bir model kullanır ve bunu Azure Resource Manager API üzerine gönderir. Örnek olarak ortamınıza deploy etmek istediğiniz kaynakları ; Virtual Machine, Virtual Network, Storage, Network Security Group olarak belirterek gerekli dağıtımı sağlayabilirsiniz. Yine talebinize göre dağıtımı yapılmak istenilen kaynağın özelliklerinin tamamı, dağıtım yapılacak zamanda parametrik hale getirilerek özelleştirilir. Aşağıda bulunan resim içerisinde Azure Resource Manager dağıtım modelini destekleyen bir JSON dosyası bulunmaktadır.

Azure Resource Manager şablonları çok güçlü, büyük ve karmaşık mimarileri dağıtmanıza izin verirken, Azure Resource Manager hakkında geniş bilgiye ihtiyaç duyarlar. Bu durum ise bazı zamanlarda geliştirdiğiniz şablonları koruma kısmında zorluk çekmenize sebebiyet verir. Çünkü herhangi bir değişiklik, ön görülemeyen sorunlara neden olabilir. Azure Resource Manager güçlü dememin altında yatan oldukça fazla sebep var. Örneğin, bir Virtual Machine dağıtmak istediğinizi varsayalım. Deploy olurken içerisine kurabileceğiniz role, registry, gibi ucu açık bir kapı olduğunu düşünün. "Ne gerek var ?" Dediğinizi duyar gibiyim. İşte burası biraz komplike bir süreç olduğu gözükebilir ama Virtual Machine Scale Sets kullanırken zaten bunları yapmak zorunda kalıyorsunuz. Azure Building Blocks temel amacı daha basit bir şekilde deployment süreçlerinizi yapabilmenizi sağlamaktadır.

Azure Building Blocks projesi, Azure kaynaklarının kullanımını basitleştirmek için tasarlanmış bir komut satırı aracı olup, Azure Resource Manager kapsamını kullanarak bu sorunu çözer. Building Blocks, Resource Manager Deployment modelindeki gibi JSON formatı ile yazılır ve Azure Resource Manager şablonlarından yararlanarak dağıtımı gerçekleştirir. Azure Resource Manager Template olduğu gibi parametre belirtebildiğiniz gibi, Building Blocks içinde bu şansa sahipsiniz. Building Blocks JSON şeması çok basit olacak şekilde tasarlanmıştır. Azure Building Blocks 2.0 versiyonu ile şimdilik anılmaktadır.

Building Blocks şu anda aşağıdaki kaynak türlerini desteklemektedir.

  • Virtual Networks

  • Virtual Machines (including load balancers)

  • Virtual Machine Extensions

  • Route Tables

  • Network Security Groups

  • Virtual Network Gateways

  • Virtual Network Connection

· 2 min read

Yazımızın ilk serisinde genel hatlarıyla Azure Resource Manager ile Building Blocks yapısını anlamamız için açıklamalarda bulunduk. Building Blocks açık kaynaklı bir yazılım olduğunu ve Resource Manager dağıtım modelinde bize daha seri bir şekilde deployment yapmamıza yardımcı olacağından bahsettik. Şimdi ise genel yapısını ve nasıl kullanabileceğimize bakalım. Öncelikle Building Blocks aracını kurmanız için bir çok yöntem karşımıza çıkıyor. Eğer mevcut bilgisayarınız içerisinden bu tool erişip gerekli dağıtımı yapmak istiyorsanız, Azure Command Line Interface ( Azure CLI ) Yönetim aracını kurmanız gerekmektedir. Burası tamamen sizin seçiminize kalmakla beraber, dilerseniz Linux Bash üzerinden Building Blocks aracını yükleme şansına sahipsiniz. Ben bu yazı serisi içerisinde Azure CLI üzerinden devam edeceğim. Alternatif olarak tool kurulum süreçleri ile uğraşmak istemiyorum diyenler Azure Cloud Shell tercih edebilir ve Web Based olarak devam edebilirler.

Bir önceki yazımızda bahsettiğimiz gibi Azure Building Blocks 2.0 versiyonu ile indirilebilir durumdadır. Open Source bir araç olduğu için ve Azure CLI üzerinden kullanabilme durumunu hesaba katıp geniş bir şekilde bir çok platformda bu aracı tercih etmenizi sağlayacağını söyleyebiliriz. Bunların başını çeken, macOS, Ubuntu, Red Hat Enterprise Linux (RHEL), Fedora, or CentOS gibi İşletim sistemleri bulunmaktadır. Windows ise zaten söylememe gerek olduğunu düşünmüyorum. Şimdi sırasıyla Azure Building Blocks için neler gerektiğine bir göz gezdirelim.

  • Azure CLI 2.0 – İşletim sisteminize şu adresten kurulum gerçekleştiriniz.

  • Node.JS - İşletim sisteminize şu adresten kurulum gerçekleştiriniz.

  • Windows için – Command Prompt – Linux için ise Bash açılması gerekmektedir.

Windows üzerinde çalışan Azure CLI üzerinden gideceğim için Command Prompt üzerine gelip, aşağıdaki Package Manager (npm) çağırıp kurulumu gerçekleştireceğim.

Yukarıda görüldüğü gibi Azure Building Blocks kurulumunu başarıyla yaptık. Şimdi, Azure Building Blocks aracına nasıl eriştiğimizi anlamaya çalışalım. Aşağıdaki resimde görülen örnekte, Powershell üzerinden "azbb" yazdığım zaman ilgili aracı çağırmış bulunmaktayım. Bu araç ile gönderebileceğimiz parametleri görmekteyim. Yazımızın ilerleyen kısımlarında bu parametleri kullanıp deployment yapmaya çalışacağız.

Azure Building Blocks kurulumunu yaptık. Yukarıda bulunan resim size şaşırtmasın, Azure Building Blocks kurduğum zaman artık "Powershell" içerisinden çağırdım. Versiyon kontrolü yapmak istersek "AZBB" aracını çağırarak parametre göndermesi gerçekleştirelim ve versiyonumuzu öğrenelim.

"azbb –version" parametresini göndererek hangi versiyonda olduğumu öğrenmiş oldum. Bir sonraki yazı içerisinde artık Azure Building Blocks için deployment ve template geliştirme sürecine başlıyor olacağız.

· 2 min read

Azure Building Blocks temelde bir adet "Settings File" ihtiyaç duyar. Bu "Settings File" içerisine, Deploy etmek istediğiniz kaynağın detayları belirtirsiniz. Bu size tanıdık gelen bir format olacak fakat Azure Resource Manager Deployment modelinde geliştirdiğinizden oldukça basit bir şekilde karşınıza çıkmaktadır. Bu kısımdaki esneklikleri anlamak için hemen boş bir "Settings File" oluşturalım ve ardından ilk örneğimizle yola çıkalım.

{ "$schema": "https://raw.githubusercontent.com/mspnp/template-building-blocks/master/schemas/buildingBlocks.json", "contentVersion": "1.0.0.0", "parameters" : { "buildingBlocks": { "value": [ {} ] } } }

Yıukarıda bulunan JSON şemasını izleyen bir "Building Blocks" tanımlaması ve ardından buildingBlocks dizisini istediğiniz şekilde dolduracak bir yapı izlemektedir. Şimdi basit bir örnek ile başlayalım.

Yapmak istediğimiz ilk kısım, Azure Subscription içerisinde basit bir Virtual Network ve subnet yaratılması gerekmektedir. Sırasıyla mimari aşağıdaki yapıyı içerir.

  • 10.0.0.0/16 adres alanına sahip "msft-hub-vnet" isimli bir VNet.
  • 10.0.1.0/24 adres alanına sahip "firewall" olarak adlandırılan "msft-hub-vnet" içindeki bir alt ağ.

Her blok bir JSON içerisinde nesne olarak temsil edilebilir. Örneğimiz içerisinde, basit bir Virtual Network'ü temsil etmek için aşağıdaki JSON nesnesini kullanalım.

{ "$schema": "https://raw.githubusercontent.com/mspnp/template-building-blocks/master/schemas/buildingBlocks.json", "contentVersion": "1.0.0.0", "parameters": { "buildingBlocks": { "value": [ { "type": "VirtualNetwork", "settings": [ { "name": "msft-hub-vnet", "addressPrefixes": [ "10.0.0.0/16" ], "subnets": [ { "name": "firewall", "addressPrefix": "10.0.1.0/24" } ] } ] } ] } } }

Yukarıdaki JSON dosyasında buildingBlocks nesnesinin içerisine gerekli tanımlamaları yaptık. Dikkat ederseniz, "Type" adında bir nesnemiz var ve onun karşınıza gerekli kaynağın modelini tanıtıyoruz. Azure Resource Manager Template gibi uzun gözüküyor. "Bunun hangi aşaması kolay ? " dediğinizi duyar gibiyim. Bu yüzden bu aradaki farklı anlamanız için aynı mimarinin Azure Resource Manager Template ile yazmaya çalışsaydınız örneğini aşağıdaki resimde görebilirsiniz.

Resim içerisine hepsini sığdıramadım fakat, yukarıdaki sadece basit bir Virtual Network oluşturulması için yapılan adımlardı. Azure Resource Manager Template kullanarak deployment yapmak oldukça zamanımızı alabiliyor. Hızlı ve basit bir şekilde yapmak için Azure Building Blocks sizleri bekliyor. Bir sonraki yazımızda geliştirmiş olduğumuz "Virtual Network Settings File" nasıl deploy edebileceğimizi inceleyelim.

· One min read

Building Blocks olarak son serimiz olan bu yazımızda artık geliştirdiğimiz "Settings File" nasıl deploy edeceğimiz üzerinden konuşacağız. Öncelikle Azure CLI tarafında dağıtım yapmak istediğiniz hesap ile oturum açmanız gerekmektedir.

Azure CLI üzerine gelin, "Az Login" yazdıktan sonra size bir URL ve Access Code verecektir. Daha sonra bu bilgiler ile browser üzerinden oturum açın ve Azure CLI üzerinde başarılı bir şekilde hesaplarınızın geldiğini yukarıdaki gibi görün. Hesabım ile oturum açtım ve tüm subscriptionlarımı görmekteyim. Artık Azure Building Blocks çağıralım ve deployment sürecinin nasıl işlediğini anlayalım.

Resim içerisinde ilk deployment senaroyumuzu başarıyla yaptık. Şimdi yaptığımız adımları sırasıyla açıklayalım. Azure CLI üzerinde deployment gerçekleştirmek istediğimiz hesap ile oturum açtık. Daha sonra ise, Azure Building Blocks aracını parametreler göndererek ufak bir deployment senaryosu gerçekleştirmiş olduk. Yukarıdaki resimde parametleri görebilirsiniz ve oldukça basitlerdir. Deployment sonrası Azure paneli üzerindeki durum aşağıdaki gibidir.

· 2 min read

It has been a while that I couldn't write. There have been a lot of changing. The beginning of "Azure Subscription Directory Change Steps." It was most complicated process while you were moving resource between Subscriptions. Your resources must be in the same directory when you decided to migrate resource between Azure Subscriptions. As you know, Azure Service Management Portal has been terminated.

Before you begin, you need some requirements

You must sign in with account that has RBAC Owner access to the subscription and It must be allowed to connect both the current directories

As you can see in the picture, we have permission to manage both subscriptions. If you don't know how to give permission in Azure Subscription, you must read this article. It should have permission in both directory. ( RBAC Owner). If you are sure about giving the permission, you can start to change directory. Please open the Azure Portal that you can click on to Subscription Tab. Select the subscription which you want to change.

In this picture, you must focus on to redline because there is a tip. If you choose the change directory button, it will give a sign about the beginning of a process named directory change. After you clicked, Thus, you can decide which directory will has a permission to change your subscription. In this way you can be able to move your resources between subscriptions.

When you change the subscription, it is just a directory level operation so it doesn't affect the other status. ( Billing, Account Admin. ) If you want to delete old directory, you must transfer the subscription to billing ownership to get a new Account Admin.

Now, you are able to move your resource between your subscriptions. I want to add a short note. Formerly, You won't complete this process easily because you will see too many steps

· 3 min read

Evrim her yerdedir, doğanın sahip olduğu gibi Bilgi Teknoloji departmanları da buna sahiptir. Her başka bir gün nereden geldiği belli olmayan bir yenilik çıkıyor ve insanlar bunu gördüklerinde tepkileri "Wow! işte bu herşeyi değiştirir." oluyor.Bilgi Teknolojileri birbirleriyle ilişkisi olmayan makinelerden küçük yerel ağlara ve sonra internete evrildi. Ayrıca veri merkezlerine sahipken ardından da buluta kavuştuk. Cloud Computing, IaaS olarak başladı, sonra hayatımıza PaaS ve SaaS'a girdi.

Azure Functions (Serverless Architecture) Nedir ?

Bir hayal kuralım ve yapmak istediğiniz bir işiniz var. Örneğin dosya işlemek, resim işlemek, bildirim yapmak vs. Bu işleri yapmak için sunucu, ortam ve diğer etkenleri düşünmeden sadece görevinizi tanımlayıp çalıştırabileceğiniz sistemler olduğunu düşünün. İlk olarak şunu kesinlikle anlamamız gerekiyor. Serverless demek kesinlikle programınızın çalışması için sunuculara ihtiyacınız olmadığı anlamına gelmiyor. Serverless mimarilerde kesinlikle sunucular kullanılıyor. Fakat burada önemli olan nokta bu sunucuların yönetiminin, dolayısı ile oluşan birçok operasyonel işlerin artık bizim değil servis sağlayıcının sorunu olması.( Function as a Services ). Yani production'da bir uygulama / kodu çalıştırmanın en önemli zorluklarından olan operasyonel işleri servis sağlayıcısına tamamen teslim etmiş oluyoruz. ( Bırakınız yapsınlar, yönetsinler ! ) Kısacası siz kodunuzu upload edin gerisine karışmayın. Cloud ortamı olduğu için ise kodunuz çalıştığı zaman aralığı için ücret ödeyin.

Azure Functions desteklediği yazılım dilleri, C#, F#, Node.js, Java, Python, PHP, batch, bash, or any executable. olarak söyleyebiliriz.

Azure Functions (veya AWS Lambda) ile ilgili müthiş şey, geleneksel olarak kodu yürütmek zorunda kalacağınız altyapıyı yönetmek / korumak zorunda değilsiniz. Benim aklıma ilk takılan soru ise Azure Automation'dan farkı ne acaba diye düşündüm. Azure Automation'ı biliyorsanız, Powershell ile otomasyon sağlayabilen bir servis. Ancak, Azure Function, Automation'ın sağladığının da ötesine geçmektedir. Automation PowerShell ile sınırlıdır ve gerçekten yalnızca bir web hook veya Azure SDK (API veya CLI) tarafından tetiklenebilir.

Azure Functions içerisinde Powershell'i kullanarak basit bir kod bloğumun çalıştırılması sağlayacağım.Yazdığım kod bloğunu Azure Function içerisine upload ettim ve sadece http trigger üzerinden istediğim zaman tetikleyerek ilgili code satırlarının çalışmasını gerçekleştireceğiz. Kod bloğumuz aşağıdaki gibidir.

Kod bloğumuz upload ettikten sonra, "Get function URL" butonuna basıp http üzerinden gerekli trigger url sahip olduk. Artık Azure Functions ile http üzerinden trigger ederek Powershell script'in çalışmasını sağlayabiliriz.

Trigger işlemini görüldüğü gibi "1.adım" içerisinde yaptım. Gelen istek çok hızlı bir şekilde Powershell Script çalışmasını sağladı. Functions hizmetini Powershell ile göstermeye çalıştım. Fakat diğer diller ile yapılabilecekleri hayal edin.Kazanımlarımızı kısaca özetlemek gerekirse; Şüphesiz ilk akla geleni maliyet adına bize kazandırdıkları, Pay-as-you-go– Kullanım başına ödeme diyebiliriz. Yukarıda kısaca bahsetmeye çalıştım tekrar edecek olursak, sunucunun RAM ve İşlemci kullanımına göre ödeme yaptığımız modelden, sadece fonksiyonlarınız çalıştığı zaman ücret ödeme modeline geçmiş olacağız. Yaz ve çalıştır kolaylığına eriştiniz. Ayrıca Yönetecek, server vb. bir alt yapı da olmadığı için çok daha hızlı bir geliştirme süreci sunulmaktadır. Server kurma, yönetme, ölçeklendirme, güvenlik maliyetlerinden sizi kurtarıp sadece uygulamanızı, iş mantıklarınızı kurmanıza odaklamanızı sağlar.

· 2 min read

Microsoft Ignite 2017 içerisinde duyurulan hizmetlerden bir tanesi ise "Azure Data Box Appliance" oldu. Temel amaç Cloud veri çıkmak isteyen firmaların yüzlerce terabyte'lık veriyi, güvenli aktarım aygıtlarını kullanarak yüksek hızda Azure'a taşımayı sağlar. Verilerinizin hareketini, size özel, güvenli ve müdahaleye karşı dayanıklı bir transfer cihazı ve uçtan uca lojistik ile taşıma yaparak hızlandırmanıza yardımcı oluyor. Bulunduğumuz çoğrafya gereği internet alt yapısının durumunu n farkındalar. Buluta terabaytlarca veri aktarmak zordur. Azure Data Box, verilerinizin Azure'a hızlı ve basit bir şekilde aktarılması için güvenli ve dayanıklı bir yöntem sunar. Azure Data Box'ı Azure portalı üzerinden sipariş edebilirsiniz.

Yukarı resim içerisinde Azure Portal üzerinden bana sorulan sorulara cevap vererek desteklenen partnerlar ile hızlı bir şekilde ileteşim haline geçerek verilerimizi taşıyabilir konuma gelebileceğiz. Cihazı kolayca mevcut ağınıza bağlayın, ardından standart NAS protokollerini (SMB / CIFS) kullanarak verilerinizi Azure Data Box'a yükleyin. Verileriniz otomatik olarak AES 256 şifrelemesi kullanılarak korunmaktadır. Azure Data Box, Portal üzerinden doldurduğunuz form üzerinde bulunan DataCenter içerisine geri gönderilerek yine seçmiş olduğunuz hizmet içerisine yüklenir ve cihaz güvenli bir şekilde silinir. Temel birkaç başlıkta özetleyelim.

Secure End to End : Azure Data Box, sipariş işlemi sırasında müşteri tarafından sağlanan bir şifre ile kullanılarak ve veri yüklenirkende 256 bit- AES şifrelemesi sayesinde güvenli bir şekilde saklanır.

Easy to Use : Data Box'ı doğrudan local network içerisine takabilir ve DHCP yoluyla atanan bir IP adresi sayesinde remote management gibi yönetim özelliklerini kullanabilirsiniz.

Partner Supported : Azure Data Box, müşterilerin büyük miktarda veriyi yönetmesine yardımcı olan derin deneyime sahip, global ölçekli bir çok iş ortağı tarafından desteklenir ve onaylanır. Bunlar başlıca; Veritas, NetApp, Veeam, Rubrik, CommVault olarak belirtilmektedir.

· 3 min read

Yeni kurulumlardan büyük organizasyonlara kadar, her endüstrideki müşteriler verilerinde üstsel büyüme yaşıyorlar. Bu verinin önemli bir bölümüne nadiren erişilebilir ancak iş sürekliliği ve uyumluluk gereksinimlerini karşılamak için uzun bir süre saklanmalıdır. Örnekler arasında çalışan verileri, tıbbi kayıtlar, müşteri bilgileri, mali kayıtlar, yedekler vb. yer almaktadır. Ayrıca, yapay zeka ve veri analizinde yeni olan gelişmeler, daha önce atıl olan veya saklanması gereken verilere ihtiyaç duyuyor. Bu yüzden firmaların çoğu, bu veri setlerinden daha fazla zaman saklamak istiyor ancak bunun için ölçeklenebilir ve düşük maliyetli bir çözüme ihtiyaç duyuyorlar.

Geçen yıl içerisinde Microsoft "Azure - Cool Blob Storage" hizmetini duyurmuştu. Müşterilerin erişilen verilerini "Cool Tier" adında bir katmanda saklayarak depolama maliyetlerini azaltmalarına yardımcı oldu. Bunu malasef Azure Storage Account oluştururken tipine göre belirleyebiliyorduk. Ignite 2017 duyurulan "Archive Storage" sayesinde nadiren erişilen verileri en düşük fiyatlı katmanda saklayarak, kuruluşların depolama maliyetlerini daha da azaltmalarına yardımcı olmak için tasarlanan Archive Blob Storage hizmetini genel önizlemesini duyurdu. Ayrıca, bu katmanlardaki blob düzeyindeki verilerinizin yaşam döngüsü düzeyini kolayca yöneterek depolama maliyetlerini optimize etmenize olanak tanıyan Blob Level Tiering'in özelliğini herkese açık önizlemesini sundu.

Archive Blob Storage Nedir ?

Azure Archive Blob Storage, esnek gecikme gereksinimleri olan nadiren erişilen veriler için (belirli bir saat içinde erişemde olur dediğiniz), yüksek kullanılabilirliğe sahip ve güvenli bulut depolama alanı olanağı sağlayan düşük maliyetli bir hizmet ile kuruluşları sağlamak üzere tasarlanmıştır. Yukarıdaki resimde görüldüğü gibi artık Azure Blob Storage içerisinde : Hot,Cool ve Archive isimlerinde üç farklı seviye bulunmaktadır. Bu farklı seviyeler arasında doğal olarak fiyat farklılıkları ve erişim methodlar var. Aşağıdaki resimde Archive Blob Storage kullanıldığı senaryoları görebilirsiniz. Fiyat konusunu merak edenleriniz var biliyorum fakat henüz bir resmi bir duyuru yapılmadı.

Archive Blob Storage Nasıl Kullanılır ?

Archive Blob Storage hizmetini kullanabilmeniz için aşağıdaki adımları gerçekleştirmeniz gerekmektedir. Şimdilik hizmet, Public Preview olduğu için bu işlemleri yapmaktayız. General Available olduğu gün bu dertlerimiz olmayacak. Powershell ve Azure CLI aracılığı ile birkaç istek gönderme sürecimiz var. Talebiniz onaylandıktan (1-2 gün içinde) East US 2'de kaynaklarınız için geçerli olacaktır. Önizleme sırasında yalnızca Storage Replication tipi Locally-redundant storage (LRS) olanlar desteklenecektir, ancak General Available' da GRS ve RA-GRS hesaplarına (yeni ve mevcut) da destek vermeyi planlıyorlar. Bu talebimiz onaylandıktan sonra artık Blob düzeyinde Archive Storage ve Access Tier özelliğine sahip olabileceğiz. Makalemizin ana konusunu barından "Blob Level Tiering" olayı sayesinde mevcut blob'larınız için katmanlama durumunu sizin belirlediğiniz aralıklara göre ( 30 gün boyunca erişmediklerim – Archive Tier seviyesine geçsin.) gibi aksiyonlar alabileceksiniz.

Yukarıda bulunan Powershell satıları içerisinde Archive Blob Storage özelliğini aktif etmek için istek gönderdik. Son satırda ise gerekli talebi yaptıktan sonra "Registered" yazısını görmeyi beklemeniz gerekmektedir.

Archive Blob Storage özelliğini açıldı. Bu sayede hem Archive Blob Storage hemde Blob Level Tiering özelliğine sahip olduk. Archive Blob ve Blob Level Tiering konusundaki erişim methodlarına yoğunlaşabiliriz.

· 3 min read

Azure Storage içerisinde bulunan Hot, Cool ve Archive detayına bir önceki yazımızda değindik. Şimdi ise Archive Blob hizmetinin işleyişine bakalım. Eğer bir blob Archive Tier seviyesine olduğu zaman okunamaz, kopyalanamaz, üzerine yazılamaz veya değiştirilemez. Ayrıca Archive Storage bulunan bir blob'un snapshot özelliğinden faydalanamazsınız. Bu operasyonlar dışında, varolan bloblarınız için silmek, listelemek, blob özelliklerini / meta verileri elde etmek veya blob'unuzun katmanını değiştirmek için ilgili özellikleri kullanabilirsiniz. Archive Blob Storage içerisindeki verileri okumak için, Blob'un Tier (katmanını hot veya cool olarak) değiştirmeniz gerekir. Bu işlem, rehydration(rehidrasyon) olarak bilinir ve 50 GB'dan daha küçük blob'lar için 15 saate kadar sürebilir. Daha büyük bloblar için ise ek süre gerekebilir.

Rehidrasyon türkçe de yeniden yapılandırma anlamına gelmektedir. Mevcut Blob için rehidrasyon işlemi sırasında katmanın değişip değişmediğini teyit etmek için "Access Tier" özelliğini kontrol edebilirsiniz. İşlem tamamlandığında "Arşiv Durumu" özelliğinden görüntüleyebilirsiniz. Access Tier özeliiğine göre aslında data erişim sıklığı için tutulan bloblar için Storage hizmetinin bedeli değişmektedir.

Yukarıda bulunan örnekte Azure Storage Account içerisinde bulunan Blob seviyesinde katmanlamayı Azure Portal üzerinden yapmış bulunuyoruz. Rehidrasyon işlemini manuel yapmak pek hoş gözükmesede programatic olarak ".NET, Phyton, Java Client Library, Node.Js Client Library ve Azure API" ile süreci yönetme şansınız var.

Yukarıdaki örnekte ".NET" ile mevcut bir blob'un Access Tier seviyesini değiştirilmesini görüyoruz. Dilerseniz yukarıdaki yazılım dilleri ile aynı süreci gerçekleştirebilirsiniz. Şimdi ise ben biraz daha işin programatic tarafı için yapılan çözümleri aktarmaya çalışacağım. Bunların başında ilk aklıma gelen Logic Apps oluyor.

Hemen Logic Apps örneğini açmaya çalışalım. Storage Account içerisinde çok fazla blob'unuz olduğunu varsayalım. Son 30 gün içerisinde erişmeyen var ise (Modified Time gibi değerlere bakarak ) "Access Tier" kısmında gerekli değişimi Logic Apps içerisindeki bir flow ile değiştiğini düşünün. Gerçekten kulağa çok hoş geliyor. Hatta biraz daha ileri gidip firma çalışanları Office 365 Forms üzerinden talep edip "Access Tier" değişimleri yönetebilsek kestirmeden nirvanaya ulaşabiliriz.

Yukarıda bulunan örnekte "Logic Apps" içerisinde Data Lifecyle Management örneği gerçekleştirilmiş. Hergün düzenli olarak çalışan bir flow sayesinde "LastModified" 30 gün önce olan tüm blob'ların "Access Tier" özelliği Archive olarak değiştirililiyor.Logic Apps bir kenara bırakıp bunu analizin yapacak ve tarafınıza "Cost Saving" gibi bir çıktı veren bir araçtan bahsetmek istiyorum. Ignite içerisinde gösterilen "Azure Storage - Blob Tier Analysis Tool" sayesinde mevcut Storage Account içerisinde bulunan Blob'lar için analiz yapıp ilgili katmanlar arasında geçişi yönetmenize destek olacaktır.

Blob Tier Analysis Tool sayesinde yukarıdaki resim içerisinde desteklenen özelliklerden yararlanabilirsiniz. Yine kısa bir görüntü ile nasıl bir çıktı verdiğini görelim.

Yukarıdaki resim içerisinde Azure Storage Account içerisinde 779 GB veri olduğu gözlenmektedir. Blob Storage Analysis Tool, Storage Account içerisinde bulunan blobları inceleyerek gerekli senaryoları bizlere çıkarttı. Bir console uygulaması olarak gözüksede güzel bir analiz yapmış gözüküyor. Dilerseniz şu sayfa üzerinden ilgili uygulamaya erişip kendiniz build ederek analiz parametrelerini belirtebilirsiniz.

Blob Storage Analysis Tool yaptığı analizler sonra aldığı aksiyonlara dahil görüntüyü yukarıdaki resim içerisinde görebilirsiniz.