Azure CLI: Managed Disks

Today, we announce Azure CLI support for Azure Managed Disks!

Microsoft announced the general availability of Azure Managed Disks – it simplifies the management and scaling of Virtual Machines.  The Managed Disks experience in Azure CLI is idomatic to the CLI experience in other cross-platform tools, and we know you will love it!

You can use the Azure CLI to administer Managed Disks: check out the install guide for information on how to install or update the Azure CLI.

Standalone Managed Disks

You can easily create standalone Managed Disks in a variety of ways.

Create an empty Managed Disk.

az disk create
-n myDisk
-g myResourceGroup
–size-gb 20

Create a Managed Disk from Blob Storage.

az disk create
  -g myResourceGroup
  -n myDisk
  –source https://bg09.blob.core.windows.net/vm-images/non-existent.vhd

Create a Managed Disk from an existing image.

az disk create
-n myDisk
-g myResourceGroup
​ –source <…id…>/Microsoft.Compute/disks/mdvm1_OsDisk_1_<guid>

It&;s as easy as that, and each of these disks can be subsequently attached to a Virtual Machine (see below).

Virtual Machine with Managed Disks

You can create a Virtual Machine with an implicit Managed Disk for a specific disk image.  Creation is simplified with implicit creation of managed disks without specifying all the disk details. You do not have to worry about creating and managing Storage Accounts.

A Managed Disk is created implicitly when creating VM from an OS image in Azure.

az vm create
  -n myVm
  -g myResourceGroup
  –generate-ssh-keys
  –image UbuntuLTS

This Managed Disk is created by default, and you can easily verify its ID by using the –query feature of Azure CLI.

az vm list
  –query "[].{ name:name, os:storageProfile.osDisk.managedDisk.id }"
  -o tsv

As mentioned previously, you can easily attach a previously provisioned Managed Disk.

az vm disk attach
  –vm-name myVm
  -g myResourceGroup
  –disk <…id…>/Microsoft.Compute/disks/testmd

Create a new VM Scale Set with new resources (Virtual Machines and Managed Disks) from an image.

az vmss create
  -n myVmScaleSet
  -g myResourceGroup
  –admin-username <user>
  –admin-password <password>
  –instance-count 4
  –image Win2012R2Datacenter

Other Operations with Managed Disks

Resizing a managed disk from the Azure CLI is easy and straightforward.

az disk update
  -n myDisk
  -g myResourceGroup
  -z 25

You can also update the Storage Account type of the Managed Disks.

az disk update
  -n myDisk
  -g myResourceGroup
  –sku Standard_LRS

Create an image from Blob Storage.

az image create
  -g myResourceGroup
  -n myImage
  –os-type Linux
  –source <…id…>/Microsoft.Compute/disks/osdisk_<guid>

Create a snapshot of a Managed Disk that is currently attached to a Virtual Machine.

az snapshot create
  -g myResourceGroup
  -n mySnapshot
  –source <…id…>/Microsoft.Compute/disks/mdvm1_OsDisk_1_<guid>

Try It

You can run the examples above as they appear (with the proper values, of course). Give it a try and let us know what do you think (in the comments below).  Azure CLI has more exciting services on the way, and we are excited to hear your thoughts on how the idiomatic experience integrates with the shell tools you know and love.
Quelle: Azure

.NET: Manage Azure Managed Disks

We are announcing beta 5 of the Azure Management Libraries for .NET. Beta 5 adds support for Azure Managed Disks.

Today, Microsoft announced the general availability of Azure Managed Disks – it simplifies the management and scaling of Virtual Machines. Specify the size and disk you want to use for Virtual Machines. You do not have to worry about creating and managing Storage Accounts.

You can use the Azure Management Libraries for .NET to manage Managed Disks.

https://github.com/Azure/azure-sdk-for-net/tree/Fluent

You can download beta 5 from:

Create a Virtual Machine with Managed Disks

You can create a Virtual Machine with an implicit Managed Disk for the operating system and explicit Managed Disks for data using a define() … create() method chain. Creation is simplified with implicit creation of managed disks without specifying all the disk details. You do not have to worry about creating and managing Storage Accounts.

