SlideShare una empresa de Scribd logo
Microservicios
Kent Yucra
Comenzando tu propio negocio
- Abres tu puesto de comida en un triciclo en las afueras de
un mercado
- Al comienzo tu puedes con todas las tareas (cocinar,
servir, cobrar)
- Todo va bien hasta que el número de clientes va en aumento
¡Problemas!
Comienzan a aparecer los primeros problemas
Problema 1.- Pierdes clientes (Mucho tiempo de espera,
entrega de platos equivocados)
Problema 2.- Las cuentas ya no cuadran
Posible solución: Contratamos una persona que se encargue de
recibir los pedidos y de cobrar
¡Problemas de nuevo!
Más Problemas
Problema 3.- Espacio alrededor del triciclo ya no es
suficiente
Solución.- Alquilamos un local
Problem 4.- La demanda aumenta
Solución.- Contratamos un ayudante de cocina
Después de un tiempo . . .
Ref: https://joinposter.com/mx/post/ejemplos-de-organigramas-para-restaurante
El negocio está relativamente estable
- Queremos seguir creciendo
- Abrimos un bar por las noches
- Contratamos personas especializadas
+ Calidad de nuestro servicio
+ Comunicación entre las áreas
https://app.pingboard.com/s/fBaBFG3bsP9_tYjFWZgjM7sW1sU68bMi_e--SajpKexoU7nuX2IFcStbdkqOhoPfUVCvQdBNLSq0DK_k6B1QFA/org_chart
Generalizando los problemas
Escalar: Idealmente queremos contratar empleados y hacerlos
productivos lo mas antes posible
Comunicacion: Añadir más empleados añade complejidad a la
hora de coordinar y comunicarse
Especialización: Permitir que cierto grupo de personas tomen
decisiones autónomas para resolver problemas de manera mas
eficiente
De Monolítico a Microservicios
- Sistemas (software) fueron diseñados de una manera monolítica
- Donde todo el sistema funciona como una sola unidad
(aplicacion)
✅Ventajas de una Arquitectura Monolítica
Inicialmente el tiempo de desarrollo más rápido: como el
proyecto es pequeño todos logran conocer el 100% de la
aplicación
✅Ventajas de una Arquitectura Monolítica
Desarrollo más simple:
- Es una simple unidad, testear y logging son muy simples.
- Build (construir) y Deploy (despegar) es simple
- Comparado a varios microservicios separados
❌Desventajas de una Arquitectura Monolítica
Módulos muy acoplados:
- La mayoría de compañías intentan dividir una aplicación
monolítica en módulos
- Estas reglas impuestas en los módulos son fácilmente rotas
con deadlines
❌Desventajas de una Arquitectura Monolítica
La incorporación de nuevos empleados se vuelve difícil:
- Volver productivos a los nuevos empleados demora mucho más
por la complejidad de una aplicación monolítica
- Toma meses para que los nuevos empleados se sientan
confortables con todo el código base.
- Siempre existe el miedo de que un cambio pueda romper la
aplicación
❌Desventajas de una Arquitectura Monolítica
Requisitos de recursos conflictivos:
- Diferentes módulos necesitan diferentes requerimientos de
hardware
- Algunos módulos requieren mucho RAM y otros mucho tiempo de
CPU.
- La única manera de escalar es aumentando la RAM y el CPU
❌Desventajas de una Arquitectura Monolítica
- Un simple error puede hacer caer toda la aplicación
- Límites al momento de experimentar
- Despliegue puede ser muy lento:
* Mientras más grande se hace la aplicación más tiempo
demore el despliegue o el desarrollo
✅Ventajas de los Microservicios
Mejora la velocidad de desarrollo:
- Los equipos pueden añadir nuevas características (features)
de manera independiente
- Los equipos pueden programar fechas de estreno (release) de
nuevas versiones
- Si la interface externa del microservicio está bien
definida, hasta se podría escribir el servicio en otro
lenguaje de programación
✅Ventajas de los Microservicios
La incorporación de nuevos empleados es mas rapida:
- Los nuevos empleados pueden aprender un sistema simple más
rápido y comenzar a contribuir
- Con el tiempo irán aprendiendo sobre la aplicación
completa, pero no es algo necesario al inicio
✅Ventajas de los Microservicios
Tolerancia a fallos:
- Aunque los servicios dependan uno del otro
- Un diseño de la arquitectura apropiado nos permitirá saber
más rápido dónde está el error.
- Redundancia integrada y cajas fuertes para evitar fallas en
todo el sistema si otro servicio deja de funcionar.
✅Ventajas de los Microservicios
Flexibilidad a la hora de escalar:
- Debido a que cada servicio se implementa de forma
independiente
- También puede replicar y escalar cada servicio por sí solo.
❌Desventajas de los Microservicios
Complejidad general:
- Si bien cada servicio individual es más fácil de entender,
todo el sistema en sí es complicado.
- Esta complejidad adicional condujo al surgimiento de
herramientas como Docker y Kubernetes
❌Desventajas de los Microservicios
Comunicación:
- Descubrir cómo los microservicios se comunican entre ellos
- Una sola solicitud externa de un usuario puede requerir que
varios servicios trabajen juntos para cumplir con esa
solicitud
Manejo de Datos:
- Que pasa si algún servicio no actualiza una compra en la
base de datos
❌Desventajas de los Microservicios
Entorno de desarrollo:
- Testing requiere simular interacción con otro servicios
- Testear cuello de botella es difícil
- Necesitas aprender tecnologías
- DevOps engineer y Infra engineer se especializan en
resolver estos problemas
Arq. Microservicios Arq. Monolítico
REST API
- Representational State Transfer Protocol
- Application programming interface
- Provee una interfaz uniforme para
* Identificar recursos
* Manipulación de recursos
* Auto descripción de mensajes
REST API - BASICS
- GET: List de carros
- POST: Crear un nuevo carro
- PUT: Reemplazar un carro, cambiar una atributo de un carro
- DELETE: Eliminar un carro
Referencias
- REPO: https://github.com/kentyucra/toyAPI
- https://github.com/davidetaibi/Microservices_Project_List
- https://www.freecodecamp.org/news/microservices-architecture-for-humans/
- https://www.tutlinks.com/create-and-deploy-fastapi-app-to-heroku/
- https://www.freecodecamp.org/news/rest-apis/
- https://github.com/public-apis/public-apis
Preguntas?

