Cómo crear un entorno de desarrollo web virtual y un servidor
Windows y Mac OSX han progresado como SOs amigables para el desarrollador durante los últimos años, pero cada desarrollador web realmente necesita trabajar en el entorno nativo de la web, Linux.
Este artículo le mostrará cómo obtener lo mejor de ambos mundos: mantener un sistema operativo estable y fácil de usar como Windows u OSX para sus necesidades diarias, al tiempo que obtiene los beneficios de desarrollarse en el mismo ecosistema que su código de producción..
Introducción
Gran parte de la web funciona con lo que los desarrolladores llaman “Pila LAMP.” Este acrónimo significa Linux, Apache, MySQL, PHP agrupados y funcionando como lo que normalmente entiende como un servidor web. (Una pila estrechamente relacionada, o conjunto de tecnologías, es “LEMP,” con el “mi” derivado de la pronunciación de una alternativa a Apache, Nginx, que se dice “motor x.”)
Puede notar que Linux se incluye explícitamente aquí, pero no es solo por esta razón que los desarrolladores recomiendan Linux. Las otras tecnologías, Apache (o Nginx), MySQL y PHP, tienen diferentes herramientas e implementaciones disponibles para las diferentes plataformas, pero por razones históricas y técnicas, las configuraciones basadas en Linux dominan el espacio del servidor y tienden a ser más predecibles..
La capacidad de predicción y la confiabilidad también son grandes razones por las que querría desarrollar un sistema operativo que utilice únicamente para ese fin: un sistema operativo dedicado en lugar de uno que admita la gran cantidad de tareas que realiza a diario como desarrollador web. Dicho de otra manera, no desea ejecutar un servidor en el mismo sistema operativo que necesitará reiniciar cuando sus nuevos controladores de gráficos estén instalados, o una máquina que deberá empacar y poner en una mochila para golpear la carretera con. La participación de los procesos y el software necesarios para ejecutar un servidor en su máquina de uso mixto es, en una palabra, desordenada.
Entonces, ¿cómo equilibra su capacidad para realizar múltiples tareas con su necesidad de desarrollarse en el contexto nativo de sus aplicaciones??
Entrar en máquinas virtuales ¿Qué es una máquina virtual? Todo lo que necesitas saber ¿Qué es una máquina virtual? Todo lo que necesita saber Las máquinas virtuales le permiten ejecutar otros sistemas operativos en su computadora actual. Esto es lo que debes saber sobre ellos. Lee mas .
Maquinas Virtuales y Vagrant
Las máquinas virtuales son programas que se ejecutan en su sistema operativo principal. De manera efectiva, le permiten ejecutar un sistema operativo completamente separado dentro de una ventana, totalmente contenido y aparte de cualquier otra cosa que esté sucediendo con su máquina física, pero a costa de algunos gastos generales.
Sin embargo, las ventajas son muchas:
- ¿Se equivoca al instalar, configurar o eliminar software? No es gran cosa, simplemente puede comenzar de nuevo con una imagen nueva..
- ¿Ha fallado tu experimento catastróficamente y ha congelado el sistema operativo a su alrededor? Nuevamente, no es un problema porque solo se efectúa la máquina virtual.
- ¿Necesitas iterar en condiciones ligeramente diferentes? Cada conjunto de condiciones, como diferentes versiones de software o software diferente (por ejemplo, usando Apache versus Nginx), puede convertirse en una máquina de software independiente o virtual “caja.”
Una herramienta llamada Vagrant te ayudará a implementar “cajas base” que contienen sistemas operativos Linux preconfigurados en una variedad de sabores.
En este artículo se supone que tiene cierta comodidad con la operación de una máquina virtual sin una GUI, y únicamente mediante una interfaz de línea de comandos (CLI).
Obtengamos un proveedor de máquinas virtuales y Vagrant antes de configurar un cuadro base.
- Asegúrese de tener un proveedor de máquinas virtuales para su sistema operativo. Tanto Windows como Mac OSX pueden usar Virtual Box. VMware también se ejecuta en ambas plataformas. (Windows 10 Pro y versiones superiores pueden usar Hyper V ¿Es una actualización de Windows 10 Pro con un valor de $ 99? ¿Es una actualización de Windows 10 Pro con un valor de $ 99? Windows 10 Pro ofrece más funciones, pero también tiene un precio de $ 99 para actualizar desde la edición Home. Aquí está lo que necesita saber para decidir si vale la pena actualizar las funciones profesionales. Lea más, que es un paso adelante porque utiliza mejor el hardware).
- Visite Vagrantup.com y elija un instalador apropiado.
- En la estructura de árbol del directorio local, cree una nueva carpeta para albergar el cuadro. (Las ubicaciones subordinadas a su perfil de usuario funcionan bien, las ubicaciones dentro de los directorios del sistema generalmente no lo hacen).
La configuración del entorno de desarrollo web
Aquí es donde ocurre la magia de la automaticidad: una herramienta llamada PuPHPet condensa y GUI-une el proceso de selección y configuración del software comúnmente utilizado en LAMP, e incluso va más allá al agregar soporte para lenguajes del lado del servidor como Ruby y Node.js ¿Qué es? Node.JS y ¿Por qué debería importarme? [Desarrollo web] ¿Qué es Node.JS y por qué debería importarme? [Desarrollo web] JavaScript es solo un lenguaje de programación del lado del cliente que se ejecuta en el navegador, ¿verdad? Ya no. Node.js es una forma de ejecutar JavaScript en el servidor; Pero también es mucho más. Si ... Leer más (técnicamente, JavaScript no es puramente del lado del servidor, pero sí lo es esta variedad), y alternativas a los otros componentes de la pila LAMP.
PuPHPet hace archivos de configuración base para Vagrant. El asistente incluye más de veinte dimensiones diferentes para configurar, por lo que solo repasaré algunas de las más destacadas.
- Destino de despliegue - Aquí puede elegir si desea crear una imagen adecuada para VirtualBox, VMWare y similares, o una que sea adecuada para la infraestructura de computación en la nube como AWS o Digital Ocean, entre otras..
- Sistema> Paquetes - Aquí puede incluir cualquier software que instalaría como lo haría en una instalación normal. En particular, debe incluir los paquetes que utilice para el desarrollo que se incluyen en la base de la distribución del sistema operativo..
- Para incluir dependencias de desarrollo para Ubuntu, especifique
elementos esenciales de construcción
- Para incluir lo mismo para CentOS 7, especifique
"Herramientas de desarrollo"
- Para incluir dependencias de desarrollo para Ubuntu, especifique
- Servidores web - Elija Apache o Nginx para formar la columna vertebral de su pila L (A | E) MP.
- Idiomas - PHP, Ruby, Node.js, Python.
- Bases de datos - Quizás una de las características más atractivas de este enfoque es la capacidad de construir máquinas virtuales para jugar con las diferentes variedades de bases de datos disponibles. Si bien MySQL es un valor predeterminado, es posible que desee jugar con algo más nuevo como el software de código abierto MariaDB y Forking: The Good, The Great and The Ugly Software de código abierto y Forking: The Good, The Great and The Ugly A veces, el usuario final Beneficios en gran medida de las horquillas. A veces, la bifurcación se hace bajo un velo de ira, odio y animosidad. Veamos algunos ejemplos. Lee mas .
- El resto de las opciones son un tanto exóticas, y si no sabe cuáles son, siempre se pueden instalar más tarde. Lo que tienes, después de todo, es un sistema operativo completo a tus órdenes..
PuPHPet, al final de este viaje de configuración, producirá un archivo. Descomprima eso en el directorio que creó antes de configurar los parámetros de su nuevo servidor.
Ahora, ejecuta lo siguiente:
$ vagabundo hasta
Y observa los resultados:
Como no tiene el cuadro base en su directorio local, vagrant recuperará la imagen del Atlas, un repositorio de cuadros de vagrant preconfigurados.
(Técnicamente, cualquiera de estos se puede agregar a su máquina local al emitir el comando: $ vagrant box add USER / BOX
)
Terminando
En este punto, su máquina virtual se inicia y está básicamente en línea. Sólo queda una cosa: emitir el comando $ vagrant ssh
para pasar a una sesión SSH adecuada con su VM (sin cabeza) que actúa como servidor LAMP. Felicidades!
Aprende más
A partir de aquí, hay más que decir y hacer en Vagrant y, como saben, una cantidad ilimitada para lograr con su propio patio de juegos de desarrollo. Echa un vistazo a la Guía de introducción oficial para continuar donde lo dejé..
¿Alguna vez ha utilizado una máquina virtual para su propio entorno de desarrollo? ¿Usaste esta configuración o tomaste un enfoque diferente? Comparte tus ideas en la sección de comentarios a continuación.!
Obtenga más información sobre: Máquina virtual, VirtualBox, Desarrollo web, Servidor web.