En las últimas semanas,
hemos dedicado mucho tiempo a aprender cómo
construir e implementar un servidor API REST completo
mediante el dominio de tecnologías como Express Framework e INNOSQL base de datos como MongoDB.
Este enfoque le proporciona un control total sobre la forma en que crea e implementa su servidor back-end.
Pero en muchas situaciones, es
posible que tengamos muy poco tiempo para configurar un servidor y luego implementarlo rápidamente.
Así, por ejemplo, usted es una startup que necesita llegar al mercado muy, muy rápidamente,
entonces usted puede querer rápidamente andamiar el servidor back-end junto con
una aplicación front-end y llegar al mercado muy, muy rápidamente.
En esas circunstancias, ¿podemos proporcionar
el soporte de back-end en forma de
un servicio que pueda configurarse e implementarse rápidamente?
Eso es exactamente lo que discutiremos con más detalle en esta conferencia y los
ejercicios posteriores en esta lección y en la siguiente lección.
Por lo tanto, como hemos aprendido en este curso,
hemos dominado las tecnologías,
los marcos necesarios para construir un servidor de API REST de back-end completo.
Ahora, por supuesto, como hemos aprendido en las últimas semanas,
este enfoque nos obliga a configurar nuestro propio servidor y luego configurar el servidor,
tenemos que configurar nuestra base de datos back-end y luego
configurar los diversos aspectos de la base de datos back-end.
Necesitamos desarrollar la API REST y varias rutas para nuestra API REST,
y también es posible que necesitemos construir
servicios adicionales como entregar notificaciones push al
usuario, gestión de usuarios, servicios de redes sociales, etc.
Por lo tanto, todo esto significa que el desarrollo de un banco completo requiere mucho esfuerzo.
Ahora, ¿podemos empaquetar todo este enfoque en un servicio que pueda
configurarse e implementarse rápidamente sin
tener que dedicar tanto tiempo a configurar nuestro servidor?
Ahora me estás mirando extrañamente y diciendo:
«Pasaste las últimas tres semanas entrenándonos en
todas estas tecnologías y ahora estás diciendo que es muy fácil
configurar un servidor usando un back-end como
servicio para proporcionar todas estas diversas características desde nuestro back-end».
Bueno, cada enfoque viene con sus propias ventajas y desventajas.
Aprendamos un poco más sobre back-end como servicio antes de decidir
si el enfoque completo de desarrollo de servidores
que hemos aprendido hasta ahora es el camino correcto para nosotros,
o configurar e implementar rápidamente back-end
como servicio es el enfoque que satisfará nuestras necesidades.
Entonces, ¿qué es exactamente back-end como servicio?
El back-end es un servicio diseñado como un modelo para proporcionar
desarrolladores móviles y web para vincular sus aplicaciones a la nube back-end.
Por lo general, el back-end como servicio se aloja en la nube y luego expone
el back-end al front-end a través de
una interfaz bien diseñada como los endpoints de API REST.
Un back-end completamente empaquetado como vemos en esta lección,
es un fenómeno relativamente reciente y ha estado tomando el mundo web por asalto.
Vamos a ver algunos ejemplos con un poco más de detalle.
Ahora, esto proporciona un puente entre el front-end y el back-end de almacenamiento de datos y
la administración de bases de datos back-end a través de una API unificada.
Y también muchos de estos back-end como proveedores de servicios proporcionan
su propio kit de desarrollo de software que
le permitirá comenzar rápidamente en el desarrollo front-end.
Este enfoque, por supuesto, libera a los desarrolladores de tener que concentrarse en
construir un back-end y, en su lugar, concentrarse en su desarrollo front-end,
o tratar de diseñar e implementar
la experiencia del usuario dentro del front-end ya sea en forma de
una aplicación angular o sea en el de una aplicación móvil.
Ahora, si está familiarizado con la informática en la nube,
estoy seguro de que ha oído términos como infraestructura
como servicio, plataforma como servicio y software como servicio.
Ahora, el back-end móvil como servicio, o BaaS,
se basa esencialmente en este enfoque y se dirige a desarrolladores móviles y web
con acceso a servicios de nube back-end y un entorno mucho más empaquetado.
Por lo tanto, así es como el back-end como servicio le permite
aprovechar el back-end en la nube para dar soporte a su aplicación front-end.
Por supuesto, la siguiente pregunta que surge en su mente es ¿qué
le proporciona el back-end como servicio típicamente?
Un back-end típico como servicio le proporciona
notificaciones de inserción integradas automáticamente en el soporte de nube back-end.
Le proporciona almacenamiento de archivos y uso compartido de archivos.
Le proporciona integración de redes sociales.
Muchos de estos proveedores de servicios back-end proporcionan
integración de redes sociales automáticamente para usted.
Le proporciona funciones de mensajería y chat que puede
aprovechar dentro de su front-end para proporcionar una mejor experiencia de usuario.
También le proporciona administración de usuarios.
Como hemos visto cuando construimos nuestro
soporte de administración de usuarios y autenticación dentro de nuestro servidor Express y
MongoDB, tuvimos que construir el servidor de autenticación completo,
necesitábamos construir los servicios de back-end,
teníamos que hacer la administración de tokens tanto en el back-end como en en el front-end y la autenticación del usuario, etc.
Todo esto se puede empaquetar y entregar a usted como una unidad con
el kit de desarrollo de software que viene con el back-end como servicio.
Y también, back-end ya que es un servicio de paquetes,
también incorporaron una gran cantidad de herramientas de análisis de uso que le permiten
obtener una visión general rápida de cómo los usuarios están interactuando con su back-end.
Por lo tanto, estas herramientas de uso le
brindan mucha información sobre el comportamiento del usuario desde su back-end.
Además, muchos de estos servicios back-end le proporcionan un método para
crear e implementar su propia lógica personalizada
dentro del back-end para satisfacer sus requisitos específicos.
Por supuesto, le proporcionan el marco dentro del cual puede
diseñar su lógica empresarial personalizada para satisfacer sus necesidades específicas.
Por lo tanto, para resumir, un back-end típico proporciona una API de almacenamiento de datos para el
almacenamiento en la nube donde puede cargar y descargar archivos y también acceder a estos archivos,
algún tipo de almacenamiento binario para sus datos,
tal vez capacidades de sincronización de dispositivos y almacenamiento en caché.
Entonces, por ejemplo, cuando construya su front-end,
los datos back-end se almacenarán automáticamente en caché en el front-end.
También pueden admitir el funcionamiento sin conexión de su front-end.
Por lo tanto, incluso con su dispositivo de usuario desconectado de la red,
seguirá proporcionando suficiente cantidad de
información al usuario con capacidades sin conexión.
Por lo tanto, tanto en línea como sin conexión de flujo de trabajo para que incluso pueda permitir que el usuario
realice sus actividades sin conexión y luego sincronice con el back-end.
Integración de terceros.
Por lo tanto, muchas veces muchos de estos back-end como proveedores de servicios
permiten a los desarrolladores de terceros desarrollar plugins que luego
se pueden aprovechar junto con el back-end para proporcionar
extensiones a los servicios que el back-end ya proporciona para usted.
Conectividad segura entre la aplicación front-end y el back-end,
y muchas veces genera automáticamente
los endpoints de API REST según los datos que almacena en el back-end.
Veremos ejemplos de esto especialmente con
LoopBack como veremos más adelante en los ejercicios.
Y también como mencioné,
muchos de estos proveedores de servicios de back-end proporcionan
sus propios kits de desarrollo de software para que
pueda comenzar fácilmente con su desarrollo front-end.
El SDK viene con todo el código necesario para que
su aplicación front-end interactúe automáticamente con su aplicación back-end.
Entonces, por ejemplo, el SDK ya puede contener
servicios que su aplicación angular puede aprovechar para hablar con
el back-end automáticamente, por lo que solo puede quedarse con
la implementación de los componentes y las plantillas front-end para su aplicación.
Toda la interacción con el back-end es
administrada automáticamente por el paquete SDK que se proporciona para usted.
Verá ejemplos de esto tanto con
Firebase que veremos en un poco más tarde, como
con LoopBack que discutiremos en la siguiente lección.
Por supuesto, cualquier enfoque tiene dos caras a la moneda.
Por lo tanto, examinemos algunas de las ventajas y desventajas de back-end como servicio.
Ahora, una ventaja, por supuesto, es que con
el back-end le proporciona componentes probados y probados previamente construidos.
Por lo tanto, el back-end está empaquetado para usted para
que el proveedor de servicios back-end se haya asegurado de que
todo el back-end esté bien probado y ofrezca el servicio como se prometió a los usuarios,
a los desarrolladores front-end.
Por lo tanto, no necesita dedicar más tiempo
a preocuparse por las pruebas y asegurarse de que su back-end funcione correctamente o no.
A diferencia de cuando construye su propio
back-end personalizado usando los marcos que hemos visto anteriormente,
es totalmente responsable de asegurarse de que su back-end funcione correctamente.
La segunda ventaja es, por supuesto,
la reducción concomitante de los esfuerzos del lado del servidor que necesita poner en.
Por lo tanto, dado que el lado del servidor viene como una unidad empaquetada,
puede concentrarse principalmente en el desarrollo front-end y dejar
el lado del servidor para el back-end como proveedor de servicios para tratar.
Y simplemente está aprovechando la flexibilidad que
proporcionan para usted en el desarrollo del front-end.
Y el back-end típico como proveedor de servicios se
encargará de integrar cualquier desarrollo tecnológico reciente
en su back-end y proporcionará
versiones actualizadas del back-end a medida que las nuevas tecnologías estén disponibles.
Por lo tanto, de esa manera, usted como desarrollador front-end está
completamente libre de preocuparse por cómo el back-end necesita evolucionar.
Esto es automáticamente atendido por el proveedor de BaaS para usted.
Por supuesto, todo viene con el otro lado de la tarjeta.
Así que vamos a examinar cuáles son algunos de los inconvenientes de ir back-end como servicio.
En primer lugar, la mayoría de los backends funcionan como una caja negra.
No sabe exactamente cómo se implementa el back-end.
Si está utilizando un backend de código abierto como LoopBack,
por ejemplo, tiene acceso a todo ese código de back-end,
pero aún así, ¿por qué querría dedicar tiempo a explorar los detalles del back-end,
cuando se le ha garantizado que el back-end se ha
construido bien y probado bien para usted.
Así que usted puede simplemente tratarlo como una caja negra tanto tiempo.
Como usted tiene la confianza de que esta caja negra va a
entregar los servicios que usted espera que proporcione,
simplemente puede usar el backend sin
tener que preocuparse por cómo se implementa realmente.
El segundo aspecto es que,
si decide ir con un back-end como proveedor de servicios,
existe el problema de la dependencia del proveedor.
Por lo tanto, una vez que elija uno de los proveedores de
BaaS, estará encerrado en su entorno y en la forma en que almacenan sus datos.
Muchas veces, una vez que adopta uno de estos back-end como proveedor de servicios,
todos sus datos se
bloquean en su servicio y es posible que tenga que pasar por un esfuerzo excesivo para
recuperar los datos que ya ha almacenado en el back-end,
si decide migrar desde una como proveedor de servicios a otro.
Por lo tanto, implementar su servicio usando un backend es una tarea muy sencilla,
pero luego si decide cambiar su proveedor de BaaS,
eso va a ser una batalla cuesta arriba para usted.
Por lo tanto, eso es algo que debe tener plenamente en cuenta antes de comprometerse
a usar uno de los back-end como proveedores de servicios.
Este problema no se convierte en un problema cuando está
haciendo su desarrollo de back-end completo por su cuenta.
Una vez más, tu gana un poco y pierdes un poco.
Así que siempre tomamos eso con toda su imagen en mente.
Por lo tanto, la pérdida de flexibilidad que
implica al usar uno de los back-end como proveedores de servicios puede ser algo
con lo que está dispuesto a vivir debido al hecho de que ha reducido la cantidad de
tiempo de desarrollo de back-end y puede concentrarse
más en entregar su producto al mercado.
Por lo tanto, si confía en el proveedor de BaaS,
entonces simplemente puede ir con su proveedor de BaaS seleccionado y luego
no preocuparse demasiado por la pérdida de flexibilidad que se produce debido a eso.
Una vez más, como dije, no todo viene con solo ventajas,
siempre hay ventajas y desventajas en cualquier enfoque que
elija para desarrollar e implementar su backend.
BaaS es sólo una alternativa que podría ser el enfoque
que usted elija para sus necesidades específicas.
Y, por último, por supuesto,
no todos los BaaS vienen sin su propio conjunto de requisitos de capacitación adicionales.
Si necesita usar uno de los proveedores
de BaaS, en lugar de la caja negra,
necesita aprender la API, necesita aprender cómo configurarla,
necesita aprender a personalizar partes de ella si decide hacerlo, y así sucesivamente.
Por lo tanto, el esfuerzo de capacitación que gastó aprendiendo
marcos específicos o genéricos como Express y bases de datos como MongoDB,
en su lugar pasará tiempo aprendiendo
sus detalles de su back-end como un servicio que elija usar.
Por lo tanto, es una cuestión de dónde quieres pasar tu tiempo.
La capacitación adicional siempre estará involucrada,
excepto que con un proveedor de BaaS puede comenzar
más rápidamente que construir su propio back-end personalizado.
El mercado de BaaS está lleno de una serie de opciones.
Y, de hecho, estas opciones siguen aumentando cada día.
Ahora, cuando entras en el mercado de BaaS,
es posible que veas vendedores comerciales.
Aquí hay una pequeña lista de proveedores comerciales.
Una vez más, hay más y más que se agregan por día a esta lista,
y acabo de enumerar solo un pequeño subconjunto de ellos.
Por supuesto, si tu proveedor favorito de
BaaS no está en esta lista, no me culpes, tal vez no estoy
al tanto de ellos o tal vez son demasiado nuevos en el mercado y así no me he encontrado con ellos.
Pero aquí hay una lista de algunos de los proveedores comerciales que proporcionan servicios de BaaS para nosotros.
En particular, voy a concentrarme en firebase,
que es proporcionada por Google.
En esta lección vamos a explorar cómo hacer uso de firebase en un
poco detallado en esta lección en los ejercicios que siguen.
Ahora, si quieres ir con un proveedor de código abierto,
hay muchas alternativas de código abierto que están disponibles para nosotros,
por supuesto, allí
adquirirás este software de código abierto y luego construirás tu servidor y lo implementarás.
Excepto que vendrá como
una entidad preempaquetada que puede configurar e implementar rápidamente en el back-end.
Vamos a ver LoopBack como uno de los ejemplos de un software de código abierto que
se puede implementar muy rápidamente para construir su backend.
Y como dije, cada vez más opciones están llegando al mercado, día a día.
Por lo tanto, ¿debería explorar el mercado mañana para encontrar nuevos proveedores de BaaS?
Por todos los medios, examine qué es lo
que proporcionan, qué tipo de servicios proporcionan.
¿ Los servicios que proporcionan cumplen con sus requisitos y puede usted
aprovechar rápidamente el servicio que proporcionan para llegar al mercado rápidamente?
Así que estos son temas que te dejaré dentro de un día.
Como he dicho, debemos examinar
todas las alternativas posibles y luego tomar nuestras propias decisiones de forma independiente.
Pero a menos que seamos conscientes de las alternativas no seremos capaces de tomar decisiones informadas.
Así que es por eso que las últimas lecciones de este curso estoy
gastando en explorar algunos ejemplos de backend como proveedores de servicios.