El término “microservicios” generalmente tiene la intención de describir un enfoque para el desarrollo de software que implica descomponer la funcionalidad de la aplicación en componentes individuales que se pueden implementar por separado, y típicamente se comunican a través de interfaces de programación de aplicaciones o API.
Características comunes de los microservicios:
- Soporta protocolos HTTP / REST
- Implemente el formato JSON o XML para el intercambio de datos.
- Implementado a través de un marco de contenedorización, como Docker
- Escalado dinámico en infraestructura de nube pública o privada
- A menudo utiliza noSQL o microSQL o almacenes de valores clave para conservar los datos.
Los beneficios de una arquitectura de microservicios pueden incluir:
- ¿Qué herramienta es la más utilizada para la evaluación de seguridad?
- ¿Qué son las subvenciones de patentes lanzadas por las compañías de software, que le permiten a uno usar sus bibliotecas de código abierto?
- ¿Es un MacBook esencial para cada desarrollador?
- ¿Diría que la programación es más fácil en los tiempos modernos? ¿Diría que los idiomas son menos complejos de lo que solían ser debido a que la tecnología realiza una gran parte del trabajo duro?
- ¿Cuáles son los problemas relacionados con la ingeniería que todavía no tienen un software decente para encontrar soluciones? Por ejemplo, encontrar carga de calefacción y refrigeración es un problema de ingeniería. Entonces, ¿en qué problemas de ingeniería trabaja y cree que merece una mejor solución de software?
- Resistencia mejorada y tolerancia a fallas debido al aislamiento de la función de servicio
- Escalabilidad mejorada con la capacidad de escalar servicios individualmente según sea necesario
- Reutilización extrema con definiciones de interfaz estandarizadas
- Soporte políglota más fácil ya que se pueden construir servicios separados en diferentes lenguajes de programación
- Migración más fácil ya que los servicios pueden ser rediseñados o reconstruidos con diferentes tecnologías al tiempo que admiten la misma definición de API para minimizar la interrupción
Algunos ejemplos bien conocidos de grandes empresas que han empleado con éxito arquitecturas de microservicios son: Amazon, eBay, Gilt, Netflix, PayPal y Twitter.
Lo contrario de un enfoque de microservicios sería una aplicación “monolítica” donde toda la funcionalidad es parte de un solo programa que se ejecuta en un solo entorno.