Top 5 pre-requisite for any cloud based project - TechNet Articles - United States (English) - TechNet Wiki

Top 5 pre-requisite for any cloud based project

 

Top 5 pre-requisite for any cloud based project

 

After a long duration of almost 2 months, finally I am here blogging about my experience in Windows Azure, during this tenure. I am not only excited to share the learning but also hope that this series will help cloud enthusiasts to explore more and eventually we all get benefited.

As this is my first blog on this series, I will be talking about the problem statement given in brief and most importantly, I will be focusing on the pre-requisites for any Azure based development project. I believe that if we had the correct piece of information beforehand, this project that we undertook would not have taken so long. The sole intention of discussing the pre-requisites with you is to prevent the time lapse that I had, de facto.

Problem Statement:

The product on which I was working required the frontend in Silverlight Technology with Azure as the hosting service. As per our database requirement we thought to explore Sql Azure for the same. Instead of going into the intricacies of the project, I will try to keep the focus on the issues we faced and the approach we followed to resolve them. In the following blogs I will try to give you an insight of 10 important issues that we faced and how we fixed them.

Pre – requisites:

Before highlighting the points one by one, I would like to mention that even if your application is running on local dev fabric, it is not mandatory that it will behave the same when you publish it on cloud. Each publishing normally has an average uploading package time of 10 minutes. From 11:30 am to 1:00 pm we were observing that the uploading time took us sometime 15 or 20 minutes, and if it was an India – Australia match, no matter which team won, my team would have been cursing all the while. So from past 2 months my actual work started after 5:30pm, which might have got resolved in an isolated network.

Anyways allow me to put up a checklist for you which you may consider before any cloud based development project. In my organization to open a port for communication in firewall I have to open a genie ticket, which gets resolved by the team mantaining the firewall. So in this blog I will be focussing more on issues that can be faced behind the firewall of an organization, and you will see a lot of terminologies like "genie", "ticket" etc.

1. SQL Azure Connectivity:

If you are planning to use SQL Azure as your backend, I will suggest you to verify that you ensure the communication from your VSTS 2008 or 2010 to SQL Azure is working fine. When you create a database, you are given a database name.

<<database Name>>.database.windows.net

Every database name is preceded with database. Windows.net. To ensure that the SQL Azure connectivity is established you need to open 1433 port, so that your machine can have the access to the Cloud base SQL server. Raise a genie ticket mention your server name as

tcp:<<database Name>>.database.windows.net,1433

Note: this is a tcp connection to 1433 port so the above string needs to be inserted in VSTS for making the platform understand about the target system.

 

Prior to raising a genie ticket, you should follow the approach mentioned below:

1. Go to command prompt and ping <<database Name>>.database.windows.net

C:\>ping <database name>.database.windows.net

Pinging data.sn1-1.database.windows.net [65.55.74.144] with 32 bytes of data:

Request timed out.

Request timed out.

Ping statistics for 65.55.74.144:

Packets: Sent = 4, Received = 0, Lost = 4 (100% loss)

 

2. If there is a Request Time out , try to telnet the same

telnet 65.55.74.144 1433

 

If telnet is successful you will get a blank screen else copy the response and mention the same in your ticket. You can also help the CIS team with this link If there is a Request Time out , try to telnet the same

telnet 65.55.74.144 1433

 

http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-connectivity-troubleshooting-guide.aspx which will give them more clarification on what you want

 

Once the connectivity is done, go to your VSTS platform and click on add connection from Server Explorer. Mention the server name as tcp:<<database Name>>.database.windows.net,1433

and also provide the credentials for the same. If everything goes right you will be able to see the details for master database popping under the newly created database connection

 

Benefits

Developers: This will save your uploading time to a great extent. Sometimes we need to test whether the data is getting populated to SQL Azure or not, if your 1433 port is not opened you cannot test it locally. You have to publish the cloud project, and then test it online. I had a bad experience with this, as because of lack of appropriate checklist I had to wait for a while for this setup. Meanwhile whatever database related testing I did was done after waiting for at least 7 -8 minutes publishing time. Another point of frustration could be that if the database is not getting populated you cannot debug and get the reason of this issue. You have to be in the mercy of Microsoft remote debugging and loggers for the same. After I had the connectivity established, my team was performing more swiftly.

Testers: I believe the same thing will benefit any kind of automation testing for SQL Azure. Any scenario where testing has to be done directly of SQL Azure platform has to have 1433 port opened.

 

2. Silverlight 5 runtime:

If you want to manage your SQL Azure from web portal, you need to go to http://windows.azure.com

a. Login with your credentials

b. In the home page click on Database link

c. Under Subscriptions in upper left hand corner click on the data base name you possess

d. Click on the database name and then click on Manly:'times new roman';"> In the home page click on Database link

Manage link will enable you to use the database and execute commands like Insert, drop, delete, create, select etc. In a nutshell the feature will give you all the administrative privileges on your SQL Azure platform.

Now the issue here is that when you click on Manage, the feature verifies for Silverlight 5 runtime. It will not open unless it finds the runtime. The platform will respond that you should download Silverlight 5 runtime. Now when you click on it, the ZScalar proxy prohibits you from downloading the same. So now another genie ticket for the same is needed J. This issue took another day from me before it got resolved.


 

3. Publish :

To publish your local app on Azure you need to download a certificate and add the same in your Azure portal, which will make the platform, know about your identity. We didn’t faced any issue, because we could easily resolve this one with a few googling here and there.

 

4. Remote Desktop Monitoring:

Let me explain this with a scenario we had. Initially we didn’t had any proper logging mechanism in our application. The application was working perfectly fine in local setup but when published in cloud it was throwing an error. We were not having any clue how to resolve this, we thought that now we should implement the logging mechanism. While some members were working on the logging class, few others were searching for any other alternative. All of a sudden we hit the land. We saw that there was a remote desktop feature given which has to be enabled while publishing. We did the same, and tried to connect to the virtual machine.


Once you publish your application with remote desktop enabled, the feature “Connect” at the upper menu frame will get enabled. This works pretty much like mstsc, wherein you need to give credentials and log in to the remote machine.

 

The remote desktop will not communicate until you have access to 3389 port, so now again you need to raise a genie ticket to enable port 3389 for remote desktop. We already had a machine which was having this port opened. We connected to the remote machine and found that the Microsoft.Identity dll was missing. This was a common issue with most of the cloud based application. Once we figured out the problem, we went back to vsts clicked on the Microsoft.Identity dll and enabled Copy to Output as Copy always. The issue went away like a charm :).

 

5. Helping hands from Experts

In pursuit of any innovation, one cannot achieve the objective if he tries to walk alone. Every Innovation is backed by experts and there undeterred aid. This project would not have been successful if experts in cloud had not helped. Burning the midnight oil for your own deliverable is understandable, but spending late hours helping resolve an issue which is not yours, is truly commendable. There resolute had made them more respectable in the eyes of me and my team.

 

Overall, I feel that considering these 5 pre-requisite any team starting with the development phase and can at least save 1 week and eventually can respond with quality and impressive results.