• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

Consejos sobre Servidor de Desarrollo

Registrado
21 Sep 2020
Mensajes
5
Puntos
3
Edad
43
Buenos días señores, tengo un dilema de elegir una plataforma que me permita el rapido desarrollo de aplicaciones Full-Stack.
Soy Diseñadora Web y programadora de aplicaciones y me gustaría que me compartan sus experiencias y sugerencias a la hora de implementar una solución al respecto, tengo varias opciones entre las que elegir:
- Algún soft WAMPA (Windows, Apache, MySQL, PHP, Asp.net)
- Un PC Completo con Windows Server 2019
- Windows Server en VMWame Workstation (Servidor virtualizado en mi Workstation)

Que seria mas conveniente para mi plataforma de desarrollo.

Mis cordiales saludos.
 
Tiene que ser lo más similar al Servidor de Producción en Software y similares versiones.
En mi caso, con XAMPP en Windows 10 con similares versiones de Apache y PHP a del Hosting en Linux.

PD: Se me ha olvidado comentarte que los ficheros de los programas tiene que ser guardados con codificación UTF-8 para no tener problemas en ambos servidores.
 
Última edición:
Puedes utilizar el free tier de amazon AWS para simular subidas a produccion.
Un saludo!
 
Utiliza lo que te sea más cómodo. A veces utilizo XAMPP, otras el servidor de PHP, otras el del framework que toque, otras Vagrant con VirtualBox para automatizar el aprovisionamiento (con un script) de una máquina Linux Ubuntu... Y otras veces despliego en un servidor dentro de mi red local que no es más que un PC normal con Debian.

En definitiva, utiliza el más práctico en cada ocasión, entendiendo que como dice @kakadeluxe cuanto más se parezca al entorno de producción mejor.

No obstante, si estás con PHP, como parece ser el caso, desplegar en máquinas Windows no es buena idea.
 
No obstante, si estás con PHP, como parece ser el caso, desplegar en máquinas Windows no es buena idea.
Eso ¿por qué?. En la empresa tenemos ordenadores con Windows y el hosting en Linux, no he tenido ningún problema en desarrollar las aplicaciones Web de PHP en Windows y subirlas al hosting, solo tengo que tener cuidado con la codificación de las BB.DD de MySQL y de las aplicaciones, todo en UTF-8.
 
Eso ¿por qué?. En la empresa tenemos ordenadores con Windows y el hosting en Linux...
Tú mismo lo has dicho: desarrollar en Windows, desplegar en Linux. Hablamos de lo mismo :p

Dicho esto, las opciones que ha planteado @SkylarAstarot de máquinas con Windows Server... No tienen sentido.
 
Hola gente, muchas gracias a todos por sus sugerencias, soy Partner Microsoft y tengo la suscripción Visual Studio Dev Essentials, por lo tanto utilizo los servicios de Azure, Visual Studio, .net core y todas sus ventajas, el problema es que tanto los motores como PHP, .NET, MySQl y las compilaciones te devoran recursos, por ejemplo: Dependiendo de la instalación, MySQL puede consumirte hasta 32 núcleos y 64GB de memoria RAM (En el caso de Servidor de Base de Datos), todos los motores, frameworks y base de datos corriendo simultáneamente son muy exigentes, por eso mis dudas sobre poner todo en una PC dedicada o virtualizar.

Así mismo intentare probar esta ultima opción a ver si me funciona.
 
Hola gente, muchas gracias a todos por sus sugerencias, soy Partner Microsoft y tengo la suscripción Visual Studio Dev Essentials, por lo tanto utilizo los servicios de Azure, Visual Studio, .net core y todas sus ventajas, el problema es que tanto los motores como PHP, .NET, MySQl y las compilaciones te devoran recursos, por ejemplo: Dependiendo de la instalación, MySQL puede consumirte hasta 32 núcleos y 64GB de memoria RAM (En el caso de Servidor de Base de Datos), todos los motores, frameworks y base de datos corriendo simultáneamente son muy exigentes, por eso mis dudas sobre poner todo en una PC dedicada o virtualizar.

