For all the IT students, self-teachers, and new professionals

Situation: The days of internships, OJT, and "practical" entry-level positions are rapidly declining in favor of industry experience and domain specialization. Universities and teach-yourself-books do not provide the high-level training required to fill this need, and so it has become increasingly difficult for graduates and self-teachers to gain a foot-hold in the IT job market, and equally difficult for employers to find what they need. It is a lose/lose situation for both sides. There are two solutions to this issue:

  1. Start paying companies instead of colleges to give us the training we need and want. (Preferred)
  2. Build our own enterprise-grade testing/development center using free Microsoft software (Realistic)

A standard Microsoft based IT/Development environment typically consist of the software resources listed below. Even though Microsoft invented the COM standard, their software, while designed to work together, does not play nice when installed together. Realizing four months down the road that a critical feature you need to learn is permanently disabled due to an initial installation conflict presents serious issues. And because there is 0 documentation available regarding how best to install each application together under one domain (Colleges don't teach it. Books don't explain it.), we finally see the heart of the problem revealed.

Software resources:

  • Windows Server 2008 R2
  • Domain Controller
  • AD DS
  • DHCP
  • DNS
  • IIS
  • SQL Server 2008 R2
  • Exchange Server
  • Visual Studio 2010
  • Team Foundation Server (Version Control)
  • SharePoint
  • Lync
  • Hyper-V-Server

Hardware resources:

  • (1) Workstation
  • (2) Server 1
  • (3) Server 2

Problem Domain(The question): From a high-level perspective, meaning individual configuration details are not necessary unless critical to the answer, please describe how to install the software listed above on the hardware listed above without sacrificing functionality. Because most individuals typically do not have 5+ computers running two Octa-core processors, 32gb of RAM, and RAID 10 arrays, lets work under the realistic assumption that these boxes are modern off-the-shelf $500 Win 7 PCs with dual core CPU's, 4gb RAM, and a single 500gb HDD. If it's not possible to achieve the requirements, please say why and what upgrades are needed.

Please bear in mind that this answer is meant to assist technical individuals, not beginners, so the use of geek-speak and big words has been authorized. I will break down the low-level tutorial stuff myself and post it on a more appropriate tutorial site down the road. Also, please remember that this is a test environment, so there will not be 140 million records in the database or 9,000 users accessing the web server. There should be no abstract answers here; "It all depends on what you want to do with it" is an automatic fail. The individual does not know what they want to do with it because they don't know what it can do. A software developer may not know anything about SharePoint and a front-end developer may not anything about SQL Server; They only know employers want it and they must learn it, so it has to be flexible. The end goal here is for an IT Tech/Developer to sit down and have access to everything mentioned above without issues. (If it's possible)

Preferred Format: The best answer would be in a step by step format. For example:

Server 1:

  1. Install server 2008 R2 Note:Server must have 8gb ram for this reason, etc.
  2. Run dcpromo.exe and install Domain Controller [link to best practice]
  3. Install IIS [link to best practice]
  4. Install ... [link]
  5. Install Hyper-V[Link] Note: Make sure you blah blah, or else this[link] will happen, etc.
  6. .....
  7. ... Install Server 2008 R2 in the virtual NOS Note: Blah blah

Server 2:

  1. Install this [Link]
  2. Install that [link to best practice]
  3. ....
  4. ....


  1. Visual Studio [Link to best practice]
  2. Install ...
  3. Install ...

UPDATE I have not abandoned this post. When time permits, I will contact Microsoft directly to get conclusive information on best practices, bare minimum operations, etc. and post here.

  • I realize this is incredibly long, very complex, and waaaay outside of the Stack Exchange guidelines, but there is no where else to put this issue. People have been scouring the net for a decade trying to find a how-todo-everything guide, but one does not exist. Time for us to come together and make one. I have never used Virtualization software outside of VirtualBox or VirtualPC to test OS's, so if something must be virtualize please give me enough meat to bite into. I also humbly request that this get cross-posted to other exchanges by MODS, as it effects all IT domains. Thanks All Commented Feb 8, 2013 at 23:12

