Azure VM JSON Template

Her gecen gun biraz daha Azure Resource Manager ile hasir nesir oluyorum ve yeteneklerini biraz daha kesfediyorum.

ARM tabanli Azure altyapi yonetiminin bircok avantaji bulunuyor. En onemlisi tum altyapinizi kod/template haline getirebiliyorsunuz. Bu sayede altyapiniz icin surumleme yapabilirsiniz.

Ornegin tum altyapi icin bir onceki surume donebilmeniz mumkun. Her bir Azure bileseni sizin sablonunuz icerisinde bir resource olarak bulunuyor ve bu resourcelar arasinda dependency olusturabiliyorsunuz. Bu sayede Azure Service Fabric ilgili bileseni olusturmadan once dependencyleri olusturmaya basliyor.

Diger faydalarini ayri bloglarda inceliyor olacagim. Asagida Azure uzerinde yeni nesil (IaaS V2) sanal makine olusturmak icin gerekli olan JSON sablonunu bulabilirsiniz.

4050-2

{
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-
preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
 "newStorageAccountName": {
 "type": "string",
 "metadata": {
 "Description": "Unique DNS name for the storage account where the virtual
machine's disks will be placed."
 }
 },
 "adminUsername": {
 "type": "string",
 "metadata": {
 "Description": "User name for the virtual machine."
 }
 },
 "adminPassword": {
 "type": "securestring",
 "metadata": {
 "Description": "Password for the virtual machine."
 }
 },
 "dnsNameForPublicIP": {
 "type": "string",
 "metadata": {
 "Description": "Unique DNS Name for the Public IP used to access the virtual
machine."
 }
 },
 "windowsOSVersion": {
 "type": "string",
 "defaultValue": "2012-R2-Datacenter",
 "allowedValues": [ 
"2008-R2-SP1",
 "2012-Datacenter",
 "2012-R2-Datacenter",
 "Windows-Server-Technical-Preview"
 ],
 "metadata": {
 "Description": "The Windows version for the virtual machine. This will pick a
fully updated image of this given Windows version. Allowed values: 2008-R2-SP1, 2012-
Datacenter, 2012-R2-Datacenter, Windows-Server-Technical-Preview."
 }
 }
},
"variables": {
 "location": "West US",
 "imagePublisher": "MicrosoftWindowsServer",
 "imageOffer": "WindowsServer",
 "OSDiskName": "osdiskforwindowssimple",
 "nicName": "myVMNic",
 "addressPrefix": "10.0.0.0/16",
 "subnetName": "Subnet",
 "subnetPrefix": "10.0.0.0/24",
 "storageAccountType": "Standard_LRS",
 "publicIPAddressName": "myPublicIP",
 "publicIPAddressType": "Dynamic",
 "vmStorageAccountContainerName": "vhds",
 "vmName": "MyWindowsVM",
 "vmSize": "Standard_D1",
 "virtualNetworkName": "MyVNET",
 "vnetID":
"[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
 "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]"
}

Azure SQL – Database copy and export

Azure PaaS servislerinin en populer olanlarindan Azure SQL, PaaS olarak sunulmasinin avantajlarini kullanarak varsayilan bicimde bircok yuksek erisilebilirlik imkani sunmaktadir.

Yerel ortamlarda birkac sunucu, on yatirim, altyapi yapilandirmasi, veri merkezi kurulumu vb bircok operasyonal surec ile birlikte tam anlamiyla bir DR cozumu konumlandirabiliriz.

SQL Server 2016 ile birlikte SQL Always On kullanarak ozellikle SQL seviyesinde FT ve DR cozumlerinde elimiz daha guclendi. En onemlisi artik farkli farkli replikasyon yada HA cozumleri yerine tum bunlari icerisinde barindiran SQL Always On taknolojisini kullanabiliriz.

Azure SQL tarafina gelindiginde ise tum bu servislerin default olarak bulunuyor. Portal uzerinden birkac saniye icerisinde gerceklestirelel yapilandirma ile SQL veritabanlariniz icin secondary kopyalar olusuturulabilir.

