VM migration on Azure - azure

I wish to run a web server on Azure. My concern is whether Azure migrates virtual instances (VMs) between physical servers for performance optimization purposes and if so does it provide some kind of guarantees on the performance hit that migration incurs?

For VM performance and availability, you can use Availability Sets to be covered by the 99.95% SLA. This guarantee works due to the use of Fault Domains and Upgrade/Update Domains across physical machines spread across server racks.
More info here: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/
If you just want to run a web app without having to worry about the VM, you can also use Azure's PaaS offering (just endpoint access) instead of IaaS (full VM access).
More info here: http://azure.microsoft.com/services/app-service/web/
Hope that helps!

Related

Microsoft Azure VMs IaaS or PaaS?

I would like some clarification on whether Azure VM's are strictly IaaS or can be PaaS depending on the amount responsibilities the creator/user has.
I've seen multiple different website saying VM are ONLY IaaS since you require an operating system, and others saying VM can be PaaS if a specific OS is specified on creation.
Any insight the community can provide will be very helpful, Thanks!
A VM is generally considered Infrastructure-as-a-Service, as you retain responsibility for patching and managing the Virtual Machine Operating System.
And even though there are Marketplace VM offerings that are completely pre-configured and even auto-updating, the responsibility for maintaining those solutions after deployment is the main way IaaS and PaaS are distinguished.
At the end of the day IaaS and PaaS are not precise technical terms. You can have PaaS services that require significant configuration and ongoing maintenance, and IaaS services that are completely managed.
VM's are IAAS (Infrastructure as a service) because on a VM you can manage what operation system runs and what software is installed.
On a PAAS you only manage the software or application that runs in the cloud. (Like app services)
It's both.
Like IaaS, PaaS includes infrastructure—servers, storage, and networking—but also middleware, development tools, business intelligence (BI) services, database management systems, and more. PaaS is designed to support the complete web application lifecycle: building, testing, deploying, managing, and updating.
https://azure.microsoft.com/en-us/overview/what-is-paas/
I've just been through Microsoft's AZ900 training at it states:
Azure Virtual Machines (VM) are software emulations
of physical computers.
Includes virtual processor, memory, storage, and
networking.
IaaS offering that provides total control and
customization.
example Az900 test questions:
VM with installed SQL is PaaS
appears to times
VM with instlled sql server is Iaas - one time
DNS is IaaS according to MS diagram: https://techcommunity.microsoft.com/t5/image/serverpage/image-id/94214iF8738A37E3E44F77
But VM with DNS server installed is PaaS
Also encountered that VM with installed storage is PaaS.
Very confusing,

I want to load balance my azure website

I have my website (abc.azurewebsites.net) hosted to Azure Web Apps using Visual Studio.
Now after 1 month I am facing problems with traffic management. My CPU is always 90 - 95% as the number of requests is too high.
Does anyone know how to add Traffic Management in this web app without changing the domain abc.azurewebsites.net? Is it hard coded in my application?
I thought of changing the web app to a Virtual Machine but now as it's already deployed I am scared of domain loss.
When you Scale your Web App you add instances of your current pricing tier and Azure deploys your Web App package to each of them.
There's a Load Balancer over all your instances, so, traffic is automatically load balanced between them. You shouldn't need a Virtual Machine for this and you don't need to configure any extra Traffic Manager.
I can vouch that my company is using Azure Web Apps to manage more than 1000 concurrent users making thousands of requests with just 2-3 instances. It all depends on what your application does and what other resources does it access too, if you implemented or not a caching strategy and what kind of data storage you are using.
High CPU does not always mean high traffic, it's a mix of CPU and Http Queue Length that gives you an idea of how well your instances are handling traffic.
Your solution might implementing a group of things:
Performance tweak your application
Add caching strategies (distributed cache like Azure Redis is a good option)
Increase Web App instances by configuring Auto-Scaling based on HTTP Queue Length / CPU.
You should not have to change your domain to autoscale a Web App, but you may have to change your pricing tier. Scaling to multiple instance is available at Basic pricing tier, and autoscaling starts at Standard tier. Custom domains are allowed at these levels but you don't have to change your domain if you don't want to.
Here is the overview of scaling a web app https://azure.microsoft.com/en-us/documentation/articles/web-sites-scale/
Adding a Virtual Machine (VM) is very costly as compared to adding instance. On top of it, Redundancy (recommended) for the VMs, adding NIC etc will blow up the cost. Maintenance is another challenge. PAAS (webApp etc) is always a better option than IAAS.
Serverless offerings like Azure Functions can also be thought of. They support http trigger and scale up really well.

