Actualmente me estoy involucrando en una startup, soy el único desarrollador involucrado en este momento, y los otros muchachos me están dejando todas las decisiones tecnológicas en este momento.
Para mi trabajo diario, trabajo en una empresa de software que utiliza tecnología de Microsoft en el día a día, utilizamos .NET, SqlServer, Windows Server, etc. Sin embargo, me doy cuenta de que, como startup, necesitamos mantener los costos bajos, y después de tener Una breve mirada al costo del alojamiento para Windows Me sorprendió ver algunos de los precios de un servidor dedicado. El más barato que encontré fue de £ 100 al mes. Además, si la empresa necesita escalar en el futuro y terminamos necesitando varios servidores, podríamos terminar desembolsando £ 10 de £ 000 al año en licencias de SQL Server / Windows Server, etc.
Luego eché un vistazo rápido al precio del alojamiento de Linux para un servidor dedicado y vi que el precio era muuuucho más bajo que el alojamiento de Windows. Un lugar estaba ofreciendo una máquina con 2 núcleos por menos de £ 20 al mes.
Esto me hizo pensar que tal vez el camino a seguir es el código abierto en Linux.
Mientras escribo una gran cantidad de Javascript en el trabajo (estoy trabajando en una aplicación troncal de una sola página en este momento), pensé que tal vez NodeJS y un marco web como Express serían geniales de usar. Entonces pensé que en lugar de usar SQL, ¿por qué no usar una base de datos NoSQL de código abierto como MongoDB, que tiene un gran soporte en NodeJS?
Mi única preocupación es que parte del trabajo que realizará la aplicación será construir dinámicamente imágenes y varias otras cosas relacionadas con la imagen, es decir, cosas que son bastante pesadas para la CPU, así que estoy pensando en escribir algo que sea muy pesado para la CPU en C ++ y consumiéndolo como un módulo en Node.
Ese es el trasfondo, pero básicamente Linux es una buena combinación para:
- ¿Alojando un sitio NodeJS / Express?
- ¿Compilando módulos de nodo C ++?
- ¿Usa una base de datos NoSQL como MongoDB?
¿Y es una buena idea pasar a estas tecnologías desconocidas para ahorrar dinero?
ACTUALIZACIÓN DE 3 MESES
He estado trabajando en esto durante los últimos meses, así que pensé en dar una actualización en caso de que alguien esté interesado.
Al final decidí no usar una pila NodeJS y Linux por la simple razón del tiempo. Estoy haciendo esta puesta en marcha de forma paralela, así que estoy trabajando 9 horas al día, luego me voy a casa y trabajo hasta tarde en la puesta en marcha. Mientras trabajo de esta manera, obviamente necesito ser lo más eficiente posible con mi tiempo, o nunca terminaré enviando el producto.
Después de tomar algunos de los consejos sobre este hilo, solicité Microsoft BizSpark y fui aceptado. Esto significa que ahora tengo acceso a la licencia de Visual Studio, la licencia de Windows Server, etc., todo de forma gratuita. Lo cual es asombroso. Afortunadamente, para cuando tengamos que comenzar a pagar por todo lo que entregaremos lo suficiente como para que no sea un problema.
Sin embargo, no creo que solo esté usando la tecnología de Microsoft, ya que he tratado de usar material de código abierto siempre que sea posible. El lugar principal donde hice esto es mi capa de datos, donde decidí usar PostgreSQL y MongoDB. También estoy usando BackboneJS en mi front-end.
A continuación se muestra un resumen de la tecnología / marcos que estoy usando actualmente:
- Material de base de datos estándar: PostreSQL
- Registro y almacén de datos: MongoDB
- ORM: Entity Framework 5
- Bibliotecas principales: .NET (C #)
- Marco web: ASP.NET MVC3
- Interfaz de usuario: Razor view engine / BackboneJS
fuente
Respuestas:
£ 100 / mes? ¿Cuánto le cuesta? ¿Cuánto va a costar tu entrenamiento ?
Si cuesta £ 100 / mes pero puede obtener una aplicación .NET en un mes, mientras que necesitará al menos 3 a 6 meses para ejecutar su aplicación node.js / C ++, vaya a .NET. Seriamente. Su tiempo es mucho más caro que estos pequeños £ 100 / mes.
Idealmente, sí, tienes razón en tu análisis. Lo que olvidó es cuánto tiempo le llevará construir todo esto (es decir, meses) especialmente en una tecnología que no conoce.
Ahora no me malinterpreten, soy un gran admirador de Node.js y los gustos (solo vea mi perfil de github ...). He pasado más que suficiente tiempo para saber cuándo usarlo. Usarlo cuando no lo sabes en un entorno de inicio (donde necesitas enviar ) no es realmente la mejor solución.
Además, no estoy seguro de si esto podría funcionar, pero no te olvides de Mono.
PD: saber cómo usar jQuery es una ayuda muy pequeña para node.js. Conocer JavaScript es de gran ayuda. No confundas ambos.
fuente
Con frecuencia vale la pena pasar a una pila de código abierto, pero es más probable que se deba a una combinación de factores:
Debe equilibrar esto, por supuesto, con el tiempo que tomará aprender nuevas plataformas y tecnologías de código abierto si actualmente tiene principalmente habilidades de Microsoft.
Es una llamada cercana en general:
fuente
El costo de los productos de Microsoft podría no ser tan malo como cree. Microsoft tiene varios esquemas disponibles que reducen en gran medida el costo de su software. La mayoría de ellos están dirigidos a empresas de desarrollo de software, pero puede haber un paquete que satisfaga sus necesidades.
Ejemplos:
BizSpark - Software gratuito de MS para startups
TechNet - Software MS barato - alrededor de $ 199 - $ 599 al año.
Puede valer la pena analizarlo, es posible que califique para algunas de las ofertas.
fuente
No es solo el costo de ese servidor de £ 100 / mes, necesitará una copia con licencia adecuada de Windows, Visual Studio, etc. para trabajar. Estos se suman considerablemente si lo hace sin recurrir a la piratería de software. Y una vez que comience a escalar y requiera muchos más servidores, y replicar SQLServer, redundancia y todo lo demás ... bueno, recuerde que MS no gana miles de millones de dólares de su división de Servidor y Herramientas porque lo regalan. Si bien el costo de su tiempo mientras se pone al día será mayor que el uso de lo que ya sabe, a largo plazo, los beneficios del costo de OSS superarán con creces su inversión inicial en tiempo.
En general, si bien puede ser cauteloso de probar esto con tecnología desconocida, debe darse cuenta de que de todos modos trabajará con tecnología nueva todo el tiempo. Usar node.js no es particularmente difícil, especialmente si ya conoce JavaScript, por lo que su costo adicional de familiarizarse un poco más se medirá en días en lugar de meses. Hay muchos tutoriales y ejemplos que lo pondrán en funcionamiento con el código prototipo en muy poco tiempo, y es probable que llegue a un muro de reescritura una vez que su inicio sea exitoso, sin importar en qué idioma escriba todo su código.
De todos modos, Linux se adapta perfectamente a la codificación C / C ++, encontrará que es uno de los sistemas más populares para Linux, si no el más popular. MongoDB también es una buena opción, aparentemente el soporte de 10gen es bastante bueno. Node.js también es bueno, aunque puede terminar escribiendo la mayoría de su servidor en el nodo, o usándolo como un simple contenedor de transferencia a su código C ++, dependiendo de qué tan cómodo se sienta con cualquiera de esos lenguajes.
Y se escala bien. Le sugiero que vigile Postgresql, ya que ahora tiene un tipo de columna JSON que le brindará muchos de los beneficios de los DB NoSQL, pero también le permitirá las características de DB relacionales. Postgresql es sólido como una roca, lo utilicé como parte de un sistema para los servicios de emergencia para que pueda confiar en su confiabilidad (¡menos tiempo de inactividad que el SQLServer en el mismo proyecto en realidad!
Para IDEs en Linux, desea eclipse. Es como Visual Studio, aunque instalar los paquetes para CDT (herramientas de desarrollo de C) es un poco más complicado.
Por último, es bueno aprender cosas nuevas, es posible que disfrutes tanto de la experiencia de Linux que odiarás ir a trabajar :)
fuente
Realmente no tengo una opinión sobre la parte del servidor de su pregunta (el nodo funciona bien en mi opinión, suponiendo que conozca JavaScript). Sin embargo, diré que las bases de datos noSQL funcionan muy bien con servidores Linux. Actualmente estoy usando una implementación de CouchDB, (replicación fácil ¡whooo!), En un servidor Linux y me encanta. En cuanto a la compilación de los módulos C ++, recomendaría vincular el trabajo intensivo de la CPU en javascript. Después de que funcione y decida que es lento, suba la colina del módulo C ++. En mi experiencia, habiendo codificado la manipulación de imágenes, el nodo puede terminar funcionando bien para sus necesidades de CPU.
fuente
"Primero, hazlo. Luego, hazlo bien. Luego, hazlo bien ".
Sugeriría lanzar lo antes posible, una tecnología que lo haga posible. Si le preocupa no tener opciones más adelante, codifique de tal manera que sea posible intercambiar módulos y migrar lentamente a otra cosa. Solo recuerde que el negocio debe ser lo suficientemente popular como para garantizarlo, y que pronto tendrá un producto que funcione.
fuente
Como una pequeña empresa aún no necesita servidores dedicados. Puede elegir la nube, que es más barata y ya incluye licencias de MS. Y estarías usando la misma pila que actualmente.
Hay muchas razones para cambiar a la plataforma Open Source, pero ahorrar unos pocos dólares en hosting no es una de ellas.
Además, tenga en cuenta que SysOps para la plataforma Unix / Linux generalmente se paga más que SysOps para Windows. Por lo tanto, su "ahorro" podría terminar costándole más.
fuente
Realmente estás viendo cambios importantes de paradigma aquí con las tecnologías desconocidas. Tuve un gran éxito al convertir aplicaciones ASP.NET 2.0 y ejecutarlas sobre mono con bibliotecas de terceros. http://www.ubiquityhosting.com/ ofrece alojamiento mono barato. Tanto MySql como Postgres admiten conectores ADO.NET, lo que le ahorra mucho tiempo de desarrollo. Normalmente desarrollo todas mis bases de datos en el estudio de administración de servidores sql y luego hago pequeños cambios en la salida de la tarea de generar scripts sql para que funcionen en mysql \ postgres. Me imagino que funcionaría de manera similar para ORM como NHibernate.
En cuanto a una aplicación C ++, siempre puede alojar algunos boxe usted mismo si el trabajo de backend es pesado en la CPU y no en el ancho de banda para evitar costos bajos y evitar servidores dedicados. Las máquinas de triple núcleo con 2 a 4 GB de RAM son baratas con Linux que se ejecuta sobre ellas.
Finalmente, es mejor concentrar más esfuerzo en las características, UI \ UX, interfaz gráfica y publicidad que venderán su aplicación en lugar de la pila de tecnología subyacente. Si comienza a recibir mucho tráfico de inmediato, siempre puede moverse a azul o amazon para manejar mejor la carga.
fuente
Si alcanza el tipo de escala que requiere ese tipo de dinero, entonces, en teoría, sus ingresos coincidirán con esos gastos y podrá obtener mejores ofertas y alojar cosas con su propio hardware. Una de las razones por las que sus cotizaciones son tan altas es porque alquila hardware y no lo compra y lo aloja usted mismo (cerca de Facebook, Amazon, Microsoft).
Mi primera pregunta es "¿qué hay de malo en que la compañía ofrezca ese tipo de precios" y cuánto costaría el servidor Linux en la misma compañía que el servidor Windows? Sé que estoy haciendo una pregunta en una respuesta, pero la pregunta en sí es la respuesta.
Mi única sugerencia es usar aquello con lo que estás familiarizado. Use los programas que existen para ayudar a las empresas como la suya a tener éxito, una vez que tenga ese éxito, puede implementar y realizar prácticamente CUALQUIER cambio que desee. Si obtiene ese éxito y puede pagar los precios más altos, podría decidir que en realidad no es un problema.
Como dije, sus preocupaciones son sólidas, pero ¿lo está mirando desde la escala correcta? ¿Ha visto las proyecciones comerciales para ayudarlo a decidir qué hacer? Me doy cuenta de que ya has decidido (en poco tiempo) lo que básicamente vas a hacer.
Solo trate de ver la imagen más grande, no le pagará a una sola compañía ese tipo de dinero para alojar sus servidores, es probable que lo haga usted mismo.
fuente
Hace casi 10 años, estaba en la misma situación. Sin embargo, todo mi software de Microsoft me fue entregado y tuve un pariente que era gerente en una gran tienda de Microsoft que me ayudó con el desarrollo. Un año y $ 50K en gastos más tarde, Microsoft realizó cambios en .NET que pusieron todo en un círculo y tuvimos que comenzar de nuevo (Larga historia corta. No preguntes).
Siguiendo el consejo de mi pariente, cambiamos a FreeBSD y Linux y, tres meses después, reconstruimos todo por prácticamente nada utilizando las mismas personas. Somos una pequeña empresa de desarrollo web próspera ahora y no hemos tenido que comprar ningún software (o hardware) desde entonces.
fuente