New Release of Enterprise BI Portal

Version 4.1 of the Perspective Enterprise BI Portal is here, and the latest visualization focused enhancements are stunning.

Perspective Enterprise BI Portal is a “one-stop-shop” to bring together and harmonize heterogeneous reporting environments. For organizations adopting a bi-modal analytics strategy combining both traditional BI with modern BI, Perspective – Enterprise BI Portal solves the pains of trying to find the right report, reduce duplicate analytical efforts, and unite silos of insight.

Here is a break down of the latest features:

1. Customised Branding

You can now fully customise the look and feel of the Portal via the brand new ‘Branding’ option available for Portal administrators.  From minor cosmetic changes such as logo and color theme, right through to being able to upload your own CSS file to seamlessly fit in with your Corporate style guide.

2. New Layout Options

Prefer to view results in a list? The Portal now has the ability to switch layout views so you can find what you are looking for in a format that you want.

 

We have also added a visually stunning presentation of Asset information and Editing.  Click on on the Information tab, and select an area to edit.  A smooth transition and presentation allows the user to view the page they came from and what they are editing in one block.

3. Keyword Search

You can now perform a keyword search across all published assets.  Simply enter what you are looking for and the Portal will display all relevant assets for your search.

4. Breadcrumbs

Dive deeper into the Portal and our new breadcrumb navigation will remind you exactly how you got there.   You can navigate to and fro along the breadcrumb to find what you are looking for.

Try it for yourself Today

Additional Resources

  1. For more information
  2. Download the White Paper Now
  3. Click Here to arrange a Demonstration today.

Back it Up. Disaster Recovery in Azure

Hi Everyone. I hope you had a good week.

The topic for the next few weeks is Backup / Disaster Recovery / Migration of workloads to Azure VM’s.  

Azure Recovery Services is a management tool that enables organisation to configure and manage all their backup and DR requirements from a single place.

It provides a simple to use interface to backup workloads located on-site or in Azure and both Windows and Linux based operating systems are supported (Windows 2008R2 and above). 

When creating a Recovery Services Vault, by default a GRS (Geographically Redundant Storage) is being used. If you wish to keep your data in LRS (Locally Redundant Storage), you can do it at the creation of the Vault only. There is no way to change the storage configuration after the creation of the Vault.

Although, the backup and recovery data is being replicated between 2 geographically separated data centres, there is no access to the replicated data during normal operation. Microsoft will make the data available for restore and recovery only if they declare an outage of an entire data centre.   

Backup Policies

Azure provide an extremely flexible and configurable  retention policies. It is possible to keep backups up to 9999 years. I have configured couple of those, and I am looking forward to try and restore it in the year 12,016 :).

backup1

Backup Frequency, can be set for either daily or weekly (limited to once a day only!).

Retention can be configured as above. You can have as many recovery points as you wish. The only cost associated with that is storage cost.

 Limitations:

·        Single backup per day – A lot of organisations require multiple backups during the day. Currently there is no option (not even with multiple Vaults)

·        Azure VM and Azure Vault have to be located at the same region. If you deploy VM’s in different regions, you will need to manage multiple Vaults

 Advantages:

·        Low cost, simple to manage backup solution

·        File level restore from backup is now in public preview and working well

 

Next week will discuss different scenarios for backups of Azure VM’s and on site virtual and physical servers.

 

Have a great weekend! 

The complete Script: Create a VM in Azure

Hi Everyone and Happy Friday.

Before starting a new topic next week, you can find below a complete script to create VM’s in Azure Resource Manager:

 

# Authenticate to Azure Account

Login-AzureRmAccount

# Select an Azure subscription

 

$subscriptionId =

    (Get-AzureRmSubscription |

     Out-GridView `

        -Title “Select an Azure Subscription …” `

        -PassThru).SubscriptionId

 