Performance: Azure WebSites two instances vs. two Azure WebSites

I'm running 1 Standard-tier Azure WebSites and trying to get rid of recycle issue and unstable connection for whatever reason.
If I add new instance to same region, is there (1) any difference in performance perspective? (2) Do they have same architectural allocation? (3) and which one is more fail-safe?
Adding another instance to the existing web hosting plan will run on the resources defined by that plan. e.g. if you have two virtual machines instances for your Standard plan, all the web sites associated with that web hosting plan will run on both virtual machines.
Neither is "more" fail-safe, as websites are offered as a Platform-as-a-Service. This means that the servers that are running on are fully managed by Microsoft and are highly available. If you have instance count set to 2, there will always be two instances up, regardless of underlying hardware faults on the Azure fabric.
Source
Azure Websites Web Hosting Plans In-Depth Overview
How does Windows Azure heal?

Using Windows Azure SQL Database from Azure VM

Is there any performance penalty to using Windows Azure SQL Database (formerly known as SQL Azure) from within a Windows Azure VM hosted web app? I would like to know if the performance of this is any worse than using Azure SQL database from a website running on Azure reserved instance. The assumption in both scenarios is that Azure SQL Database is deployed in the same region as the app.
There should not be any difference with respect to utilization of SQL Azure
As #Igorek pointed out, there's no difference (assuming same data center) between using a Virtual Machine and a Website for accessing Windows Azure SQL. That said: One thing that may not be so obvious is that, today, Virtual Machines (and Cloud Services) support XL instances (meaning 800Mbps on the NIC) vs Websites, which are currently limited to Large reserved instances (400Mbps). So... if you're moving a considerable amount of data, you'll get better throughput with an XL Virtual Machine vs. a Large Website instance.
I realize this is an edge case, but just thought I'd throw it out there...
There may be some difference in performance which depends on the configuration on the Virtual Machine and the Website Infrastructure where the Website is Hosted.
The connections in-bound and out-bound performances depends on the load balancing which is abstracted in Azure. This relates to the infrastructure which is in place.
For instance if the VM is in Basic Tier More on VM Sizing, and the website is hosted with a higher configuration, you may get some variance in Performance.

AWS Route53 and Elastic Load Balancers equivalent on the new Azure IaaS cloud

We are on the process of choosing a Cloud provider to run our VMs, and we would like to better understand the differences between AWS and the new Azure.
Does anyone know if Azure Cloud (IaaS) have an equivalent for the AWS Route53 and Elastic Load Balancer?
If it has, how does it work? Do they also have several different zones across the globe capable of providing High-Availability with minimum impact on the latency?
Thank you
Microsoft doesn't have a DNS service like Route53. But does support common DNS operations such as c-name routing/forwarding to various Windows Azure services. As for zones, there are currently 8 locations that MSFT offers for hosting of Windows Azure, 2 in Europe, 2 in Asia, 4 in the US, and Fujistsu offers hosting of some Windows Azure services in Japan. With the possible exception of Fujitsu (I don't know the details of their SLA), all Windows Azure Services are at least 99.9% (the definition of "highly available" is subjective). Additionally, Microsoft has the Content Delivery Network with more than 24 nodes spread across the globe to help speed delivery and reduce the latency of content being delivered to almost any geography.
For the most part yes, there is equivalence. Windows Azure has always had a load balancer on any external endpoint (exposed over the VIP). It is not a super programmable firewall at this point (you cannot do more than simply remove yourself from rotation), but it works very well for web farm scenarios.
Cloud Traffic Manager works very well for geo-locating your services in Windows Azure. Just deploy your service in multiple datacenters, configure a few settings in traffic manager, and you are done. Most folks use it for 'best performance' (i.e. closest DC to customer), but also you can use it for 'failover'.
In terms of DNS, there is no equivalent service today for handling external DNS names. You handle DNS today with your own servers. That is one point where AWS is ahead.

Resources