Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GRUPO N° 3
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
2. INTRODUCCIÓN
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.
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
1
Práctica N° 14: Firebase y microservcios
const fs = require('firebase-admin');
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'
});
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'
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.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
5
Práctica N° 14: Firebase y microservcios
6
Práctica N° 14: Firebase y microservcios
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.
8
Práctica N° 14: Firebase y microservcios
6.3 Microservicios
a) CREAR EL PROYECTO:
1. Crear un proyecto en Django:
9
Práctica N° 14: Firebase y microservcios
3. Ejecutar VS Code.
4. Agregar el siguiente código al archivo models.py:
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:
#Urls
urlpatterns = [
path('admin/', admin.site.urls),
url('apitracks/',include('temas.urls'))
]
************************************************************************
4. Agregar el código siguiente al archivo temas/urls.py:
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:
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.
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.
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.
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
[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