Is there downtime involved when using Azure vertical scaling? - azure

I have a two websites on a VM with WHM/cPanel and MySql.
I am looking to move this into Azure and use vertical scaling. Visits to the website are usually stable but three or four times a year there is a big increase in traffic which historically has caused big problems for the existing host.
I am looking to move it into the A5-A7 range of servers for the vertical scaling.
I cannot find anything anywhere about whether there is any downtime involved when Azure scales up my VM from A5 to A6 or whatever.
Does anyone have any experience with this and can give me a definitive answer as to whether there is downtime when using vertical scaling, and if there is any downtime involved then the kind of downtime I would expect
Thank you for your time.

Yes, it will incur downtime. Post on it
Azure will restart your VM.
Quote from the page (I highlighted the important bit):
When considering the ability to resize virtual machines there are
three key concepts that will impact how simple it is to change the
size of your VM.
The region in which your VM is deployed. Different VM sizes require different physical hardware. In some instances, an Azure region may
not contain the hardware required to support the desired VM size. All
Azure regions support the VM sizes Standard_A0 – A7 and Basic_A0 – A4.
You can then find which other VM sizes are supported in each region
under the Services tab of the Azure Regions web page.
The physical hardware currently hosting your VM. If the physical hardware currently running your virtual machine also supports your
desired new size, then it is very easy to change the VM size through a
simple size change operation which results in a VM reboot.
The deployment model used for the VM. The two deployment models are Classic and Resource Manager. The Resource Manager model is the newer
model, and it supports some ease of use functionality not available in
the classic deployment model.

Related

Azure - Linux Standard B2ms - Turned off automatically?

I have a Linux Standard B2ms azure virtual machine. I have disabled the autoshutdown feature you see in your dashboard under operations. For some reason this server was still shutdown after running about 8 days.
What reasons are there which could shutdown this server if I haven't changed anything on it the last three days?
What reasons are there which could shutdown this server if I haven't
changed anything on it the last three days?
There are many reasons will shutdown this VM, maybe we should try to find some logs about this.
First, we should check Azure Alerts via Azure portal, try to find some logs about you VM.
Second, we should check this VM's performance, maybe high CPU usage or high memory usage, we can find logs in /var/log/*.
Also we can try to find are there some issue about Azure service, we can check service Health -> Health history to find are there some issues in your region.
By the way, if we just create one VM in Azure, we can't avoid a single point of failure. In Azure, Microsoft recommended that two or more VMs are created within an availability set to provide for a highly available application and to meet the 99.95% Azure SLA.
An availability set is composed of two additional groupings that protect against hardware failures and allow updates to safely be applied - fault domains (FDs) and update domains (UDs).
Fault domains:
A fault domain is a logical group of underlying hardware that share a common power source and network switch, similar to a rack within an on-premises datacenter. As you create VMs within an availability set, the Azure platform automatically distributes your VMs across these fault domains. This approach limits the impact of potential physical hardware failures, network outages, or power interruptions.
Update domains:
An update domain is a logical group of underlying hardware that can undergo maintenance or be rebooted at the same time. As you create VMs within an availability set, the Azure platform automatically distributes your VMs across these update domains. This approach ensures that at least one instance of your application always remains running as the Azure platform undergoes periodic maintenance. The order of update domains being rebooted may not proceed sequentially during planned maintenance, but only one update domain is rebooted at a time.
In your scenario, maybe there are some unplanned maintenance events,when Microsoft update the VM host, they will migrate your VM to another host, they will shutdown your VM then migrate it.
To achieve a highly available, maybe we should create at least two VMs in one availability set.

Can you move/copy Azure virtual machines to a different instance?

If I setup a server running my application on an azure instance, for example A1 can I later change the instance to D2?
I might want to experiment with a VM at a lower cost but then move to a higher performing machine at a later date without having to rebuild everything.
Yes, you can change the size of Azure VM on demand. Changing the size will trigger a machine reboot and if you're using a configuration with SSD temporary drive, the content of the SSD will get erased. Other than that, everything else will be left untouched.
Drew, the Principal PM in this area has a great blog here about this.
You can only resize a VM to another offering that does not have fundamentally different hardware. Since A-Series and D-Series VMs have similar hardware, you would be able to swap those two around. You would not be able to go from A-Series to G-Series though. In addition you need to look at VM availability per region if you want to swap to something only in certain areas, as well as look at if you are using an ASM or ARM VM.
If you have an existing VM, you can check what it can swap out with in the new portal under "Size" in the VM Settings.
This will allow you to reboot into a different machine type, however any temp storage will be erased as with any VM reboot. You just need to ensure you are storing your persistent data in external storage.
You can learn more about the VM size offerings here.

