Estamos contemplando la división progresiva de nuestros monstruos monolíticos en arquitectura basada en microservicios. Tenemos 5 equipos, cada equipo con 2-3 desarrolladores de C #, al menos 1 desarrollador de bases de datos y 2 ingenieros de control de calidad. Además del enorme cambio de cultura y paradigma que va de una arquitectura monolítica a microservicios, también existen desafíos técnicos. Me gustaría pedirle a la comunidad un poco de sabiduría y consejos para que podamos evitar cometer los mismos errores.
¿Hay buenos ejemplos de la industria en los que los microservicios basados en .NET se hayan utilizado con éxito en un sistema de producción? ¿Cuál fue la estrategia para lo siguiente?
- Org : ¿cómo organizó las soluciones / proyectos .NET?
- Planificación del desarrollo : en términos de planificación del desarrollo, ¿cómo dividió el trabajo entre los equipos? ¿Cuál fue la estrategia general para garantizar que el cumplimiento del contrato entre microservicios se negoció entre los equipos?
- Equilibrio de carga / enrutamiento / puerta de enlace API : ¿cuál fue la estrategia para el equilibrio de carga, la redundancia y el escalado? ¿Acabas de utilizar una arquitectura asíncrona completa y utilizaste una cola para la comunicación de microservicios o lo hiciste de igual a igual a través de una puerta de enlace API / equilibrador de carga? ¿Y por qué?
- Automatización de pruebas : cómo manejó la automatización de pruebas. Esto, junto con la integración continua, parece absolutamente necesario para la arquitectura de microservicios. ¿Cómo lo hiciste?
- Implementación : ¿cómo se implementa? ¿Una VM / microservicio o un contenedor / microservicio o algo completamente diferente? ¿Cómo manejó el hecho de que ahora tiene decenas de bases de datos, si no más, considerando que cada microservicio tendría su almacén de datos, qué le hizo eso a su infraestructura y cómo lo manejaron sus DBA?
- Infraestructura : cómo se amplió su infraestructura con esta arquitectura. ¿Fue muy hablador y tuviste que afinarlo o la red lo manejó sin problemas? ¿Son autohospedados o en la nube?
- Monitoreo : ¿cuál es su estrategia de monitoreo? ¿Cómo estás controlando decenas si no cientos de microservicios? ¿Es principalmente a través del registro y la supervisión central?