Ayni sekilde Azure SQL icerisinde point-in-time denilen otomatik yedekleme hizmeti de bulunmaktadir. Varsayilan olarak veritabaninizin kopyasi Azure storage icerisinde tutulur. Sizin ek bir yapilandirma gerceklestirmenize gerek kalmadan portal uzerinden 5 dakika oncesine kadar otomatik alinmis yedekleri geri dondurebilme sansiniz bulunuyor.

Bunun disinda Azure SQL uzerinde is surekliligini saglamak icin ek bir ozellik daha bulunuyor. Database Copy and Export.

Azure SQL uzerinde, yerel SQL sunucularinda oldugu gibi veritabani yada log yedeklemesi yapilmasi mumkun degildir. Bunun disinda copy export servisini kullanarak varolan veritabani icin .bacpac dosyasi olusturulabilir ve bu dosya Azure Storage icerisinde barindirilabilir.

Buradaki onemli nokta ne zaman Copy Export ne zaman default point-in-time kullanilmasi gerektigine karar verilmesi.

Ozetle point-in-time operasyonel olarak tum yuku uzerinizden aliyor. Ek bir ucret odemeden arka planda calisan bir servis olarak manuel olaran copy-export servisinden daha efektif oldugu soylenebilir.

Bir diger var Point-in-Time senaryosunun consistent backup olusturuyor olmasi. Export surecinde ise ne yazik ki bu islemi canli database uzerinde gerceklestiremezsiniz. Oncelikle DB nin bir kopyasini almaniz gerekmektedir.

Copy-Export’ un en buyuk avantaji ise on-premise sunuculari uzerinde restore islemine izin vermesi. Point-In-Time senaryosunda restore islemi ancak Azure SQL uzerindeki sunuculari uzerinde gerceklestirilebilir.

Azure Storage Access Tools

Azure Storage servislerine erisim icin genis bir arac seti bulunmaktadir. Gerek developer gerek IT pro perspektifinden bakildiginda Azure Storage servislerine farkli arayuzlerden erisim ihtiyaci duyabiliriz.

Kisaca su an icin en populer olan araclari ve arayuzleri inceleyelim.

Azure PowerShell Cmdlets:

Azure PowerShell modulu icerisinde oldukca zengin bir cmdlet havuzu bulunuyor. Gerekli modulu PowerShell Gallery altindan yada direk kurulum modulu uzerinden kurabilirsiniz.

Azure PowerShell module icerisinde Blob, File, Queue ve Table hizmetleri icin cmdletler bulunmaktadir.

AzCopy

AzCopy araci Microsoft tarafindan sunulan komut satiri araclarindan bir tanesi. Genellikle Azure uzerinde veri transferinde kullanilabilir.

Storage Explorer:

En unlu araclardan bir tanesi. En guncel surumunde tum servisler ve alt komponentleri ile ilgili aksiyonlar alinabilir.

Visual Studio

Benim favori araclarimdan bir tanesi. Yalnizca storage servisleri ile ilgili degil Azure uzerindeki ozellikle PAAS servislerine entegrasyonu cok iyi seviyede.

Gerek Storage gerekse Compute icin emulatorler kullanilarak local ortamdan VS ile birlikte development gerceklestirebilirsiniz. Ayni zamanda birkac saniye icerisinde Azure SUbscription bilgisini vererek public Azure uzerindeki servislere Toolset icerisinden erisim saglayabilirsiniz.

Tek bir sag klik ile var olan aplikasyonunuzu Azure uzerinde stage yada production gibi slotlara publish edebilirsiniz.

 

Azure VM Boyut Kararlari

Azure uzerinde sanal makine hizmetini kullanmak istediginizda Azure size oldukca zengin bir menu sunmaktadir. A, D, G,DS, GS serileri ve yeni aciklanan ve aciklanacak olan bir sureu farkli seri icerisinde farkli boyutlarda makineler secebilmeniz mumkun,

