Está en la página 1de 23

UCSM Esc. Prof.

de Ingeniería de Sistemas INFORME DE PRÁCTICAS


Noviembre - 2022 DESARROLLO DE
APLICACIONES

Práctica N° 10: Firebase y Microservicios


Elaborado por:
CÓDIGO APELLIDOS Y NOMBRES % DE PARTICIPACIÓN
2020700992 Fernandez Lopez Luciana Alexandra 100%
2020245441 Ordoñez Arratia Joseph Fernando 100%
2020231692 Yanarico Suyo Cinthya Daniela 100%

© IEEE 2013 The Institute of Electrical and Electronics Engineers, Inc.


Práctica N° 14: Firebase y microservcios

GRUPO N° 3

PRÁCTICAS DE DESARROLLO DE APLICACIONES

Presentado por:
CÓDIGO APELLIDOS Y NOMBRES % DE PARTICIPACIÓN
2020700992 Fernandez Lopez Luciana Alexandra 100%
2020245441 Ordoñez Arratia Joseph Fernando 100%
2020231692 Yanarico Suyo Cinthya Daniela 100%

ii
Práctica N° 14: Firebase y microservcios

RECONOCIMIENTOS

Los autores de este trabajo reconocen con gratitud a los creadores del Firebase .

PALABRAS CLAVES

Firebase, microservicios

iii
Práctica N° 14: Firebase y microservcios

ÍNDICE
1. RESÚMEN 1
2. INTRODUCCIÓN ...........................................................................................................1
3. URL DEL PROYECTO EN GITHUB .............................................................................2
4. MARCO TEÓRICO ........................................................................................................1
4.1 Firebase ................................................................................................................1
4.2 Microservicios .......................................................................................................1
5. DISEÑO DE LOS EJERCICIOS PROPUESTOS..........................................................1
5.1 EJERCICIO 1 ........................................................................................................1
5.2 EJERCICIO 2 ........................................................................................................4
6. EXPERIENCIAS DE PRÁCTICA ...................................................................................5
6.1 Uso de Firebase....................................................................................................5
6.2 Crear una aplicación para usar Firebase .............................................................7
6.3 Microservicios .......................................................................................................9
7. CONCLUSIONES DE LA PRÁCTICA: ....................................................................... 12
8. CUESTIONARIO ......................................................................................................... 13
9. BIBLIOGRAFÍA ........................................................................................................... 16

iv
Práctica N° 14: Firebase y microservcios

1. RESÚMEN

En el presente informe se desarrolla el uso de Firebase y microservicio, Firebase es una plataforma


para el desarrollo de aplicaciones web y aplicaciones móviles lanzada en 2011 y adquirida por
Google en 2014.Es una plataforma ubicada en la nube, integrada con Google Cloud Platform, que
usa un conjunto de herramientas para la creación y sincronización de proyectos que serán dotados
de alta calidad, haciendo posible el crecimiento del número de usuarios y dando resultado también
a la obtención de una mayor monetización. Puede potenciar el backend de su aplicación, incluyendo
el almacenamiento de datos, la autenticación de usuarios, el alojamiento estático y mucho más.
Concéntrese en crear experiencias de usuario extraordinarias. Nosotros nos encargamos del resto.
Construya aplicaciones nativas para móviles y web multiplataforma con nuestros SDK de Android,
iOS y JavaScript. También puedes conectar Firebase a tu backend existente utilizando nuestras
bibliotecas del lado del servidor o nuestra API REST.

Un microservicio implementa un conjunto de funciones o características distintas. Cada


microservicio es una miniaplicación que tiene su propia arquitectura y lógica empresarial. Una
arquitectura de microservicios es un paso revolucionario en el desarrollo de aplicaciones. Como
cualquier otra tecnología, tienen sus pros y sus contras.

2. INTRODUCCIÓN

Firebase es un Backend-as-a-Service(BaaS) que comenzó como un startup YC11. Creció hasta