Así mismo intentare probar esta ultima opción a ver si me funciona.
Siendo Partner de Microsoft, es normal que PHP y MySQL en Azure consuma tantos recursos, es una manera descarada que tiene Microsoft para que utilices sus productos ASP y SQL Server en Azure.
En mi ordenador con un i5 2ª generación, SSD, HDD y 16 GB de RAM usando XAMPP con Apache, PHP y MySQL va muy agil y no consume nada en comparación con IIS, .Net Core y SQL Server que me va a pedales y lo tuve que quitar.
Me gustaría saber la opinión de @josejfernandez
 
@SkylarAstarot te estás liando.

De MySQL te refieres a las opciones que da Azure en cuanto a precios de MySQL, que van desde 1 núcleo hasta los 64 y 320 GiB de RAM. El uso de recursos de MySQL no depende de esto, depende de la carga a la que lo sometas. Estos niveles son los recursos máximos que ese servicio puede tener asignados en Azure, pero no quiere decir que esté consumiendo eso constantemente.

Por cierto, es buena idea utilizar MariaDb en lugar de MySQL. Azure también tiene un servicio de MariaDb, y tu aplicación ya es compatible con ésta porque MariaDb es 100% compatible con MySQL.

Dicho eso, por partes :p

Servidor de desarrollo

En este caso te interesa que tu plataforma de desarrollo sea local. El código siempre lo vas a escribir en local, la pregunta más bien es dónde va a ejecutarse mientras lo depuras o lo pruebas. Esto, casi siempre, lo harás en local. Si desarrollas en .NET, siempre es local. Cuando inicias una solución de Visual Studio, se lanza en un IIS Express local. Si haces Java, se lanza en un GlassFish, Tomcat u otros también en local. Si lo haces en PHP, se puede lanzar en un Apache+PHP local (sea con quien sea: XAMPP, WAMP o el que quieras).

Existen entornos de desarrollo que te permiten sincronizar tu código con un servidor remoto (NetBeans, PhpStorm), mediante FTP, rsync u otros. Esto no necesariamente te aporta ventajas, salvo que no tienes que tener el servidor web, el PHP y el MySQL instalados en tu máquina.

Este servidor remoto puede ser cualquier cosa: un PC en tu red local con Linux, un Linux virtualizado en tu propio Windows con VirtualBox, o incluso una máquina en Azure u otras nubes, aunque por practicidad normalmente no lo haces así, sino que lo haces en local. Principalmente porque la máquina remota cuesta dinero y la local no y hay que administrar dicha máquina remota (iniciar, apagar, mínima seguridad para que no accedan a ella, etc).

Por lo tanto, digamos que tu servidor de desarrollo siempre es local.

Servidor staging

Tradicionalmente era un servidor en el que se ejecutaba el software para probarlo en un entorno casi idéntico al de producción. Gracias a cosas como la virtualización y la integración continua puedes tener un entorno prácticamente idéntico al de producción de forma automatizada para ejecutar pruebas. Incluso el servidor de desarrollo puede ser exactamente igual al de producción si virtualizas.

Por lo tanto, no vamos a hablar de este servidor de staging ya que no lo vas a necesitar.

Servidor de producción (aquí desplegamos la app)

Este es el sitio donde la app va a correr en producción. Entorno final, definitivo, donde vamos a explotar la app. Aquí no hay ni el más mínimo lugar a dudas: tiene que ser un Linux. Dicho eso, en Azure dispones de máquinas Linux donde puedes desplegar la aplicación. Básicamente son máquinas virtuales con un Linux instalado, no tiene más.

Ahí puedes instalar tus servicios de servidor web, PHP, base de datos... Porque es un Linux 100% estándar, normal y sin cosas turbias hechas, más allá de instalarle la capa de compatibilidad con el hipervisor que instalan todos los proveedores.

Podrías utilizar los servicios de Azure de base de datos en lugar de tener la base de datos instalada en el servidor. Esto ya entra más dentro de la arquitectura que del desarrollo, ya que esos servicios son en realidad máquinas virtuales con un servicio MySQL gestionado por Azure instalado dentro, por lo que te ofrecen puerto abierto para que entres y le hagas lo que quieras.

Desplegar la app puedes hacerlo en la VM que consideres oportuna, pero yo te recomiendo empezar por las más básicas. Tienes VMs Linux desde 4 € al mes con 0.5 GiB de RAM, suficiente para aplicaciones de bajo tráfico con todo incluído*.

Escalar esa máquina ya dependerá de la carga que vaya teniendo tu aplicación. Si es mucha evidentemente la máquina se quedará corta y tendrás que subir. Hasta dónde subir, hasta dónde optimizar la aplicación y cómo irla escalando ya es otro problema diferente.