Bu noktada ozellikle Azure altypapisi planlanirken VM boyut planlamasi yapilmasi da onemlidir. Her ne kadar Azure size ilgili VM boyutlarini degistirmek icin imkan verse de, altyapi tasinmadan once genel resmi gormek ve mumkunse maliyeti hesaplamak onemlidir.

Azure Sanal Makineleri uzerinde boyut karari verilirken asagidaki noktalara dikkat edebilirsiniz.

  • Iki farkli tier bulunuyor. Standard ve Premium. Premium genellikle daha yuksek I/O thorughput isteyen uygulamalar icin tasarlanmistir ve bu sebeple maliyetleri fazladir.
  • Her VM boyutunun maliyeti farklidir. Ayni zamanda belirli size lar belirli ozellikleri destekleyebilir yada desteklemeyebilir.
  • A1 production ortaminda kullanilmasi icin onerilen en dusuk boyuttur.
  • Eger SQL veritabani icin bir sanal makine olusturuyorsaniz, minimum 4 CPUlu bir sanal makine secmeye ozen gosterin.

Azure Storage Services – Article Series on 4sysops.com

I recently started to post on 4sysops.com regarding Azure Storage Services.

Azure-regions

 

 

 

 

 

Here are the blogs in this series that I’m planning to publish:

Azure Storage Services — Introduction
Azure Storage Services — Accessing Services
Azure Storage Services — Storage Account
Azure Storage Services — Blob Storage
Azure Storage Services — Table Storage
Azure Storage Services — Queue Storage
Azure Storage Services — File Storage
Azure Storage Services — Premium Storage Benefits
Azure Storage Services — Security
Azure Storage Services — Useful Tools.

MVP rewarded!

1780-mvp_horizontal_fullcolor-550x0

I have been re-awarded Microsoft MVP title for 2016. That marks my 6th consecutive year and I’m really honored to have received award again but this year hold special meaning for me as this time I have been awarded for the two different expertise areas: Cloud/Datacenter Management and Microsoft Azure..It is a great honor to be recognized for my expertise on both communities.

 

How to install AzureStack on Windows 10 Client – Tips and Tricks

I had a long Saturday this weekend. If you are not living in a cave you probably heard about Microsoft’s new Hybrid cloud approach AzureStack.

I’m not going to discuss the architecture or the benefits that AzureStack brings because there are bunch of good resources available:

https://azure.microsoft.com/en-us/documentation/articles/azure-stack-architecture/

http://blogs.technet.com/b/server-cloud/archive/2015/05/04/announcing-microsoft-azure-stack.aspx?linkId=13950132

https://www.petri.com/microsoft-azure-stack

Last week Microsoft announced that AzureStack first technical preview (TP1) will be available on 29th of Jan.

Also couple of weeks ago, hardware requirements are announced to deploy TP1. TP1 just focuses for POC deployments and available to install all components on a single server if you meet below requirements:

https://azure.microsoft.com/en-us/documentation/articles/azure-stack-deploy/

I’m sure most of you were expecting to install AzureStack on your laptop or home desktop PC to test basic functionalities but if you look at the requirements, that’s a bit challenging for a giant like Azure Stack.

Here are the couple req:

  • Windows Server 2016 Datacenter (TP4)

That one easy and can be installed on your lab server/desktop easily.

  • One available port on a switch for the POC machine

Shouldn’t be a problem

  • Microsoft Active Directory accounts

To deploy Azure Stack POC, you must have a valid Microsoft Azure AD account that is the directory administrator for at least one Azure Active Directory.

You can use your existing Azure subscription or create one for free.

  • Memory – 96 GB RAM

To be honest I don’t have a home lab that meets that requirement so we need to find a way for that one. Because deployment script will create bunch of virtual machines probably require around 96GM of RAM.

  • Hyper-V Enabled