Más contenido relacionado

Similar a Microservicios.pptx

Microservicios
MicroserviciosMicroservicios
Microservicios
Sergio Maurenzi
 
Especificación de requisitos
Especificación de requisitosEspecificación de requisitos
Especificación de requisitos
Daniel Ortega
 
Introducción a SOR
Introducción a SORIntroducción a SOR
Introducción a SOR
rafacicloinfo2a
 
DISEÑO DE SOFTWARE DISTRIBUIDO
DISEÑO DE SOFTWARE DISTRIBUIDODISEÑO DE SOFTWARE DISTRIBUIDO
DISEÑO DE SOFTWARE DISTRIBUIDO
Fidel Antonio
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
JavierGuillermoBolao
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
danilovalderrama
 
ARQUITECTURA CLIENTE SERVIDOR.pdf
ARQUITECTURA CLIENTE SERVIDOR.pdfARQUITECTURA CLIENTE SERVIDOR.pdf
ARQUITECTURA CLIENTE SERVIDOR.pdf
DavidVeraOlivera
 
Activity no. 3
Activity no. 3Activity no. 3
Activity no. 3
StevenVillarreal4
 
GENEX
GENEXGENEX
Arquitectura cliente servidor 2
Arquitectura cliente servidor 2Arquitectura cliente servidor 2
Arquitectura cliente servidor 2
jc_lovecraft77
 
Nuevas tendencias
Nuevas tendenciasNuevas tendencias
Nuevas tendencias
Jose Alvarado Robles
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
Plain Concepts
 
Tema 3
Tema 3Tema 3
Tema 3
Julio Pari
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
FranciscoJavier418
 
I Llampageek - Servidores de Alta Disponibilidad en Software Libre.
I Llampageek - Servidores de Alta Disponibilidad en Software Libre.I Llampageek - Servidores de Alta Disponibilidad en Software Libre.
I Llampageek - Servidores de Alta Disponibilidad en Software Libre.
EtiCAGNU
 
Aliaga
AliagaAliaga
Aliaga
Rene Reynoso
 
Brochure_DockerKubernetes.pdf
Brochure_DockerKubernetes.pdfBrochure_DockerKubernetes.pdf
Brochure_DockerKubernetes.pdf
ssuserc374ce
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Gonzalo Chacaltana
 
8.1 Planteamiento del Caso.
8.1 Planteamiento del Caso.8.1 Planteamiento del Caso.
8.1 Planteamiento del Caso.
Brox Technology
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
Diego Ortiz
 

Similar a Microservicios.pptx (20)

Microservicios
MicroserviciosMicroservicios
Microservicios
 
Especificación de requisitos
Especificación de requisitosEspecificación de requisitos
Especificación de requisitos
 
Introducción a SOR
Introducción a SORIntroducción a SOR
Introducción a SOR
 
DISEÑO DE SOFTWARE DISTRIBUIDO
DISEÑO DE SOFTWARE DISTRIBUIDODISEÑO DE SOFTWARE DISTRIBUIDO
DISEÑO DE SOFTWARE DISTRIBUIDO
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
 