* Sí, puedes tener servidor web, PHP y base de datos en 0.5 GiB. Durante años yo he tenido máquinas sirviendo webs de clientes con esa configuración y cero problemas. En el mundo Windows parece que cualquier cosa que abras va a empezar a devorar gigas y gigas, pero los servicios Linux habituales son muuuy eficientes y empiezan consumiendo cantidades ridículas de recursos. Para que te hagas a la idea, un servicio de MariaDb en mi servidor LAN (lo uso para descargas, compartición de ficheros en casa y copias de seguridad automatizadas) está consumiendo ahora mismo unos 40 MiB de RAM. No es que tenga mucha carga, pero no se acerca a lo que dices de 64 GiB de RAM... No funciona así :p
 
Hola josejfernandez, cuando dices Linux, a que te refieres? Porque en si mismo no es ningún sistema operativo (Que tanto quisiera yo), sino una denominación a miles de softwares que comparten el mismo Kernel monolítico hecho en C y ensamblador (tiempo del siglo pasado). Por lo que pude averiguar "Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. Por ende, un error en una rutina podría propagarse a todo el sistema."

Ademas, miles de versiones del sistema operativo basado en ese Kernel, no genera ningún tipo de funcionalidad garantizada, ni compatibilidad con programas x86, por lo tanto sin lugar a dudas Linux queda completamente descartado.

Tanto Windows como Windows Server sabes que si algo no tiene compatibilidad con estos SO, no existen, y si algo no esta en Windows 10, no existe.
 
Hola josejfernandez, cuando dices Linux, a que te refieres? Porque en si mismo no es ningún sistema operativo (Que tanto quisiera yo), sino una denominación a miles de softwares que comparten el mismo Kernel monolítico hecho en C y ensamblador (tiempo del siglo pasado). Por lo que pude averiguar "Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. Por ende, un error en una rutina podría propagarse a todo el sistema."

Ademas, miles de versiones del sistema operativo basado en ese Kernel, no genera ningún tipo de funcionalidad garantizada, ni compatibilidad con programas x86, por lo tanto sin lugar a dudas Linux queda completamente descartado.

Tanto Windows como Windows Server sabes que si algo no tiene compatibilidad con estos SO, no existen, y si algo no esta en Windows 10, no existe.
Hola, SkylarAsfarot.
Lamento discrepar contigo, GNU/Linux es un sistema operativo completo, y bien como tú dices Linux es el kernel que es monolítico y GNU es el conjunto de programas que amplían y extienden ese kernel monolítico a los ordenadores de cualquier tipo de procesador y arquitectura.
No existe miles de versiones del sistema operativo Linux basado en ese kernel, el kernel es el mismo (salvo el número de la versión que implanta funcionalidades o arreglar bugs con respecto a otra versión) y lo desarrolla un consorcio tecnológico sin ánimo de lucro llamada Linux Fundation lo que se diferencia es el tipo de implementación que se hace con ese kernel las distintas empresas que crea las llamadas distribuciones.

GNU/Linux está implementado en más del 80% de los servidores públicos, tú como diseñadora y programadora Web deberías tenerlo en cuenta, porque Windows Server es residual en el mercado de servidores.

Lee esto: 111+ Linux Statistics and Facts - Linux Rocks!

Y si quieres saber por qué Linux no tiene tanto éxito en los ordenadores de escritorio, lee esto: Por qué Linux triunfa en todo menos en el escritorio
 
Última edición:
Cuando hablamos de Linux hablamos de un sistema operativo, aunque en realidad Linux es sólo el kernel. No, Linux no es "miles de softwares", es uno: el kernel. Dicho kernel es empaquetado junto a un conjunto de programas en lo que se conoce como distribución de Linux.

Por lo que dices y preguntas entiendo que nunca antes has trabajado con Linux. ¿Es así? Interesa saber si quieres empezar a hacerlo o no. La recomendación genérica en este caso es: descarga VirtualBox e instálalo, descarga Ubuntu (Desktop, 20.04 LTS) e instálalo en una máquina virtual en VirtualBox y comienza a experimentar con el sistema.

Objetivos a corto plazo:

- Saber instalar software.
- Instalar PHP y ejecutar comandos en consola.
- Instalar Apache y configurarlo para que ejecute scripts con PHP.
- Instalar MariaDb y acceder a ella desde PHP.