var linuxVM1 = azure.VirtualMachines
.Define(linuxVM1Name)
.WithRegion(Region.USEast)
.WithNewResourceGroup(rgName)
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIpAddressDynamic()
.WithNewPrimaryPublicIpAddress(linuxVM1Pip)
.WithPopularLinuxImage(KnownLinuxVirtualMachineImage.UbuntuServer16_04_Lts)
.WithRootUsername(“tirekicker”)
.WithSsh(sshkey)
.WithNewDataDisk(100)
.WithSize(VirtualMachineSizeTypes.StandardD3V2)
.Create();

You can download the full, ready-to-run sample code.

Create a Virtual Machine Scale Set with Managed Disks

You can create a Virtual Machine Scale Set with implicit Managed Disks for operating systems and explicit Managed Disks for data using a define() … create() method chain.

var vmScaleSet = azure.VirtualMachineScaleSets
.Define(vmScaleSetName)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithSku(VirtualMachineScaleSetSkuTypes.StandardD5v2)
.WithExistingPrimaryNetworkSubnet(network, "subnet1")
.WithExistingPrimaryInternetFacingLoadBalancer(publicLoadBalancer)
.WithoutPrimaryInternalLoadBalancer()
.WithPopularLinuxImage(KnownLinuxVirtualMachineImage.UbuntuServer16_04_Lts)
.WithRootUsername("tirekicker")
.WithSsh(sshkey)
.WithNewDataDisk(100)
.WithNewDataDisk(100, 1, CachingTypes.ReadWrite)
.WithNewDataDisk(100, 2, CachingTypes.ReadOnly)
.WithCapacity(3)
.Create();

You can download the full, ready-to-run sample code.

Create an Empty Managed Disk and Attach It to a Virtual Machine

You can create an empty Managed Disk using a define() … create() method chain.

var dataDisk = azure.Disks.Define(diskName)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithData()
.WithSizeInGB(50)
.Create();

You can attach the empty Managed Disk to a Virtual Machine using another define() … create() method chain.

var linuxVM2 = azure.VirtualMachines.Define(linuxVM2Name)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIpAddressDynamic()
.WithNewPrimaryPublicIpAddress(linuxVM2Pip)
.WithPopularLinuxImage(KnownLinuxVirtualMachineImage.UbuntuServer16_04_Lts)
.WithRootUsername("tirekicker")
.WithSsh(sshkey)
.WithNewDataDisk(100)
.WithNewDataDisk(100, 1, CachingTypes.ReadWrite)
.WithExistingDataDisk(dataDisk)
.WithSize(VirtualMachineSizeTypes.StandardD3V2)
.Create();

You can download the full, ready-to-run sample code.

Update a Virtual Machine

You can detach Managed Disks and attach new Managed Disks using an update() … apply() method chain.

linuxVM2.Update()
.WithoutDataDisk(2)
.WithNewDataDisk(200)
.Apply();

You can download the full, ready-to-run sample code.

Create a Virtual Machine From a Specialized VHD

You can create a Virtual Machine from a Specialized VHD using a define() … create() method chain.

var linuxVM4 = azure.VirtualMachines.Define(linuxVmName3)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIpAddressDynamic()
.WithoutPrimaryPublicIpAddress()
.WithSpecializedOsUnmanagedDisk(specializedVhd, OperatingSystemTypes.Linux)
.WithSize(VirtualMachineSizeTypes.StandardD3V2)
.Create();

You can download the full, ready-to-run sample code.

Create a Virtual Machine Using a Custom Image

You can create a custom image from a de-allocated and generalized Virtual Machine using a define() … create() method chain.

var virtualMachineCustomImage = azure.VirtualMachineCustomImages
.Define(customImageName)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.FromVirtualMachine(linuxVM) // from a de-allocated and generalized Virtual Machine
.Create();

You can create a Virtual Machine from the custom image using another define() … create() method chain.

