Microservicios en PHP
Descripción
El término microservicios denota un estilo arquitectónico de construcción de aplicaciones que toma la forma de servicios poco acoplados. Estos servicios desplegables de forma independiente son pequeñas aplicaciones que a menudo se crean mediante una tecnología de servicio web.
Si bien un servicio puede comunicarse a través de SOAP, el otro puede hacerlo a través de REST, u otra cosa.
No hay un estándar para especificar los requisitos, pero la idea general es tomar una gran aplicación monolítica y dividirla en varias aplicaciones más pequeñas, es decir, en servicios más pequeños.
Ventajas
- Tamaño del equipo de desarrollo: un microservicio único que puede desarrollar un equipo relativamente pequeño.
- Diversidad de habilidades de desarrollo: diferentes servicios que se pueden escribir en diferentes lenguajes de programación.
- Cambio/actualización: fragmentos de código más pequeños que son más fáciles de cambiar o actualizar.
- Integración e implementación: estos fragmentos de código que son más pequeños, son más fáciles de implementar.
- Más fácil para los recién llegados: estos fragmentos de código son más pequeños, son más fáciles de entender.
- Mayor flexibilidad.
- Escalabilidad: no todo se escala por igual; fragmentos de código más pequeños se pueden escalar más fácilmente.
- Manejo de fallas: este único servicio defectuoso no desactiva una aplicación completa.
- Stack de tecnología: cada microservicio puede tener su stack independiente a los demás.
Desafíos nuevos
- Comunicación de servicio: este es un esfuerzo adicional en torno a la comunicación por cada servicio.
- Transacciones distribuidas: estos son desafíos causados por requisitos que abarcan varios servicios.
- Pruebas y monitoreo: son algo más desafiantes que con las aplicaciones monolitos.
- Latencia de red: cada microservicio introduce un poco más de latencia de red.
- Tolerancia a fallas: microservicios que deben diseñarse para tolerancia a fallos.
General
- Monitoreo
- Seguridad
- Best practices y convenciones