Si no quisieras hacer todo eso estás de suerte, ya que Azure tiene un servicio administrado de aplicaciones para PHP: Azure AppService.

Otras cosas de las que hablas son muy enciclopédicas, pero descontextualizadas. No te afecta qué tipo de kernel sea Linux, ni que esté hecho en C y ensamblador (¿en qué lenguajes lo iban a hacer si no...?). Precisamente para eso trabajas a alto nivel con un lenguaje interpretado.

Luego hay un par de cosas que son un poco o_O:

Ademas, miles de versiones del sistema operativo basado en ese Kernel, no genera ningún tipo de funcionalidad garantizada, ni compatibilidad con programas x86, por lo tanto sin lugar a dudas Linux queda completamente descartado.

¿Funcionalidad garantizada? ¿Compatibilidad con programas x86? No entiendo nada.

¿Qué funcionalidad te va a garantizar el kernel si estás trabajando a alto nivel? Nunca vas a interactuar directamente con el kernel, pero es que en ningún sistema operativo va a ser así, mientras trabajes tan a alto nivel.

¿Compatibilidad con x86...? No tiene sentido. Precisamente al estar escrito en C es portable. De hecho ya es compatible con montones de arquitecturas, x86 evidentemente incluída. Te sorprenderá saber que puedes tener un entorno Linux dentro de tu Windows con el Windows Subsystem for Linux, y ejecutar un Linux como Debian o Ubuntu sin VirtualBox (utiliza Hyper-V) y con acceso "total" al sistema de archivos de tu Windows.

No obstante, no me gusta que se empiece en Linux con esta opción porque da la sensación de que Linux es una terminal distinta y no es el caso. Es preferible instalarlo en una máquina virtual y experimentar el sistema tal cual es.

Tanto Windows como Windows Server sabes que si algo no tiene compatibilidad con estos SO, no existen, y si algo no esta en Windows 10, no existe.

Acabarás dándote cuenta de cuán equivocadas son esas afirmaciones.
 
Última edición:
En serio crees que un "sistema operativo" liderado por un psicopata que insulto a Nvidia en una entrevista, y un linyera tupido que no es capaz ni de peinarse, tiene futuro? No me jodas tio, ya lo dijo Andrew S. Tanenbaum: Linux es obsoleto.

Necesito de un sistema robusto, que pueda con todas las cargas de trabajo posible, estable, seguro y escalable en un futuro, no se crean que PHP no funciona en Win Server, puedo aprovechar el Directorio Activo, el reinicio de servicios sin reiniciar el sistema, puedo desplegar una Infraestructura Hiperconvergente, asignar recursos a cada servicio, desarrollar complementos de IIS, y un largo etcetera que no me voy a poner a explicarlo.

Mas alla de que linux sea un programita que consuma 40MB, menos que una pagina .doc vacia, y puedo administrar todo desde una interfaz de usuario intuitiva, lo que me permite trabajar rapido. Ademas de eso, lo puedo tener gratis en Azure y con soporte tecnico oficial directamente de Microsoft, el creador del sistema.

Las miles de versiones llamadas distros de linux, que A esta basadas en B y esta en C, que asu vez tiene caracteristicas de H y 8 que tambien se mete un mashup de TXZr y toda esa basura no hace eleccion de un profesional, solamente lo usan porque es gratis y punto, aunque Windows Server y Azure tambien es gratis.
 
En serio crees que un "sistema operativo" liderado por un psicopata que insulto a Nvidia en una entrevista, y un linyera tupido que no es capaz ni de peinarse, tiene futuro? No me jodas tio, ya lo dijo Andrew S. Tanenbaum: Linux es obsoleto.
Aquí se nota un montón que tienes unos prejuicios anclados que nadie te lo va a quitar.
Solo decirte que la discusión de Andrew S. Tanenbaum y Linus Torvalds, el creador de Linux, es solamente académica; el 1º es un físico con sólidos conocimientos teóricos de informática y el 2º es un ingeniero de software con sólidos conocimientos prácticos de informática. Teoría vs. Practica sobre sistemas operativos.

