Al ver que nadie ha respondido su pregunta en el contexto de los detalles en su comentario, intentaré explicar más de acuerdo con eso. Sin embargo, no desacredite las otras respuestas. De ninguna manera la gente NECESITA saber sobre hardware para hacer software en estos días; Las plataformas en la nube y los sistemas operativos son demasiado buenos para que tenga que preocuparse demasiado por los sistemas subyacentes.
Por lo tanto, desea aprender sobre hardware en el contexto de la web. Comience con algo realmente pequeño, algo que supere los límites de forma bastante rápida. Si se siente particularmente masoquista, use un arduino que sea compatible con Linux, pero de lo contrario sería mejor una frambuesa pi o el antiguo escritorio de su abuelo. Instale el servidor ubuntu y una pila LAMP. Eso le dará algunas aplicaciones con muchos recursos. Escribe algunas cosas de pasatiempo y sácalo de encima. Estudie los modos de falla que obtiene de los diferentes recursos que se están agotando y los cuellos de botella que impone el hardware simple. Una vez que esté harto de LAMP, purgue y use algunas tecnologías más limpias. Go, o Node (si ya está familiarizado con JS) o su idioma de elección, con un mariaDB (para SQL) o couchDB (para NoSQL) será mucho más eficiente y menos doloroso. Asegúrate de jugar también con Nginx en algún momento, porque esa cosa es increíblemente útil. Úselo para desarrollar su aplicación MVP y luego migre a la nube. Automatice TODO lo que haga para interactuar con su plataforma en la nube utilizando CI / CD y automatice las herramientas de configuración de la plataforma (terraform, pupet, chef, elastic beanstalk, composer, severless … hay HEAPS) Usted dijo que no quiere un sistema compartido, pero la mayoría de las plataformas en la nube le permiten tener instancias dedicadas. Incluso si no quiere ir por ese camino, aprenderá sobre las herramientas que necesita sin tener que desembolsar montones de cajas y espacio de CC. Ahora sabe lo suficiente como para poder administrar un clúster.
A partir de ahí, construya / contrate un clúster de máquinas antiguas o SOC y configure una base de datos fragmentada / agrupada, un equilibrador de carga (¡oye, Nginx!) Y ejecute algunas cargas virtuales en él hasta que las cosas comiencen a romperse y pueda tener algo que arreglar. ¡Para entonces deberías ser un experto!
- ¿Qué diferencia de rendimiento en el mundo real hace el uso de Java vs C ++ en un servidor?
- ¿Por qué la gente usa Ubuntu como un sistema operativo de servidor?
- ¿Por qué "whois google.com" devuelve información no deseada?
- ¿Cómo se conectan los servidores a internet?
- ¿Por qué se necesita un personal dedicado para administrar un servidor?
Sugiero Linux en lugar de Windows como plataforma para el aprendizaje porque es totalmente gratuito y la mayoría de los sistemas también lo son. En cuanto a las máquinas baratas, los RPI son excelentes, y hay toneladas de grupos de investigación y tutoriales que los utilizan, por lo que podrá obtener ayuda fácilmente.
Si desea obtener información sobre los componentes de hardware reales, comience construyéndose una PC para juegos e investigue. Como, REALMENTE HAGA SU INVESTIGACIÓN. ¿Elegir una CPU? Busque todos los modelos en el rango de rendimiento que desee tanto de AMD como de Intel y busque CADA característica enumerada en ellos, cómo funciona y por qué lo querría / no querría para jugar. Los servidores no funcionan mucho como las plataformas de juegos, pero aprende sobre las formas en que las características del hardware se complementan entre sí y para qué están destinadas.
Proceso de configuración inicial de arranque de red y herramientas automatizadas de creación de imágenes / configuración -> pupet, chef, beanstalk, etc.
Dado que quería usar MySQL específicamente, le sugiero que mire a mariaDB. Es una bifurcación de cuando fue comprada por Oracle y es casi completamente compatible desde la perspectiva del lenguaje y es menos defectuosa y más fácil de fragmentar / replicar / escalar de otra manera.
¡Buena suerte!