Arquitecturas de Microservicios

Cristian Moreno

Developer by Passion

FullStack Javascript Developer

 

www.khriztianmoreno.com

Agenda

  • Definición
  • Arquitecturas Comunes
  • Microservicios en el mundo real
  • Pros y Contras
  • ¿Como empezar?
    • Arquitectura cebolla
    • Separar los servicios
    • Tener un plan
  • Entorno NodeJS
  • Demo

Un microservicio es una pequeña aplicación que se encarga de una parte de un software más complejo de manera aislada y se comunica con el resto del software mediante diferentes métodos: peticiones HTTP, o algún sistema de colas.

Arquitecturas

Monolitico

Un sistema monolítico es el que se organiza en su totalidad de forma horizontal, allí la información tiene que atravesar el sistema de la misma forma “horizontal” para llegar a su destino, desde la base de datos, pasando por una o varias partes de todo el sistema, hasta llegar al usuario.

Microservicios

Un sistema basado en Microservicios es aquel que distribuye toda su organización de forma vertical, aquí el detalle es que un tipo de información solicitada puede ser consultada a su servicio específico, este servicio independiente en recursos es capaz de responder la solicitud.

Despliegues por día

  • Flicker : 10
  • Etsy: 50
  • Netflix: 100
  • HubSpot: 300
  • Twitter: 7200
  • Amazon: 7800

Microservicios benfician al NEGOCIO y a los DESARROLLADORES

"Death star" architecture

¿Como puedo Comenzar?

Organicamente no forzado

Comenzar con una arquitectura monolitica

Cuando separar en MICROSERVICOS

  • El trafico de usuarios es mayor en comparación con otras partes de la aplicación. 
  • Un contexto especifico cambia con frecuencia, debido a requerimientos del negocio.
  • Un equipo diferente de desarrollo esta a cargo de una caracteristica especifica.

Tener un plan

  • Despliegues
  • Configuración
  • Escalar
  • Métricas y monitoreo
  • Pruebas
  • Administración de logs
  • Descubrimiento de servicios

Entorno NodeJS

'use strict';

const { send } = require('micro');

module.exports = (req, res) => {
  send(res, 200, { message: 'Esta es la respuesta' });
};

icro

Ejemplo

Made with Slides.com