ARQUITECTURA CLIENTE SERVIDOR.pdf
ARQUITECTURA CLIENTE SERVIDOR.pdfARQUITECTURA CLIENTE SERVIDOR.pdf
ARQUITECTURA CLIENTE SERVIDOR.pdf
 
Activity no. 3
Activity no. 3Activity no. 3
Activity no. 3
 
GENEX
GENEXGENEX
GENEX
 
Arquitectura cliente servidor 2
Arquitectura cliente servidor 2Arquitectura cliente servidor 2
Arquitectura cliente servidor 2
 
Nuevas tendencias
Nuevas tendenciasNuevas tendencias
Nuevas tendencias
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
 
Tema 3
Tema 3Tema 3
Tema 3
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
 
I Llampageek - Servidores de Alta Disponibilidad en Software Libre.
I Llampageek - Servidores de Alta Disponibilidad en Software Libre.I Llampageek - Servidores de Alta Disponibilidad en Software Libre.
I Llampageek - Servidores de Alta Disponibilidad en Software Libre.
 
Aliaga
AliagaAliaga
Aliaga
 
Brochure_DockerKubernetes.pdf
Brochure_DockerKubernetes.pdfBrochure_DockerKubernetes.pdf
Brochure_DockerKubernetes.pdf
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
8.1 Planteamiento del Caso.
8.1 Planteamiento del Caso.8.1 Planteamiento del Caso.
8.1 Planteamiento del Caso.
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
 

Último

Dosificacion de hormigon NCH 170 actualizada
Dosificacion de hormigon NCH 170 actualizadaDosificacion de hormigon NCH 170 actualizada
Dosificacion de hormigon NCH 170 actualizada
pipex55
 
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docxINFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
LuzdeFatimaCarranzaG
 
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
DanielaLoaeza5
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
micoltadaniel2024
 
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
DiegoAlexanderChecaG
 
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptxDIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
KeylaArlethTorresOrt
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
OmarPadillaGarcia
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
FantasticVideo1
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
FernandoRodrigoEscal
 
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxEquipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
angiepalacios6170
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
jemifermelgarejoaran1
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
shirllyleytonm
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
PatoLokooGuevara
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
MichaelLpezOrtiz
 
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptxPRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
brandonsinael
 
Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
KristianSaavedra
 
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptxS09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
yamilbailonw
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
LuisAngelGuarnizoBet
 
Ducto Barras para instalaciones electricas
Ducto Barras para instalaciones electricasDucto Barras para instalaciones electricas
Ducto Barras para instalaciones electricas
Edgar Najera
 
PPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdfPPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdf
EgorRamos1
 

Último (20)

Dosificacion de hormigon NCH 170 actualizada
Dosificacion de hormigon NCH 170 actualizadaDosificacion de hormigon NCH 170 actualizada
Dosificacion de hormigon NCH 170 actualizada
 
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docxINFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
 
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
 
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
 
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptxDIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
 
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxEquipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
 
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptxPRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
 
Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
 
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptxS09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
 
Ducto Barras para instalaciones electricas
Ducto Barras para instalaciones electricasDucto Barras para instalaciones electricas
Ducto Barras para instalaciones electricas
 
PPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdfPPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdf
 