convertirse en una plataforma de desarrollo de aplicaciones de última generación en Google
CloudPlatform. Firebase (una base de datos NoSQLjSON) es una base de datos en tiempo real que
permite almacenar una lista de objetos en forma de árbol. Podemos sincronizar los datos entre
diferentes dispositivos. Esta plataforma se encuentra alojada en la nube, y está disponible para
Android, iOS y web entre otras tecnologías. Además, cuenta con diversas funcionalidades que
puedes combinar y adaptar en función de tus necesidades, y lo mejor de todo: ¡la mayoría de ellas
son gratuitas.

El microservicio es un servicio distribuido pequeño y débilmente acoplado. La arquitectura demi


croservicios evolucionó como una solución a los retos de escalabilidad, despliegue independiente e
innovación de la arquitectura monolítica (las aplicaciones monolíticas suelen ser enormes, con más
de 100.000 líneas de código). Permite tomar una aplicación de gran tamaño y descomponerla o
dividirla en pequeños componentes fácilmente manejables con responsabilidades estrechamente
definidas. Se considera el bloque de construcción de las aplicaciones modernas. Los microservicios
pueden escribirse en una variedad de lenguajes de programación y marcos, y cada servicio actúa
como una miniaplicación por sí mismo. Los microservicios pueden considerarse un subconjunto de
la arquitectura orientada a servicios (SOA). Con las arquitecturas monolíticas, todos los procesos
están estrechamente asociados y se ejecutan como un solo servicio. Esto significa que, si un proceso
de una aplicación experimenta un pico de demanda, se debe escalar toda la arquitectura. Agregar o
mejorar las características de una aplicación monolítica se vuelve más complejo a medida que crece
la base de código. Esta complejidad limita la experimentación y dificulta la implementación de
nuevas ideas. Las arquitecturas monolíticas aumentan el riesgo de la disponibilidad de la aplicación
porque muchos procesos dependientes y estrechamente vinculados aumentan el impacto del error
de un proceso.
1
Práctica N° 14: Firebase y microservcios

Google Analytics te proporciona, de forma gratuita, las herramientas que necesitas para conocer el
recorrido que siguen los clientes y mejorar el retorno de la inversión que obtienes de tu estrategia
de marketing. te permite llevar un seguimiento de tus sitios web y redes sociales proporcionando
informes personalizados aportando información sobre el tráfico que hay en tus sitios web en relación
a el número de visitas, su duración, desde donde llegó a tu web/red social y las páginas.

3. URL DEL PROYECTO EN GITHUB

https://github.com/CinthyaYanarico/PracticaCatorce.git

2
Práctica N° 14: Firebase y microservcios

4. MARCO TEÓRICO
4.1 Firebase
¿QUÉ ES? ¿CÓMO SE DECLARA? ¿CÓMO LO USO? ¿CUÁNDO LO USO?
Es una plataforma creada en Aplicarla te permite sincronizar
2011 y comprada en 2014 Debe ser primeramente instalado Se conecta a firebase realtime de la los proyectos sin necesidad de
por Google, formando parte mediante el comando: siguiente manera: gestionar las conexiones, se
de Google Cloud Plataform, puede integrar en plataformas
permite desarrollar npm install firebase-admin admin.initializeApp({ móviles y web como IOS,
credential:
aplicaciones web y móviles, Android, Unity y C++.
ofrece las herramientas Se importa dentro del archivo de la admin.credential.cert(serviceAc
count), Permite la escalabilidad para las
necesarias para crear y siguiente manera: databaseURL: "https://da- apps, mientras usa una
sincronizar proyectos. experiencia-practica-default- infraestructura de Google, no
var admin = rtdb.firebaseio.com/"
Ofrece el servicio de Firebase require('firebase-admin');
necesita la implementación de un
});
Analytics, y con las servidor, posee una gran
características de firebase var db = admin.database(); documentación y comunidad
cloud messaging, firebase junto a soporte gratuito. [1]
auth, realtime database,
firebase storage y firebase
cloud firestore. [1]

