willthiswork89
willthiswork89

Reputation: 617

.net service as a Azure program?

I have a windows service that effectively allows clients to connect to it via TCP socket, and send/receive data to it. It has to be able to do this fairly quickly.

The service its self runs on a windows server currently, and spawns off a thread for each "room" it knows about. Each request that comes in via TCP socket, is parsed for what room it is in, and all requests get forwarded to the thread running that room.

The server side piece processes the request then sends back a response via the same TCP Socket.

I'm curious about moving this to Azure for the simple sake of scalability and manageability. But i'm not quite sure what services i should be looking at to do this. Does anybody have any recommendations?

This currently is running in an Amazon EC2 instance, with a RDS Database backend and some bits pieces utilizing S3.

Looking for move to azure due to some new partnering with some people who have virtually unlimited access to azure for little to no cost at all.

Upvotes: 1

Views: 54

Answers (1)

Horizon_Net
Horizon_Net

Reputation: 5989

In general, you have two services on Azure you can choose from (three if you count Virtual Machines to it, but they are harder to scale compared to the other two). The first one are the Azure Worker Roles, which are part of the cloud services. They exist since the early beginning of Azure and are build similar to Windows Services. A little bit newer are the Azure WebJobs, which lets you run several types of scripts, such as PowerShell or a Windows CMD, inside the Websites service. This service allows you to run your program either on demand, continuously (which should be your preferred choice in your scenario) or on a schedule.

For your scenario I would go with the worker role. It is very similar to a Windows Service (means that you ideally don't have to do a big rewrite of your code base) and easily scales out to a lot of instances. Nevertheless, you should keep some good cloud patterns in mind, especially when it comes to scaling out your service. There are some obstacles where cloud services and worker roles behave in a different way than you might think.

Upvotes: 1

Related Questions