MICROSERVICIOS PYTHON

LOS MICROSERVICIOS:

Son una arquitectura de desarrollo de sofware en la que una aplicación se divide en servicios independientes y pequeños que se comunican entre sí. 

Nomarmalmente estos microservicios deben estar especializados en resolver un tipo de problema utilizando la mejor tecnología disponible. Aunque estos tambien tiene ciertas desventajas como por ejemplo, se vuelve mas complicados añadir funcionalidades si esta crece demasiado, tambien tiene un alto consumo de memoria; pero como ventajas, facilita la escalabilidad de la aplicación, facil de mantener y modificar y la tecnologia que se use es la que mas te facilite. 

A continuación les presentaremos una lista de librerías que se pueden utilizar para desarrollar microservicios en Python: 

Flask: 

Flask es un framework ligero de desarrollo web para Python. Fue creado con el objetivo de ser simple y fácil de usar, permitiendo a los desarrolladores construir aplicaciones web rápidamente con un mínimo esfuerzo. Flask no impone una estructura rígida de aplicación, lo que significa que los desarrolladores tienen flexibilidad para organizar sus proyectos de la manera que prefieran.

Flask es considerado un "microframework" porque proporciona las funciones básicas necesarias para construir aplicaciones web, pero no incluye muchas de las características adicionales que se encuentran en frameworks más grandes. Esto hace que Flask sea fácil de aprender y de usar, y permite a los desarrolladores elegir las herramientas y bibliotecas que deseen para complementar su aplicación.

FastAPI: 

FastAPI es un moderno y eficiente framework para el desarrollo rápido de APIs en Python. Destacando por su enfoque en el tipado estático mediante anotaciones de tipo, FastAPI facilita la creación de APIs con una sintaxis clara y legible. Su integración con herramientas como Pydantic permite una validación automática de datos, simplificando el manejo de solicitudes y respuestas JSON.

Una de las características distintivas de FastAPI es su capacidad para generar automáticamente documentación interactiva basada en OpenAPI y JSON Schema a partir del código fuente. Esta característica hace que el proceso de documentación sea sencillo y mantenible, proporcionando a los desarrolladores y consumidores de la API una referencia clara y actualizada.

Además, FastAPI se basa en estándares y tecnologías sólidas como Starlette, lo que contribuye a su rendimiento y eficiencia. Su diseño está orientado a la creación rápida de APIs RESTful, permitiendo a los desarrolladores aprovechar la potencia de Python sin sacrificar velocidad ni calidad.

Django REST: 

Django Rest Framework (DRF) es una potente extensión para el popular framework web Django en Python, diseñada específicamente para simplificar el desarrollo de APIs web. Proporciona herramientas adicionales y capas de abstracción que facilitan la creación rápida y eficiente de APIs RESTful.

Una de las características clave de DRF es el sistema de serializadores, que permite la conversión de objetos complejos de Python, como modelos de base de datos de Django, en formatos de datos que son fáciles de representar, como JSON. Esto simplifica la manipulación de datos en la API.
Al igual que FastAPI, DRF ofrece herramientas para generar automáticamente documentación interactiva de la API. Esto mejora la comprensión y la adopción de la API al proporcionar una interfaz fácil de usar para explorar y probar las diferentes endpoints.



Tornado: 

Tornado es un framework web asíncrono y de alto rendimiento para Python. A diferencia de Flask y Django, que son frameworks síncronos, Tornado está diseñado específicamente para manejar un gran número de conexiones concurrentes de manera eficiente.

Tornado incluye soporte nativo para WebSockets, lo que facilita la implementación de comunicación bidireccional en tiempo real entre el servidor y el cliente. Esto es especialmente útil para aplicaciones que requieren actualizaciones en tiempo real, como aplicaciones de chat en tiempo real y juegos en línea.

Debido a su naturaleza asíncrona, Tornado es conocido por su capacidad de escalar eficientemente para manejar un gran número de conexiones simultáneas con un uso eficiente de recursos.

Sanic: 

Sanic es un framework web asíncrono para Python. Sanic está diseñado desde cero para ser asíncrono y aprovechar las características de Python 3.5 y versiones posteriores, incluyendo el uso de las palabras clave async y await. Esto permite un manejo eficiente de operaciones de entrada/salida (E/S) no bloqueantes y una mayor velocidad de respuesta.

Sanic permite la utilización de middlewares para modificar o extender el comportamiento del framework. Esto ofrece flexibilidad al agregar funcionalidades adicionales a la aplicación.

Ngrok:


 

Permite crear túneles seguros a través de firewalls y NATs, lo que facilita que otras personas o servicios externos accedan a tu servidor local, incluso si está detrás de un router o cortafuegos.

La función principal de Ngrok es crear un túnel seguro entre tu máquina local y un servidor en la nube proporcionado por Ngrok. Cuando inicias Ngrok y apuntas a tu servidor local, Ngrok asigna automáticamente un dominio único (en el formato <subdominio>.ngrok.io) que se redirige a tu servidor local. Esto facilita compartir temporalmente tu aplicación en desarrollo con otras personas para realizar pruebas o demostraciones.

Ejemplo: En google colab 

!pip install flask_ngrok==0.0.25
from flask import Flask
from flask_ngrok import run_with_ngrok


app = Flask(__name__)
run_with_ngrok(app)  

@app.route('/')
def index():
    return 'Hola compañeros UNI'

if __name__ == "__main__":
    app.run()


Y el resultado seria el siguiente:
Notamos que nos dan algunos link.  





Comentarios

INTRODUCCIÓN A LA COMPUTACIÓN

CLASE II

PANDAS "LIBRERÍA"

CONEXIÓN A BASE DE DATOS