4.2 Microservicios
¿QUÉ ES? CARACTERÍSTICAS ¿CUÁNDO LO USO?
Este implementa un grupo de - Los servicios se vuelven pequeños e independientes. Su implementación permite organizar en
funciones y características, se - Cada uno es código base, que se pude administrar por el módulos pequeños la aplicación, se adapta más
puede decir que cada una es una equipo fácilmente, tiene un escalado independiente por
pequeña aplicación que - Estos tienen la responsabilidad de conservar sus datos y cada microservicio, desaparece la dependencia,
contiene su lógica y estado. un error en un módulo no hará caer toda la
arquitectura, estos se - Pueden o no compartir la misma tecnología, bibliotecas o aplicación, surgirá mayor seguridad por la
comunican mediante una API. marcos. [2] división de módulos, cada uno presentara DURS
[2] y los programadores son libres de elegir el
lenguaje y tecnología para cada microservicio.

1
Práctica N° 14: Firebase y microservcios

5. DISEÑO DE LOS EJERCICIOS PROPUESTOS


5.1 EJERCICIO 1
5.1.1 DIAGRAMA DE CASOS DE USO

5.1.2 DIAGRAMA DE CLASES

5.1.3 DIAGRAMA ENTIDAD-RELACIÓN

1
Práctica N° 14: Firebase y microservcios

5.1.4 DIAGRAMA DE SECUENCIA

5.1.5 CÓDIGO DOCUMENTADO

const fs = require('firebase-admin');

const serviceAccount = require('./key.json');

fs.initializeApp({
credential: fs.credential.cert(serviceAccount),
databaseURL: "https://actividad-da-default-rtdb.firebaseio.com"
});

const db = fs.firestore();
const usersDb = db.collection('users');

2
Práctica N° 14: Firebase y microservcios

//set()
const joseph = usersDb.doc('jordonez');
joseph.set({
first: 'Joseph',
last: 'Ordonez',
age: '19'
});

const luciana = usersDb.doc('lfernandez');


luciana.set({
first: 'luciana',
last: 'fernandez',
age: '19'
});

console.log("Especificando en un determinado documentos");


//Funciones anidadas, que determinan la existencia del documento
var docRef = db.collection("users").doc("lfernandez");
docRef.get().then((doc) => {
if (doc.exists) {
//Cuando si se logro encontrar el documento
console.log("Document data:", doc.data());
} else {
// Cuando el documento no logro encontrarse dentro de la coleccion
console.log("No hay documento!");
}
}).catch((error) => {
// Error de consola o sintaxis
console.log("Error al obtener el documento:", error);
});

console.log("TODOS LOS DOCUMENTOS EXISTENTES DESDE LA COLECCION USERS");


db.collection("users").get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
// Muestra en pantalla todos los documentos
console.log(doc.id, " => ", doc.data());
});
});

//actualizacion con set


const uptcinthya = usersDb.doc('cyanarico');
uptcinthya.set({
first: 'cinthya',
last: 'yanarico',
age: '20'
});

//actualizacion con update


const uptjoseph = usersDb.doc('jordonez')
uptjoseph.update({
age: '50'
});

//Se elimina el documento del estudiante lfernandez


db.collection('users').doc('jordonez').delete();
//Se elimino el campo correspondiente del documento 'lfernandez'
const FieldValue = fs.firestore.FieldValue;

3
Práctica N° 14: Firebase y microservcios
const r = db.collection('users').doc('lfernandez').update({
age: FieldValue.delete()
});

5.2 EJERCICIO 2
5.2.1 CÓDIGO DOCUMENTADO
main.py
from api import create_app

app = create_app()

if __name__=='__main__':
app.run(debug = True)

__init__.py
from flask import Flask
import firebase_admin
from firebase_admin import credentials, initialize_app

default_app = initialize_app()

def create_app():
app = Flask(__name__)
app.config['SECRET_KEY']='19456mjgfcoc4'

from .userAPI import userAPI

app.register_blueprint(userAPI, url_prefix='/user')

return app

userAPI.py
import uuid
from flask import Blueprint, request, jsonify
from firebase_admin import firestore

db = firestore.client()
user_Ref = db.collection('user')

userAPI = Blueprint('userAPI', __name__)

@userAPI.route('/add', methods=['POST'])
def create():
try:
id =uuid.uuid4()
user_Ref.document(id).set(request.json)
return jsonify({"Ingreso exitoso" : True}), 200
except Exception as e:
return f"Ocurrió un error: {e}"

