Server Setup
Now that you have a settled on a technology tech stack, you will probably want to set up one or more servers to handle your development needs and host the production version of your software. Setting up a new server requires a substantial amount of work. You will have to select the hardware and software components that suit your budget and the needs of your team. In this section, we will provide a brief overview of the considerations that you will have to tackle prior to setting up your new server. We will also cover the resources that are available at the university to assist you with this process.
What is a Server?
A server is a computer that grants other computers access to data, software, services, or storage over the internet. The other computers on the network are referred to as clients and the server is always running and listening for requests coming from the clients.
Servers aid in resource prioritization and management in addition to offering a more secure and stable framework for software development and data exchange. Servers can host and provide services for various needs including software development, database management, data backup, file management, website hosting, etc.
Server Hardware
A server’s hardware configuration and form factor will depend on the primary functionality that the server is used for. Some specific server applications will demand features, such as fast write-speed drives to host and serve data out of large databases, high RAM and hardware redundancy for web servers, or multiple hot-swappable drive bays for file servers. Therefore, when selecting a server, you should consider the hardware requirements (RAM, disk storage, CPU, GPU, etc.) needed to enable the development and deployment of your software. All these factors will affect the cost of your server, so it is important to plan ahead and ensure that your server meets the team’s requirements without exceeding the allocated budget.
Server Operating System
Servers require specialized operating systems that are more robust and made to accommodate several users simultaneously. Some of the most popular server operating systems include Windows Server Essentials, Linux Ubuntu Server, Red Hat Enterprise Linux, and CentOS.
A key factor that significantly influences the cost and functionality of your server is selecting the appropriate operating system. Before choosing a server operating system, take into account the following essential points:
- User-friendliness: When selecting a server operating system, simplicity of installation, configuration, and operation is important. Make sure to consult your developers to check if they have preferences or if they are already familiar with a particular server operating system.
- Support: The need and availability of support frequently impacts the decision to choose one operating system over another. Linux servers often require access an IT department that can provide the appropriate technical support. On the other hand, Microsoft offer multi-channel customer assistance aimed at small businesses without a dedicated IT team.
- Customization: Linux server operating systems are often more adaptable and offer a higher degree of customization than Windows.
- Cost: Linux is an open-source operating system so it is often considered the more cost-effective option compared to Windows. However, you must also account for the total cost of IT operations, user training, and server maintenance.
Server Configuration and Security
When configuring your new sever, it is important to take security concerns into account and address them early on. Make sure that your server is managed by a proficient administrator and that the developers have the necessary privileges and permissions needed to develop and run software on the server. Protecting your server using a firewall and data encryption techniques will help strengthen your server’s security. Lastly, make sure that you have data backup scripts to ensure that you can restore data that is lost due to a server failure or malfunction.
Server Hosting Services at McMaster
TODO