If you were planning to use a virtual machine to test AzureStack, that’s another challenge as well because POC machine should have Hyper-V role installed.

  • Data Disks

Minimum configuration requires 4 disks; each disk provides a minimum of 140 GB of capacity. Also these disks should be visible in disk management as online – RAW – not in use

So like me, if you were planning to use your home lab to test AzureStack, there are couple of challenges we need to deal with.

Actually I was planning to use my home Windows 10 desktop machine which has following configurations:

  • 32 GB RAM
  • I7-6700K CPU
  • SSD System Drive
  • 1TB HDD

I know it’s not a good idea to use this system to run a giant like AzureStack but that was all I had this weekend J

So first thing first, we need to deal with Hyper-V requirement. You can always install Windows Server 2016 Datacenter edition on a dedicated partition and boot but also you can use Windows 10 latest insider version to have nested Hyper-Vs.

Currently I’m running:

So I simply enabled Hyper-V on it and then followed below instructions/scripts to install a nested Windows Server 2016 TP4 Hyper-V server as a virtual machine.

http://blogs.technet.com/b/virtualization/archive/2015/10/13/windows-insider-preview-nested-virtualization.aspx

Enable-NestedVM.ps1 script does all required checks for you and at the end of the steps you will have a fully working Nested 2016TP4 Hyper-V server.

So our Hyper-V server is ready – I hope.

Next thing we need to find a way to deal with hardware requirements.

For the data disk requirements, I simply created 4 VHD on my physical Windows 10 HDD with required sizes:

$i = 1..4
foreach ($a in $i)
{
New-VHD -Path G:\DATA_DISKS\VHD0$a.vhdx -Fixed -SizeBytes 140GB
}

Then simply added these disks to my nested Hyper-V server.

If you follow official AzureStack deployment guide, you will realize that we are booting nested Hyper-V server with WindowsServer2016Datacenter.vhdx disk using following command:

bcdboot <mounted drive letter>:\windows

and then we need to run

.\DeployAzureStack.ps1 –verbose

command to start the deployment. Before changing anything I just wanted to see what this command is actually doing so just run it once and realized all prerequisites are checked before deployment.

We don’t have a problem with data disks but I got error messages for the RAM as I only have 32 GB of RAM and set my nested Hyper-V to use around 24 GB out of it.

So I just opened DeployAzureStack.ps1 script to see what’s going on. First thing I realized that script is mounting $PoCVHD
=
‘MicrosoftAzureStackPOC.vhdx’
using below command.

So you have two options:

You can fire the deploy script and wait for vhdx to be mounted and then find the requirement definitions and change it. I tried this method but faced another problem.

As you may see on the above script, VHD is mounted as read-only which makes impossible to change any content in VHD.

I actually found the precheck script to change the required RAM settings but once I tried to save it gave below error:

So you can simply edit the first script and remove (-access ReadOnly) parameter. That will mount the disk in a normal state and you can hijack any file you found.

But I believe second option is much easier. Before running DeployAzureStack script you can simply mount the disk (MicrosoftAzureStackPOC.vhdx) manually, edit the files you need and then eject it. Then you can simply start the deployment with an updated VHDX.

Here is the file I found when I mounted VHDX.

That script includes all functions which actually checks your infrastructure. I changed CheckRAM function to lower the memory requirements for my host machine:

And then I started the deployment and forgot an important thing…

Yes my host now meets requirements for the installation but once the installation starts, it will create 10 different virtual machines with different Vcpu and memory settings. And first 3 or 4 VMs already filled my memory. You can try the ugly way and change the VM settings after the deployment of each machine. But probably you need to spend couple of hours to check each and every VM and that could also break the installation.

So we also need to find VM memory and CPU definition files.

That file is POCFabricSettings.XML

You can simply edit processor count and RAM settings according to your current infrastructure:

I simple used “1” for Processor count and “2” for the RAM. These are quite low settings to run these machines but helps you to finish installation without any problem.

You need to save changes and then eject VHD before starting deployment.

