Microservicios - Implementación de microservicios en AWS

Microservicios

Las API son la puerta principal de los microservicios, lo que significa que las API funcionan como el punto de entrada para la lógica de aplicaciones detrás de un conjunto de interfaces de programación, normalmente una API de servicios web RESTful. Esta API acepta y procesa las llamadas de los clientes y puede implementar funcionalidades como la administración del tráfico, el filtrado de solicitudes, el enrutamiento, el almacenamiento en caché, la autenticación y la autorización.

Implementación de microservicios

AWS ha integrado bloques de creación que respaldan el desarrollo de microservicios. Dos estrategias populares usan AWS Lambda y los contenedores de Docker con AWS Fargate.

Con AWS Lambda, simplemente cargue su código y deje que Lambda se encargue de todo lo necesario para ejecutar y escalar la implementación a fin de satisfacer la curva de demanda real con alta disponibilidad. No es necesario administrar infraestructura. Lambda es compatible con varios lenguajes de programación y puede invocarse desde otros servicios de AWS o recibir llamadas directamente desde cualquier aplicación web o móvil. Una de las principales ventajas de AWS Lambda es que puede trabajar con mayor rapidez: puede enfocarse en su lógica empresarial porque AWS se encarga de la seguridad y el ajuste de escala. La persistente estrategia de Lambda respalda la plataforma de escala ajustable.

Un enfoque común para reducir los esfuerzos operativos durante una implementación es basarla en contenedores. Las tecnologías de contenedores como Docker han aumentado su popularidad en los últimos años debido a los beneficios como portabilidad, productividad y eficiencia. La curva de aprendizaje con los contenedores puede ser abrupta y debe pensar en correcciones de seguridad para sus imágenes de Docker y en monitorización. Con Amazon Elastic Container Service (Amazon ECS) y Amazon Elastic Kubernetes Service (Amazon EKS), ya no hay necesidad de instalar, operar ni escalar una infraestructura de administración de clústeres propia. Con llamadas a la API, puede iniciar y detener las aplicaciones habilitadas para Docker, consultar el estado completo de su clúster y acceder a muchas características conocidas, como grupos de seguridad, equilibrio de carga, volúmenes de Amazon Elastic Block Store (Amazon EBS) y roles de AWS Identity and Access Management (IAM).

AWS Fargate es un motor de informática sin servidor para contenedores que funciona con Amazon ECS y Amazon EKS. Con Fargate, ya no deberá preocuparse por aprovisionar la cantidad suficiente de recursos de cómputo para sus aplicaciones en contenedores. Fargate puede lanzar decenas de miles de contenedores y puede ajustar su escala fácilmente para ejecutar las aplicaciones más importantes.

Amazon ECS admite estrategias y restricciones de asignación de contenedores para personalizar la manera en la que Amazon ECS asigna y finaliza las tareas. Una restricción de asignación de tareas es una regla que se define durante la asignación de tareas. Puede asociar atributos, que son esencialmente pares clave-valor, a sus instancias de contenedor y luego usar una restricción para asignar tareas basadas en los atributos. Por ejemplo, puede usar restricciones para asignar ciertos microservicios según el tipo de instancia o la capacidad de la instancia, como las instancias alimentadas por GPU.

Amazon EKS ejecuta versiones actualizadas del software de código abierto Kubernetes, lo que le permite utilizar todos los complementos y las herramientas existentes de la comunidad de Kubernetes. Las aplicaciones que se ejecutan en Amazon EKS son totalmente compatibles con las aplicaciones que se ejecutan en cualquier entorno de Kubernetes estándar, independientemente de si se ejecutan en nubes públicas o centros de datos locales. Amazon EKS integra IAM con Kubernetes, lo que le permite registrar entidades de IAM con el sistema de autenticación nativo en Kubernetes. No es necesario configurar credenciales manualmente para autenticarlas con los nodos de plano de control de Kubernetes. La integración con IAM le permite utilizar IAM para realizar una autenticación directa con el plano de control mismo y ofrecer acceso pormenorizado al punto de conexión público de sus planos de control de Kubernetes.

Las imágenes de Docker utilizadas en Amazon ECS y Amazon EKS se pueden almacenar en Amazon Elastic Container Registry (Amazon ECR). Amazon ECR elimina la necesidad de operar y escalar la infraestructura que se requiere para alimentar el registro de contenedores.

La integración y entrega continuas (CI/CD) son prácticas recomendadas y una parte fundamental de una iniciativa de DevOps que permite realizar cambios en el software rápidamente y, al mismo tiempo, mantener un nivel de estabilidad y seguridad en el sistema. Sin embargo, esto está fuera del alcance de este documento técnico. Para obtener más información, consulte el documento técnico Practicing Continuous Integration and Continuous Delivery on AWS.

AWS PrivateLink es una tecnología escalable y de alta disponibilidad que le permite conectar su nube privada virtual (VPC) de forma privada a servicios de AWS compatibles, servicios alojados en otras cuentas de AWS (servicios de punto de conexión de la VPC) y servicios compatibles de socios de AWS Marketplace. No necesita una puerta de enlace de Internet, un dispositivo de traducción de direcciones de red, una dirección IP pública, una conexión de AWS Direct Connect ni una conexión de VPN para comunicarse con el servicio. El tráfico entre su VPC y el servicio no sale de la red de Amazon.

Los enlaces privados son una excelente manera de aumentar el aislamiento y la seguridad de la arquitectura de microservicios. Un microservicio, por ejemplo, podría implementarse en una VPC totalmente independiente, encabezada por un equilibrador de carga y expuesta a otros microservicios a través de un punto de conexión de AWS PrivateLink. Con esta configuración, gracias al AWS PrivateLink, el tráfico de red hacia y desde el microservicio nunca atraviesa la Internet pública. Un caso de uso para dicho aislamiento incluye el cumplimiento normativo de los servicios que manejan datos confidenciales como PCI, HIPPA y el Escudo de Privacidad UE-EE. UU. Además, AWS PrivateLink permite conectar microservicios en diferentes cuentas y VPC de Amazon, sin necesidad de reglas de firewall, definiciones de rutas ni tabla de enrutamiento, lo que simplifica la administración de la red. Al utilizar PrivateLink, los proveedores de software como servicio (SaaS) y los ISV pueden ofrecer sus soluciones basadas en microservicios con aislamiento operativo completo además de acceso seguro.