6 habilidades de administrador de sistemas que los desarrolladores web necesitan

Este artículo se centra en las habilidades de administrador de sistemas que todo desarrollador web debe agregar a su arsenal para crear mejores aplicaciones. Tener estas habilidades es importante porque el campo del desarrollo web está cambiando a un ritmo acelerado y las nuevas tecnologías están llegando a la carretera lo que parece ser todos los días, lo que significa que lo que es relevante hoy podría no serlo en el futuro, dentro de un año o dos. Luego están las actualizaciones constantes y los parches de seguridad.

Como desarrollador de aplicaciones web o de escritorio, el código que escriba se ejecutará en una máquina, ya sea su sistema local, un dispositivo o (posiblemente) un servidor. Comprender cómo funciona la máquina y el entorno en el que funciona mejorará la forma en que se construye la aplicación. Cuando se trata de entender cómo funciona su máquina, no hay nadie mejor con quien hablar que el administrador del sistema que lucha con la máquina día tras día.

Un administrador del sistema es el principal responsable de monitorear, alertar, administrar usuarios y:

  • Mantener el hardware y el software en el que se ejecuta el código.
  • Administre el entorno del sistema, incluida la red, las copias de seguridad de energía, etc.
  • Asegúrese de que el sistema sea seguro y accesible en todo momento, incluso en caso de desastre.
  • Creación de documentación para la continuidad.

Echemos un vistazo en profundidad a cómo cada una de estas habilidades es útil para un desarrollador.

Índice

    Hardware y software

    Apache2 y Ngnix son dos herramientas populares y ampliamente utilizadas para servir aplicaciones web. Apache2 es un servidor con subprocesos, mientras que Nginx es un servidor bifurcado. Esto significa que mientras Apache2 es bueno para servir contenido dinámico, Nginx es mejor para servir activos estáticos. Un desarrollador web que escriba una aplicación web y se limite a esta tarea específica sin dominar los hilos y las bifurcaciones será indiferente a la elección. Un desarrollador que está bien versado en el hardware o software que habilita su aplicación cosecha las recompensas de crear lo mejor.

    Dos buenos artículos para empezar son y .

    El entorno de destino

    Al crear software, la creación de redes está en la parte superior de la lista de cosas que un desarrollador puede ignorar. Por ejemplo, cuando se carga una aplicación, realiza 100 llamadas HTTP. Cada llamada tiene una latencia de 1 ms o 100 ms. Cuando 100 usuarios acceden a su aplicación desde la misma red, cada usuario se enfrenta a 100 ms de latencia para que se cargue la aplicación. No importa qué tan bien esté optimizada su aplicación, los usuarios que experimenten estos retrasos tendrán una mala experiencia.

    Si este factor se hubiera considerado en el momento del diseño, el desarrollador podría haber realizado las llamadas de manera inteligente con respecto a la latencia y otros factores (como el ancho de banda) que se están considerando. Entonces podrían haber ajustado la aplicación para ofrecer los resultados para los que fue diseñada.

    aquí.

    Seguridad y accesibilidad del sistema

    Un administrador del sistema es responsable de garantizar la seguridad, accesibilidad y confiabilidad de un sistema. Cada aplicación tiene su entorno definido por una herramienta de gestión de configuración. Si la aplicación escrita por el desarrollador tiene este problema en mente, entonces, en caso de que uno o más recursos clave no estén disponibles, la aplicación puede conmutar por error a los recursos alternativos y continuar funcionando correctamente.

    Asegúrese de que su sistema sea seguro. Dos artículos para empezar son y .

    Gestión de usuarios

    En los sistemas basados ​​en *nix, el código requiere privilegios para ejecutarse en el sistema host. Este privilegio se deriva del usuario que ejecuta el código en el sistema. Restringir los privilegios de usuario al mínimo y según sea necesario reduce la ejecución de código arbitrario con privilegios elevados.

    Obtenga más información sobre cómo administrar usuarios en .

    Monitoreo y alerta

    Cada vez que hay un gran evento en el que se anuncian nuevas funciones y aumenta el tráfico, los administradores de sistemas están en primera línea para mantener el espectáculo en marcha. ¿Cómo lo hacen? Controlan métricas clave como el uso de la CPU, la memoria y la actividad de la red para identificar picos de energía. A veces puede haber un ataque de denegación de servicio (DoS) en puntos finales públicos. Cuando se habilita el registro apropiado en la aplicación, el administrador del sistema puede conectar estos registros a sus herramientas de monitoreo y aplicar límites de velocidad a ese punto final específico para evitar que la aplicación se caiga.

    Algunas buenas guías para monitorear y alertar son y .

    Documentación

    Los grandes eventos de la historia se recuerdan hoy porque alguien eligió escribir sobre ese evento. Del mismo modo, conocer los matices del funcionamiento interno del sistema no es un hecho desde el primer día. Este conocimiento debe adquirirse trabajando con el sistema diariamente. Los administradores de sistemas adquieren el hábito de documentar el qué, el por qué y el cómo de una decisión específica, como a qué subred debe pertenecer un recurso. Esta documentación puede ayudar a otros administradores de sistemas a ponerse en marcha rápidamente.

    Los desarrolladores, mediante la documentación, pueden compartir el proceso de toma de decisiones que resultó en su código específico. Esta práctica puede reducir el esfuerzo cognitivo requerido para que un nuevo desarrollador adapte sus habilidades.

    Aquí hay algunas razones adicionales por las que la documentación es importante: .

    Conclusión

    Esas son muchas tareas para un administrador de sistemas, y todas ellas no son menos importantes. Para un desarrollador web, esto comienza con la comprensión de los conceptos básicos de hardware y software, así como los permisos de usuario y código. A continuación, familiarícese con la supervisión, el registro y las redes. Por último, pero no menos importante, escriba una buena documentación.

    Espero que este artículo ayude a los desarrolladores web a identificar habilidades clave para crear aplicaciones de las que se sientan orgullosos.

    Artículos de interés

    Subir