3 Answers 3


This answer is based on personal experience, from the 3 servers I have running on my home network.

Install either Server 2008R2 or Hyper-V Server onto machine B that supports virtualisation. Leave this as just having the Hyper-V role - run everything else under their own virtual or physical machines. Run it in Server Core mode if you are confident enough to.

Domain Controller - on it's own VM with nothing else - it doesn't need very much RAM at all to function well (512Mb is often enough for small instances), but it will cause issues with a lot of other things that you try and run alongside it. Run it in Server Core mode if you are confident enough to.

SQL Server - on it's own VM with nothing else and with fixed RAM or on its own onto machine A - it will eat up as much RAM as it can, so this is the most effective way to limit it.

Exchange Server - same as SQL Server.

SharePoint & TFS - on a VM together - they can co-exist well (as TFS uses SharePoint itself). If you install SharePoint first, TFS should be able to use the existing install.

Lync - heavily depends on what you'll be using it for, if it'll be handling calls then use machine A for this alone. If it's just instant messages or light usage, you can VM it.

  • I appreciate your feedback. Based on my own experience, current failed attempts, errors being thrown, hardware conflicts, etc. your answer seems to be the correct one +1. However, I am going to let this simmer for a bit before marking it as solved. I would like to make a few more setup attempts and really lock this answer down for future OP's. As another self taught IT guy, I'm sure you understand. Answers not buried in pages of complexity and BS are like gold to self learners : ) Commented Jan 31, 2013 at 23:11
  • 1
    No problem Josh, completely understand. As a side note, it is possible to run Active Directory on the host OS however there are potential licencing issues with adding any roles above and beyond just Hyper-V, it's harder to recover from problems in this configuration, and if you ever move to Server 2012 it will cause problems (which I found out the hard way!) Commented Feb 1, 2013 at 21:17
  • You can limit the amount of memory used by SQL Server: How to: Set a Fixed Amount of Memory (SQL Server Management Studio). Commented Feb 29, 2016 at 18:38
  • 1
    So strange to come back and read this now that I've been in the corporate IT world for years. I can now officially confirm what others have said. Virtualization is the key. I realize this may be a confusing concept to those just starting out, but it's something you will need to know. Commented Jul 31, 2018 at 20:49

The solution is Virtualization.

Not only because it is cheaper , but because maintaining it is easier than having multiple physical computers that needs management, having multiple virtual machines installing windows at the same time is much easier than having to go to individual computers to do it.

The free Vmware Player is pretty good, vbox gives better features, but I personally prefer vmware player for its performance. google for comparison of their latest versions.

For virtualization to work and allow for 64 bit OSes, the processor need to have VTx enabled, some processors do not have it, and some motherboards limit it (do not know why), so check the specification first.

Assign each VM 40~50gb of harddisk space, you can later increase if required.

I am not sure of ram usage, but I had a windows 7 x64 pc for SQL server + IIS + visual studio 2010, for small sized applications development, 4gb was more than enough, and rarely needed the page file.

Consider giving each VM enough ram to make the VMs not need to do allot of paging (page file), page file slows everything unnecessarily, this is specially important to consider since there will be multiple OSes using the same harddisk concurrently.


Do not pick already built computers, build your own, building your own has the benefit of being able to maintain everything yourself and have individual warranties, and if something goes bad, like a motherboard, you can put the harddisk on a different machine, or if the ram went bad, you can bring some ram from another machine.

Do not overspend on processors, quad cores are not going to make a huge difference in your scenario, dual cores should be fine.

Sometime processors with 20% performance increase costs 100% more, which isn't wise.

Make sure to pick something from the latest architecture (currently Sandy bridge , preferably Ivy bridge , or wait for Haswell), newer architecture always have better performance for the same clock rate, and better features.

