¿Cuáles son las principales tareas de operación y mantenimiento de un sitio web PHP?
Resumen en dos frases
1. Garantizar el funcionamiento estable a largo plazo de la empresa (como servidores de sitios web, servidores de juegos, etc.).
2. Garantizar la seguridad y confiabilidad de los datos (como nombre de usuario y contraseña, datos de juegos, publicaciones de blogs, datos de transacciones, etc.).
De estas dos oraciones, podemos deducir lo que los ingenieros de operación y mantenimiento deben aprender.
(1) Garantizar el funcionamiento estable a largo plazo del negocio.
Si hay un pequeño error, los usuarios se quejarán.
1. ¿De qué depende la empresa para funcionar?
Los servidores de sitios web generalmente son apache, nginx, tomcat, etc. Pero el proceso de ejecución real también requiere una base de datos Mysql para almacenar contraseñas de usuario, etc. Muchos programas requieren análisis de PHP, por lo que implementar entornos LNMP y LAMP (es decir, nginx, apache, mysql, php) es una habilidad que se debe dominar.
2. ¿Cómo podemos saber a tiempo si hay algún problema con el negocio?
Esto requiere un software de monitoreo que le notifique por correo electrónico o SMS, como zabbix y nagios. Para enviar un correo electrónico a la policía, debes tener un programa de correo electrónico, sendmail o postfix.
3. Se recibió una alarma en casa, pero el servidor es una IP de intranet. ¿Cómo puedo solucionar este problema?
Configure openvpn, pptp o openswan en la empresa, acceda a la intranet a través de VPN en casa y resuelva el problema las 24 horas del día... Por desgracia, no hay salario por levantarse en el medio de la noche para resolver el problema.
En segundo lugar, garantice la seguridad y confiabilidad de los datos.
Si comete un pequeño error, el líder querrá tomar té con usted.
1. A veces es necesario cambiar manualmente el contenido de la base de datos.
Por lo tanto, es necesario comprender los comandos básicos de agregar, eliminar, consultar y cambiar la base de datos Mysql.
2. ¿Qué debo hacer si el hardware del servidor de la base de datos está roto?
Necesita una base de datos de respaldo en caso de emergencia, por lo que se requiere la replicación maestro-esclavo de Mysql.
3. ¿Cómo debo restaurar la base de datos?
Por lo tanto, los datos de Mysql deben prepararse periódicamente en crond para su recuperación. Si desea restaurar a un momento específico, también debe aprender a realizar copias de seguridad y recuperación incrementales de Mysql.
4. ¿Qué debo hacer si las imágenes cargadas por los usuarios o el servidor de archivos no funcionan?
Es posible que la copia de seguridad programada no sea suficiente. Debe utilizar rsync plus inotify para realizar una copia de seguridad en tiempo real. De esta manera, el servidor principal falla en cualquier momento y se puede realizar una copia de seguridad y restaurar todas las imágenes.
5. ¿Cuidado con los piratas informáticos y aumentar la seguridad del servidor?
Los externos no pueden acceder fácilmente a Ssh, por lo que solo se permite el acceso a la IP de la empresa o a la IP de trampolín, controlado por iptables.
En tercer lugar, gran rendimiento
Las pequeñas empresas algún día serán geniales, pero si no, podemos dar el salto a las grandes.
1. Cada vez más usuarios visitan nuestro sitio web. ¿Qué pasa si el servidor web no puede resistirse?
Eso requiere múltiples servidores web, pero cómo equilibrar la carga entre múltiples servidores requiere un proxy inverso nginx o LVS+keepalived o haproxy+heartbeat.
2. Hay demasiados artículos y comentarios registrados por los usuarios. ¿Qué debo hacer si una base de datos no puede soportarlo?
La presión de la base de datos se puede dividir en lectura y escritura. Si no se puede escribir, debe dividir las tablas y bases de datos en varios servidores. Si la presión de lectura no es suficiente, puede usar mysql-proxy para separar la lectura y la escritura para compartir la presión de lectura. Una forma más sencilla y cómoda es guardar el contenido de la base de datos en la memoria mediante Memcache o Redis.
3.N usuarios suben y descargan archivos, ¿qué debo hacer si el disco no resiste?
Convierta varios discos en una raid o utilice sistemas de archivos de almacenamiento distribuido como MFS y GlusterFS para mejorar las capacidades de lectura y escritura del disco.
4. Hay muchas imágenes en el sitio web y los usuarios siempre se quejan de que el sitio web se carga demasiado lento. ¿Qué debo hacer?
En este momento, puede almacenar en caché las imágenes del sitio web en la parte frontal del sitio web a través de Squid o Varnish para mejorar la velocidad de acceso tanto como sea posible. Por supuesto, lo mejor es comprar una CDN comercial para acelerar.
5. Los operadores son un gran problema. Parece haber muy poco ancho de banda entre ellos. ¿Por qué es tan lento el acceso IP de China Unicom a nuestro sitio web de telecomunicaciones?
En este momento, puede utilizar bind para crear un servidor DNS, apuntar los registros DNS del sitio web al servidor DNS creado por usted mismo y configurar reglas de resolución. Posteriormente, la IP de China Unicom se resuelve en el sitio web de China Unicom y la IP de China Telecom se resuelve en el sitio web de China Telecom, y la experiencia será mucho mejor.
Cuarto, la automatización
El objetivo final: matar la máquina y dejar a los muertos inactivos.
1. La empresa compró 100 servidores nuevos y en realidad tiene 1 CD-ROM portátil. ¿Cuándo conseguiste este sistema?
Utilice kickstart o cobbler para instalar el sistema de forma remota en la red.
2. Cada instalación requiere mucha optimización.
¿Qué descriptores de archivos, puertos e instalaciones de software? La operación manual no es agotadora.
Aprender el shell rápidamente liberará mucho trabajo.
3. Después de instalar el sistema, deberá ingresar una contraseña al iniciar sesión. ¿Tantos conjuntos?
Utilice expect para leer automáticamente la solicitud de contraseña y ejecutar el comando.
4. ¿Qué debo hacer si quiero publicar nuevos códigos en el servidor en línea en lotes?
Utiliza montones de sal, marionetas o anspiel. Absolutamente genial.
verbo (abreviatura de verbo) otras personas
1. Crear un entorno de prueba completo requiere cinco servidores. ¿La empresa es pobre y solo tiene un servidor inactivo?
Aprende xen o kvm o docker. Los múltiples servidores virtuales pueden resolver problemas de recursos. Se recomienda especialmente Docker. En el futuro, el personal de I+D le pedirá que implemente un nuevo entorno y le ayude a resolver el problema en unos minutos.
2. El control de códigos y el control de permisos del personal de I+D siempre debe ser gestionado por el personal de operación y mantenimiento.
Svn o git, esto definitivamente está disponible.
Fin:
Ahora miramos atrás y pensamos, ¿qué suelen hacer los ingenieros de operación y mantenimiento?
1. Resolver fallos de alarma en cualquier momento.
2. Actualización del plan de negocio.
3. Escriba algunos scripts para monitorear o completar otras funciones que se puedan completar automáticamente.
4. Mejorar el marco de operación y mantenimiento, implementar algunas herramientas de código abierto más convenientes, confiables o de mejor rendimiento y formular especificaciones de procesos de operación y mantenimiento.
5. Realizar trabajos ocasionales, como cambiar conmutadores, instalar sistemas e implementar nuevos entornos.