Tag Archives: Cache

Reviewing Microsoft Azure

Microsoft has Azure, a Cloud platform similar to Amazon and it reveals obvious to me, that they are trying by all means to attract customers from Amazon to their platforms by beating AWS in price and performance.

The prices in Azure use to be half compared to AWS, for a bit more, or much more (like in the case of the Small) CPU power, as CMIPS reveals.

To show some examples, Amazon t1.micro costs USD $0.020 per hour and performs at 49 CMIPS, while Azure Small costs USD $0.060 per hour, but performs at 554 CMIPS, so 11 times faster. For the same price Amazon M1 Small performs at 203 CMIPS and costs USD $0.060 per hour as well, so half powerful (both have the same amount of RAM 1.7 GB).

Azure Large (A3) performs at 2142 CMIPS with a cost of USD $0.24 per hour, while Amazon m3.xlarge performs at 2065 CMIPS at a cost of USD $0.50 per hour. So similar power but double price.

In the case of the Azure A7 (56 GB RAM) we get 4412 CMIPS at the cost of USD $1.29 per hour while the Amazon M2 High Memory Quadruple Extra Large (m2.4xlarge) (68,4 GB RAM) brings 4281 CMIPS costing USD $1.64.

If we don’t need so many memory Azure Extra Large (A4) has the same CPU power as A7, with only 14 GB of RAM but a lower cost of USD $0.48 per hour.

See Amazon instance types for more information.

See Azure prices for more information.

cmips-net-azure-pricing

A very nice thing is that Azure charges by the minute, and not by hour (or fraction) like most of the Cloud providers.

Take a look at the price calculator:

http://www.windowsazure.com/en-us/pricing/calculator/?scenario=virtual-machines

cmips-azure-pricing-calculator

This week I was reported by an Start up founder that one colleague saved around 50,000 USD in the first year running his Start up with Azure, due to a kind of sponsorship/subsidized program by Ms Azure. This has to be confirmed yet.

To start, they publicly offer a Free month with 150 € pre-charged to use the Free trial.

The registration process is a bit annoying and confusing, having to create a Microsoft account, validating the card and receiving a SMS with a verification code,  and I had problems later because their website was not redirecting me to the proper page (halted on white page), but after going to their main login page an login twice being told because my session had expired (…) everything ran smoothly in my Firefox for Linux.

The thing that may surprise many users is that Azure does not only offer Windows Servers, it offers also Linux Servers.

As CMIPS is only for Linux, and Open Source is particularly interesting for the Start ups, and not privative cost-for-license Software, this will be the main target of analysis, but I tested some of the Windows platform features also.

The first thing, and I like it, is that you can select if you want to provide a certificate to login to your Linux box, log in by SSH with user and password, or use both methods.

In the text box you define your user and your password, and it works great. The user is automatically added to sudoers, so no problems here.

Another interesting feature is that all the instances you create have an unique name.

The name is in the form yourname.cloudapp.net

The namespace is shared among all customers so maybe the name you want is taken, but it is a great feature since everytime you shutdown you server, it will keep the same name.

That allows you to create a CNAME entry in your DNS pointing to your .cloudapp.net domain, and so user your DNS. For example www.cmips.net could be pointed as CNAME to cmips-t-small.cloudapp.net

That also adds an abstraction layer giving a lot of functionality.

I introduced this feature in ECManaged when I was in charge of the project, and I suggested this same feature to Amazon in a meeting I had in their offices in Dublin, when they invited me this November.

Another interesting feature is that Azure has several Data Centers:

North Europe
West Europe
East US
West US
Southeast Asia
East Asia

I may say that the provisioning of the instances, at least the Linux Servers, is slow.

The user interface is nice, fast, clear and useful, but doesn’t notices when I do sudo poweroff from the ssh terminal (or it notices really late).

So it doesn’t refreshed the status screen until many minutes have passed (around 30 minutes), it lacks a refresh button, and even if I refresh the entire browser it shows the virtual machine running when in fact is stopped.

They have a very nice monitor, very similar to ECManaged’s, but not so powerful and with limited alarms/alerts functionality.

cmips-azure-usage-overview

When I stop the server from ssh this monitor detects no activity on network, disk, cpu… but the user interface continues reporting that the server is on when in fact is down.

This happens also with the Credit Status, and the detailed page linked, that didn’t get refreshed after several hours running four instances and other services.

Some icons in the navigation bar on bottom disappear some times, randomly, and appear/disappear flashing when moving the mouse over, making difficult to find buttons like SAVE or DISCARD if they disappear and you didn’t see it before and hence you know where they should be placed.

Wow!. The Customdata feature to provide custom scripts in BASE64 when launching instances was only introduced to Azure’s API on October 2013, so a big big delay respect the competitors.

Optional in Linux Provisioning Configuration. Specifies a base-64 encoded string of custom data. The base-64 encoded string is located in the ovf-env.xml file on the ISO of the Virtual Machine. The file is copied to /var/lib/waagent/ovf-env.xml by the Windows Azure Linux Agent. The Windows Azure Linux Agent will also place the base-64 encoded data in /var/lib/waagent/CustomData during provisioning. The maximum length of the binary array is 65535 bytes.

The CustomData element is only available using version 2013-10-01 or higher.

msdn.microsoft.com/en-us/library/windowsazure/jj157194.aspx

One of the coolest feature is the AutoScale.

User can define different criteria for AutoScaling during the day and the night, the weekends, and special ranges.

cmips-azure-setup-schedule-timesThen Scale up or down according to CPU intervals, with cooldown (wait time to prevent scaling too fast within small peaks).

cmips-azure-scale-based-on-cpu-weekendThe AutoScaling options are not as complete as ECManaged, but in line with functionality offered by Amazon CloudWatch.

I found extremely useful the possibility to check the endpoints from different locations in Europe, USA and Asia.

I miss the option to receive alerts based on SMS, Skyper or Whatsup (email is supported).

I miss the possibility to raise events based on time, for example, start or stop a group of instances or do a Backup.

Azure offers a Market of Addons like for performing Backups, and a Market of instances preconfigured.

They also offer Managed Services and the possibility to hire support.

Another cool feature is the support for Load Balancers based on:

  • Round Robin
  • Performance
  • Failover

cmips-azure-traffic-manager-load-balancer-methodsThey allow the creation of Databases (Sql Server), similarly to Amazon RDS.

Also the creation of Websites, Mobile Services (with domain like https://cmipstests.azure-mobile.net/ and with functionalities like Push Notifications for smartphones: Windows Phone, iOS, Android, just HTML, Xamarin.iOS, Xamarin.Android), Windows Azure Cache, and collaboration storage for Visual Studio to use with Github or centralized version control. These last sites have the domain yourchosenname.visualstudio.com

Another remarkable aspect is that I saw only 64 bit Linux system, not 32 (honestly I see this Ok), and according to /proc/cpuinfo on the guest OS, the CPU detected on the host servers is an AMD Opteron 4171 HE (six-core processor – 2.1GHz (Lisbon, 6MB Level-3 cache, socket C32, 50W TDP) designed for Cloud). Please note that in the documentation of Azure it says that Small servers run at 1 Ghz

In the next article I will add the results of CMIPS and CUP (costs per CMIP).