We have a WCF service which is hosted as a windows service with endpoints exposed over tcp. We need to migrate and host this on Azure Service fabric.
Would like to know which option within Service fabric would be better :
1. Stateless Service
2. Guest Executable
Also what are the steps to migrate the same.
Any pointers would be very useful.
Thanks
Avanti
Both solutions are suitable for you,
Guest Executable: You can migrate the service as-is without code changes, the only work required will be configure it in the application within SF, configuration like exposing the ports used by the service, define startup parameters, and required settings.
Stateless Service: You need to write the hosting of the service using SF application model, this will make changes to the original solution and might add changes to other dependencies, like for example if the service has 32bit dlls that does not run on 64bit.
I would recommend you start moving it as a Guest Executable, then move to Stateless Service in a later stage if you think you could make a better use of the platform features.
Regarding the guidance, you should be fine following the official documentation
Related
I have an Api Rest developed with entity framework core 3.1 in C #, I need to deploy the application in a virtual machine in Azure, but it does not work, most of the tutorials that I have taken talk about how to create the virtual machine and publish a web application simple, any guide, help or tutorial?
Generally the error is 500 (internal server error), and problems with the web config
You need to make sure that external requests can land and be processed by the Web Server (typically IIS) running inside the VM. For that you need to open firewall ports to allow inbound traffic within the VM as well as through the network interface (found on the Networking tab) of the VM within the portal.
An API is technically deployed as part of a web application. Hence the following links would help.
Link 1
Link 2 (Note: Video has no voice)
That being said, deploying your API as a App Service in Azure (PaaS) is a much better approach rather than using VMs (unless your API has specific requirements that it needs to be deployed in a VM). App Services also makes setting up other associated services e.g. Logging and monitoring, authentication, etc. much easier.
Originally I was going to deploy a new system I am creating straight into Azure app services
However part of the system needs to get data from a third party via a dll which is registered with regsvr
Is there any way of doing this or avoiding this?
I think I have to create a virtual machine?
Paul
Due to the way the AppService Sandbox works, you cannot execute a regsvr operation.
See also:
SQLXML on Azure Web sites
General information about the sandbox:
https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox
If you need this component, and want to avoid using virtual machines, you could try hosting the component as a web API inside a Azure Service Fabric cluster.
You can use OWIN to host the API, and it should be possible to register your dll via startup tasks.
Azure Service Fabric register COM component
https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cloud-services-migration-worker-role-stateless-service#startup-tasks
Depending on your application, you could either host everything in the service fabric API, or host only the component as an API there, while providing the actual application inside as Azure AppService.
I have an existing Windows Service application that can run as a service or as a console application. It can be build x32 or x64.
It will by configuration file try to use a ip address and a port number.
Once it has that it will accept and send SOAP messages back and forth and service the requests.
The question is can this be deployed to Azure in a webapp framework, where scaling to meet increases in customer load is automatic. If not what implementation would work, moving from what I have?
Azure Web Apps (web sites) are not going to let you install a Windows Service, as that requires admin-level access to install.
You'd either need to run your Windows service in cloud services (web/worker roles, which are stateless Windows Server VMs) or Virtual Machines (where you have full VM access).
Alternatively, you'd need to extract your service code (pulling it out of the service shell) and run it in a different way. How you do this is up to you, but Web Apps provide certain features (such as Web Jobs) which may fit your model.
I am new to Microsoft windows azure cloud and want to run my game server using node.js in azure cloud. I read the windows azure Node.js Developer Center site and it seems my server can run in azure cloud multiple ways.
Which azure option is good for my TCP game server using node.js?
Three options:
Web Site
Cloud Service
Virtual Machine
Web Sites are essentially shared web hosting, which only supports HTTP, so not an option for you.
Cloud Services are probably what you want. This is the core PaaS offering on Windows Azure. It will let you run pretty much whatever you want, as long as it runs on Windows. It supports TCP endpoints. There's are pretty nice tools for Node.js. There are two flavors of running Node in a Cloud Service: a web role or a worker role. Web roles use IIS and run Node.js behind it. That won't work for your raw TCP connections, so you'll want to use a worker role. A worker role will simply launch your Node app and leave it running forever.
Virtual Machines would work fine too, but they don't provide much value compared to Cloud Services. In a cloud service, you can spin up new VMs on demand, a load balancer sits in front of your app distributing traffic, your app will get restarted if it ever crashes, you can have your VM automatically patched without downtime, etc. Unless you can't run in a cloud service for some reason, you rarely want to use a raw VM.
tl;dr You want a worker role in a cloud service. :-)
Windows Azure does have a toolkit for Social Games on Github, this might help you in you in your endeavours, not sure it supports Node.js mind you, there should be some takeaways to help you.
https://github.com/WindowsAzure-Toolkits/wa-toolkit-games
This blog post gives a good breakdown on where to run what and use cases for each.
http://blogs.msdn.com/b/silverlining/archive/2012/06/27/windows-azure-websites-web-roles-and-vms-when-to-use-which.aspx
It really depends on your application, what backend does it have, number of users, performance, latency etc...
A word of warning though, running Node.js on Windows is mostly fine but there are several libraries that will not work. Don't know if it's a hard requirement that you use Azure but there are other Node hosting solutions out there.
Nodejitsu
Nodester
Those are only two, there are more out there.
Disclaimer: I'm building a Node.js hosting solution, modulus.io.
Sorry for ambiguous question title! I have an asp.net app which works with an additional third party software(burning glass- connects to web app via tcp/ip, requires - properly configured dns entry, fixed ip and minimum of 8gb ram and it is completely managed via command prompt) in a single dedicated server.
I want to convert my web form app to MVC and deploy it in azure and also move the third party software I use( with above requirements). Is it possible to achieve the above requirements in azure?
Which role should I use for burning glass?
The general rule is to install 3rd-party software in a Web or Worker role, alongside your web app if you'd like, as long as:
You can install via MSI or some other mechanism that doesn't require manual intervention
The installation time is relatively quick (maybe max. 5 minutes or so)
The installation is reliable
If any of those are not possible, you'd need to go with a VM Role to pre-install the app.
As far as managing an app via command-line: As long as you can make the command-line calls via your app, you're ok. If you need to enter commands into a console, then that's not practical in Windows Azure unless you can connect to the console remotely. Not knowing about Burning Glass, I don't have any idea whether this can be done.
While Windows Azure doesn't let you select your IP address, the assigned IP address remains in effect as long as you don't delete and redeploy your app. You can upgrade the app without redeploying, so that shouldn't be an issue for you.