On-Premises Server Deployment: Server Requirements
This document outlines the essential server requirements and considerations for deploying your applications on-premises using Microsoft technologies. Ensuring your infrastructure meets these specifications is crucial for optimal performance, stability, and security.
Hardware Requirements
The following are baseline hardware recommendations. Specific requirements may vary based on your application's workload, expected user concurrency, and data volume.
Minimum Recommended Hardware per Server Role:
- Application Server:
- CPU: 4-core, 2.0 GHz or higher
- RAM: 16 GB
- Disk Space: 100 GB free space for OS and application binaries
- Database Server:
- CPU: 8-core, 2.5 GHz or higher
- RAM: 32 GB (or more, depending on database size and query complexity)
- Disk Space: Sufficient for database files, transaction logs, and backups. High-performance storage (SSD/NVMe) is highly recommended.
- Web/Gateway Server:
- CPU: 4-core, 2.0 GHz or higher
- RAM: 8 GB
- Disk Space: 50 GB free space
Storage Considerations:
- For database servers, separate drives for data, logs, and backups are recommended for performance and recoverability.
- Utilize RAID configurations (e.g., RAID 10) for critical data to ensure redundancy and performance.
Software Requirements
Compatibility with specific operating systems and software versions is critical. Ensure you are running supported versions to benefit from security updates and feature enhancements.
Operating System:
- Windows Server 2019 Standard/Datacenter or later
- Windows Server 2022 Standard/Datacenter or later
- Linux distributions such as Ubuntu LTS, Red Hat Enterprise Linux (RHEL) are supported for specific components. Refer to individual component documentation for precise Linux version compatibility.
Required Software Components:
- .NET Framework/Core: Install the latest compatible version required by your application. See .NET Versioning GuideInformation about .NET Framework and .NET Core version compatibility and installation.
- IIS (Internet Information Services): For Windows-based deployments, ensure IIS is installed and configured with the necessary modules.
- SQL Server: The specific version of SQL Server depends on your application's requirements. Consult your application's documentation for the exact version.
- Runtime Environments: If your application uses other runtimes (e.g., Node.js, Python), ensure they are installed with compatible versions.
Networking and Security
Proper network configuration and security measures are paramount for a secure and accessible on-premises deployment.
Network Requirements:
- Servers should be on a secure, isolated network segment.
- Required ports must be open between servers and for external access (if applicable). Common ports include:
- HTTP (80) / HTTPS (443) for web traffic
- SQL Server port (default 1433)
- Custom ports as defined by your application
- Ensure sufficient bandwidth and low latency between application and database servers.
Security Best Practices:
- Implement a firewall with strict ingress and egress rules.
- Use SSL/TLS certificates for secure communication.
- Regularly patch and update all operating systems and software.
- Configure strong authentication and authorization mechanisms.
- Follow the principle of least privilege for service accounts.
Virtualization and High Availability
For robust deployments, consider virtualization and high availability strategies.
Virtualization:
- Support for major hypervisors such as VMware vSphere, Microsoft Hyper-V, and Nutanix AHV.
- Ensure adequate resources are allocated to virtual machines to meet the hardware requirements.
High Availability (HA) and Disaster Recovery (DR):
- Implement clustering for critical services (e.g., SQL Server Always On Availability Groups).
- Plan for regular backups and test your disaster recovery procedures.
- Consider load balancing for web and application servers to distribute traffic and improve resilience.
For detailed configuration steps and advanced scenarios, please refer to the specific deployment guides for your application.