4
Práctica N° 14: Firebase y microservcios
6. EXPERIENCIAS DE PRÁCTICA
6.1 Uso de Firebase
a) CREAR UNA CUENTA:
1. Debe crear una cuenta en gmail para poder acceder y crear proyectos en
firebase.
2. sí ya tienen la cuenta gmail simplemente debe logguearse y entrar a la
plataforma de firebase para crear su proyecto

b) CREAR UN PROYECTO DE FIREBASE:


1. Ingresar en su navegador a la página principal de firebase, luego
busque en la barra superior el botón ir a la consola, o en su defecto
háganle click al botón comenzar dentro de la página de inicio.
2. Ingresar el nombre del proyecto pedido por firebase.

3. Si desea puede habilitar la inclusión de Google analytics.

4. Luego haga clic en el botón crear proyecto.


5. Aparece una nueva ventana donde se visualiza la creación del proyecto
al final aparecerá un botón continuar, haga clic para la siguiente venta.
6. Haga clic en la rueda superior de configuración y visite las opciones
que ofrece.

5
Práctica N° 14: Firebase y microservcios

c) CREAR UNA BASE DE DATOS PARA EL PROYECTO DE FIREBASE:


1. En el panel de la izquierda desplegar la pestaña compilación y luego
hacer clic en la opción firestore database.
2. Aparece una nueva página donde debe hacer clic a crear nueva base de
datos.

3. Elija iniciar en modo de producción y luego haga click al botón


siguiente
4. Elija la ubicación del cloud firestore y haga clic al botón habilitar.
5. Aparece la base de datos creada con una ventana similar a la siguiente:

d) INICIAR UNA COLECCIÓN:


1. Hacer clic en el enlace iniciar una colección luego aparecerá la
siguiente ventana, En la que debe agregar el nombre a su colección, luego
hacer clic al botón siguiente:
2. En la siguiente ventana el asistente le pedirá que agregue documentos
a la colección que está creando, para lo cual debe ingresar los datos
solicitados, agregar el ID automáticamente, finalmente haga clic en
Guardar:

6
Práctica N° 14: Firebase y microservcios

3. Luego de agregar los documentos éstos aparecen inmediatamente en la


colección de la base de datos:
4. En el panel de la izquierda desplegar la pestaña compilación y luego
hacer clic en la opción firestore database

6.2 Crear una aplicación para usar Firebase


a) CREAR EL PROYECTO:
1. Crear la carpeta del proyecto y el package-json respectivo desde la
línea de comandos.
2. Luego instalar el paquete firebase-admin con el npm.
3. Una vez instalado el paquete ejecute visual studio code.

7
Práctica N° 14: Firebase y microservcios
4. regresar a la interfaz de firebase y en la rueda de configuración ir
a la pestaña de cuentas de servicio y generar un token de seguridad para
la base de datos.

1. Generar una nueva clave.


2. Descargue el archivo con las credenciales y ubíquelo en la carpeta del
proyecto.

3. Agregar una base de datos en tiempo real en firebase.


4. Configurara la base de datos indicando la ubicación del almacenamiento:
5. Configurar el modo de inicio:
6. Agregar un archivo índex.js y agregar el siguiente código:

8
Práctica N° 14: Firebase y microservcios

7. Vuelva a firebase y verifique la grabación del documento.

6.3 Microservicios
a) CREAR EL PROYECTO:
1. Crear un proyecto en Django:

9
Práctica N° 14: Firebase y microservcios

2. Migrar las tablas y crear el superusuario:

3. Ejecutar VS Code.
4. Agregar el siguiente código al archivo models.py:

5. Agregar el código siguiente al archivo admin.py:


6. Realizar la migración de las tablas y posteriormente ejecutar el
servidor.
b) TRABAJAR CON DATOS:
1. Acceder a la dirección dónde se encuentran los datos, hacer login y
agregar datos a la a la base de datos:

2. Agregar álbumes y tracks a la base de datos:

c) TERMINAR EL MICRO SERVICIO:


1. Agregar a la carpeta temas el archivo serializer.py y agregar el
siguiente código:

