Designing Microservices with Django
¿Que son los servicios?
Los servicios nos rodean de diferentes maneras en nuestro día. Un ejemplo seria cuando vas a un resturante el cual podemos describirlo de la siguiente manera
- Un cliente llega al restaurante y pide algo de comer, esto lo podriamos ver que el cliente hizo una peticion
- El resturante recibe la orden o peticion
- La cocina empieza a preparar tu comida, mientras tu puedes hacer algo mas o solo esperar hasta que este lista tu comida
- Recibes tu comida
Un servicio puede ser alguna aplicacion que realiza procesos por un usuario, el cual empiezar por una peticion y termine con un response.
Como ejemplo podemos tener servicios de comida, servicios de video, etc...
Existen diferentes tipo de servicios como:
- Software como servicio (software as a service) o mejor conocido como SaaS
- Microservicios (microservices)
- Monoliticos (monoliths)
- Servicios Orientados a Arquitectura (services-oriented-architecture) o mejor conocido como SoA
Software as Services (SaaS)
El termino SaaS describe un modelo de pago por uso de un recurso en la nube, un ejemplo para este tipo podemos usar a Spotify que es un servicio de musica en linea.
Service-oriented Architecture (SoA)
Este termino hace referencia a distribuir nuestro aplicativo entre servidores y comunicarlos por protocolos.
Monolithic Service
Servicios con un solo propositos, no necesariamente deben ser grandes
Microservice
Viven en servicios orientados a arquitectura y tienen una sola razon
Django
En este libro menciona parte de la estructura de Django
- Aplicaciones
- Views
- Modelos y ORN
- Templates
- Permisos
Esta parte solo nos da un pequeña muestra del uso de este Framework
Servicios backend, frontend y mixtos
Volviendo al ejemplo del restaurante podemos dar los siguientes ejemplos
- Servicio Backend: La cocina, la gente que prepara la comida
- Servicio frontend: Los que levantan el pedido, cobran y entregan la comida
- Servicio mixto: En este caso menciona el libro un ejemplo sobre un mundo donde un pizzeria pueda hacer el proceso de venta de pizza asi como la promocion de la misma
Django Rest Framework
Como era de esperarse el libro nos proporciona la informacion suficiente de Django Rest Framework que nos puede ayudar a exponer nuestra aplicacion.
Esto es crear nuestro propio api rest explicando el uso de
- Autenticacion
- CRUD
- Configuraciones default
De Monolitico a Microservicio
En esta parte nos comparte algunas recomendaciones
- Costo humanos
- Elevacion de costos
- La migraciones no es facil, requiere trabajo duro
- Estrategias para deploy