You can never have too much ram, ram size is what matters, ram speed make very little difference in real world (speaking about DDR3)

Best practice:

In my opinion, this is something that you will have to learn while installing and running those applications, read about different installation options, and experience with them too, and then pick what YOU think is better.

I think some learning books will instruct you during such installations, I do remember reading about how to install in the beginning of an MS SQL book.

  1. Query business and IT systems. The main technologies in business and how they are reflected in IT.
    Business level task - IT task.xlsx
  2. Standards of business and IT.
    IT Standart minimal list.xlsx
  3. Important programming languages ​​and their value to the business.
  4. Programming languages ​​and their division in terms of IT.
    1. Important knowledge for business.
    2. Major knowledge to the system administrator.
    3. Important knowledge for the programmer.
  5. Systems with the best return on investment.
  6. Important low-level infrastructure issues.

The approximate composition of paragraph 6:

First need to give an idea of ​​the hardware capabilities. About how the hardware resources can be arranged. On the difference in the multiprocessor and single processor systems. The dependence of the performance of the application on the share nerasparalelennogo code and number of processor cores on which it is executed.

Give an idea of ​​the reliability of RAID arrays and their relationship. Withdraw the balance of probabilities of failure of RAID-5, RAID-10 and RAID-6. Show the practical difficulties and the results of the recovery RAID arrays. Organization backup. To show what is the scheme continued and emergency power equipment.

Improper organization of disk arrays, a wrong choice of the file system, the wrong choice of network protocol for access to the hard drives = a catastrophic drop in the reliability and performance of the disk subsystem. For example, when you have isspolzovat NTFS, and when Sanbolic Melio FS, OCFS2 or GFS2? Create mozheli evaluation of performance and features between file systems. This initial questions on which the infrastructure for storing and accessing data. They usually have no one understands.

Differences and ideas of different operating systems. Mechanisms of viral contamination, firewalls and worms, Trojans. Virus protection, response modification services operating systems. Low-level questions and the beginning of the BIOS operating systems. What isspolzovat network protocols to access file systems, and why. File systems, and network protocols.

  • 1
    I am not sure what your post is about, but looking over your 'business level tasks' link it appears as though you're are attempting the same logical structuring of the IT domain as I am. IT_STRUCTURE ... It has not been an easy task, but the IT field has become a toilet of programming languages, frameworks, CMSs, confusing marketing gimmicks (such as GPU/CPU naming schemes), development tools, etc. Most of which all do the exact same thing. If someone does not bring order to this chaos, then things will only get worse Commented Feb 15, 2013 at 22:56
  • @JoshCampbell After seeing your question, I wanted to expand its boundaries. 1. Technology can be understood more deeply on different operating systems. 2. Coverage I know common business tasks wider than your proposed product list. Thanks for the information, interested in your opinion on the classification of questions. And the questions themselves.
    – STTR
    Commented Feb 15, 2013 at 23:23
  • I think you listed some excellent points, however the purpose behind this thread was too eliminate the abstract reasoning behind the installation and configuration of the development environment. The fact that so many companies use different products which all require additional learning yet do the same thing, is the biggest point of frustration for people. I want to give the community a very simple guideline which says 'this is everything you need, and here's how to install and configure it.' If others want to learn 80 different products to achieve the same solution, all the power to them. Commented Feb 17, 2013 at 1:07
  • @JoshCampbell There are common techniques that are everywhere. XML and XSLT. LDAP, DNS - common to many platforms. One way to reduce training - start with common technologies. Assembler - the language explaining the structure of other languages. Way to cover everything at once is not the easiest.) Command line and its expansion - as the primary administrative tool, as a general tool for ideology. Not everything is possible with the help of GUI. The ideas at the heart of operating systems. Heterogeneous environment of different systems will improve learning.
    – STTR
    Commented Feb 17, 2013 at 1:30

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .