Automatización completa de entornos Azure

Proveedor de herramientas eléctricas

Novatec 2018 At Work IT 01

La situación inicial

Nuestro cliente se enfrentaba al reto de desarrollar una solución innovadora para la integración perfecta de herramientas eléctricas en una solución completa de IoT. Las herramientas se comunican mediante Bluetooth Low Energy con aplicaciones multiplataforma para iOS y Android basadas en React Native. Toda la comunicación tiene lugar a través de pasarelas, que a su vez interactúan con la solución IoT en la nube Microsoft Azure. Esta infraestructura en la nube incluía componentes importantes como Azure IoT Hub y un clúster de Kafka.

El objetivo era implementar modelos específicos de integración continua / despliegue continuo para esta innovadora solución de software en Microsoft Azure. Esto incluía el desarrollo de pipelines CI/CD personalizados, teniendo en cuenta todos los mecanismos de seguridad. La integración de Infrastructure como Code (IaC) desempeñó aquí un papel decisivo, en particular mediante el desarrollo de una arquitectura de referencia para Azure Kubernetes Services (AKS) con la ayuda de Pulumi y Terraform.

El objetivo no era solo optimizar el desarrollo de software, sino también gestionar toda la infraestructura de forma eficiente mediante IaC e integrarla a la perfección en el proceso CI/CD. Esto no solo permitió acelerar el suministro de aplicaciones, sino también gestionar de forma ágil y coherente la infraestructura en la nube subyacente.

El procedimiento

Nuestro planteamiento se divide en medidas técnicas y organizativas. Para alcanzar los objetivos fijados se adoptaron las siguientes medidas técnicas:

Desarrollo de la arquitectura de referencia AKS

Desarrollamos una arquitectura de referencia AKS para permitir la provisión estandarizada y escalable de clústeres Kubernetes en Microsoft Azure. Tuvimos en cuenta los requisitos de la solución IoT y diseñamos la arquitectura de referencia de forma que pudiera reaccionar con flexibilidad a las necesidades cambiantes.

Utilizamos estratégicamente Pulumi y Terraform para gestionar las definiciones de infraestructura como código. Esto permitió crear, actualizar y eliminar recursos de infraestructura de forma coherente y reproducible.

Integración de IaC en pipelines CI/CD

Integramos las definiciones de infraestructura en las canalizaciones de CI/CD para garantizar implantaciones y pruebas automatizadas de los cambios de infraestructura. Esta integración continua de IaC facilitó la gestión paralela de los cambios en la aplicación y la infraestructura.

Paralelamente a las medidas técnicas, adoptamos medidas organizativas para garantizar una integración fluida de las nuevas tecnologías y procesos:

Integración y formación de los equipos

Los equipos de desarrollo participaron activamente en el proceso de la arquitectura de referencia AKS, Pulumi y Terraform. Se celebraron sesiones de formación y talleres para garantizar que los miembros de los equipos se familiarizaran con las nuevas herramientas y procesos.

Optimización de procesos

Las opiniones de los equipos se recogieron periódicamente y se incorporaron a la optimización de los procesos. Esto permitió seguir desarrollando de forma adaptable las tecnologías y los procesos en función de las necesidades reales y las experiencias de los equipos de desarrollo.

Toma de decisiones en colaboración

Las decisiones sobre la arquitectura de referencia AKS y la selección de herramientas se tomaron conjuntamente con los equipos de desarrollo para garantizar que las soluciones respondían a las necesidades de todos. Esto fomentó la colaboración y garantizó que todas las partes interesadas aceptaran las tecnologías y los procesos.

La combinación de medidas técnicas y organizativas creó un entorno en el que los equipos pudieron trabajar eficazmente con las nuevas tecnologías, al tiempo que la estructura organizativa se adaptaba a los nuevos requisitos.

Los resultados

La integración de la Infraestructura como Código demostró ser un componente clave para la agilidad y estabilidad de toda la solución de software. La arquitectura de referencia AKS junto con Pulumi y Terraform permitió a los equipos ofrecer una infraestructura altamente disponible y escalable que cumplía los requisitos específicos de la solución IoT.

La automatización de los cambios de infraestructura a través de IaC condujo a una reducción significativa de los errores humanos y garantiza que la infraestructura cumpla siempre los requisitos actuales. Esto ayuda a minimizar el tiempo de inactividad y a optimizar el rendimiento general de la solución de software.

La sinergia entre IaC y CI/CD creó un entorno ágil en el que los equipos de desarrollo podían alternar sin problemas entre el desarrollo de aplicaciones y la gestión de la infraestructura subyacente. De este modo, las nuevas funciones se comercializan más rápidamente y el proceso de desarrollo es más eficaz. Así pues, la integración de IaC y CI/CD resultó ser un factor crítico de éxito para el rendimiento y la calidad generales de la solución.

IaC y CI/CD

Llevamos muchos años trabajando intensamente con varios clientes en la automatización de la nube de Microsoft Azure. La atención se centra en la configuración de la infraestructura y la plena integración en un ciclo de vida DevOps sin problemas. Esto incluye la gestión y aprovisionamiento de clústeres AKS, bases de datos (MongoDB, MySQL, Postgres), VNETs, integración de monitorización integral, gestión de secretos sólidos, enrutamiento de tráfico con Azure Application Gateway, la gestión y aprovisionamiento de imágenes de contenedores seguros con Azure Container Registry y mucho más.