Select-AzureRmSubscription `

    -SubscriptionId $subscriptionId

# Select existing Resource Group in which VM will be installed

$location =

    (Get-AzureRmLocation |

    Out-GridView `

        -Title “Select the Location …..” `

        -PassThru).DisplayName

# Select existing Resource Group in which VM will be installed

$ResourceGroupName =

    (Get-AzureRmResourceGroup |

    Out-GridView `

        -Title “Select Resource Group ……….” `

        -PassThru).ResourceGroupName
## Set network configuration

 

$vnetName =

    (Get-AzureRmVirtualNetwork -ResourceGroupName $ResourceGroupName).Name |

    Out-GridView `

    -Title “Select a Virtual Network” `

    -PassThru

 

$vnet = Get-AzureRmVirtualNetwork -ResourceGroupName $ResourceGroupName -Name $vnetName

 

$subnetNameSelect =

    (Get-AzureRmVirtualNetworkSubnetConfig -VirtualNetwork $vnet).name |

    Out-GridView `

    -Title “Select a subnet” `

    -PassThru

$SubnetName = $subnetNameSelect.ToString()

 

# Select VM Size

$VMSize =

    (Get-AzureRmVMSize -location $location |

    Out-GridView `

        -Title “Select VM Size…….” `

        -PassThru).name

 

$Skus =

    (Get-AzureRmVMImageSku -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Location $location |

    Out-GridView `

        -Title “Select O/S …..” `

        -PassThru).Skus
#Load assembly for user input

 

[System.Reflection.Assembly]::LoadWithPartialName(‘Microsoft.VisualBasic’) | Out-Null

 

$VMName = [Microsoft.VisualBasic.Interaction]::InputBox(“Pleae Enter VM Name”,”VM Name”, “”)

 

$nicname = $VMName + “-NIC”

$Subnet = Get-AzureRMVirtualNetworkSubnetConfig -Name $SubnetName -VirtualNetwork $VNet

$Interface = New-AzureRmNetworkInterface -Name $nicname -ResourceGroupName $ResourceGroupName -Location $location -Subnet $Subnet 

$ComputerName = $VMName

$timeZone = “AUS Eastern Standard Time”

$OSDiskName = $VMName + “-OSdisk”

$InterfaceName = $VMName + “-NIC”

$Credential = Get-Credential

$VirtualMachine = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize

$VirtualMachine = Set-AzureRmVMOperatingSystem -VM $VirtualMachine -Window -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate -TimeZone $timeZone

$VirtualMachine = Set-AzureRmVMSourceImage -VM $VirtualMachine -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus $Skus -Version “latest”

$VirtualMachine = Add-AzureRmVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id

$VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -Name $OSDiskName -CreateOption FromImage 

 

New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $location -VM $VirtualMachine -DisableBginfoExtension

 

The topic for the following few weeks will be migrating existing workload to Azure IaaS using backup and site recovery.

 

Have a good weekend,

Ofir.

Azure 360: PowerShell Commands

Hi Everyone. Let’s explore some PowerShell commands to make our VM creation script more functional and scalable.

Once we logged tin to Azure account with:

PS:>Login-AzureRmAccount

We need to select which subscription we would like to perform the installation to. (If you have a single subscription, this step is not required).

In my case, I have 3 subscriptions:

power1

The PS command:

Select-AzureRmSubscription -SubscriptionId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Will determine which subscription we would like to focus on.

 

The PS Command Read-Host will stop the running of the script and will wait for input from the user.

 

Option 1:

Get-AzureRmSubscription
$subscriptionID = Read-host “Please type a subscription ID:”

 

This will display a list of all the subscriptions that the logged in user have access to and will prompt the user to type the preferred SubscriptionID. This will be passed on to a variable called $SubscriptionID

Although, this option will work, it is prone for mistakes. It can also be challenging to get the right SubscriptionID in case there are many subscriptions attached to the account.

 

Option 2:

$subscriptionId =

    (Get-AzureRmSubscription |

     Out-GridView `

        -Title “Select an Azure Subscription …” `

        -PassThru).SubscriptionId

Select-AzureRmSubscription `

    -SubscriptionId $subscriptionId

 

The above code will display the list of subscriptions available in a “Out-GridView” which is a pickup window:

power2

This will enable the user to choose the correct subscription and will pass it to the $SubscriptionID variable.

Here is a script that configures few required variables for creating a VM in Azure:

 

# Authenticate to Azure Account

Login-AzureRmAccount

# Select an Azure subscription

 

$subscriptionId =

    (Get-AzureRmSubscription |

     Out-GridView `

        -Title “Select an Azure Subscription …” `

        -PassThru).SubscriptionId

 

