¿Necesito saber cómo administrar el bastidor físico del servidor para convertirme en un desarrollador de back-end?

Si bien nunca puedo recomendar ser tonto con respecto a su hardware (para que no lo tome a usted y a su gente de rack y stack), la realidad es que la mayoría de los desarrolladores no sabrían cómo instalar un servidor si viniera con instrucciones estúpidas de IKEA y un sherpa

Entonces sí, según la métrica “¿Todos los demás ya saben esto?”, Estás bien.

Probablemente al menos debería comprender los conceptos básicos de TCP / IP (como cómo usar ping / traceroute para hacer una solución de problemas básica) y cómo funcionan los puertos TCP, NAT y el equilibrio de carga (cómo configurar el equilibrio de carga basado en rutas basadas en nginx si usted ‘ re super-1337). En estos días, los usuarios de backend implementan con frecuencia microservicios en un montón de máquinas y luego agregan su contenido utilizando un equilibrador de carga (ya sea a través de un LB físico o utilizando una configuración clicky-clicky en, por ejemplo, VPC de AWS), por lo que debería preocuparse si cualquier cosa.

No, en absoluto. Es mi opinión que los desarrolladores deben tener al menos conocimientos básicos de racks de servidores e infraestructura de red en general, pero puede ser un desarrollador muy exitoso sin ese conocimiento. Especialmente con los lenguajes modernos que abstraen el hardware, cada vez es menos necesario comprender el hardware. Además, con el empuje hacia la nube y el control de contenedores, incluso no puede ejecutar su código en un rack de servidores en casa.

No absolutamente no.

La mayoría de los desarrolladores independientes utilizan una empresa de alojamiento como Webfaction, que requiere algunos conocimientos básicos de línea de comandos de Unix, o una Plataforma como servicio como Heroku, que administra casi todo por usted. Las empresas que tienen bastidores de servidores reales tendrán personal que las gestione.

No. Ese sería el trabajo de un administrador del sistema (“sysadmin”), no de un desarrollador.