serializer.py
------------------------------------------------------------------------
from rest_framework import serializers #importacion de serializers de
rest_framework
from .models import * #importar todo de models

class AlbumSerializer(serializers.ModelSerializer):
tracks = serializers.StringRelatedField(many = True)

class Meta:
model = Album
fields = ['album_name', 'artist', 'tracks']
************************************************************************
2. Agregar el código siguiente al archivo views.py:

10
Práctica N° 14: Firebase y microservcios

views.py
------------------------------------------------------------------------
#Importaciones de Django
from django.shortcuts import render
from django.core import serializers
from .models import *
from .serializer import AlbumSerializer
from rest_framework import viewsets
# creacion de vistas
class AlbunesView(viewsets.ModelViewSet):
queryset = Album.objects.all()
serializers_class = AlbumSerializer
************************************************************************
3. Agregar el código siguiente al archivo spotify/urls.py:

spotify > urls.py


------------------------------------------------------------------------
#Importaciones de Django
from django.contrib import admin
from django.urls import path, include, re_path
from django.urls import re_path as url

#Urls
urlpatterns = [
path('admin/', admin.site.urls),
url('apitracks/',include('temas.urls'))
]
************************************************************************
4. Agregar el código siguiente al archivo temas/urls.py:

temas > urls.py


------------------------------------------------------------------------
#Importaciones de Django
from django.urls import path, include
from .import views
from rest_framework import routers

router = routers.DefaultRouter()
router.register('spotify',views.AlbunesView)

urlpatterns = [
path('',include(router.urls))
]
5. Compilar y ejecutar el servidor.
6. Cambiar a apitracks/

11
Práctica N° 14: Firebase y microservcios

7. CONCLUSIONES DE LA PRÁCTICA:
a) Con la elaboración de esta práctica notamos los beneficios de Firebase por ejemplo la
seguridad y la privacidad que ofrece a los datos almacenados en la nube, además de tener
una versión gratuita, esto permite a programadores novatos utilizar la plataforma para probar
sus aplicaciones sin necesidad de invertir.
b) Por otro lado, pudimos apreciar al implementar una arquitectura de microservicios que esta
presenta algunas desventajas como complejidad al diseñar y crear los servicios, también en
presente en la implementación, además se vio un incremento de necesidad relacionada con
los recursos globales.
c) Firebase es muy potente y fácil de usar. Definitivamente facilita la vida de un desarrollador
y puede pensar menos en la lógica de administración de datos porque Firebase lo hace
fácilmente y con líneas de código limitadas.
d) Ya sea que los desarrolladores adopten o no una arquitectura de microservicios en el futuro,
puede ofrecer ventajas únicas al diseñar e implementar aplicaciones empresariales. Muchas
organizaciones ya han comenzado la transición a un modelo arquitectónico de
microservicios sin marcar sus prácticas.
e) Las API's sirven para el rápido manejo de datos de una base de datos, teniendo las
operaciones completas de CRUD (SET, PUT, GET, POST, DELETE)
f) Postman es una herramienta de gran ayuda para la creación y prueba de API's, pudiendo
realizar todas las operaciones definidas en la APi