var linuxVM4 = azure.VirtualMachines.Define(linuxVM4Name)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIpAddressDynamic()
.WithoutPrimaryPublicIpAddress()
.WithLinuxCustomImage(virtualMachineCustomImage.Id)
.WithRootUsername(userName)
.WithSsh(sshkey)
.WithSize(VirtualMachineSizeTypes.StandardD3V2)
.Create();

You can download the full, ready-to-run sample code.

Create a Virtual Machine Using Specialized Disks From Snapshots

You can create a Managed Disk Snapshot for an operating system disk.

 

// Create a Snapshot for an operating system disk
var osDisk = azure.Disks.GetById(linuxVM.OsDiskId);
var osSnapshot = azure.Snapshots.Define(managedOSSnapshotName)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithLinuxFromDisk(osDisk)
.Create();

// Create a Managed Disk from the Snapshot for the operating system disk
var newOSDisk = azure.Disks.Define(managedNewOSDiskName)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithLinuxFromSnapshot(osSnapshot)
.WithSizeInGB(100)
.Create();

You can create a Managed Disk Snapshot for a data disk.

// Create a Snapshot for a data disk
var dataSnapshot = azure.Snapshots.Define(managedDataDiskSnapshotName)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithDataFromDisk(dataDisk)
.WithSku(DiskSkuTypes.StandardLRS)
.Create();

// Create a Managed Disk from the Snapshot for the data disk
var newDataDisk = azure.Disks.Define(managedNewDataDiskName)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithData()
.FromSnapshot(dataSnapshot)
.Create();

You can create a Virtual Machine from these specialized disks using a define() … create() method chain.

var linuxVM5 = azure.VirtualMachines.Define(linuxVm5Name)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIpAddressDynamic()
.WithoutPrimaryPublicIpAddress()
.WithSpecializedOsDisk(newOSDisk, OperatingSystemTypes.Linux)
.WithExistingDataDisk(newDataDisk)
.WithSize(VirtualMachineSizeTypes.StandardD3V2)
.Create();

You can download the full, ready-to-run sample code.

Convert a Virtual Machine to Use Managed Disks With a Single Reboot

You can convert a Virtual Machine with unmanaged disks (Storage Account based) to Managed Disks with a single reboot.

var linuxVM6 = azure.VirtualMachines.Define(linuxVM6Name)
.WithRegion(Region.USEast)
.WithNewResourceGroup(rgName)
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIpAddressDynamic()
.WithNewPrimaryPublicIpAddress(linuxVM6Pip)
.WithPopularLinuxImage(KnownLinuxVirtualMachineImage.UbuntuServer16_04_Lts)
.WithRootUsername("tirekicker")
.WithSsh(sshkey)
.WithUnmanagedDisks() // uses Storage Account
.WithNewUnmanagedDataDisk(100) // uses Storage Account
.WithSize(VirtualMachineSizeTypes.StandardD3V2)
.Create();

linuxVM7.Deallocate();
linuxVM7.ConvertToManaged();

You can download the full, ready-to-run sample code.

Try It

You can run the samples above or go straight to our GitHub repo. Give it a try and let us know what do you think (via e-mail or comments below). Over the next few weeks, we will be adding support for more Azure services and applying finishing touches to the API.
Quelle: Azure

Java: Manage Azure Managed Disks

We are announcing beta 5 of the Azure Management Libraries for Java. Beta 5 adds support for Azure Managed Disks.

Today, Microsoft announced the general availability of Azure Managed Disks – it simplifies the management and scaling of Virtual Machines. Specify the size and disk you want to use for Virtual Machines. You do not have to worry about creating and managing Storage Accounts.

You can use the Azure Management Libraries for Java to manage Managed Disks.

https://github.com/azure/azure-sdk-for-java

Add the following to your Maven POM file to use beta 5:

<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure</artifactId>
<version>1.0.0-beta5</version>
</dependency>

Create a Virtual Machine with Managed Disks