How to autoscale virtual machines(IaaS approach) in azure

How to autoscale virtual machines(IaaS approach) in azure instead of web/worker role autoscaling in azure?
You can now Autoscale Virtual machines in Azure directly in the Azure Management Portal. ScottGu has a post about it on his blog.
The important thing to autoscale VM's is you must proactively provision the Max # of VM's you think you'll need to handle your peak capacity, and add them to the same availability set.
For example, if on the busiest day of the week it takes 6 machines to handle all of your traffic, then you need to create 6 instances and install your application on it, configure it to handle traffic etc.... and then add it to an availability set with the other 5 machines.
Once you've done this, you can navigate to the Cloud Service that contains all of your virtual machines and click on the Scale tab. You should see a list of your availability sets, and it should tell you the # of machines you can scale over. Choose a metric (either CPU or Queue today), and then range of machines you want to scale between. You can scale between 1 and the total # of machines.
When load is low -- Azure will turn off machines (so you don't have to pay for them), and when load is high, Azure will turn those machines back on.
Auto-scaling on the IaaS level doesn't really make sense. Even if azure could detect high CPU usage and start a new VM based on it, what then? you still need to install your application on that VM automatically somehow.
What you are looking for is something that runs your app on azure, and installs new instances on new VM's if necessary. That "something" is called PaaS enabler. Basically it is another abstraction level between your app and the azure IaaS.
there are a couple of them out there :
Cloudify, CloudFoundary, Juju
as far as i know, only one that supports Azure is Cloudify. you can check out how to configure azure using Cloudify here : Configuring Azure
you can also check out the community - Cloudify Forum, or post questions here for assistance.
Disclaimer: I work for Gigaspaces, developing the Cloudify product line.
According to this it's possible to scale out IaaS with Availability sets by pre-provisioning the number of boxes: https://blogs.msdn.microsoft.com/kaevans/2015/02/20/autoscaling-azurevirtual-machines/

Proper setup for high-availability Azure VMs

I would like to achieve a high-availability scenario on two VMs in Azure.
I understand and can follow the directions here:
https://www.windowsazure.com/en-us/manage/windows/common-tasks/manage-vm-availability/
However, my question is this: are the two VMs supposed to be exact replicas of each other, so that when one goes down, the other takes over? Or does the Availability Set look after this, so that the two VMs can have totally different content and still utilise each others' free resources?
If you're working with Virtual Machines (currently in Preview), then each VM lives in its own VHD. You can make additional instances by creating a VM from an image you build, but at that point, the new VM lives in its own VHD and the actual disk image will then deviate from any other instance as time goes forward. Of course, if each VM is created from the same image, with the same initialization tasks, etc., then they'd have the same software as well. You'd be responsible for upgrading software versions on all the VMs. If you then put these multiple Virtual Machines in an Availability Set, you'd be assured that the Host OS (underlying OS at machine-level) for the VMs you have would not be updated at the same time. You'd also know that different VMs in the Availability Set would be situated in different racks, network segments, etc.
More on Availability Sets: Within an Availability Set, you may have any variety of Virtual Machines - Linux, Windows, different functionality. And... you may define more than one Availability Set.
In the PaaS world, where you set up a Cloud Service with Web and/or Worker roles, those VMs are spawned the exact same way. So adding instances means adding more of the equivalent VMs. If the disk crashed, a new VM would be created just like the others. There are no persistent changes to those OS disks. In the case of Cloud Services, there's fault domains and upgrade domains, which are very similar to availability sets.

Migration from server hosting in a DC to Azure

I run my own uk based hosting and web design company.
We have about 10 physical servers in a DC in the UK and host about 300 or so web sites, email servers and web applications. They are all on a windows server platform with a few linux VM's.
I now have a Windows Azure account, I have set up a medium windows 2008 server within my azure account and want to start using it to maybe host and migrate some of my web sites and services onto my azure account and new server. With the view that maybe I could move ALL my services over and get rid of the need for any of my physical servers in the DC.
My question that I am still really struggling with how much this will really cost me on an ongoing basis.
The billing area, doesnt really tell me much as it simply shows my bill as £0.00. It shows my usage but I am really struggling to compare the resources I am currently using compared to how its billed in azure? It doesnt even show me what it would have cost me if I werent ona trial.
I dont want to move web hosted sites over if its going to cost me more than hosting in my current DC.
I was thinking of moving many sites onto the new server i have set up as its a better spec than a few of my current servers, so would see a big benefit, I even considered setting up a much larger Server in my Azure account but again unsure as to the real cost of that box its hard to compare.
Do I simply need to look at the calculator and select the number of servers i wil deploy, select how much storage I need and bandwidth? Or do I need to look at the items in the billing area as well - such as:
Compute units,Storage Transactions,Data Transfer Out,Data Transfer In
When I set up the server it didnt ask me for how much storage I wanted it just set it up with about 150GB avaialble in the actual server.
Any advice as I really see this as something i want to use over the next 12 months, but not if once i have finally migrated stuff its going to cost me more than my normal hosting and i have to move stuff all back at the end of the 12 months.
Cheers
Because you're using Windows Azure Virtual Machines, you should first use the virtual machine pricing calculator. This calculator only displays the costs that are relevant for your scenario except for the storage transaction cost. Here is a breakdown of the costs you'll have to consider:
Virtual Machines
The Virtual Machine cost appears on the bill as compute units. Throughout the Windows Azure Virtual Machine preview, the cost per core per hour is $0.08. Once VMs reach general availability, the cost will be $0.115 per core per hour for Windows VMs and $0.085 for Linux VMs. Using the calculator, you can see that a medium instance uses two cores and will therefore be billed at $0.16 per hour during the preview period. You will have to use your best judgement to determine how many virtual machines you'll need and how large they should be.
Storage
You will have to pay for the data actually used within your VHDs. Let's assume you have one virtual machine with one VHD attached. If the size of the VHD 200GB, but only 100GB is used, you will have to pay for 100GB per month.
Bandwidth
Microsoft now only charges for egress data transfers (data going out of the data center). With this pricing change, the Data Transfer In section of the billing area will always be 0.00. Hopefully, you already have a good idea about your current outbound data usage. If so, you can calculate your bandwidth cost by simply moving the bandwidth slider to the correct spot.
Storage Transactions
If you scroll down to the Transactions section of this blog post, you'll see how storage transactions are counted. Basically, you count one transaction per write operation and possibly one transaction per read operation depending if the data is cached or not. The cost of storage transactions are negligible because you only have to pay one cent per 100,000 transactions. That's why storage transactions are left out of the calculator.
HTH
To answer such question in an input box has limitation to express in details. The cost calculator is there to give you an estimate of upper limit about what the cost will be if your usage are under selected limit. Based on my personal experiences if you choose higher limits of usage and keep the usages within your forecast limits, there will be no hidden charges. But the reality could be far different because you may not estimate the usages correctly at first and this could change the cost later.
For moving a traditional web hosting solution to Windows Azure, latest release of Windows Azure Virtual Machine is best fit as this requires minimum migration complexity. So the VM size you will choose will have fixed resources (compute, local storage, network bandwidth, disk I/O etc) and the cost will be fixed as long as you are under limit so there will not be unseen charges.
Windows Azure Storage is pay as you go (ranges ~$0.012/GB depend on usage limit) and there is no limit. When moving from traditions web hosting to Cloud environment, due to application architecture design, I have seen less Cloud storage usage and more VM storage so it may not cost a lot.
The place you will see cost variation is data egress/ingress and it is difficult to forecast as it is all depend on application usage, so this is something you will have to account as variable cost.
You can also contact Windows Azure Virtual Machine Forum where dedicated Windows Azure Virtual Machine resources are available to answer your such questions.
Finally One thing I would also add that Windows Azure Virtual Machines are still in preview mode so it would be best to bring some of your business to Windows Azure VM as trial and testing purpose because now matter what you think you may encounter problems (because it is preview release) and this could case service disruption.

Resources