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:
- Start paying companies instead of colleges to give us the training we need and want. (Preferred)
- 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:
- Install server 2008 R2 Note:Server must have 8gb ram for this reason, etc.
- Run dcpromo.exe and install Domain Controller [link to best practice]
- Install IIS [link to best practice]
- Install ... [link]
- Install Hyper-V[Link] Note: Make sure you blah blah, or else this[link] will happen, etc.
- .....
- ... Install Server 2008 R2 in the virtual NOS Note: Blah blah
Server 2:
- Install this [Link]
- Install that [link to best practice]
- ....
- ....
Workstation:
- Visual Studio [Link to best practice]
- Install ...
- 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.