Como administradores de servidores web, parte de nuestro trabajo es garantizar la disponibilidad y buen desempeño del servicio. Por lo cual hay que hacer uso de múltiples herramientas y tecnologías que nos ayudaran a mantener nuestro servicio funcionando al máximo.
Sobre la conectividad
Lo primero es garantizar la disponibilidad del servicio, para lo cual es necesario contar con enlaces redundantes, es decir, un primario y un secundario.
El enlace secundario debe de entrar en funcionamiento de forma automática en caso de que el enlace primario deje de funcionar.
También se recomienda contar con un tercer enlace de uso administrativo con el fin de garantizar el acceso al administrador en todo momento al servidor(es).
Además de los enlaces redundantes, también se requiere suficiente ancho de banda para satisfacer la demanda de datos, un ejemplo puede ser una conexión unmetered de 30-60 mbits burstable. Es importante que pueda crecer en caso de que se requiera mayor ancho de banda.
Recursos de computo
Esto es muy dependiente de los servicios proporcionados y el tráfico que se intenta recibir, sin embargo, una regla importante es contar con suficiente memoria y capacidad de procesamiento, por lo cual servidores con 4 GB de ram, y al menos 2 procesadores o procesadores dual core son recomendables.
También es importante contar con al menos 2 servidores similares de los cuales uno sea el respaldo del servidor principal, esto para contar con un respaldo en caso de que surja algún problema.
Configuración de red
La parte mas importante es el balanceo de carga entre servidores, esto se puede lograr vía dns, vía firewall, o hardware y software especializado.
El objetivo del balanceo de carga es distribuir el tráfico entre múltiples servidores de forma que ninguno se sature o supere su capacidad de procesamiento.
Configuración de aplicación
En caso de que la aplicación web sea muy exigente en el uso de recursos de computo, se puede recurrir a caches para optimizar el desempeño.
Existen muchos tipos de cache, de entre los cuales destacan los siguientes:
El proxy cache es utilizado cuando los archivos servidos por el servidor web, se encuentran a su vez en otros servidores, el objetivo es reducir la cantidad de peticiones hacia el otro servidor para servirlas directamente.
El cache de archivos y datos puede ser implementado de diferentes formas, por ejemplo, cuando se tiene un script que realiza tareas complejas, lo ideal es evitar que se ejecute una y otra vez, para lo cual se genera el resultado y se almacena en un archivo, después este es el que se sirve reduciendo así la cantidad de veces que se ejecuta el script.
Sobre el cache de base de datos, muchos gestores ya lo tienen implementado por defecto, mysql es uno de ellos. El objetivo es reducir el tiempo de espera y procesamiento de las consultas.
El OpCode cache se implementa cuando se hace uso de un lenguaje script que es el que procesa los datos, y que por su naturaleza de ser interpretado, se ejecuta cada vez que se hace una petición. Con este tipo de cache, se convierte en código nativo al parser del script reduciendo el tiempo de análisis y ejecución del script.
El objetivo de utilizar caches de diferentes tipos es mantener al mínimo la ejecución de los procesos demandantes, para que de esa forma, el servidor siempre este disponible y con la menor carga posible.