Hay muchas, muchas formas diferentes de hacer esto. Aquí hay un diagrama que muestra la “arquitectura de microservicios” más simple posible:
Los ingredientes básicos son:
- ¿Qué es DevOps?
- ¿Qué hace para mantener y desarrollar una VPC de AWS?
- ¿Cuáles son las habilidades básicas necesarias para aprender la plataforma en la nube de SAP HANA?
- ¿Cuántos discos puedo adjuntar a un servidor GCE?
- ¿Puedes aprender a codificar Java en Google Cloud (App Engine)?
- Una forma para que los usuarios hagan solicitudes y obtengan tráfico en todo el sistema. Por lo general, este es un equilibrador de carga que enruta el tráfico a los microservicios “frontend” (por ejemplo, cada microservicio frontend se registra en una ruta o nombre de dominio diferente en un Application Load Balancer público).
- Una forma de ejecutar cada microservicio. Por ejemplo, cada servicio podría ejecutarse en su propio Grupo de Auto Scaling (por ejemplo, ver Aplicaciones de escala en AWS) o todos ellos podrían ejecutarse en un solo clúster de Docker (por ejemplo, ver Ejecutar Docker en AWS desde cero).
- Una forma para que los servicios se encuentren entre sí (generalmente llamados “Descubrimiento de servicios”), ya que puede haber múltiples copias de cada servicio, cada una ejecutándose en diferentes IP / puertos que podrían cambiar en cualquier momento. Puede hacerlo utilizando equilibradores de carga (por ejemplo, cada microservicio se registra durante el arranque en una ruta diferente o un nombre de dominio en un Balanceador de carga de aplicaciones interno) o herramientas de descubrimiento de servicio especialmente diseñadas (por ejemplo, Consul).
- Una forma de que los servicios se comuniquen entre sí. Esto se puede hacer de forma síncrona a través de llamadas HTTP (p. Ej., API REST) o herramientas RPC (p. Ej. Grpc) o de forma asíncrona a través de colas (p. Ej., RabbitMQ) o pub / sub (p. Ej., Kafka).
Para obtener más información, consulte la charla Ejecución de microservicios en AWS con Docker, Terraform y ECS (puede encontrar un código de muestra funcional para la charla en brikis98 / infraestructura-como-código-conversación):