2

Alright so here's the situation...

All of my coworkers are used to RDP'ing into a Windows server and doing all of their work there. Whether it be coding, SQL work, etc. Multiple developers connecting to the same Windows Server (either 2012 or 2016 currently) and running all the same applications. Their workstations almost act like thin clients, except they run Email on them.

We're working on supporting/customizing/deploying a new software package that's in C#, thus we're using Visual Studio. I've been stressing that instead of purchasing a high performance server for everyone to connect to and work there, that we could just have a cheaper server for hosting the snapshot application (purely development environments) and then just run Visual Studio on our workstations, and access the projects over the network. Everything is in house, the servers are in a rack about 20 feet from my desk.

I'm now in charge of speccing out a server and giving the positives and negatives of all developers connecting to a single server and working on it (this could be 1-8 people simultaneously working in Visual Studio) vs. just running Visual Studio on our individual workstations.

Can anyone give me perhaps some other points of view here? My mind is setting off alarms all over the place with this project...

4
  • 3
    "All of my coworkers are used to RDP'ing into a Windows server and doing all of their work there" - Is there some technical/security/business reason for this? I can't believe this would be any developer's first choice as a way of working. E.g. What happens if the server goes down? or there's a network blip which disconnects everyone? or someone working-from-home loses their internet connection? Surely there's still going to be input lag, possibly lower framerates too. Perhaps ask the question from the other way around -- what barriers are preventing you moving away from this? – Ben Cottrell Mar 22 at 20:54
  • purchasing a high performance server for everyone to connect to and work there you mean multiple high-end servers, and beefy network connections. Because a Terminal server (that's what you describe here) can only handle so many concurrent sessions, and developer workloads are really heavy. – Panagiotis Kanavos Mar 23 at 7:30
  • BTW what are you doing working on-prem during a pandemic? Unprepared companies had to use VPN+RDP to allow people to work from home this way, but even then, it's RDPing to their old desktops. They quickly found out the limited bandwidth and latency made this a bit of a torture. Banks are using Citrix/RDP for work-from-home development for security reasons, but they have the bandwidth and the big Terminal servers – Panagiotis Kanavos Mar 23 at 7:46
  • except they run Email on them. so it's not security then. Why is this setup used? Instead of one big terminal server you could use more modern technologies like desktop virtualization through eg App-V. Applications are still locked-down, controlled and distributed centrally, but running in their own isolated VM on the client – Panagiotis Kanavos Mar 23 at 7:55
1

I've worked in a similar yet even weirder environment (each developer working inside a VM which was hosted on their own workstation). The reason for this was that corporate IT wouldn't let the developers install applications on their own physical computers, but they were allowed to do whatever they wanted within virtual machines. This had the side effect of also making hot-desking much easier for the huge number of contractors and consultants who had to share desks depending on what day of the week it was.

Run, don't walk, if these reasons apply.

5
  • Reasons for the final statement? – Doc Brown Mar 23 at 7:09
  • @DocBrown because the description fits a company that forces their employees to work on-prem during a pandemic. If they tried to work from home with RDP, they'd realize very quickly that neither the company nor the employees had the bandwidth to work this way. And even if they did, work would be a torture – Panagiotis Kanavos Mar 23 at 7:34
  • @DocBrown beyond that, it could mean a security-paranoid company. There are reasons to want to restrict access like this, eg in a bank for remote work. RDPing means the "workstations" are in the bank's control and attacking the thin clients wouldn't compromise them. This is also somewhat useful in large high-risk retail chains, like telcos. An AT&T shop isn't the most secure environment and an infected workstation could be a hacker's dream. Buying and managing 1000 thin clients and some big terminal server can be cheaper (according to Citrix salesmen) – Panagiotis Kanavos Mar 23 at 7:42
  • 1
    @PanagiotisKanavos: thanks for the input. I still would be interested in Jack Scott's respond. – Doc Brown Mar 23 at 8:35
  • 2
    Because they are excellent indicators (usually, naturally there are exceptions) of an organisation that values following rules for no reason (why are VMs more secure than the desktop they are hosted on?) over developer happiness and productivity. – Jack Scott Mar 23 at 9:41
1

There are advantages to the RDP solution for the company, as well as the individual developers.

As a developer, it doesn't matter where you are, you always have the same desktop and development tools available. Also, your own configuration is available in all these places. I worked from home now and then and RDP made life definitely easier.

If you need more disk space or more processing power, you phone the production department. They don't need to come to your computer, they can arrange to up your disk space or processor from their desk.

You are in need of using a new tool or library. Instead of you installing it and being responsible for the configuration etc, someone else is responsible. If you are in a security sensitive organization, these concerns are addressed by knowledgable professionals, that you can also ask questions.

For the company the maintenance of the environment becomes easier and cheaper. Only one installation of your development tools (editor, CI system, database software), so upgrading becomes easier. Schedule the upgrade, check if it has finished correctly and everyone uses the new setup.

Security bug fixes are done in one place and are thus easier to control. You are not surprised by a developer running insecure software versions.

To test a new setup, you do not need to make a mixed environment on some of the developers machines. You do it in one place, on a development server which you give some of the developers access to. Makes life easier for the people who maintain your environment.

Of course there are downsides. Do it wrong, and you will get reactions like @Jack Scott's above.

As a developer you want to check out new software. That has to be possible, so the development environment I mentioned earlier has to be available for that. When you like the new thing, you have to climb the hill of organizational inertia to get it in production.

The company may feel it is cheaper to centralise, but in practice it is not. You gain some by not duplicating some software, but as @Panagiotis Kanavos already warned, you need enough servers to process the workload. You want to overprovision disk space and processing power to remain flexible.

You will not get a definitive answer here. In the current setup it seems to work for your company, so you will have to climb the hill of organizational inertia to change. If you actually make out it is better.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.