¿ Qué es un Backend as a Service ?
El mundo del desarrollo de software es tan amplio que en ocasiones, por falta de tiempo, pasamos por alto herramientas tan interesantes como lo son el concepto que os quiero introducir: Backend as a Service o BaaS<h2 class="blog-title-2">¿ Qué es ?</h2>El principio sobre el que se basa el concepto del Backend as a Service es precisamente, el hecho de poder prescindir del desarrollo de nuestra propia arquitectura de backend. Suena interesante, ¿verdad?. Tal como su nombre indica, nuestro desarrollo backend será reemplazado por un servicio que nos ofrecerá esta funcionalidad, normalmente, mediante una suscripción o pago por uso.Este modelo se fundamenta en tres características principales:<ul><li>Un conjunto de funcionalidades que podemos reutilizar (API)</li><li>Un SDK para hacer uso de las mismas.</li><li>Infraestructura desplegada íntegramente bajo arquitecturacloud.</li></ul><h2 class="blog-title-2">¿ Qué nos ofrece ?</h2>La mayoría de estos servicios suelen ofrecernos funcionalidades orientadas a cubrir necesidadesque se repiten con asiduidad en el desarrollo de aplicaciones. Entre ellas, podemos destacar:<ul><li>Autenticación : Con este módulo, este tipo de servicios evitan que tengamos que desarrollar complejas y tediosas lógicas de programación con el fin de implementar el registro e inicio de sesión de usuario.</li><li>Seguridad : Estos servicios suelen abstraernos de las tareas de restricción o limitación de permisos, utilizando para ello, algún tipo de reglas, roles o permisos que poder ajustar de forma visual.</li><li>Notificaciones Push : A día de hoy las notificaciones push son imprescindibles en cualquier desarrollo de app móvil, es por eso que los BaaS han decidido incluirlas entre sus funcionalidades básicas.</li><li>Base de datos : Cualquier desarrollo que se precie requiere de una base de datos para almacenar la información. </li></ul><h2 class="blog-title-2">Ventajas</h2><ul><li>Productividad: Es innegable que al disponer de cierta lógica ya implementada, el desarrollo de nuestras aplicaciones será mucho más rápido.</li><li>Ahorro: Precisamente el hecho de no tener que desarrollar nuestra propia lógica de negocio redundará en los costes finales de nuestra aplicación.</li><li>Simpleza: Estos servicios despliegan la arquitectura de nuestro back bajo un modelo integrado completamente en la nube, reduciendo o eliminando las tareas de configuración y aprovisionamiento de servidores.</li></ul><h2 class="blog-title-2">Inconvenientes</h2><ul><li>Dependencia : Al desplegar nuestra lógica íntegramente en un servicio, estamos completamente ligados a este, así como a sus condiciones, cambios, interrupciones en el servicio etc..</li></ul><h2 class="blog-title-2">Proveedores</h2>A continuación os listo algunas plataformas que ofrecen este servicio:<ul><li>Firebase : Una muy potente y útil herramienta, propiedad de Google.</li><li>AWS Mobile Hub : El MBasS de Amazon Web Services (enfocado a apps móviles)</li><li>MongoDB Stitch : A pesar de que aún se encuentra en fase beta, MongoDB nos sorprende con el lanzamiento de su propio BasS.</li></ul><h2 class="blog-title-2">Opinión personal</h2>Bajo mi punto de vista, este tipo de herramientas nos permiten aumentar de forma exponencial nuestra productividad. Con un precio bastante asequible, simplificarán enormemente la lógica de negocio de nuestros desarrollos. Personalmente, creo que aún así, nunca sustituirán del todo al desarrollo backend, puesto que estas mismas herramientas integran la posibilidad de añadir lógica de back, en muchas ocasiones mediante arquitectura serverless, como por ejemplo, Lambda de AWS o Cloud Functions de Google.LECTURAS RECOMENDADAS: Si estáis interesados en conocer más sobre este tema, os recomiendo leer también el post de mi amigo Adrian Alonso