El siguiente reto esta divido en 6 actividades :
El script GetApiBySwagger.sh nos permitira obtener la API.
Se han utilizado los siguientes productos de AWS :
- Codecommit
- Codebuild
- Codepipeline
- EC2
- S3
- KMS
- IAM
- Cloudformation
Los recursos(cf) se encuentran en el folder /CI-AWStack y el orden de implementacion es el siguiente :
- RolesyPoliticas
- PoliticasKMS
- PipelineStack
- APIServer
La carpeta de aplicacion desplegada en EC2 es /Nodejs
- Se utiliza pm2 para la administracion del servidor node en EC2.
El folder /Docker tenemos la API mas los archivos Dockerfile.Alpine y Dockerfile.
El primero genera una imagen base obtenida del registro oficial de node, el segundo es para uso de la API.
El archivo .dockerignore obviara los archivos autogenerados por swagger entre otros.
- Se modifico el dominio host en el file api/swagger.yaml
- Se agrega y comenta configuracion de CORS en el archivo index.js
Los cf de creacion se encuentra en el folder /CI-AWStack (EKSPermisos y EKSConfig). La configuracion de autoescalamiento seleccionada es por HPA (Horizontal Pod Autoscaling) mediante el uso de metrics-server.
Para EKS se utilizaron los archivos del subfolder CI-AWStack/EKS-HPAConfig, tambien se agregan capturas de la prueba de autoescalamiento.
- AWS no tiene instalado el metrics-server por default
- La configuracion del ingress-service implica la creacion de roles de kubernetes.
- Los deployment deben definir metricas y limites de recursos.
A efectos de la prueba, el balanceo se realiza mediante el nodeport y se establece un max de CPU permitido por pod de 7%. EKS-Load-1 : Se genera un loop peticiones. EKS-Load-2 : Los pods comienzan a escalar. EKS-Load-3 : En 3 minutos se llega a 38 pods y subiendo. HPAConfig
Realice tres pruebas con balanceadores de red, clasico y de aplicacion. En el folder /jmeter se adjuntan :
- Pruebas y reporte del CLB.
- Logs de pruebas del NLB.
- Archivo de configuracon eks.jmx
Evaluar el uso de EC2 (spots quizas) para mejorar el performance de jmeter ademas de la configuracion en profundida de jmeter. (mi equipo no aguanto)
Capturas en el folder /Postman.