GMOD is a software toolkit for managing, querying and displaying biological information. This page discusses high level computing requirements / prereequisites for implementing GMOD components in your organization. The specific requirements for individual components can be found on each component's page.
GMOD Systems Administrator
It is tempting to think that the key computing requirement for GMOD is the computer itself. The key requirement is in fact the GMOD Systems Administrator, the person who sets up and maintains the computer. This person must be interested in and competent at managing your server.
If you do not have someone in this role, then you will have a difficult time getting your system set up and an even more difficult time keeping it going. This does not have to be a full time role, but you need someone in it with enough time to set things up, do regular maintenance, and to respond to crises.
If your group is part of a larger organization, then you will already have people doing computer support for you. At minimum, these people can help you with some setup issues, such as network support. If you are fortunate, they may be able to do everything for you.
Most of what this person does is known as systems administration. Systems administration is primarily concerned with setting up systems and keeping them going. The job involves some programming, but that is not its primary focus.
Qualifications and Hiring
If you need to hire someone to be your systems administrator then this section aims to help you with that task. It lists what we think are the important skills for a GMOD systems administrator. We recommend having one of your computing support staff interview your candidates. They are best suited to determine if a candidate has the technical qualifications or not.
A GMOD systems administrator should have these skills:
Installing and Configuring Software
This is the first task your sys admin will have to do and it is non-trivial. GMOD relies heavily on well established technologies like Perl, CPAN, Java, PostgreSQL, MySQL, and Apache. GMOD also relies on some popular but rapidly developing technologies like BioPerl.
For any operating system there are standard ways of installing these. Your sys admin should be familiar with how software is installed. However, installations of even these standard technologies rarely go right the first time. The candidate should also have a feeling for how to diagnose and fix a failed installation.
A good sys admin (or even just a minimally competent one) believes in their very soul in the importance of regular backups. You want a candidate who cares enough about backups to get them started very early, and to check that they are still working on a daily basis. Furthermore, you want a candidate who doesn't just do backups, but also tests that they can restore the system from those backups.
The belief in the importance of backups is more important than the knowledge of how to do them, which can be learned. In many cases your organization's computer support staff may already provide support for backups.
Computers are complex systems and diagnosing problems is part science and part art. An ideal candidate will have experience with this. They may not know the specifics of the technologies used by GMOD, but they will have had enough experience to know, for example, that many technologies support debuggers and logging, two things that are enormously helpful when investigating problems.
Your sys admin needs good written and oral communication skills. They will need to work with at least these communities:
- Biologists, inside and probably outside your organization
- Your organization's computing support staff
- GMOD community
- Their successor
Depending on the candidate's background (see Credentials), communicating with biologists may prove the most challenging for them. You want someone who is patient by nature, and who won't treat biologists with contempt because they don't know (or care) about the finer points of some technology. Ask a candidate to explain a technical point to you and see how they respond.
The last community, "Their successor," emphasizes that whoever you hire may not have the job for the entire time your project exists. They should be willing to document things that would be useful to whoever follows them in the job. This includes things like where software and data is on the file system, how backups are done, and what special tweaks had to be done to get things to work.
A good candidate will believe in the value of documentation, write it, and maintain it.
Credentials and Professionalism
Does a candidate need a degree in Computer Science? No.
Does a candidate need to at least be a Computer Science student? No.
What a candidate needs is some experience maintaining systems, an ability to learn, and a professional attitude.
What does a professional attitude mean in this context?
- They should be willing to tell you when choices being made can compromise the project. For example:
- Yes, we can do that, but it means our backups won't work for the next week. Or,
- Yes, I can do that now, but it means I won't be able to document the installation I just did until next week and by then I may have forgotten a lot.
- They will tell you when things aren't going well, or when they have messed up.
- They treat everyone with respect, including people in your group, any users your project may have, your organization's sys admins, and the larger GMOD community.
Operating system (OS) choice is the first decision you will make about your computing platform and it impacts all subsequent decisions. The intention here is not to start a debate on what rules or what stinks, rather to advise you on the choice of OS that will make your life easiest.
A discussion of the pros and cons of using different operating systems in GMOD follows.
Unix, Linux, and Mac OS
The Unix operating system has been around since the 1970s. Linux is a variant of Unix that has become very popular in the last decade. Mac OS is a Unix variant with the MacOS GUI on top of it.
Note: People use the term Unix to mean slightly different things. Sometimes they include Linux and/or MacOS and sometimes they don't. All definitions of Unix include Unix variants that are not Linux or Mac OS.
- Linux is the default operating system for GMOD and you are strongly encouraged to use Linux for your GMOD implementation.
- Most tools are developed on and for Linux operating systems, and most GMOD implementations use Linux as their operating system. If you need help with something and you are running on Linux, then the majority of the GMOD community can potentially help you with your problem. This is much less true if you are running on a different operating system.
- Which Linux?
- The official Linux distributions of GMOD are CentOS and Ubuntu. CentOS is a Linux variant based on Red Hat Enterprise Server. Ubuntu is based on Debian branch of Linux. However, many other Linux variants are compatible with GMOD.
- If you don't already have Linux up and running then you are encouraged to pick CentOS or Ubuntu, and if you are new to Linux, you will likely find Ubuntu easier to use. If you already have another version of Linux running and you don't want to switch then you can probably use that distribution without problems.
- Mac OS
- Mac OS from Apple is also a Unix based operating system. Mac OS, however, is not a Linux variant. Mac OS is built on the FreeBSD version of Unix. Because of its different roots, the difference between MacOS and a typical Linux distribution is greater than the difference between any two Linux distributions. If you run GMOD on Apples, you will need to do more work to set things up then if you were running on Linux.
- Other Unix
- This category covers any non-Linux, non-Mac OS version of Unix. This includes operating systems like Solaris, HP-UX, AIX, FreeBSD, and a multitude of others as well. These systems are all Unix based but are not Linux based. As such, implementing GMOD on these systems can be done, but it will involve additional work, in the same way that MacOS involves more work than Linux.
While Mac OS and other Unix operating systems are fairly close to Linux, Microsoft Windows is not. Windows is based on an entirely different code base and set of principles than are Unix-based systems, to avoid errors - optimize windows XP. There are users that run GMOD components on Windows machines, but there are relatively few of them. Running GMOD on Windows means significantly more work up front and greatly reduces the part of the GMOD community that can help you if you encounter problems.
Different GMOD components require different software to support them. Some require Perl or Java support, a database management system, a web server (such as Apache), or any number of other things. See each component for their specific software requirements.
This is the easy part. Any recently made desktop-style computer is going to be good enough to be used as your server initially. The assumption is that you are not setting up a server that will receive thousands of queries per day but some more modest number. Naturally you will want a computer that's reasonably well-equipped:
- 1 Gb RAM, or more
- 100 Gb hard drive, or more
- 1 CPU running at 2 Ghz, or more
- DVD drive
Some advice painfully learnt: once you've set up something that works for you make sure to make backups of your software and database. The DVD drive on your computer is one way to facilitate this, the other computers on your network are another way.