|
I saw the light a few years ago and have been using VMs a lot, and have moved from machines that had 8, 16, 32 and finally 64GB of RAM.
I have all sorts of VMs for development and testing, and even with 64GB, I have to be selective about what I leave running all the time--as I'm writing this, I have 57 VMs set up (and roughly 16-18 running), including a mix of Windows and multiple Linux distributions.
No need to worry about using multiple versions of VS side-by-side, or technical previews that might not upgrade cleanly to the final version, etc. When you have the room, you can keep everything isolated and not have to give it any second thought, and you can concentrate on the work you're trying to get done, rather than the hardware running it.
|
|
|
|
|
How do you manage to get so much time maintaining so many systems, development environments?
|
|
|
|
|
In fact, maintainance of virtual machines is kind of a lot simpler than with hardware ones.
When you have an update to do and are not sure it will reboot, you can do as many snapshots as you need and switch between them at will. Plus, backups are way faster and reliable.
You can also create template virtual machines, that can be used as a fresh start skipping the OS installation procedure; you can focus the configuration rather than the core installation.
Virtual machines really make life easier.
Recently, VS (2015) started to crash whenever I tried to do anything dealing with Silverlight. I just had to switch back to the latest backup before failure; it took less than 40 seconds to solve the issue.
You always obtain more by being rather polite and armed than polite only.
|
|
|
|
|
Pretty much what phil.o said.
I have limited bandwidth at my disposal (5mbps DSL), so one of my VMs is running WSUS, which I use to control which updates get pushed out to the various OSes I run. Since I don't have to decide for each machine what needs to be installed or not, they all do automatic updates on their own. I don't need to be involved to get each machine updated every month.
Some VMs don't get powered on for weeks or months at a time, so I simply don't bother until it's needed. And then, some I consider to be "junk" VMs only used for a quick test, so I don't bother bringing them up to date at all.
Once a year, I take my "clean" Windows images--I have one for each version--and bring them all up to date. So when I need a new, clean machine, in the worse case scenario it'll have 11 months worth of updates to catch up with. For OSes that are no longer supported, like XP, 2003 or even 2000, Microsoft has ceased creating updates, so I haven't had to update those images in years now.
Snapshots are a godsend. Backups are trivial, as I only really need to make a copy of a single .VHD file. Robocopy makes it quick, as it'll skip any file that hasn't changed (eg, I haven't powered on a given VM since my last backup). I don't bother backing up the host itself as there's nothing installed on it except for motherboard drivers.
|
|
|
|
|
It sounds great according to your post and phil.o's sharing.
Installing so many VM's requires a lot of Windows licenses, and phil.o even have multiple Visual Studios.
--I am new to this area. Is there a way to save some money on OS and VS license fees?
|
|
|
|
|
If I'm not wrong, VS is licensed per developer, not machine, so with single license, for example VS Community, you can install it multiple machines as a developer.
Windows OS is per machine, so for every VM you need a license and separate activation.
.NET Core can run on Linux, so if you have Web based application, you may think to use .NET Core.
|
|
|
|
|
MSDN. I've been using it for years and it never complained about my key reuse.
For those saying this is somehow abusing the license, I ask, what is MSDN for, if not exactly this sort of development and testing? I'm not using any of these for any sort of "production" work where others use my machines to produce something without paying for a license.
Besides, not everything you do in a test VM as a developer requires an OS that's actually activated. OTOH, if you want to hang on to clean images that you keep patched up over the long term like I do, then you'll need to have those activated no matter what.
Linux is not a problem, unless you use some enterprise server distributions such as RedHat or SLES.
|
|
|
|
|
Docker is so popular nowadays, I'm playing with it too. But if I understand survey results correct, it's not used especially on production. Some of our customers testing Docker too, they approve projects to be run on test environment but not on production yet. Container technology is very good but I think it needs time to replace real and VMs.
|
|
|
|
|
Containers and VMs solve different problems. VMs come with the entire OS installed whereas containers come with only the kernel installed. However, there will undoubtedly be a migration of those apps which are more suited to container technology and which will gain the benefits and economies of scale offered from containers. VMs are not going to disappear though as they still solve very important problems, just different problems.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
Home | LinkedIn | Google+ | Twitter
|
|
|
|
|
Offline data — on a single machine
Personally, I would use a virtual machine for most of the stuff that I do. I have created multiple virtual machines on my own laptop, given them 4 GB of RAM (each) and use them for whatever purpose I need, such as cross-platform compilation of projects, learning and testing stuff. I believe a VM is enough.
Online or shared data
For cloud services, my own choice is Microsoft Azure. Microsoft Azure's services are one of the easiest ways to get online, I am working on a few articles and trust me, I haven't seen anything faster than deployment on Azure (plus there are other benefits — which might make this a promotional post!)
Finally, if the data that has to be processed is personal and private. Then I don't trust anything at all, I consider using my own laptop. I have built the server for my home myself, provide the services and features to my family right from the local network. And I would also recommend using a personal laptop if the case of data is sensitive. Online services may not be trusted as much, consider reading their privacy statements etc.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
Fogbugz and VisualSVn on my server over yonder.
|
|
|
|
|
But, if I have to be serious, then I use machines that are real, I guess.
Don't Virtual Machines actually run on a "real machine" or server? So, you can't have VMs without something real and tangible to begin with? or am I just retarded?
|
|
|
|
|
Exactly what I was thinking.
|
|
|
|
|
Could be that you use somebody else's VMs--whereby you don't control or have access to the host. I would say that should be represented on the survey differently than if you were in a situation where the host was also yours to manage and maintain.
|
|
|
|
|
Why Vagrant and Virtual Machine are separate choice?
I do not fear of failure. I fear of giving up out of frustration.
|
|
|
|
|
I'm guessing because vagrants easy button one stop setup/deployment tooling makes how you use a VM very different from creating it, logging in conventionally, and then doing all your setup/deployment afterwards.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
I do not fear of failure. I fear of giving up out of frustration.
|
|
|
|
|