12
Práctica N° 14: Firebase y microservcios
8. CUESTIONARIO
a) ¿Qué es un proyecto de Firebase?
Es un proyecto de Google Cloud Plataform que hace uso de los servicios Firebase.
b) ¿Qué es una organización de Google Cloud?
Un grupo que se puede crear en la consola de Google Admin por parte de un administrador.
c) ¿Cómo agrego Firebase a un proyecto existente de Google Cloud?
Desde la consola de Firebase, en la opción de agregar proyecto.
d) ¿Por qué mi proyecto de Google Cloud tiene la etiqueta firebase:enabled ?
Porque está trabajando con Firebase
e) ¿Qué funciones y permisos admite Firebase console?
Puede acceder a los archivos a través de referencias, cargar archivos fácilmente y también
monitorear el progreso de las tareas. También puede usar funciones en la nube para
automatizar el código de backend, así como usar bibliotecas de IU para autenticar a los
usuarios de la aplicación.
f) ¿Por qué Google Analytics es una parte recomendada del uso de los productos
Firebase?
Porque genera reportes de casi cualquier cosa dentro de Firebase. Por ejemplo, captura la
cantidad de veces que se accedió a la abrió nuestra aplicación.
g) ¿Cómo puedo controlar cómo se comparten mis datos de Analytics con el resto de
Firebase?
Se puede ver, otorgar o denegar permisos desde la configuración de Analytics.
h) ¿Por qué mi tabla de historial de lanzamientos de Hosting en la consola de Firebase
muestra recuentos de archivos que son más de lo que realmente tiene mi proyecto local?
Desde el panel de hospedaje del proyecto de Firebase, puede ver el historial completo de las
publicaciones de su canal en vivo en la tabla Historial de publicaciones. Si tiene varios sitios
de alojamiento, haga clic en Ver para ver el historial de lanzamiento del sitio que desea. Si
tiene imágenes de vista previa, también aparecerán en el panel de host.
i) ¿Cuáles son las limitaciones de escala de la base de datos en tiempo real?
Con respecto a la escalabilidad, existe escalabilidad vertical y horizontal, en el caso de la
escalabilidad horizontal como es la base de datos MongoDB, tienden a regirse a distribuir la
información a diferentes servidores(nodos).
j) Enumere las ventajas de la arquitectura de microservicios.
- Son más fáciles de mantener y testear, puesto que son servicios pequeños que hacen
una sola cosa, pero lo hacen bien.
- A nivel de un equipo de desarrolladores, es más fácil entrar y empezar a ser
productivo, ya que se tiene que entender el funcionamiento de varios servicios
pequeños en vez de uno grande. Por tanto, tenemos un desarrollo más alineado con
las metodologías DevOps y Agile.
- Organizado en torno a las capacidades empresariales. No son necesarios cambios
radicales en el stack de tecnología que se utiliza, sino que para cada servicio se puede
utilizar la tecnología más adecuada.

13
Práctica N° 14: Firebase y microservcios
- No están integrados en el sistema principal (loosely coupled), por tanto, son más
fáciles de desarrollar y desplegar. Pueden tener una escalabilidad independiente y se
pueden aislar los fallos a un microservicio en concreto, en vez de una sección o
funcionamiento de la aplicación.
k) ¿Cuáles son las características de los microservicios?
- Características de su software.
- Características de su organización.
- Características de su arquitectura.
- Características de sus sistemas de aviso y actuación.
l) ¿Cuáles son las mejores prácticas para diseñar Microservicios?
- Crear un almacén de datos separado para cada microservicio.
- Mantén el código en un nivel de madurez similar.
- Hacer una compilación separada para cada microservicio.
- Implementar en contenedores.
- Tratar a los servidores como miembros intercambiables.
- Usas defesa en profundidad para priorizar servicios clave.
- Usar actualizaciones de seguridad automáticas.
m) ¿Cómo funciona la Arquitectura de Microservicios?
Una arquitectura de microservicios consta de una colección de servicios autónomos y
pequeños. Cada uno de servicio es independiente y debe implementar una funcionalidad de
negocio individual dentro de un contexto delimitado. Un contexto delimitado es una división
natural de una empresa y proporciona un límite explícito dentro del cual existe un modelo
de dominio.
n) ¿Cuáles son los pros y los contras de la Arquitectura de Microservicios?
Ventajas:

Escalabilidad: como es una aplicación modular, se puede escalar horizontalmente cada


parte según sea necesario, aumentando el escalado de los módulos que tengan un
procesamiento más intensivo.

Versatilidad: se pueden usar diferentes tecnologías y lenguajes de programación. Lo que


permite adaptar cada funcionalidad a la tecnología más adecuada y rentable.

Rapidez de actuación: el reducido tamaño de los microservicios permite un desarrollo


menos costoso, así como el uso de “contenedores de software” permite que el despliegue de
la aplicación se pueda llevar a cabo rápidamente.

Modularidad: al tratarse de servicios autónomos, se pueden desarrollar y desplegar de


forma independiente. Además, un error en un servicio no debería afectar la capacidad de
otros servicios para seguir trabajando según lo previsto.