You can create a Virtual Machine with an implicit Managed Disk for the operating system and explicit Managed Disks for data using a define() … create() method chain. Creation is simplified with implicit creation of managed disks without specifying all the disk details. You do not have to worry about creating and managing Storage Accounts.

VirtualMachine linuxVM1 = azure.virtualMachines()
.define(linuxVM1Name)
.withRegion(Region.US_EAST)
.withNewResourceGroup(rgName)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIpAddressDynamic()
.withNewPrimaryPublicIpAddress(linuxVM1Pip)
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername(“tirekicker”)
.withSsh(sshkey)
.withNewDataDisk(100)
.withSize(VirtualMachineSizeTypes.STANDARD_D3_V2)
.create();

You can download the full, ready-to-run sample code.

Create a Virtual Machine Scale Set with Managed Disks

You can create a Virtual Machine Scale Set with implicit Managed Disks for operating systems and explicit Managed Disks for data using a define() … create() method chain.

VirtualMachineScaleSet vmScaleSet = azure.virtualMachineScaleSets()
.define(vmssName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withSku(VirtualMachineScaleSetSkuTypes.STANDARD_D5_V2)
.withExistingPrimaryNetworkSubnet(network, "subnet1")
.withExistingPrimaryInternetFacingLoadBalancer(publicLoadBalancer)
.withoutPrimaryInternalLoadBalancer()
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername("tirekicker")
.withSsh(sshkey)
.withNewDataDisk(100)
.withNewDataDisk(100, 1, CachingTypes.READ_WRITE)
.withNewDataDisk(100, 2, CachingTypes.READ_ONLY)
.withCapacity(10)
.create();

You can download the full, ready-to-run sample code.

Create an Empty Managed Disk and Attach It to a Virtual Machine

You can create an empty Managed Disk using a define() … create() method chain.

Disk dataDisk = azure.disks().define(dataDiskName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withData()
.withSizeInGB(50)
.create();

You can attach the empty Managed Disk to a Virtual Machine using another define() … create() method chain.

VirtualMachine linuxVM2 = azure.virtualMachines().define(linuxVmName2)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIpAddressDynamic()
.withNewPrimaryPublicIpAddress(publicIpDnsLabel2)
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername("tirekicker")
.withSsh(sshkey)
.withNewDataDisk(100)
.withNewDataDisk(100, 1, CachingTypes.READ_WRITE)
.withExistingDataDisk(dataDisk)
.withSize(VirtualMachineSizeTypes.STANDARD_D3_V2)
.create();

You can download the full, ready-to-run sample code.

Update a Virtual Machine

You can detach Managed Disks and attach new Managed Disks using an update() … apply() method chain.

linuxVM2.update()
.withoutDataDisk(2)
.withNewDataDisk(200)
.apply();

You can download the full, ready-to-run sample code.

Create a Virtual Machine From a Specialized VHD

You can create a Virtual Machine from a Specialized VHD using a define() … create() method chain.

VirtualMachine linuxVM3 = azure.virtualMachines().define(linuxVmName3)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIpAddressDynamic()
.withoutPrimaryPublicIpAddress()
.withSpecializedOsUnmanagedDisk(specializedVhd, OperatingSystemTypes.LINUX)
.withSize(VirtualMachineSizeTypes.STANDARD_D3_V2)
.create();

You can download the full, ready-to-run sample code.

Create a Virtual Machine Using a Custom Image

You can create a custom image from a de-allocated and generalized Virtual Machine using a define() … create() method chain.

VirtualMachineCustomImage virtualMachineCustomImage = azure.virtualMachineCustomImages()
.define(customImageName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.fromVirtualMachine(linuxVM) // from a de-allocated and generalized Virtual Machine
.create();

You can create a Virtual Machine from the custom image using another define() … create() method chain.

VirtualMachine linuxVM4 = azure.virtualMachines().define(linuxVmName4)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIpAddressDynamic()
.withoutPrimaryPublicIpAddress()
.withLinuxCustomImage(virtualMachineCustomImage.id())
.withRootUsername("tirekicker")
.withSsh(sshKey)
.withSize(VirtualMachineSizeTypes.STANDARD_D3_V2)
.create();

You can download the full, ready-to-run sample code.

Create a Virtual Machine Using Specialized Disks From Snapshots

You can create a Managed Disk Snapshot for an operating system disk.

 

// Create a Snapshot for an operating system disk
Disk osDisk = azure.disks().getById(linuxVM.osDiskId());
Snapshot osSnapshot = azure.snapshots().define(managedOSSnapshotName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withLinuxFromDisk(osDisk)
.create();

// Create a Managed Disk from the Snapshot for the operating system disk
Disk newOSDisk = azure.disks().define(managedNewOSDiskName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withLinuxFromSnapshot(osSnapshot)
.withSizeInGB(100)
.create();

You can create a Managed Disk Snapshot for a data disk.

// Create a Snapshot for a data disk
Snapshot dataSnapshot = azure.snapshots().define(managedDataDiskSnapshotName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withDataFromDisk(dataDisk)
.withSku(DiskSkuTypes.STANDARD_LRS)
.create();

// Create a Managed Disk from the Snapshot for the data disk
Disk newDataDisk = azure.disks().define(managedNewDataDiskName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withData()
.fromSnapshot(dataSnapshot)
.create();

You can create a Virtual Machine from these specialized disks using a define() … create() method chain.

VirtualMachine linuxVM5 = azure.virtualMachines().define(linuxVmName5)
.withRegion(region)
.withExistingResourceGroup(rgName)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIpAddressDynamic()
.withoutPrimaryPublicIpAddress()
.withSpecializedOsDisk(newOSDisk, OperatingSystemTypes.LINUX)
.withExistingDataDisk(newDataDisk)
.withSize(VirtualMachineSizeTypes.STANDARD_D3_V2)
.create();

You can download the full, ready-to-run sample code.

Convert a Virtual Machine to Use Managed Disks With a Single Reboot

You can convert a Virtual Machine with unmanaged disks (Storage Account based) to Managed Disks with a single reboot.

VirtualMachine linuxVM6 = azure.virtualMachines().define(linuxVmName6)
.withRegion(Region.US_EAST)
.withNewResourceGroup(rgName)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIpAddressDynamic()
.withNewPrimaryPublicIpAddress(publicIpDnsLabel6)
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername("tirekicker")
.withSsh(sshKey)
.withUnmanagedDisks() // uses storage accounts
.withNewUnmanagedDataDisk(100)
.withSize(VirtualMachineSizeTypes.STANDARD_D3_V2)
.create();

linuxVM6.deallocate();
linuxVM6.convertToManaged();

You can download the full, ready-to-run sample code.

Try It

You can run the samples above or go straight to our GitHub repo. Give it a try and let us know what do you think (via e-mail or comments below). Over the next few weeks, we will be adding support for more Azure services and applying finishing touches to the API.

You can find plenty of additional info about Java on Azure at http://azure.com/java.
Quelle: Azure

Announcing the release of StorSimple Virtual Array Update 0.4

A new update for StorSimple Virtual Array, version 10.0.10289.0 (Update 0.4) is now available for download. Update 0.4 contains bug fixes and key improvements around file share backup and restore performance. We recommend that you apply this update. The update requires a reboot of the virtual array and can be applied during a maintenance window.

New VHD, VHDX, and VMDK are now available in the Azure portal. Download these images to provision new Update 0.4 devices.

For more information:

About improvements and bug fixes go to StorSimple Virtual Array Update 0.4 release notes.
On install instructions, refer to Install Updates on your StorSimple Virtual Array.

Should you encounter any issues, please contact Microsoft Support.
Quelle: Azure

Azure DocumentDB: Entry point for partitioned collections now 75% cheaper

Today we are pleased to announce that partitioned collections have an entry point 75% cheaper than before. Instead of provisioning 10,100 RU/sec as a minimum, you can now provision a partitioned collection at 2,500 RU/sec and scale in increments of 100 RU/sec. Partitioned collections enable you to dynamically scale your provisioning from as low as 2,500 RU/sec to millions of RU/sec with no limit on storage consumption.

DocumentDB billing model

The current Azure DocumentDB billing model gives far more granularity, elasticity, and scale than what S1, S2, and S3 performance levels provided. You no longer need to jump your throughput provisioning from 1,000 RU/sec to 2,500 RU/sec when you just need 1,200 RU/sec. Our goal is to make sure you have full flexibility in optimizing the utilization of your provisioned capacity.

The Azure DocumentDB billing model is very simple:

You pay for the provisioned capacity in increments of 100 request units/second (RU/sec). Each provisioned capacity of 100 RU/sec is billed at an hourly rate.
You pay a flat rate for the storage you consume.
The entry point for DocumentDB is at 400 RU/sec for a single partition. For a free use in a dev/test environment, we recommend the use of the DocumentDB emulator.

Single Partition or Partitioned Collection

You can start with a single partition if you expect your storage needs to be below 10 GB or your throughput needs not to exceed 10K RU/sec. Later on, you can always change to partitioned collections by using the migration tool. For more information about migrating from single-partition to partitioned collections, see Migrating from single-partition to partitioned collections.

However, if you expect a large amount of volume or performance needs, you should start with a partitioned collection. The following table provides an overview of single partition versus partitioned collections.

Performance type

Details

Throughput

Storage

Single partition

User sets throughput in units of 100 RU/sec

400 – 10,000 RU/sec

10 GB

Partitioned collection

User sets throughput in units of 100 RU/sec

2,500 RU/sec – Unlimited

Unlimited

Decreasing your provisioned throughput for partitioned collections

If you already have a partitioned collection, but don’t need the 10,100 RU/sec throughput, you can lower your provisioning through the Azure portal or the SDK. Here is an example to adjust the provisioning level to 2,500 RU/sec.

Through the Azure portal

From your DocumentDB account, click Scale, choose your collection, and then adjust your throughput value.

Through the SDK

//Fetch the resource to be updated

Offer offer = client.CreateOfferQuery()

.Where(r => r.ResourceLink == collection.SelfLink)

.AsEnumerable()

.SingleOrDefault();

// Set the throughput to 2,500 request units per second

offer = new OfferV2(offer, 2500);

//Now persist these changes to the database by replacing the original resource

await client.ReplaceOfferAsync(offer);

If you have additional questions about partitioned collections or going planet-scale with DocumentDB, please reach out to us on the developer forums on Stack Overflow. Also, stay up-to-date on the latest DocumentDB news and features by following us on Twitter @DocumentDB.
Quelle: Azure

Instant File Recovery from Cloud using Azure Backup

Since its inception, Azure Backup has empowered enterprises to embark on the digital transformation to cloud by providing a cloud-first approach to backup enterprise data both on-premises and in the cloud. Today, we are excited to go beyond providing Backup-as-a-Service (BaaS) and introduce Restore-as-a-Service (RaaS) in the form of Azure Backup instant restore!

With Instant Restore, you can restore files and folders instantly from cloud based recovery points without provisioning any additional infrastructure, and at no additional cost. Instant Restore provides a writeable snapshot of a recovery point that you can quickly mount as one or more iSCSI based recovery volumes. Once the snapshot is mounted, you can browse through it and recover items by simply copying them from the recovery volumes to a destination of your choice.

Value proposition

One restore mechanism for all backup sources – The Restore-as-a-Service model of Azure Backup unifies the approach for recovering individual files and folders backed up from sources in the cloud or on-premises. You can use instant restore, whether you are backing up on-premises data to cloud using Azure Backup agent or protecting Azure VMs using Azure VM backup.
Instant recovery of files – Instantly recover files from the cloud backups of Azure VMs or on-premises file-servers. Whether it’s a case of accidental file deletion or simply validating the backup, instant restore drastically reduces the time taken to recover your first file.
Open and review files in the recovery volumes before restoring them – Our Restore-as-a-Service approach allows you to open application files such as SQL, Oracle directly from cloud recovery point snapshots as if they are present locally, without having to restore them, ​and attach them to live application instances. 
Recover any combination of files to any target – Since Azure Backup provides the entire snapshot of the recovery point and relies on copy of items for recovery, you can restore multiple files from multiple folders to a local server or even to a network-share of your choice.

Availability

Azure Backup Instant Recovery of files is available in preview for customers of Azure Backup agent and Azure VM backup (Windows VMs).

Learn how to instantly recover files using Azure Backup Agent

Watch the video below to start using Instant Restore for recovering files backed up with Azure Backup Agent for files and folders.

The supported regions for this preview are available here and will be updated as new regions are included in the preview.

Learn how to instantly recover files from Azure Virtual Machine Backups

Watch the video below to instantly recover files from an Azure VM (Windows) backup.

Visit this document to know more about how to instantly recover files from  Windows Azure VM backups.

The instant file restore capability will be available soon for users who are protecting their Linux VMs using Azure VM backup. If you are interested in being an early adopter and provide valuable feedback, please let us know at linuxazurebackupteam@service.microsoft.com. Watch the video below to know more.

 

Related links and additional content

Learn more about Azure Backup
Want more details? Check out Azure Backup documentation
Sign up for a free Azure trial subscription
Need help? Reach out to Azure Backup forum for support
Tell us how we can improve Azure Backup by contributing new ideas and voting up existing ones.
Follow us on Twitter @AzureBackup for the latest news and updates
Azure Backup Agent version for instant restore

Quelle: Azure

January 2017 Leaderboard of Database Systems contributors on MSDN

We started the Leaderboard initiative in October last year. Thank you for your continued support. Many congratulations to the top-10 contributors featured on the January 2017 edition of our leaderboard!

Olaf Helper and Alberto Morillo top the Overall and Cloud database this month too. 6 of this month’s Overall Top-10 (including all of the top-3) featured in last month’s Overall Top-10 as well.

The following continues to be the points hierarchy (in decreasing order of points):

For questions related to this leaderboard, please write to leaderboard-sql@microsoft.com.
Quelle: Azure

Announcing preview of Storage Service Encryption for File Storage

Today, we are excited to announce the preview of Storage Service Encryption (SSE) for Azure File Storage. When you enable Storage Service Encryption for Azure File Storage your data is automatically encrypted for you.

Azure File Storage is a fully managed service providing distributed and cross platform storage. IT organizations can lift and shift their on premises file shares to the cloud using Azure Files, by simply pointing the applications to Azure file share path. Thus, enterprises can start leveraging cloud without having to incur development costs to adopt cloud storage. Azure Files now offers encryption of data at rest capability.

Microsoft handles all the encryption, decryption and key management in a fully transparent fashion. All data is encrypted using 256-bit AES encryption, also known as AES-256, one of the strongest block ciphers available. Customers can enable this feature on all available redundancy types of Azure File Storage – LRS and GRS.

During preview, the feature can only be enabled for newly created Azure Resource Manager (ARM) Storage accounts.

You can enable this feature on Azure Resource Manager storage account using the Azure Portal. We plan to have the Azure Powershell, Azure CLI or the Microsoft Azure Storage Resource Provider API for enabling encryption for file storage by end of February. There is no additional charge for enabling this feature. 

Find out more about Storage Service Encryption. You can also reach out to ssediscussions@microsoft.com for additional questions on the preview.
Quelle: Azure

SQL Data Warehouse now supports seamless integration with Azure Data Lake Store

Azure SQL Data Warehouse is a SQL-based fully managed, petabyte-scale cloud solution for data warehousing. SQL Data Warehouse is highly elastic, enabling you to provision in minutes and scale capacity in seconds. You can scale compute and storage independently, allowing you to burst compute for complex analytical workloads or scale down your warehouse for archival scenarios, and pay based off what you&;re using instead of being locked into predefined cluster configurations.

We are pleased to announce that you can now directly import or export your data from Azure Data Lake Store (ADLS) into Azure SQL Data Warehouse (SQL DW) using External Tables.

ADLS is a purpose-built, no-limits store and is optimized for massively parallel processing. With SQL DW PolyBase support for ADLS, you can now load data directly into your SQL DW instance at nearly 3 TB per hour. Because SQL DW can now ingest data directly from Windows Azure Storage Blob and ADLS, you can now load data from any storage service in Azure. This provides you with the flexibility to choose what is right for your application. 

A common use case for ADLS and SQL DW is the following. Raw data is ingested into ADLS from a variety of sources. Then ADL Analytics is used to clean and process the data into a loading ready format. From there, the high value data can be imported into Azure SQL DW via PolyBase.

ADLS has a variety of built-in security features that PolyBase uses to ensure your data remains secure, such as always-on encryption, ACL-based authorization, and Azure Active Directory (AAD) integration. To load data from ADLS via PolyBase, you need to create an AAD application. Read and write privileges are managed for the AAD application on either a per directory, subdirectory, or file basis. This allows you to provide fine-grained access control of what data can be loaded into SQL DW from ADLS resulting in an easy to manage security model.

You can import data stored in ORC, RC, Parquet, or Delimited Text file formats directly into SQL DW using the Create Table As Select (CTAS) statement over an external table.

How to Set Up the Connection to Azure Data Lake Store

When you connect to your SQL DW from your favorite client (SSMS or SSDT), you can use the script below to get started. You will need to know your AAD Application’s client ID, OAuth2.0TokenEndpoint, and Key to create a Database Scoped Credential in SQL DW. This key is encrypted with your Database Master Key and is stored within the SQL DW. This is the credential used to authenticate against ADLS.

It’s just that simple to load data into Azure SQL Data Warehouse from ADLS.

Best Practices for loading data into SQL DW from Azure Data Lake Store

For the best experience, please look at the following guidelines:

Co-locate the services in the same data center for better performance and no data egress charges.
Split large compressed files into at least 60 smaller compressed files.
Use a large resource class in SQL DW to load the data.
Ensure that your AAD Application has read access from your chosen ADLS Directory.
Scale up your DW SLO when importing a large data set.
Use a medium resource class for loading data into SQL DW.

Learn more about best practices for loading data into SQL DW from Azure Data Lake Store.

Next steps

If you already have an Azure Data Lake Store, you can try loading your data into SQL Data Warehouse.

Additionally, there are great tutorials specific to ADLS to get you up and running.

Learn more

What is Azure SQL Data Warehouse?

What is Azure Data Lake Store?

SQL Data Warehouse best practices

Load Data into SQL Data Warehouse

MSDN forum

Stack Overflow forum
Quelle: Azure

Announcing custom domain HTTPS support with Azure CDN

We are very excited to let you know that this feature is now available with Azure CDN from Verizon. The end-to-end workflow to enable HTTPS for your custom domain is simplified via one-click enablement, complete certificate management, and all with no additional cost.

It&;s critical to ensure the privacy and data integrity of all your web applications sensitive data while it is in transit. Using the HTTPS protocol ensures that your sensitive data is encrypted when it&039;s sent across the internet. Azure CDN has supported HTTPS for many years, but was only supported when you used an Azure provided domain. For example, if you create a CDN endpoint from Azure CDN (e.g. https://contoso.azureedge.net), HTTPS is enabled by default. Now, with custom domain HTTPS, you can enable secure delivery for a custom domain (e.g. https://www.contoso.com) as well.

Some of the key attributes of the custom domain HTTPS are:

No additional cost: There are no costs for certificate acquisition or renewal and no additional cost for HTTPS traffic. You just pay for GB egress from the CDN.

Simple enablement: One click provisioning is available from the Azure portal.

Complete certificate management: All certificate procurement or management is handled for you. Certificates are automatically provisioned and renewed prior to expiration. This completely removes the risks of service interruption as a result of a certificate expiring.

See the feature documentation for full details on how to enable HTTPS for your custom domain today!

We are working on supporting this feature with Azure CDN from Akamai in the coming months. Stay tuned.

More information

CDN overview

Add a custom domain

Is there a feature you&039;d like to see in Azure CDN? Give us feedback!
Quelle: Azure