Simplificar las operaciones - Implementación de microservicios en AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Simplificar las operaciones

Para simplificar aún más los esfuerzos operativos necesarios para ejecutar, mantener y monitorear los microservicios, podemos usar una arquitectura totalmente sin servidores.

Implementación de aplicaciones basadas en Lambda

Puede implementar el código Lambda cargando un zip archivo o creando y cargando una imagen de contenedor a través de la interfaz de usuario de la consola con un URI de imagen de Amazon ECR válido. Sin embargo, cuando una función de Lambda se vuelve compleja, lo que significa que tiene capas, dependencias y permisos, la carga a través de la interfaz de usuario puede resultar difícil de manejar para los cambios de código.

El uso de AWS CloudFormation and the AWS Serverless Application Model (AWS SAM) o Terraform agiliza AWS Cloud Development Kit (AWS CDK) el proceso de definición de aplicaciones sin servidor. AWS SAM, compatible de forma nativa con CloudFormation, ofrece una sintaxis simplificada para especificar recursos sin servidor.AWS Lambda Las capas ayudan a administrar las bibliotecas compartidas en varias funciones de Lambda, lo que minimiza el espacio de funciones, centraliza las bibliotecas con reconocimiento de inquilinos y mejora la experiencia del desarrollador. Lambda SnapStart para Java mejora el rendimiento de inicio de las aplicaciones sensibles a la latencia.

Para realizar la implementación, especifique las políticas de recursos y permisos en una CloudFormation plantilla, empaquete los artefactos de implementación e implemente la plantilla. SAM Local, una AWS CLI herramienta, permite el desarrollo, las pruebas y el análisis locales de las aplicaciones sin servidor antes de cargarlas a Lambda.

La integración con herramientas como AWS Cloud9 IDE y AWS CodePipeline agiliza la creación AWS CodeBuild AWS CodeDeploy, las pruebas, la depuración y la implementación de aplicaciones basadas en SAM.

El siguiente diagrama muestra la implementación de AWS Serverless Application Model recursos mediante CloudFormation herramientas de CI/CD. AWS

Diagrama que muestra AWS Serverless Application Model ()AWS SAM

Figura 2: AWS Serverless Application Model (AWS SAM)

Resumiendo las complejidades de la multitenencia

En un entorno multiusuario como las plataformas SaaS, es crucial simplificar las complejidades relacionadas con la multitenencia, lo que permite a los desarrolladores concentrarse en el desarrollo de características y funcionalidades. Esto se puede lograr utilizando herramientas como AWS Lambda Layers, que ofrecen bibliotecas compartidas para abordar problemas transversales. La razón de ser de este enfoque es que las bibliotecas y herramientas compartidas, cuando se utilizan correctamente, gestionan de forma eficiente el contexto de los inquilinos. 

Sin embargo, no deberían extenderse a la encapsulación de la lógica empresarial debido a la complejidad y el riesgo que pueden suponer. Un problema fundamental de las bibliotecas compartidas es la creciente complejidad que rodea a las actualizaciones, lo que dificulta su administración en comparación con la duplicación de código estándar. Por lo tanto, es esencial lograr un equilibrio entre el uso de bibliotecas compartidas y la duplicación en la búsqueda de la abstracción más eficaz.

Administración de API

La administración APIs puede llevar mucho tiempo, especialmente si se tienen en cuenta las múltiples versiones, las etapas del ciclo de desarrollo, la autorización y otras funciones, como la limitación y el almacenamiento en caché. Además de API Gateway, algunos clientes también utilizan ALB (Application Load Balancer) o NLB (Network Load Balancer) para la administración de las API. Amazon API Gateway ayuda a reducir la complejidad operativa de la creación y el mantenimiento RESTful APIs. Le permite crear APIs mediante programación, sirve como «puerta de entrada» para acceder a los datos, la lógica empresarial o la funcionalidad desde sus servicios de backend, el control de acceso y autorización, la limitación de velocidad, el almacenamiento en caché, la supervisión y la gestión del tráfico, y funciona sin APIs necesidad de administrar servidores.

La figura 3 ilustra cómo API Gateway gestiona las llamadas a la API e interactúa con otros componentes. Las solicitudes de dispositivos móviles, sitios web u otros servicios de backend se envían al CloudFront punto de presencia (PoP) más cercano para reducir la latencia y ofrecer una experiencia de usuario óptima.

Diagrama que muestra el flujo de llamadas a API Gateway

Figura 3: Flujo de llamadas a API Gateway