Mantenimiento simple y barato: al poder hacerse mejoras de un solo módulo y no tener que
intervenir en toda la estructura, el mantenimiento es más sencillo y barato que en otras
arquitecturas.

14
Práctica N° 14: Firebase y microservcios
Agilidad: se pueden utilizar funcionalidades típicas (autenticación, trazabilidad, etc.) que
ya han sido desarrolladas por terceros, no hace falta que el desarrollador las cree de nuevo.

Desventajas:

Alto consumo de memoria: al tener cada microservicio sus propios recursos y bases de
datos, consumen más memoria y CPU.

Inversión de tiempo inicial: al crear la arquitectura, se necesita más tiempo para poder
fragmentar los distintos microservicios e implementar la comunicación entre ellos.

Complejidad en la gestión: si contamos con un gran número de microservicios, será más


complicado controlar la gestión e integración de los mismos. Es necesario disponer de una
centralización de trazas y herramientas avanzadas de procesamiento de información que
permitan tener una visión general de todos los microservicios y orquesten el sistema.

Perfil de desarrollador: los microservicios requieren desarrolladores experimentados con


un nivel muy alto de experiencia y un control exhaustivo de las versiones. Además de
conocimiento sobre solución de problemas como latencia en la red o balanceo de cargas.

No uniformidad: aunque disponer de un equipo tecnológico diferente para cada uno de los
servicios tiene sus ventajas, si no se gestiona correctamente, conducirá a un diseño y
arquitectura de aplicación poco uniforme.

Dificultad en la realización de pruebas: debido a que los componentes de la aplicación


están distribuidos, las pruebas y test globales son más complicados de realizar.

Coste de implantación alto: una arquitectura de microservicios puede suponer un alto coste
de implantación debido a costes de infraestructura y pruebas distribuidas.

o) ¿Cuál es la diferencia entre Arquitectura Monolítica, SOA y de Microservicios?


La principal diferencia entre SOA y los microservicios radica en el tamaño y el alcance. El
segundo debe ser significativamente más pequeño de lo que el primero tiende a ser y,
principalmente, es un servicio de implementación independiente pequeño. Por otro lado, una
SOA puede ser un monolito o puede estar compuesta de múltiples microservicios. Ambas
arquitecturas cuentan con ventajas y desventajas algo similares, sin embargo, en cada una
de ellas, cada servicio, al contrario de una arquitectura monolítica, tiene cierta
responsabilidad.
p) ¿Cuáles son los retos a los que se enfrenta al trabajar con Arquitecturas de
Microservicios?
Principalmente estos son los retos que afronta los microservicios:
Es difícil organizar una gran cantidad de microservicios.
Comprender, administrar y probar las dependencias es difícil.
Los patrones de software (encapsulaciones y similares) no proporcionan una abstracción de
servicio uniforme.
q) ¿Cuáles son las características de los Microservicios?

15
Práctica N° 14: Firebase y microservcios
Alto nivel de desacoplamiento: cada microservicio tiene su propio dominio,
comunicándose y compartiendo datos con los demás
Nombres únicos: cada microservicio tiene su propio nombre para así poder decidir su
ubicación
Resiliencia: En caso de que den algún problema, pueden iniciarse en otra máquina de forma
que así no perderemos ningún dato ni información
Independencia: su implementación, escalado y actualización se hace de manera
independiente
Escenario profesional: están enfocados para desarrollarse en función de cada negocio o de
cada cliente por lo tanto son más sencillos y están mucho menos condicionados por la
tecnología

9. BIBLIOGRAFÍA

[1] «Qué es Firebase: funcionalidades, ventajas y conclusiones,» DIGITAL55, 4 Octubre 2022.


[En línea]. Available: https://digital55.com/blog/que-es-firebase-funcionalidades-ventajas-
conclusiones/. [Último acceso: 29 Noviembre 2022].

[2] Netec, «Arquitectura de microservicios: características y estilos,» 9 Mayo 2019. [En línea].
Available: https://www.netec.com/post/estilo-de-arquitectura-de-
microservicios#:~:text=·%20En%20una%20arquitectura%20de%20microservicios,propios
%20datos%20o%20estado%20externo. [Último acceso: 29 Noviembre 2022].

16

También podría gustarte