Microservicios.pptx

  • 2. Comenzando tu propio negocio - Abres tu puesto de comida en un triciclo en las afueras de un mercado - Al comienzo tu puedes con todas las tareas (cocinar, servir, cobrar) - Todo va bien hasta que el número de clientes va en aumento ¡Problemas!
  • 3. Comienzan a aparecer los primeros problemas Problema 1.- Pierdes clientes (Mucho tiempo de espera, entrega de platos equivocados) Problema 2.- Las cuentas ya no cuadran Posible solución: Contratamos una persona que se encargue de recibir los pedidos y de cobrar ¡Problemas de nuevo!
  • 4. Más Problemas Problema 3.- Espacio alrededor del triciclo ya no es suficiente Solución.- Alquilamos un local Problem 4.- La demanda aumenta Solución.- Contratamos un ayudante de cocina Después de un tiempo . . .
  • 6. El negocio está relativamente estable - Queremos seguir creciendo - Abrimos un bar por las noches - Contratamos personas especializadas + Calidad de nuestro servicio + Comunicación entre las áreas
  • 8. Generalizando los problemas Escalar: Idealmente queremos contratar empleados y hacerlos productivos lo mas antes posible Comunicacion: Añadir más empleados añade complejidad a la hora de coordinar y comunicarse Especialización: Permitir que cierto grupo de personas tomen decisiones autónomas para resolver problemas de manera mas eficiente
  • 9. De Monolítico a Microservicios - Sistemas (software) fueron diseñados de una manera monolítica - Donde todo el sistema funciona como una sola unidad (aplicacion)
  • 10. ✅Ventajas de una Arquitectura Monolítica Inicialmente el tiempo de desarrollo más rápido: como el proyecto es pequeño todos logran conocer el 100% de la aplicación
  • 11. ✅Ventajas de una Arquitectura Monolítica Desarrollo más simple: - Es una simple unidad, testear y logging son muy simples. - Build (construir) y Deploy (despegar) es simple - Comparado a varios microservicios separados
  • 12. ❌Desventajas de una Arquitectura Monolítica Módulos muy acoplados: - La mayoría de compañías intentan dividir una aplicación monolítica en módulos - Estas reglas impuestas en los módulos son fácilmente rotas con deadlines
  • 13. ❌Desventajas de una Arquitectura Monolítica La incorporación de nuevos empleados se vuelve difícil: - Volver productivos a los nuevos empleados demora mucho más por la complejidad de una aplicación monolítica - Toma meses para que los nuevos empleados se sientan confortables con todo el código base. - Siempre existe el miedo de que un cambio pueda romper la aplicación
  • 14. ❌Desventajas de una Arquitectura Monolítica Requisitos de recursos conflictivos: - Diferentes módulos necesitan diferentes requerimientos de hardware - Algunos módulos requieren mucho RAM y otros mucho tiempo de CPU. - La única manera de escalar es aumentando la RAM y el CPU
  • 15. ❌Desventajas de una Arquitectura Monolítica - Un simple error puede hacer caer toda la aplicación - Límites al momento de experimentar - Despliegue puede ser muy lento: * Mientras más grande se hace la aplicación más tiempo demore el despliegue o el desarrollo
  • 16. ✅Ventajas de los Microservicios Mejora la velocidad de desarrollo: - Los equipos pueden añadir nuevas características (features) de manera independiente - Los equipos pueden programar fechas de estreno (release) de nuevas versiones - Si la interface externa del microservicio está bien definida, hasta se podría escribir el servicio en otro lenguaje de programación
  • 17. ✅Ventajas de los Microservicios La incorporación de nuevos empleados es mas rapida: - Los nuevos empleados pueden aprender un sistema simple más rápido y comenzar a contribuir - Con el tiempo irán aprendiendo sobre la aplicación completa, pero no es algo necesario al inicio
  • 18. ✅Ventajas de los Microservicios Tolerancia a fallos: - Aunque los servicios dependan uno del otro - Un diseño de la arquitectura apropiado nos permitirá saber más rápido dónde está el error. - Redundancia integrada y cajas fuertes para evitar fallas en todo el sistema si otro servicio deja de funcionar.
  • 19. ✅Ventajas de los Microservicios Flexibilidad a la hora de escalar: - Debido a que cada servicio se implementa de forma independiente - También puede replicar y escalar cada servicio por sí solo.
  • 20. ❌Desventajas de los Microservicios Complejidad general: - Si bien cada servicio individual es más fácil de entender, todo el sistema en sí es complicado. - Esta complejidad adicional condujo al surgimiento de herramientas como Docker y Kubernetes
  • 21. ❌Desventajas de los Microservicios Comunicación: - Descubrir cómo los microservicios se comunican entre ellos - Una sola solicitud externa de un usuario puede requerir que varios servicios trabajen juntos para cumplir con esa solicitud Manejo de Datos: - Que pasa si algún servicio no actualiza una compra en la base de datos
  • 22.
  • 23.
  • 24. ❌Desventajas de los Microservicios Entorno de desarrollo: - Testing requiere simular interacción con otro servicios - Testear cuello de botella es difícil - Necesitas aprender tecnologías - DevOps engineer y Infra engineer se especializan en resolver estos problemas
  • 26. REST API - Representational State Transfer Protocol - Application programming interface - Provee una interfaz uniforme para * Identificar recursos * Manipulación de recursos * Auto descripción de mensajes
  • 27. REST API - BASICS - GET: List de carros - POST: Crear un nuevo carro - PUT: Reemplazar un carro, cambiar una atributo de un carro - DELETE: Eliminar un carro
  • 28. Referencias - REPO: https://github.com/kentyucra/toyAPI - https://github.com/davidetaibi/Microservices_Project_List - https://www.freecodecamp.org/news/microservices-architecture-for-humans/ - https://www.tutlinks.com/create-and-deploy-fastapi-app-to-heroku/ - https://www.freecodecamp.org/news/rest-apis/ - https://github.com/public-apis/public-apis

Notas del editor

  1. Ejemplo de la vida real