> Manuales > Innovación en el desarrollo

Posibilidades de basar el desarrollo en la nube, servicios XaaS y cómo ayudan para un desarrollo rápido y de menor coste, algo esencial para las necesidades del mercado actual.

Ya que hemos hablado bastante de tecnologías backend y estamos haciendo un análisis de innovación en lo que respecta al desarrollo en general, vamos a detenernos en una de las ventajas más representativas de la nube para el desarrollo actual.

La nube facilita una infraestructura muy versátil, capaz de ofrecer servicios de lo más diverso, a diversos niveles y consumidores. Ofrece plataformas que se pueden ofertar como servicio (PaaS, Platform as a Service), Software como servicio (SaaS, Software as a Service) o de lo que vamos a hablar ahora Backend como servicio (BaaS Backend as a Service). Todas estas y otras variantes son lo que a veces se conoce como XaaS (Cualquier cosa "as a Service").

En su momento hablamos sobre las necesidades de las startups, que desean presentar una innovación en un tiempo reducido. En general, para acortar tiempos una tendencia actual es usar la nube para proveernos de una manera inmediata de servicios que si tuviéramos que proveer y desarrollar sería mucho más costoso para las empresas.

Backend as a Service

El primer ejemplo de utilidades de la computación en la nube que vamos a ver, por su importancia para el desarrollo rápido, sería disponer de manera prácticamente automática de un servicio tan importante como el backend. Estos proveedores y plataformas nos ofrecen soluciones pensadas para sustituir el backend tradicional por un servicio preparado para ahorrarnos muchas de las tareas de programación del lado del servidor.

El paradigma de estas soluciones está basado en sustituir la programación por la configuración. No se trata de escribir líneas de código para resolver las necesidades de backend, sino en configurar el servicio en la nube para que opere como nosotros estamos necesitando.

Pero estos sistemas nos ofrecen soluciones que, en la terminología anglosajona, se conocen como “out of the box”. Listos para usar sin mayores complicaciones y que nos resuelven algunas de las tareas más recurrentes de toda aplicación web o App, en lo que al backend se refiere. Algunas de las tareas que nos ofrecen ya listas para usar son las siguientes:

Gracias a usar los sistemas Backend as a Service obtenemos varias ventajas:

El servicio de backend conversa hacia fuera típicamente gracias a API REST, porque es el modelo que nos permite tener un backend independiente del frontal. Ofrecen cualquier dato que puedas almacenar dentro del backend como un recurso REST.

Otra de la potencia de estas soluciones se basa en el completo soporte a cualquier tipo de desarrollo focalizado en cualquier plataforma.

Existen muchos servicios de este estilo, que nos facilitan un conjunto u otro de utilidades, con uno u otro alcance, algunos de ellos espectaculares en cuanto a funcionalidad.

Sería imposible tener una lista completa, pero algunos ejemplos de servicios populares son los siguientes:

Una de las posibilidades que llama la atención en algunos de estos servicios es la facilidad con la que se pueden compartir datos desde una plataforma a la otra, haciendo que los datos que escribes en el backend se empujen hacia cualquier cliente conectado en la aplicación. Esto puede llegar a convertir la programación de aplicaciones en tiempo real en un juego de niños, facilitando el acceso a los datos desde cualquier tipo de plataforma, muchas veces sin que tengas que programar nada.

Otros servicios en la nube

Ya que hablamos de la nube, otra de las tendencias es usar servicios de otras empresas o proveedores para poder realizar aplicaciones que se basan en varios servicios existentes. Esto te permite no complicarte desarrollando servicios que otras empresas están ofreciendo ya.

Hoy muchas de las aplicaciones que han triunfado consisten básicamente en ofrecer una nueva manera de acceso a servicios ya existentes, mediante una nueva experiencia de usuario que facilite la productividad, analítica, disponibilidad, plataforma, etc.

Estas empresas además están especializadas en realizar una pequeña tarea de las aplicaciones, lo que te asegura que no vas a tener que enfrentarte a diversos problemas de la operativa que necesitarías resolver si desarrollases el servicio por tu cuenta. Algunos de los servicios que ya tienes hechos en la nube y sobre los que puedes apoyarte en el desarrollo de una nueva aplicación son éstos.

Algunas ventajas que nos encontramos cuando usamos estos servicios en la nube:

Como todo en la vida, también podemos encontrar desventajas al usar los servicios de la nube. Principalmente que éstos tienen coste ya sea con una tarifa periódica o en base al uso, por lo que te vas a obligar a estar pagando durante toda la vida de tu aplicación. Aunque generalmente, en la mayoría de los casos compensará económicamente porque mantiene la inversión en el desarrollo más reducida y acotada específicamente al uso real que se va a dar.

Pero si las cuentas compensan, siempre puedes desarrollar tú mismo posteriormente un área si tu servicio web tiene éxito, evitando esos costes. Pero esa decisión lo normal sería tomarla cuando sabes con certeza que vas a tener un retorno que justifique el tiempo de desarrollo. Sin embargo, incluso a largo plazo y pese a un hipotético coste mensual, el outsourcing no suele representar un problema. Al final siempre vas incurrir en gastos de tus propios servidores, realizar el mantenimiento y mejora de tus aplicaciones, resolver incidencias, etc.

En general, como se puede apreciar, las posibilidades de la nube nos ofrecen una nueva manera de entender el desarrollo de aplicaciones con diversas ventajas. La tendencia es que poco a poco estas soluciones se introduzcan más en los modelos de negocio para los servicios innovadores.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual