As things slowly grind into motion for the CommYou project, I'm realizing that I really do want to get a Linux box up and running here soon, to serve as my development server. There are a bunch of things I need to set up to get a dev server right, and I don't want to do them on the Windows box, only to have to repeat the process again in a few weeks on Linux. So I may as well move this along.
Problem is, I'm a total neophyte to Linux -- the last time I was deeply Unix-savvy was in the early days of Solaris, and there's a lot of water under the bridge since then. So I'm looking for advice, tips, and generally gotchas that I should look out for.
My current theory is that I'll take our old Windows desktop machine, and repurpose it. It's a bit behind the times, but not terrible: it was running XP just fine until we switched machines, and that upgrade was only because the hard drive was giving ominous errors. It's a very ordinary machine (a Compaq desktop from Costco), so I assume that the drivers are readily available. So I figure I'll buy a clean new hard drive, swap that in, and install a Linux distro over that.
That, however, is where questions come in. I know precious little about the distros, save that Red Hat is the old and famous one, and Ubuntu is reputed to have the least-bad UI. My needs are fairly straightforward: I need a machine that'll host Subversion, probably a Java/ANT build environment, and maybe Tomcat/Apache. (I'm currently serving Tomcat off of my development laptop, and may stay that way: it makes for an easier debugging experience.) This will be the machine that needs to be backed up, since it'll have the repository, so I'll probably want both an external hard drive with some kind of incremental backup software, and an online/offsite backup plan. I probably don't *need* much by way of an OS-level GUI, but I'm used to having one by now, so I have mixed feelings about how much I care.
Given all that, any opinions about which distro is most appropriate to my needs? Also, how does the process work? Do I just slap in the blank hard drive, put in a CD, and let it go, or are there complications I need to be aware of? I've never formatted a PC from scratch before (yes, really -- I am a wizard with software, but know bugger-all about hardware and IT), so I'm genuinely unsure of where to start.
Related to all this, I need to at least start thinking about an ISP for CommYou, that is used to reasonably normal JSP/Java/MySQL stacks. Ideally, I'm looking for a company that has both ends in terms of scale, and experience with rapid migration. That is, I'm looking for an inexpensive plan to start, while I'm still in alpha, but it is entirely possible that I might have to scale *way* up very quickly. So I am hoping for somewhere that has both an entry-level $250/month plan for now, and can kick up to a fully-hosted cluster reasonably quickly.
(Yes, I know: it is far more economically sensible to host my own machines at a colo if it gets that big. But it'll require hiring knowledgeable people and dealing with having a staff, and I do not anticipate that process being quick or smooth. So I'd like to have an option available to keep it hosted externally for a while, while the company grows into its feet.)
So, any recommendations? There are zillions of options out there, but I'm hoping for some information about which are better or worse.
As for the project itself, it's moving about as fast as expected -- that is, not as quickly as I'd like, but no major snafus yet. The initial "Hello, Mark" application is up and running on Facebook. That isn't especially impressive, but given that this is the first time I've done anything with Java/Tomcat, and I'm wading through large amounts of incomprehensible Facebook documentation, I'll take that as a first step for a week or so's work. Next comes writing the skeletal test harness, and getting the database hooked in. (Time to figure out if Hibernate really is the right tool for the job...)