And you are ready to go!

I had two issues during the deployment.

One is the JavaScript to connect Azure subscription during the installation;

Turning of IE enhanced mode on Nested 2016TP4 resolved the problem.

Second issue is whole installation took around 9 hours to complete. I know this is not a recommended way of installing AzureStack and probably I may face serious performance issues but will help you to test some basic functionalities before you find a real gear.

Hope that helps you.

Operations Management Suite Part 8 – Alert Management

 

Bu yazımızda OMS Solution Gallery üzerinde bulunan Alert Management çözümünü inceleyeceğiz.

Solution Gallery içerisinde farklı hizmetler için ek çözümleri OMS’e ekleme sansınız bulunuyor. Bu çözümlerden birisi olan Alert Management özellikle SCOM altyapısı olan ve OMS’i SCOM ile entegre şekilde kullanmak isteyenler için önemli bir eklenti.

Bu eklenti aktif edildiğinde SCOM tarafından oluşturulan alertler OMS workspace içerisinde rahatlıkla görüntülenebilir ve filtrelenebilir. Ayni zamanda birden fazla Management Group bulunan SCOM altyapılarında OMS Alert Management tek bir merkezi alert çözümü olarak kullanılabilir.

Alert Management ‘in aktif edilmesi için Solution Gallery içerisine girilerek Alert Management – Add tıklanması yeterlidir.

Alert Management ile verileri toplayabilmek için SCOM Management sunucularınızı OMS ile entegre etmeniz gerekmektedir. Önceki makale bölümlerimizde bu entegrasyonu başarılı şekilde gerçekleştirmiştik.

Solution Gallery içerisinde ekleme yapıldıktan sonra ana ekranda Alert Management isimli yeni bir bölme göreceksiniz.

 

İlk yapılandırma sonrası yaklaşık bir saat içerisinde SCOM üzerinden toplanan alertler OMS konsolu içerisinde gösterilmeye başlanacaktır.

Bu entegrasyon gerçekleştirildikten sonra SCOM Management Group üzerinde oluşturulan alertler OMS’e gönderilecektir.

Yeni oluşturulan Alert Management bölümüne tıkladığınızda gönderilen alertlerin detaylarını görebilirsiniz.

OMS ekranında gösterilen alertler yalnızca son 7 günü kapsamaktadır. İsterseniz zaman aralığını daha fazla genişletebilirsiniz.

Ayni şekilde yalnızca belirli bir Management Group üzerinde oluşturulan alertleri görmek isterseniz var olan kapsamı globalden MS’e değiştirmeniz gerekmektedir.

Bu ekranda da benzer filtreleme yöntemlerini kullanarak arama işlemi gerçekleştirebilirsiniz. Daha önceki filtrelerimizde Type kullanarak yalnızca eventleri listelemiştik. Ayni şekilde aşağıdaki gibi bir filtre ile spesifik alertleri görüntüleyebilirsiniz. Bunun için Log Search ekranını kullanmanız gerekmektedir.

Kompleks sorgular için birkaç örnek:

SCOM üzerinde oluşturulan alertlerin OMS’e gönderilmesinden sorumlu bir SCOM kuralı bulunmaktadır.

Collect Alert Changes isimli bu kural ve Management Pack’i export ederek ek detaylarını görüntüleme sansınız bulunuyor.

 

Operations Management Suite Part 7 – Solution Gallery

Bu yazımızda OMS ile birlikte Dashboard ekranına tümleşik gelen Solution Gallery’i inceleyeceğiz.

OMS’in daha önceki yazılarımızda tamimiyle bir bulut hizmeti olduğundan bahsetmiştik. Her ne kadar Hibrit mimari desteği ve farklı veri merkezlerindeki uç noktaları yönetme kabiliyeti olsa da OMS’in kendisi Microsoft bulut Hizmetleri üzerinde barınmaktadır.

