Almuñécar - Granada - España
Integrante del equipo Xtratus, grupo encargado de las operaciones cloud de Ferrovial, especializado en el mantenimiento de Kubecore (container as service).
Mantenimiento y actualización de herramientas de sistema del cluster: ArgoCD, Akv2k8s, Nginx-Ingress, AGIC, ExternalDNS, Kubecost, Velero, Prometheus, Grafana, plugins de ArgoCD para inyección de secretos desde key vaults e ImageUpdater, ImageReloader e Istio.
Mantenimiento y actualización de despliegue automatizado mediante Azure Pipelines y Terraform.
Diseño e implementación de pipelines de CI/CD para Azure Datafactory y Azure Databricks para integración y despliegue continuo.
Diseño e implementación de tests QA automatizados en Azure Databricks.
Despliegue automatizado de infraestructura mediante Azure Pipelines y Terraform, con virtual networks, network security groups, Azure Kubernetes Service para entornos DEV, TST y PRO, Azure container registry, key vaults y storage account privados, integrados con sus redes hub & spoke.
Despliegue automatizado en Kubernetes con ArgoCD de herramientas de sistema del cluster: Akv2k8s, Nginx-Ingress para ingress interno, AGIC con ExternalDNS para ingress externo, administración de ArgoCD y Kubecost integrados con identificación de Azure AD, copias de seguridad con Velero, monitorización con Prometheus y exportación de métricas a Grafana, además de plugins de ArgoCD para inyección de secretos desde key vaults e ImageUpdater.
Despliegue automatizado de "Onboarding" mediante Azure Pipelines y Terraform, para creación de Proyecto en Azure DevOps, repositorios iniciales, teams de desarrollo, permisos de usuarios, creación de namespace, roles y rolebindings en AKS, alta de proyecto en ArgoCD para despliegue automático y creación de service connections en el proyecto a ACR y entornos AKS.
Migración a cloud de Azure de web corporativa implementada con Wordpress.
Diseño de plantillas IaC en Terraform para despliegue automatizado de AKS para entornos de desarrollo y producción.
Diseño de plantillas IaC en Bicep para despliegue automatizado de AKS para entorno de producción.
Diseño de plantillas IaC en Terraform para despliegue automatizado de Wordpress. Diseño de arquitectura con entorno de preproducción en VM para permitir la edición de contenido a través de Wordpress y pipelines automatizados para despliegue a producción.
Actualización de imágenes Docker de Selenium 3 mediante creación de Dockerfiles personalizados.
Migración de un sistema monolito a conjunto de bibliotecas independientes nuget, aplicando paradigmas de limpieza de código y calidad de código implementando tests unitarios y de integración, con integración continua a través de gitlab cd/ci.
Tras un acuerdo de colaboración con la entidad aseguradora AXA nos comprometimos a desarrollar los procesos de conectividad EIAC estableciendo unos objetivos y unos plazos de entrega.
Hasta el momento todos los servicios de conectividad habían sido desarrollados en Java para Tomcat usando protocolos SOAP. Debido a los cambios de licenciamiento del ecosistema de Java decidimos desarrollar los nuevos servicios en Net core, aplicando la filosofía de desarrollo basada en microservicios, de forma que los desarrollos estuvieran empaquetados en conenedores Docker para su despliegue en Kubernetes.
Para la implementación se diseñaron una serie de módulos independientes:
Además se añadieron métricas de uso del servicio utilizando Prometheus y se creó una interfaz
gráfica de monitorización en tiempo real utilizando Grafana.
Para el despliegue continuo de los microservicios se implementaron despliegues automatizados utilizando gitlab cd/ci.
El sistema se presentó en los plazos establecidos y pasó a producción una vez que tuvimos la aprobación por parte de la compañía.
Diseño y desarrollo e implementación de un sistema de gestión de correspondencia. A través de una serie de plantillas de LibreOffice el usuario tiene total libertad para diseñar de forma sencilla las circulares que necesita para sus comunicados. Una vez confeccionadas las plantillas el sistema permite seleccionar una base de datos de clientes a los que enviarles las circulares. El proceso personaliza cada plantilla con los datos de cada cliente y enruta el envío en función del coste del mismo. Se generan PDF de las plantillas personalizadas y son enviadas por email o por correo ordinario en función de los parámetros de cada cliente.
Además el sistema envía comunicaciones SMS a través de un modem GSM usando una serie de microservicios desarrollados específicamente para este proceso, haciendo uso de utilidades libres como SMSTools y scripts Python.
El sistema de copias de seguridad de la documentación de la empresa estaba programado hasta el momento con Cobian backup. Debido al volumen de información las copias se demoraban por más de 5 horas y empezaron a reducir el rendimiento del servidor a primera hora de la mañana.
Para solucionar el problema se implementó una serie de scripts en PowerShell de modo que usando unos ficheros parametrizables de configuración se pudiesen automatizar las copias usando Restic backup, un programa de copias de seguridad basado en instantáneas. El tiempo de ejecución del proceso de copia se redujo a minutos, además de optimizar el espacio de almacenamiento para almacenar el histórico.
El sistema además tiene la ventaja que permite almacenar las copias en un bucket S3, por lo que es sencillo mantener tanto copias locales como almacenadas en Azure o en Amazon.
Desarrollo un sistema de publicidad para instalar en vehículos. El sistema podía ser configurado con una lista de coordenadas GPS y audios vinculados a dichas coordenadas. El sistema debía reproducir el audio específicado al pasar por cada punto GPS.
Para su implementación se usó una Raspberry Pi con un sistema de baterías recargable, la cual tenía conectado un GPS de alta resolución. Todo el desarrollo se realizó en C++ usando cross compiler gcc.
Debido a problemas previos con los servidores físicos de la empresa se elaboró un proyecto de actualización para la virtualización de todo el sistema. La premisa de partida es que todos los equipos deben tener redundancia de modo que ante un fallo de cualquier componenete el sistema pueda ser restaurado en el menor tiempo posible.
Para su implementación utilizamos dos servidores Dell PowerEdge R710 gemelos y una cabina SAS MD1200 con doble controlador. En la cabina se crearon dos unidades en Raid 5, una para cada servidor, pero accesibles en caso de fallo por el servidor gemelo. Los servidores virtualizados se repartieron entre ambas unidades. En caso de fallo de uno de los servidores el servidor gemelo puede levantar las máquinas virtualizadas montando la unidad en apenas segundos. Además, se programaron copias de seguridad de las máquinas virtualizadas al almacenamiento interno de cada servidor por lo que, en caso de fallo de la cabina SAS, es posible levantar las máquinas virtualizadas en cada servidor.
Hasta el momento el sistema ha funcionado correctamente. Incluso con un fallo grave en tres discos de forma simultánea de los dos RAID el sistema se ha mantenido funcionando de forma ininterrumpida y sin pérdida de datos gracias a los sistemas redundantes y de copias de seguridad.