Hace muchos años, en una galaxia muy muy lejana, existían empresas que todavía contaban con complejos centros de datos, en los cuales, albergan todas sus bases de datos y aplicaciones empresariales, la cuales soportaban toda la operación de la empresa. Cuenta la leyenda, qué estas empresas gastaban grandes cantidades de dinero para mantener sus centros de datos operando y a pesar de ello, tenía fallas con mucha frecuencia, fue entonces cual algo divino apareció, y es que la nube había llega para todos, nuevas y sofisticadas arquitecturas empezaros a surgir, como lo son Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), las cuales facilitaban en gran medida la operación de las compañías. Según la leyenda, estas nuevas arquitecturas trajeron tranquilidad y estabilidad al reino, hasta que llego … BackEnd as a Service (BaaS) y una nueva revolución empezó.
Fuera de broma… La arquitectura BaaS es una de las más recientes arquitecturas cloud que han repuntado en los últimos años, la cual consiste en olvidarnos por completo del concepto de servidores y aplicaciones, incluso, hasta casi nos podríamos olvidar de las bases de datos (al menos en administración), pues BaaS nos ofrece una nueva forma de crear todo el BackEnd de nuestras aplicaciones basadas en Cloud Functions ( funciones en la nube) las cuales son por lo general funciones escritas en JavaScript y que luego BaaS las expone como servicios, de tal forma que en lugar de tener una aplicación con cientos de objetos y procedimientos, tenemos una serie de Cloud functions, las cuales viven exclusivamente en la nube.
Para comprender mejor este concepto, debemos de comprender primero como funciona una empresa que utiliza centros de datos o servidores en la nube, en los cuales se despliegan las aplicaciones:
En la imagen anterior podemos apreciar claramente la forma de trabajar con centros de datos o servidores en la nube. Podemos apreciar claramente una aplicación que consumen datos desde el servidor y hasta aquí todo bien, sin embargo, cabe mencionar algunos detalles, primero que nada, podemos ver que todos los componentes que viven en el servidor, deben y tendrán que ser administrados por personal de la empresa, lo que implica que la empresa se encargue de administrar la seguridad, la aplicación de backend, base de datos y todos los servicios externos, como el componente de envío de mensajes de texto (SMS), las notificaciones PUSH para dispositivos móviles y todos los demás componentes que podríamos tener.
Este esquema suena natural, pues es a lo que hemos acostumbrado a tener durante mucho tiempo. Sin embargo, BaaS llego para cambiarlo, en una arquitectura BaaS o Backend As A Service, buscamos olvidarnos para siempre del concepto de servidores, seguridad, notificaciones y muchas otras cosas más:
Lo que nos ofrece BaaS es todo un conjunto de utilerías ya implementadas en la nube, en la cual solo nos preocupamos por desarrollar las funciones de negocio o servicios que necesitará nuestra aplicación para funcionar, de tal forma que, en lugar de desplegar aplicaciones, desplegamos funciones que posteriormente será expuestas como servicios para ser consumidas por la red. Otra de las ventajas que ofrece, es que cosas tan tediosas como la seguridad, base de datos sistemas de autenticación, sistemas de archivos, notificaciones, etc, etc, ya están implementadas, y solo hace falta consumirlas.
En este sentido, el proveedor se encargará de mantener siempre disponible nuestras cloud functions con una disponibilidad de casi el 100%, se encargará de asegurarse que nuestra base de datos este siempre funcional, por lo que no tendremos caídas de la base de datos o schemas llenos que detengan la operación, finalmente y más importante, la arquitectura BaaS nos promete un escalamiento infimito o elástico, de tal forma que hay que preocuparse por la memoria del servidor o el número de procesadores que requiera nuestras funciones, pues BaaS es capaz de detectar los picos e brindar más recursos a nuestras funciones. Desde luego, este esquema se cobra por tiempo de procesamiento o uso, pero aun que pueda resultar costoso, la realidad es que es mucho más barato que comprar el equipo, instalarlo y mantenerlo, sin contar la infinidad de fallas que tenemos en la operación por una mala gestión de los servidores, fallas que se convierten en tiempo de no operación y al final en dinero.
Hoy en día existen diversos proveedores que ofrece servicios como BaaS, entre los que destacan Amazon Lambda, Firebase (Google) y recientemente Stitch de MongoDB.
Conclusiones:
Como pudimos analizar en este breve artículo, las posibilidades y ventajas que ofrece la arquitectura BaaS es bastante bueno, sobre todo porque nos olvidamos para siempre de la administración de los servidores y tenemos con ello un escalamiento elástico, capaz de soportar picos inesperados y con un esquema de uso donde solo pagamos lo que utilizamos.
llegara el momento que los usuarios no funcionaran sin el proveedor de servicio..