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
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.