Yeni özellikler yada eklentiler acısından düşündüğümüzde bunun artıları tartışılamaz. Ayni Office 365’de olduğu gibi Microsoft, OMS üzerinde yeni bir güncelleme aktif ettiğinde yada bir eklentiyi yayına aldığında sizin bu konuda bir on hazinlik yada yapılandırma zorunluluğunuz bulunmuyor. Tek yapmanız gereken ertesi gün OMS konsoluna login olmak ve gerçekleştirilen güncellemeleri kullanmaya başlamak.

OMS daha önce defalarca söylediğimiz gibi direkt olarak istemcilerden yada SCOM sunucusundan verileri toplar, analiz imkânı verir ve size sunar. Ancak yapabildiklerinin siniri yalnızca bu değildir. Log Search OMS ile birlikte sunulan bileşenlerden yalnızca birisidir.

Solution Gallery içerisinde OMS ile entegre şekilde kullanabileceğiniz farklı çözümleri bulabilirsiniz. Bunları bir nevi Management Pack olarak düşünebilirsiniz. Su an için yalnızca Microsoft tarafından sunulan bu ek bileneler/çözümler ileride 3. Parti üreticiler tarafından da sunulmaya başlanacak.

OMS konsolunuzda Solution Gallery’e geldiğinizde su an için sunulan oldukça başarılı bazı çözümler göreceksiniz. Bunlardan birkaçı:

AD Assessment: Var olan Active Directory ortamınızın risk ve sağlık durumunu inceleyen ve bununla ilgili size öneriler ve raporlar sunan bir servis.

Malware Assessment: OMS ile birlikte yönettiğiniz sunucuların malware risk detaylarını size sunan çözüm.

Alert Management: Var olan SCOM yapınızdaki alert leri yönetmenizi sağlayan çözüm.

Automation: Azure Automation ile birlikte sunulan Hibrit Runbook Workerlarin analiz edilmesini sağlar. Böylece kendi veri merkezinizde yada Azure üzerinde çalışan runbooklarda oluşan herhangi bir soruna hızlıca müdahale edebilirsiniz.

Change Tracking: OMS ile yönettiğiniz sunucular üzerindeki Change Tracking’in aktif edilmesini sağlar. Bu sayede bu sunucular üzerinde herhangi bir uygulama yada serviste değişiklik olduğunda bunu OMS konsolu üzerinden takip edebilirsiniz.

Security Audit: Bu çözüm ise sunuculardan toplanan audit verileri üzerinde forensic analiz gerçekleştirmenizi sağlar. Unified bir dashboard üzerinden tüm aktiviteleri, ortamınızda gerçeklesen problemleri görüntüleme şansı verir.

Azure Site Recovery: ASR ile entegre olan bu çözüm sayesinde ASR üzerindeki DR planlarınızı, görevlerinizi ve görev sonuçlarınızı gözlemleyebilirsiniz.

Yukarıda yalnızca birkaç çözüm ile ilgili hızlıca bilgi verdik. OMS konsoluna girerseniz ek sunulan çözümleri ve detaylarını görebilirsiniz.

Simdi hızlıca AD Assessment çözümünü OMS ile entegre edelim.

Bunun için Solution Gallery’de ilgili çözümü seçip eklememiz yeterli olacaktır.

Bu işlem sonrasında ilgili çözüm ana ekrana düşecek ve verileri toplamaya başlayacaktır.

Eğer seçmiş olduğunuz çözüm ile ilgili ek bir yapılandırma yapılması gerekiyorsa ana ekranda bu uy ariyi görebilirsiniz.

İlgili uyarıya tıklayarak yapılandırmayı gerçekleştirebilirsiniz.

Su an için yalnızca Microsoft tarafından sunulan ek çözümleri içerse de ileride bu bolumun farklı vendorlar tarafından sunulan çözümler ile oldukça zenginleşeceği aşikâr. SCOM mimarisindeki Management Pack kavramının yerine OMS ile bulut üzerinden Solution Gallery’i kullanmaya yakın zamanda başlayacağız gibi görünüyor.