locked
Which Azure services would I need for a readily developed application? RRS feed

  • Question

  • Hello...

    Sorry if there's already an somewhere on here for this... I found similar questions but all seem to be related to "building" apps on Azure. In my case, we have an already built application. So here's the deal:

    We are considering hosting our application on the cloud, so I would like some clarifications/suggestions on what the suitable option is for us on Azure. I'm not very versed on computing/network infrastructure; I'm just doing a preliminary research to see what is out there for us.

    Here's an overview of our application and needs:

    Our software, among other uses, is mainly a tools & asset management system used for tracking tool history, i.e. maintenance and field use. Our clients are service provider companies of a niche in O&G exploration. The application is...

    • Developed on Windows OS for Windows users.
    • Built using LabVIEW, and requires a run-time engine installed on the client machine.
    • Powered by Microsoft SQL Database (2005)

     

    Our Primary Needs:

    1. Various users in a client company should be able to use the software and access data simultaneously.
    2. Client companies should be able to access only their own data.
    3. User-size is an upward of 6 per company (and 10 companies in the first year). Most clients are in North America, but a couple are overseas.
    4. We (our company) should be able to update the software and database structure at will.
    5. Development and compilation will done on a local machine.

    So will the Virtual Machine suffice, or do we need other service(s) like the SQL Database?

    Sorry for the lengthy message, but I hope it helps someone offer a proper option for us.  I can't find a Microsoft email anywhere, and I rather type this stuff out.

    Thanks.




    Tuesday, February 11, 2014 12:41 AM

