Friday, August 1, 2014

A Couple Updates

There is a new version of the HA site extension available. Changes were made to ensure accurate tests with the new process separation that is happening with site extensions. Right now it does not affect every region, but it soon will. It will work no matter what so make sure you download the newest version so your server crash test will not show a false positive result. Just go to the site extension gallery and it only takes one click to upgrade your HA Web API extension to the newest version.

 

One last update! The High Availability Library that is used by both the Test Console and the Site Extension is not available on github! The library contains three parts as explained below:

  1. Load Manager - Used by the HA Test Console in order to send the HTTP request load to your web site and keeps track of the latency and success.
  2. Measurement Manager - This is also used by the test console to analyze the load information recorded by the load manager and create a SimpleTestResult with all of the information about your test results.
  3. Test Library - This is used by the HA Site Extension in order to inject the faults into your site.
Remember to update your site extension!

Thursday, July 31, 2014

Video Tutorial Now Available!

For anyone interested in following a video tutorial on how to use the High Availability Test Console, the video is here and posted below!
 

If you have any questions feel free to email me at t-sterns@microsoft.com

Monday, July 28, 2014

New Features! A New Server Test and More!

The High Availability Test Console now has a few more features for you to use! The biggest change is the addition of a server crash test that has been implemented.

Remember: In order to use this feature you must update the High Availability Site Extension. This can be done in one click from either the azure portal or your Kudu site extension.

This new test will simulate what would occur if the server on which your site is hosted was to crash. This test is run the same as the others, you can run them all in a row or you can run this test on its own by clicking the respective play button.

The difference between this test and the CPU and Memory Test is the how to interpret the results. The previous two tests display and expected and an observed value for latency and success rate. In this case we are just interested in finding out how your web site will respond in the case of a server crash. The only metric displayed in this case is seconds downtime. This number represents the amount of time that your site was unable to be requested. Obviously, the shorter the better.

A success is constituted by a downtime of one second or less. If you were to scale your website to even just two instances you would be likely to see that there was no downtime at all. This is because Azure Web Sites will randomly direct the incoming requests to one of the two instances. Even though one instance will be down for a couple seconds in the event of a server crash, half of the requests will still complete.

If high availability is really important to you this is another test that shows how crucial multiple instances or the auto scale features provided by azure can be for your web site.

Another new feature is the ability to view the page in Japanese. This is a feature that will hopefully grow to allow the site to be viewed in multiple different languages. (I am sorry if some of the translations are not accurate)

You will also notice that there are two more text boxes in the authorization pop up. The first will show the web site URL that you just entered. If for some reason the web site does not appear to be a valid Azure Web Site, an error message will be displayed and you should double check the URL. There is also a place for you to enter your email address. This will be used to send a report of the test results to your email address. Right now, you may be contacted to provide feedback on the product if you supply your email. This is a way for you to help shape this tool into something that you can really use to help make your site better!

Finally at the bottom of the page you will see that there are links to this blog as well as to the Azure home page and the web site source on git hub.

Expect another release, post, and even a video at some point this week!

Thursday, July 17, 2014

Information on Types of Tests and Test Results using High Availability Tool

Types of Tests

In the Beta release there are two available tests, CPU Burn and Memory Test.

CPU Burn

The CPU is obviously one of the most important parts of the hardware supporting your web site. If your site only has one instance, and experiences very high traffic, users could experience the results shown by this test. This test basically starts multiple threads on the hosting VM to continuously perform mathematical operations that will take up a significant amount of time in the CPU. The results of this test can show how your web site performs under that stress. Try changing the number of instances of your web site and see if the results change!

Memory Test

This test is meant to simulate what would happen if most of the memory was allocated and only a small amount was available to your site while experiencing web traffic. You want to build your site in a way that even if memory was to crash and you lost all the information your site was currently using, that it would still be able to recover and resume standard functionality.

The Results


The results consist of three parts, a graph, a table showing expected and observed values, and an explanation in English. The graph and the table both show two measurement metrics, Latency of the HTTP request, and the HTTP request success rate. The success rate is measured on a second by second basis. The graph plots the test over one minute, with the test running for from 20 until 40 seconds, as can clearly be seen above. The values in the table are calculated by taking an average during the time that there was no fault injected as expected and the average during the fault as observed.

The paragraph following attempts to explain the results of the test in a way that helps you improve your web site. This is still the beta version and the hope is to roll out more tests as well as test metrics so each site owner has the ability to build his site to support the highest possible availability.

Wednesday, July 16, 2014

Using Azure's High Availability Test Tool

What is High Availability?

High Availability is the ability for your website to be running and available to users on a consistent basis. When you host your site using Azure Web Sites, the fact is that the underlying architecture and hardware will not be available 100% of the time. This is the reality when using any cloud based web hosting, but do not worry Microsoft already puts a lot of work to ensure the highest possible availability for your web site.

What is the High Availability Test Tool?

This High Availability Test Tool was built to show different types of hardware issues can affect the functionality of your site and you can build it in a way that it is optimized to run in a cloud environment.

How do I use the High Availability Test Tool?

The test tool can be found at highavailabilitytestconsole.azurewebsites.net.

If this is your first time using the tool, the first step is to install the High Availability Site Extension. This can be done from the Azure Portal or from the Kudu site extension. The High Availability Test Console has directions for both of these options!

Click on this bar to show the directions and choose which way you prefer

Once you follow the steps available there and you can see the site extension installed on your site, you are ready to use the tool. The first step is to enter the URL of your site in the textbox shown below:



You will then be asked to enter your publishing credentials for your web site. The only reason it requires you to enter your publishing username and password is so that it can communicate with the High Availability Site Extension. If you are still unsure you can find the source code for the tool on GitHub.

If you do not know how to find your publishing credentials go to the Azure Portal, then Browse->Web Sites->Your Web Site. Find the Deployment


The browser will prompt you to open or save the file, click save and save the file somewhere where you will remember it. Open the text file and you should be able to locate the username and password as shown below.


After the information is entered, click Verify. This will ensure that the tool can communicate with the site extension and if successful, the Submit button will turn green and you can click that to continue. Now you will be able to see your site URL in the "Web Sites to Test" list.

At this point you are ready to run the test! You may choose from any of the tests to run individually or run them all together.



When a test finishes click on View Results button to see a graph of both latency and request success with the respective fault injected.

Check back for another blog to explain what each test does and what the results mean for your site.