Necesito de un sistema robusto, que pueda con todas las cargas de trabajo posible, estable, seguro y escalable en un futuro, no se crean que PHP no funciona en Win Server, puedo aprovechar el Directorio Activo, el reinicio de servicios sin reiniciar el sistema, puedo desplegar una Infraestructura Hiperconvergente, asignar recursos a cada servicio, desarrollar complementos de IIS, y un largo etcetera que no me voy a poner a explicarlo.
¿Por qué crees que los científicos de cualquier disciplina que usan las supercomputadoras utilizan Linux?, supongo que deben ser unas personas las más tontas e ignorantes que hay en el mundo porque no conocen las inmensas ventajas de Azure y Windows Server.

Mas alla de que linux sea un programita que consuma 40MB, menos que una pagina .doc vacia, y puedo administrar todo desde una interfaz de usuario intuitiva, lo que me permite trabajar rapido. Ademas de eso, lo puedo tener gratis en Azure y con soporte tecnico oficial directamente de Microsoft, el creador del sistema.
Por que está escrito eficientemente ese programita que pesa poco y administra una interfaz de usuario instintiva y resuelve problemas. Red Hat, Ubuntu, SuSE, etc... dan soporte de Linux si lo contratas, ya que el software es gratis.

Las miles de versiones llamadas distros de linux, que A esta basadas en B y esta en C, que asu vez tiene caracteristicas de H y 8 que tambien se mete un mashup de TXZr y toda esa basura no hace eleccion de un profesional, solamente lo usan porque es gratis y punto, aunque Windows Server y Azure tambien es gratis.
A mi Linux me cuesta 0 euros, en cambio Windows Server y Azure me cuestas un ojo en la cara y parte del otro. Estoy harto de la Pantalla Azul de la Muerte de :poop: Windows :poop: y todos los problemas que me da y que leo en el foro. aun así, lo sigo utilizando.

Esta discusión es estéril, la mía y la de compañero es aportar información técnica y la tuya es emocional, nadie te va a convencer mientras tengas puestas unas gafas de un color exclusivo a tu gusto que te impide ver con claridad y nitidez.
Quédate con Azure, Windows Server y toda la morralla de Microsoft para tener un servidor de desarrollo, de producción y lo que quieras. Al fin al cabo, es tu dinero y tu tiempo.
 
Última edición:
Entiéndeme @SkylarAstarot , a mi me da igual lo que uses o de quién seas partner. Has planteado una duda, te hemos aportado experiencia y conocimiento gratis y tú reduces todo a un ridículo Windows vs Linux basado en cuatro trivialidades copiadas y pegadas a golpe de buscador. No tienes experiencia en este campo y se nota.

Si quieres hablar con argumentos y no con chorradas o tienes alguna otra duda seria estaré encantado de ayudarte. En caso contrario, te deseo suerte.
 
Reporte al canto, ¿Qué ocurre?
 
Señores, nos relajamos, gracias.
 
josejfernandez Me da igual y me importa tres putas si sos ingenieri de Linux y otras chorradas estupidas, vos tenes prejuicios anti-imperialistas.
ESTO VA PARA TODOS! Las empresas, institutos de investigación y mas datacenters usan Linux porque NO PAGAN LICENCIA! Sois Gilipollas!!

El mejor resumen de lo peor y lo mejor, de la mano de una profesional.
 
josejfernandez Me da igual y me importa tres putas si sos ingenieri de Linux y otras chorradas estupidas, vos tenes prejuicios anti-imperialistas.
ESTO VA PARA TODOS! Las empresas, institutos de investigación y mas datacenters usan Linux porque NO PAGAN LICENCIA! Sois Gilipollas!!

El mejor resumen de lo peor y lo mejor, de la mano de una profesional.
Que te vaya bien.
 
Linux puede estar "desfasado" pero que casualidad que el top 500 de los superordenadores mundiales funcionana con Linux.
Que la infraestrucutra de internet funciona en linux.
Que Android y IOS tambien deriven de Unix que es madre de Linux.
Y muchas empresas usan Linux no porque no paguen licencia, el hardware que montan valen millones y una licencia de MS cuestas cientos o miles, es despreciable, el coste de un dia de un ingeniero de IBM/Cisco/Intel/Amd/Amazon/Redhat/NASA/Pentagono/Oracle cuesta mas que una licencia top. Se usa porque el codigo es publico, auditable y puedes ser modificado.
Hasta MS pertenece a la Linux Fundation. Y no te equivoque en Linux tambien hay licencias, es mas las empresas mayoritariamente pagan licencias de Linux, concretamente de RedHat.
 
Arriba