Answers

  • hi,

    >>Various users in a client company should be able to use the software and access data simultaneously.

    >>Client companies should be able to access only their own data.

    >>User-size is an upward of 6 per company (and 10 companies in the first year). Most clients are in North America, but a couple are overseas.

    About above requirement, you could use azure cloud service to host your service, and use your client app to call service from azure. Then you need create sql azure database to store data. If your customer uses intranet, you may need use azure service bus (http://www.windowsazure.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-relay/ ) to exchange data from intranet and azure . Due to your customers in different regions, you could use azure traffic manager (http://msdn.microsoft.com/en-us/library/windowsazure/hh744833.aspx ) to manage traffic. When your customers increased, cloud service support the auto scaling feature.

    Another way, you could use azure VM to host your service. And you need sql database also.

    >>We (our company) should be able to update the software and database structure at will.

    You could update your database directly when you use sql azure. But for updating software, base on my experience, I think you could create a azure storage, and store the latest version into blob. When your client checked the latest version, your client app could download the new version from blob (http://www.windowsazure.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs-20/ ). I think it is a good choice.

    >>Development and compilation will done on a local machine.

    You could develop your client app and service in local machine, you could only deploy them on azure.

    If I misunderstood, please let me know.

    Regards,

    Will


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    Wednesday, February 12, 2014 9:05 AM

All replies

  • hi,

    You can use SQL azure, azure storgae, VM/cloud service, and Azure Service Bus.

    1. SQL azure, you could save your data on sql.

    2.Azure storage, if you use VM, you may need store some files into azure storage, such as blob, table.

    3. you could use VM to host your service, also, cloud service may be a good choice. 

    4. service bus, if you use client app, if you use intranet, you may use service bus.

    Regards,

    -Billgiee 

    Tuesday, February 11, 2014 1:01 PM
  • hi,

    >>Various users in a client company should be able to use the software and access data simultaneously.

    >>Client companies should be able to access only their own data.

    >>User-size is an upward of 6 per company (and 10 companies in the first year). Most clients are in North America, but a couple are overseas.

    About above requirement, you could use azure cloud service to host your service, and use your client app to call service from azure. Then you need create sql azure database to store data. If your customer uses intranet, you may need use azure service bus (http://www.windowsazure.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-relay/ ) to exchange data from intranet and azure . Due to your customers in different regions, you could use azure traffic manager (http://msdn.microsoft.com/en-us/library/windowsazure/hh744833.aspx ) to manage traffic. When your customers increased, cloud service support the auto scaling feature.

    Another way, you could use azure VM to host your service. And you need sql database also.

    >>We (our company) should be able to update the software and database structure at will.

    You could update your database directly when you use sql azure. But for updating software, base on my experience, I think you could create a azure storage, and store the latest version into blob. When your client checked the latest version, your client app could download the new version from blob (http://www.windowsazure.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs-20/ ). I think it is a good choice.

    >>Development and compilation will done on a local machine.

    You could develop your client app and service in local machine, you could only deploy them on azure.

    If I misunderstood, please let me know.

    Regards,

    Will


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    Wednesday, February 12, 2014 9:05 AM
  • Thanks for your responses Billgiee  and Will.

    What we had in mind was a way to host our desktop application and database on the cloud, and have clients access it. This is so that we only have one machine to update when there's an upgrade.

    However, from my research, it seems that route requires a VM that we'd have to manage... and users are limited to some sort of virtual desktop access. Is that correct?

    Now....from your responses I gathering that services we would need from Azure than be quite extensive if its to work like we want.

    @Will Shao,

    What exactly are you referring to when you say "your service". Is that the database server?

    So far I'm understanding I would need a client application for users desktop, which will access the database on Azure. And updates be pulled from the Azure Storage. Is that right?

    Thursday, February 13, 2014 11:12 PM
  • Hi Immanuel,

    I appreciate you using msdn forum for asking question.

    Unfortunately there is no clear black and white answer for your question. Azure have different offerings some are readily consumable and some need quite some work before applications can be put on cloud. For instance your primary needs can be fulfilled by either PAAS or SAAS service offerings but it depends where you want to go with Azure, a big factor is cost involved with each implementation.

    yes VM will suffice if implemented correctly, but looking at your overview of application and primary needs I am guessing you would need sql database too. Big questions are what do you want to leverage from Azure? How much flexibility you have to change your application to use those Azure features? What budgetary constraints you have?

    Please let us know more details (specifics of your app) that you have questions for in context to Azure and we can try to help, if its not feasible to post here you can email me at vishal [dot] saxena [at] 7technologies[dot] net or vishalishere [at] msn [dot] com

    hope this helps.

    ---------------------------------------

    Please mark as answered if it helped


    Vishal Narayan Saxena http://twitter.com/vishalishere http://www.ogleogle.com/vishal/

    Friday, February 14, 2014 12:15 AM

  • yes VM will suffice if implemented correctly, but looking at your overview of application and primary needs I am guessing you would need sql database too. Big questions are what do you want to leverage from Azure? How much flexibility you have to change your application to use those Azure features? What budgetary constraints you have?

    Thanks for your response Vishal, and I'm glad you responded because based on my search on the forum, you seem to be the go-to guy for Azure questions.

    Anyway, generally, our initial motivation was  easier updates: to upgrade our application once, and have our clients automatically updated automatically. So cloud seemed like the best option. Therefore saving us the need to have install updates, etc.

    I also like the scalability Azure would offer. In our case this would mean the ability to allocate instances of the application for users as we grow... however it seems to me this would have to be done manually. Right?

    I do no really know the advance technically needs, just the end goals. So hopefully, this clarifies somethings for you.


    • Edited by Immanuel Dogman Friday, February 14, 2014 5:09 PM clarification
    Friday, February 14, 2014 5:08 PM
  • Hi Immanuel, 

    I appreciate your words of appreciation, I will be honest with you that it does clarify a little (not a lot :) ) yes Azure offers all you mentioned buts its not a grab and go, is it possible to discuss this offline and publish findings here for everyone later.

    i can be reached at skype: vishalishere or my email vishalishere[at]msn[dot] com 

    I want to make sure you are aware if the implementation of azure features are not done wisely it would result into an extra cost.

    regards,

    Vishal


    Vishal Narayan Saxena http://twitter.com/vishalishere http://www.ogleogle.com/vishal/

    Friday, February 14, 2014 11:56 PM
  • Hi Immanuel,
    Thanks for reaching out.
    here is my understanding of your solution and later in the email i have put couple of possibilities to use cloud
    Understanding:
    At present desktop App (written in dotnet), is available to local user, App connects to some SQL database (app connects to one / more than one db, not local to user), users have some kind of authentication mechanism that authenticates and authorize them to use only their data from the database (not sure if its one single db with multi-tenancy or separated db for each user).
    To be: This is my understanding where you want to be
    1. you want app to be deployed in cloud
    Question: what is the primary reason of app to be deployed on cloud if this is a windows application, if this is security, then we can explore alternatives to deploy on cloud.
    2. You want app to connect to the SQL db deployed on SQL Azure (guessing it would be multi-tenancy), in that case you would need SQL Azure, depending on your db size and scalability needs on db you can choose from different SQL Azure dbs (at end it comes down to cost)
    Options:
    1. Not sure if you really need the desktop app on cloud, assuming you have to have it on cloud, you would need at very basic A VM role, where you would deploy and setup the app as a base VM, that you may replicate for different clients / users of yours. keep in mind that with VM role you are paying for uptime, even if your user is not using your app.
    if you choose to use a vm from the azure provided vms then you are covered for licensing, else you would need to figure out licensing cost for OS that you put on the VM, and also the number of VM will influence the cost of your OS licensing.
    2. Alternatively you can also explore a hybrid option where you can keep desktop app on local desktop of users but it connects to the sql azure db (this can further be put in hybrid mode depending on your data, frequency of update to data etc.. for now it can be a pure sql azure db) 
    in this case you would not have to maintain much in terms of Cloud service maintenance, all you will have to keep up with is SQL Azure, backups of SQL as you would have been doing for regular db

    3. option 3 is to convert windows app to a web app and then put the entire solution on cloud.. that is kinda larger effort and may not be most appropriate at this point for you.


    Vishal Narayan Saxena http://twitter.com/vishalishere http://www.ogleogle.com/vishal/

    Monday, February 17, 2014 8:16 PM
  • Thanks Vishal. This helps clarify somethings.

    Personally, I prefer the hybrid (i.e just Azure SQL + local desktop app); but my manager wants the desktop app on the cloud as well... so I guess we'll try out a VM.

    However, I'm a bit unclear on the "VM roles" is this a synonym for the application instances?

    Up until now, I understood that with a VM I can delegated instances of the application/virtual desktops to users as needed.

    And, it seems you didn't catch what our primary purpose for the migration is. I mentioned that "...our initial motivation was  easier updates: to upgrade our application once, and have our clients automatically updated automatically. So cloud seemed like the best option. Therefore saving us the need to have install updates, etc."

    Thanks anyway.

    Wednesday, February 19, 2014 10:27 PM
  • Hi Immanuel,

    I meant Virtual Machines by VM roles, sorry for confusing you there.

    I understand your motivation but I dont see how deploying on cloud will make it easier, the technology behind updating a desktop client will majorly be same (of course unless you spend time and effort on making updates easier and quicker) it definitely gives you more control over things with cloud so you can decide when to update something.

    All the best with the project, let us know how it goes or if you seek any help.

    Regards,

    Vishal


    Vishal Narayan Saxena http://twitter.com/vishalishere http://www.ogleogle.com/vishal/

    Thursday, February 20, 2014 12:15 AM