10

¡Pero en mi computadora sí funciona!, La frase favorita de algunos desarrolladores

44268Puntos

hace 5 años

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.

Las primeras experiencias desplegando aplicaciones

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?

Obteniendo mayor control del despliegue de nuestras aplicaciones

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.

Mis consejos:

  1. Intenta crear un usuario diferente a root para tus pruebas.
  2. No abras más puertos de los necesarios.
  3. Corre los procesos con usuarios no privilegiados.
  4. Actualiza el sistema operativo cada tanto.
  5. Recolecta logs tanto de tu app como del sistema operativo y analízalos.
  6. Instala plugins de monitoreo del servidor.
  7. Contrata un proveedor con buen soporte.
  8. Verifica que no tienes vulnerabilidades en tus servicios y si es así, trata de corregirlas.

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!

Education
Education
Escribe tu comentario
+ 2
Ordenar por:
1
153Puntos

I have read and read a lot of your posts, great, your article has a good and very useful content, thank you for sharing.
mapquest directions

1
116Puntos

The article you have shared here very awesome. I really like and appreciated your work. I read deeply your article, the points you have mentioned in this article are useful
manga kiss