Bueno, esta pregunta es bastante amplia ya que necesitas disociar el software/servicio de alojamiento y el software que quieres escribir:
– Para la parte de alojamiento :
— Tienes la solución PaaS en la nube como Google App Engine, Azure, Parse, etc. Todos estos servicios funcionan con un enfoque de «pago por uso» con un nivel gratuito (es decir, el consumo libre si no escalas). Es una solución agradable y fácil, ya que no tiene que preocuparse demasiado por las cosas que no son realmente relevantes (como la configuración de su servidor, hacer actualizaciones, preocuparse por el cierre del servidor, etc.)
— Usted tiene la solución de la nube IaaS como Google Compute Engine, Amazon (AWS), Azure, etc. Esta vez tienes una máquina virtual : significa que básicamente tienes un servidor linux y tienes que hacer todo (instalar el servidor que quieras como Apache, IIS, Node.js, Ruby On Rails, Java, etc. Instalar la BD, etc.). Tienes que entender que si escalas, es mucho trabajo diseñar una nueva arquitectura (¿qué servidor necesito? ¿dónde pongo mi BD? etc.) También es una solución «pay as you go» con un escalado «fácil» al principio (básicamente sólo tienes que pulsar un botón para hacer tu servidor más potente) pero al final, no puedes’ hacer eso indefinidamente por lo que’ acabarás montando nuevos servidores con más preocupaciones ….
— Puedes alquilar un servidor y hacer lo que quieras con él (será lo mismo que la solución IaaS, sólo un sistema linux) pero esta vez no hay capacidad de escalado … Puede ser la solución más barata pero también la más arriesgada porque la noche que saltes de poca actividad a MUCHA actividad, querrás llorar :/ (y será mucho trabajo).
Así que, básicamente, por el precio => alquilar un servidor. Para la escalabilidad => PaaS.
(Es mi PoV, puede ser defectuoso.)
– Para la parte de software :
Bueno, realmente depende de qué servicio quieres proporcionar y lo que ya dominas. Puedes hacer Java, Ruby, Python, Node.js, .NET, PHP, etc. Cada uno de ellos puede hacer prácticamente cualquier cosa. Las preguntas que hay que hacerse son :
–¿Conozco ya los fundamentos del lenguaje?
–¿Me gusta cómo se construye y cómo funciona?
–¿Hay alguna documentación que trate de lo que quiero hacer escrita con este lenguaje en internet?
Bueno, creo que es más o menos todo lo que podemos responder =)