Tener una aplicación productiva consta de un conjunto de fases que te mencionaré a continuación. Pero prestaremos especial cuidado a una de estas fases: el despliegue de aplicaciones en servidores, específicamente en Linux.
Quizás comenzaste tu experiencia desplegando una aplicación con una aplicación monolítica y un VPS (Virtual Private Server) con cPanel y WHM(Web Host Manager), donde tu administración es restringida y el acceso por SSH no existe.
En algunas ocasiones, dependes del proveedor para cualquier cambio y no puedes elegir cuáles paquetes usar y cómo configurarlos. Además, tienes toda tu aplicación en un mismo servidor, es decir código fuente y base de datos. No tienes acceso a git y así suene increíble el código se sube por FTP, además tienes que compartir los recursos de tu máquina con otros usuarios que están realizando el mismo proceso que tú.
Pero no todo es malo, este enfoque nos lleva a entender que detrás de todo ese proceso gráfico ejecutado por cPanel se ejecutan algunas acciones en un sistema operativo. Unos comandos hasta ahora desconocidos que nos hacen sentir temerosos de nuestro saber, por miedo a cometer un error o porque muchas personas nos han dicho la consola es difícil de manejar. Es en este punto que se genera nuestra primera duda: ¿Cómo desplegar mi aplicación sin intermediarios y con un presupuesto limitado?
Lo primero que debemos elegir es la distribución de servidor a utilizar (Basadas en Red Hat o en Debian), y dónde desplegarlo, ya sea en tu propio centro de datos o en la nube.
Para desplegar nuestra aplicación en la nube tenemos diferentes proveedores: Digital Ocean, Linode, AWS ec2, GCP, Azure y más. En cada proveedor debes elegir el tipo de distribución a utilizar, sin tener que preocuparte por la instalación de la misma.
Una vez instalado el sistema operativo comienza un mundo maravilloso que te llevará a encontrar desafíos, retos, tristezas y alegrías.
El primer contacto probablemente será con una consola de Linux. Te recomiendo que busques sobre sistemas de ayuda en el sistema operativo, los comandos man e info son buenas fuentes de información, estos comandos dependerán directamente de la distribución que elegiste.
Después de conocer información de tus herramientas, entiende cómo funcionan los usuarios, los grupos y los permisos , da una revisión a los tipos de archivos, como listarlos, verlos, modificarlos, también debes entender cómo realizar administración y manipulación de archivos.
Una vez dominados estos temas, empieza a instalar servicios (bases de datos, web, email). Entiende el sistema de archivos, el sistema operativo, como manejar la memoria, el disco, la CPU y los procesos. Por último, pero no menos importante, automatiza y realiza infraestructuras escalables, resilientes y altamente disponibles.
Recuerda que no se trata sólo de Linux, para administrar servidores debes conocer algunos conceptos básicos de redes, direccionamiento, manejo de puertos asociados a servicios.
En el Curso de Administración de Servidores Linux explicaremos estos temas con un mayor detalle, también te daré recomendaciones y tips a la hora de tener un servidor Linux productivo de cara a Internet. ¡Te espero en la primera clase!