Select-AzureRmSubscription `

    -SubscriptionId $subscriptionId

 

 

# Select existing Resource Group in which VM will be installed

$location =

    (Get-AzureRmLocation |

    Out-GridView `

        -Title “Select the Location …..” `

        -PassThru).DisplayName

 

# Select existing Resource Group in which VM will be installed

 

$ResourceGroupName =

    (Get-AzureRmResourceGroup |

    Out-GridView `

        -Title “Select Resource Group ……….” `

        -PassThru).ResourceGroupName

 

Next week I will discuss additional variables required and provide the complete script.

Have a great weekend!

Creating a VM in Azure: Naming Conventions and Limitations

Hi Everyone. Today I will link couple of the previously discussed subjects together:

·        Naming Convention

·        Azure Portal Limitations

If you followed the steps from last week, you should have a Resource Group and a Vnet similar to the following:

image1

Please go ahead and create a VM using the portal. It’s not hard… Just click on the + sign at the top left and follow the instructions.

For the demonstration today I decided to go use Managed Disks, and I removed the Public IP Address, Network Security Group & Monitoring from my VM:

image2

After few happy clicks in the portal, I have a new VM and my Resource Group looks like that:

image3

I am not happy! I spent many hours of  planning the perfect  naming convention, but I can’t use it. If I will continue building VM’s using the portal – it’s going to get ugly and very difficult to manage.

I would like it to look like that:

image4

I used PowerShell to create the assets with the above names. There are other tools (CLI, ARM Templates) that will deliver the same result.

So, here is the script:

$ResourseGroupName = “RG-Blog-Mel”

$Location = “Australia SouthEast”

$VnetName = “BlogVnet”

$Vnet = Get-AzureRmVirtualNetwork -ResourceGroupName “RG-Blog-Mel” -Name $vnetName

$Subnet =Get-AzureRmVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name BackEnd

$VMSize = “Standard_DS1_V2”

$Skus = “2012-R2-Datacenter”

$VMName = “BlogVM1”

$nicname = $VMName + “-NIC”

$Interface = New-AzureRmNetworkInterface -Name $nicname -ResourceGroupName $ResourseGroupName -Location $location -Subnet $Subnet 

$ComputerName = $VMName

$timeZone = “AUS Eastern Standard Time”

$OSDiskName = $VMName + “-OSdisk”

$Credential = Get-Credential

$VirtualMachine = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize

$VirtualMachine = Set-AzureRmVMOperatingSystem -VM $VirtualMachine -Window -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate -TimeZone $timeZone

$VirtualMachine = Set-AzureRmVMSourceImage -VM $VirtualMachine -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus $Skus -Version “latest”

$VirtualMachine = Add-AzureRmVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id

$VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -Name $OSDiskName -CreateOption FromImage 

 

New-AzureRmVM -ResourceGroupName $ResourseGroupName -Location $location -VM $VirtualMachine -DisableBginfoExtension

This is a VERY basic PowerShell script. I pass all the variables manually into the script. The only input required from the operator is the $Credential = Get-Credential  command.

This script cannot scale for multiple VM’s with different configuration and operating systems.

Next week, will discuss how we can make this script more generic, so we can scale and use it to build multiple machines with different configurations.

Have a great weekend!

 

 

 

Setting up an Azure VM. You're almost there!

Hi everyone. It’s time to start looking at the component level of Azure IaaS. So, Where do we start?

If you do not have an Azure subscription, you can sign up for a one at https://azure.microsoft.com/en-us/free/. You get a generous $260  to play with.

The next step is the installation of Azure modules for PowerShell. During the environment build, I will point out the differences  between creating objects using the portal and using PowerShell.

Click on: https://www.microsoft.com/web/handlers/webpi.ashx/getinstaller/WindowsAzurePowershellGet.3f.3f.3fnew.appids and install PowerShell.

 

Login to Azure (portal): https://portal.azure.com, enter your username and password.(the one that was used for the creation of the subscription).

Login to Azure (PowerShell): Run PowerShell ISE and type at the prompt:

 

PS> Login-AzureRmAccount

 

Enter your username and password at the login screen.

The first object that we need to create is a Resource Group. This is a container that contain resources with similar life cycle. For example, all the networking related objects will share a single Resource Group.

 

Creating  a resource Group (Portal):

1.       Click on Resource Group on the left side menu

resource1

2.       Click on the +Add

3.       Enter Resource Group Name, pick a subscription and choose a location. To complete, click the create button.

resource2

Creating Resource Group (PowerShell):

PS> New-AzureRmResourceGroup -Name RG-Blog-Mel -Location AustraliaSouthEast

 

Before creating any VM’s, we need to create a Virtual Network. Virtual Network require some planning and I highly recommend to engage a consultant to assist with creating the network design.

Here are some points for consideration when designing an Azure Vnet:

1.       Separate IP addressing scheme from your current LAN and WAN addresses

2.       VPN / ExpressRoute connection in the future

3.       Separate subnets for each deployment tier (Web, Application, Data, Etc.)

4.       Plan for future growth

5.       Placement of Network Security Groups and Load Balancers

6.       Azure reserves the first 4 addresses of each subnet for internal traffic

 

Copy and paste the following PowerShell script into your ISE session:

$ResourseGroupName = “RG-Blog-Mel”

$Location = “Australia SouthEast”

$vnet = New-AzureRmVirtualNetwork -ResourceGroupName $ResourseGroupName -Name BlogVnet -AddressPrefix 10.0.0.0/16 -Location $Location

Add-AzureRmVirtualNetworkSubnetConfig -Name BackEnd -VirtualNetwork $vnet -AddressPrefix 10.0.0.0/24

Set-AzureRmVirtualNetwork -VirtualNetwork $vnet

 

You should have a new Vnet called BlogVnet with 10.0.0.0/16 Address Space and a single subnet called BackEndSubnet with Address Range of 10.0.0.0/24

 

That’s it for today. Next week we will deploy our first VM!

 

Have a great weekend.

Azure 360. Managed Disks vs Storage Accounts

Today, I would like to discuss a subject that all my clients asking me about: Managed Disks vs. Storage accounts. Should you make the move or not?

Yes, but….

Managed disks support only LRS (Locally redundant storage). If you require to replicate the data to another geographical location…. It’s a no for the moment.

If you need access to the VHD using Azure Storage Explorer – Not available as yet.

If LRS (3 copies of your data in the same data centre) let you sleep well enough at night, you should consider moving to Managed Disks. There are some really good features that simplifying  VM’s deployments and management. Let’s have a look at some:

IOP’s

You don’t have to worry about limitations of storage accounts IOP’s. You don’t need to move VHD’s from one account to another due to slow performance. Azure manage it all for you. All you have to do, is to choose Standard or Premium storage and disk size, and you are good to go.

Availability Sets

Probably the single most important advantage is that Azure infrastructure will make sure that disk in Availability Sets will run on separate stamps. (A stamp is a physical storage unit in Azure). With un-managed disks, you have to make sure that you storage accounts running on separate stamps by yourself. It can be a tricky task, as you have no control on which stamp your storage account is created. Quiet often I had to create and delete storage accounts multiple time, until I got lucky and Azure fabric was kind enough to me and created the storage account on a new stamp.

I did see some installations of availability groups with multiple VM’s all using the same storage stamp – not a good outcome if the stamp itself goes offline.

Snapshots

Although, snapshots are available on storage accounts, it is complicated to manage and require the usage of PowerShell or Azure Storage Explorer. The management of snapshot of managed disk can be done via the Azure portal. It is a quick and simple operation (as it should be)! I hope that incremental snapshots will be available in the future.

Managed Disk and snapshot being displaying as an asset in the portal makes it easier to manage it.

Backup

Currently, you cannot backup VM’s with managed disks to Azure Recovery service. It is coming soon though!

I hope that information can help you decide what type of storage is appropriate for your VM’s.

 

Good bye for now. See you all next week.

Azure 360. Understanding Azure Resources

Welcome back and Happy Friday. First quarter of 2017 is already gone!

One of the main selling point of the cloud is the “unlimited resources” pitch. But is it unlimited? Can I go out now, get myself a Pay-As-You-Go subscription and run up 5000 D15 type machines (20 cores each)? Can I consume 10,000 cores on my subscription? The answer is clearly “NO”.

There are two types of limitations:

Soft limitation: Can be modified by request to Microsoft. Example: PAYG subscription has by default 10 Cores limitation. That can be lifted by request from Microsoft.

Hard limitations:  Those cannot be lifted up by Microsoft. Example: Page blob (storage) is limited for 1TB.

The good news is, that with proper understanding and planning, it is possible to overcome most of the limitations.

There is a very detailed  document from Microsoft explaining the quotas per subscription and service limits:

https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits

 

Allow me to point out the more common limits: (the ones that there is a chance you might hit)

1.       SQL Database (PaaS) – 500GB

2.       SSD storage (Azure Premium storage) is available in LRS configuration only

3.       IaaS VM’s can be backed up only once daily (To Azure backup vault)

4.       Private IP Addresses per virtual network is limited to 4096

5.       200 Storage accounts per subscription

6.       Backup Vault has to be located at the same region as the VM’s

 

In most cases, when you hit a service limit, there is another cloud solution that might fit. There is always the option to fall back to a VM in IaaS. If 500GB is not enough for your SQL database, a VM running SQL server might be the answer.

 

That is it for today. See you next Friday.

 

Azure 360. Tags in Azure

Welcome Back. I hope you had a great week. Let’s pick up from where we left last time.

After planning carefully the naming convention and grouping assets using resource groups, there might be a need to further group assets for variety of reasons. Microsoft  provide us with the option to Tag resources. Tags are configured in a key / value pairs and can be used for:

·        Organising resources and creating additional views within the  Azure portal

·        Simplifying Azure billing

·        PowerShell / API access

Let’s look at few examples:

Key: Environment

Values: Prod, Dev, Test

Resource to be tagged: VM’s, NIC’s, Disks, Vnet’s, NSG’s, etc. –>  Can be used on any asset

Key: Cost Centre

Values: 100, 101, etc.

Resource to be tagged: VM’s, Disks, Storage Account –> If used for billing, require only on assets that attract charges

Key: AutoShutdownSchedule

Values: 7pm -> 6am

This is an example of addressing tags in a programmatic way. An automation account job runs periodically and compare the current time to the time specified in the Tag. The automation job can then perform an action based on the script (In the case above a job can turn on and off VM’s based on the time presented by the Tag).

Next week, I will point out some of the limitations of Azure and how to plan around it.

Perspective ILM announces new product releases

Its with great excitement that we announce the latest major release of both Perspective Data Governor v5.0 and Perspective Enterprise BI Portal v4.0.

Perspective ILM products have been expediting BI initiatives of our customers for the past seven years, and have continuously evolved based on customer feedback, and latest Microsoft technologies.

Jen Underwood is hosting an exclusive Webinar to present the products in detail.  Make sure you register to hear from one of the greats of Analytics and Business Intelligence.

Focused on delivering enterprise BI rapidly and cost effectively, Perspective ILM products can stand up a production ready environment in days.  Let’s have a look at the products.

Low Friction Data Warehousing with Data Governor v5.0:

Perspective ILM Data Governor is a data orchestration accelerator.

Data Governor fast tracks operational data store, analytical sandbox and data warehouse creation by eliminating most of the complex extract-transform-load (ETL) work that historically accounted for 80% of the work effort. Utilizing an agile orchestration design and a simple user-friendly web interface, you can deliver insights with Data Governor from disparate data sources with no complex coding.

Additional Resources:

  1. For more information
  2. Download the White Paper Now
  3. Click Here to try it for yourself.

Unifying Analytics with Enterprise BI Portal v4.0:

Perspective Enterprise BI Portal is a “one-stop-shop” to bring together and harmonize heterogeneous reporting environments. For organizations adopting a bi-modal analytics strategy combining both traditional BI with modern BI, Perspective – Enterprise BI Portal solves the pains of trying to find the right report, reduce duplicate analytical efforts, and unite silos of insight.

The Portal’s unique publishing and tagging framework ensures content is discoverable in an intelligent, governed manner. With a completely configurable taxonomy, this solution allows you to manage reporting metadata across vendors and optionally integrate with third-party data catalogue offerings.

Additional Resources

  1. For more information
  2. Download the White Paper Now
  3. Click Here to try it for yourself.