


migra a la nube
SocialRank es una empresa de análisis de datos que ofrece la forma más sencilla de identificar, organizar y gestionar tus seguidores en X (Twitter) e Instagram. Su negocio principal se basa en un clúster de ElasticSearch de tamaño mediano/grande que alberga 22 TB de datos y sigue en crecimiento. Teracloud logró reducir costos y mejorar la seguridad y confiabilidad de la plataforma al migrarla a la nube de AWS.
Sobre Social Rank
SocialRank te permite:
-
Identificar: Ofrece la oportunidad de optar por el consentimiento del consumidor, permitiéndote generar datos de primera parte éticos y de alta calidad. Con el poder de exportar y volver a comercializar a audiencias objetivo valiosas.
-
Segmentar: Descubre nuevas audiencias, segmenta y filtra por industrias e intereses utilizando palabras clave en biografía, desglose geográfico, uso de hashtags, tasa de actividad, horarios de publicaciones y más. Comprende la superposición de audiencias a través de una cartera de marcas: la tuya, competidores y más.
-
Involucrar: Activa una audiencia de cualquier manera y en cualquier momento. Impulsa llamadas a la acción como nuevos seguidores en la plataforma, suscripciones a boletines, e-commerce y más. Involucra con facilidad para volver a comercializar y generar resultados impactantes.
Desafíos de Social Rank
La infraestructura de SocialRank estaba completamente desplegada on-premise, con todas las desventajas que esta situación conlleva. Existían múltiples procesos de ingesta de datos personalizados que se conectaban a las infraestructuras de Twitter e Instagram para alimentar el gran clúster de ElasticSearch y atender a los clientes. SocialRank se puso en contacto con nosotros porque el clúster base de Kubernetes perdió su único nodo Master y perdieron el control de su clúster; era solo cuestión de tiempo antes de que toda la infraestructura colapsara. Los desafíos se pueden resumir de la siguiente manera:
Seguridad:
-
Versión de Kubernetes obsoleta: Todos los manifiestos de Kubernetes estaban escritos para Kubernetes 1.4.
-
Versión obsoleta de Elasticache: El sistema funcionaba con Elasticache v5.
Confiabilidad:
-
Estrategia de respaldo incompleta.
-
No se definió una estrategia de recuperación ante desastres (DR). No se destinaron recursos a la DR.
-
No hay estrategia de reemplazo de nodos. Las fallas de hardware introducían un riesgo extremadamente alto de degradación del rendimiento de la plataforma.
Rendimiento:
-
Escalabilidad: Costos muy altos para escalar debido al hardware on-premise.
Operacional:
-
La versión de las herramientas subyacentes resulta en dificultades cada vez mayores para actualizar el software y aplicar parches. Además, no se pueden usar herramientas modernas (como SecretsManager) por las mismas razones.
¿Por qué AWS?
Se eligió AWS porque ayuda a crear un clúster de Kubernetes seguro, de alto rendimiento, resiliente y eficiente, que es la base de toda la infraestructura. El uso de EKS, AWS Lambda, Route 53, ACM, S3 y otros servicios gestionados por AWS nos permitió planificar una migración fluida y segura, desplegar la infraestructura en paralelo con las cargas de trabajo on-premise anteriores, probarla completamente y ganar la confianza de los equipos de ingeniería y gestión para realizar el cambio.
¿Por qué Teracloud?
Necesitaba un partner de AWS con una sólida experiencia en migraciones a la nube. Aún más importante, dado que se trataba de un escenario de riesgo para la continuidad del negocio, no podían permitirse errores, demoras ni contingencias que pudieran resultar en la pérdida de acceso a la plataforma por parte de los clientes de SocialRank y la pérdida de datos. Afortunadamente, nuestros ingenieros en la nube han demostrado sus capacidades a SocialRank en proyectos anteriores, junto con una alta velocidad de implementación en escenarios similares con otros clientes.
Nuestra solución
La solución se estructuró en torno a 6 aspectos fundamentales:
-
Requerimientos básicos del cliente
-
Seguridad
-
Rendimiento
-
Confiabilidad
-
Optimización de costos
-
Excelencia operativa
Utilizamos los 6 pilares del AWS Well Architect Framework junto con los requerimientos básicos del cliente para diseñar la solución. Dado que el riesgo aumentaba con el tiempo (cualquier mal funcionamiento de un pod en la infraestructura on-premise no podría ser recreado porque el nodo maestro estaba caído), diseñamos la solución basada en tres principios:
-
Velocidad: Elegir la solución que cumple con el requerimiento más rápido.
-
Confiabilidad: Los datos del cliente son el activo más valioso; cualquier solución que introdujera riesgo en este aspecto fue descartada.
-
Seguridad: Los datos del cliente deben estar protegidos en reposo y en tránsito, sin excepciones.
.webp)
In this design, we leverage the power of AWS services to reach our goals faster and with fewer costs:
​
-
The core element is the EKS cluster because all services are run within it. The backend, frontend, and ElasticSearch databases run inside the cluster. The AWS ElasticSearch service could not be used in this case because the client required a custom ES plugin, which is currently not allowed on AWS ElasticSearch.
-
The ElasticSearch pods require storage space, which is provided by EBS volumes attached to the EKS nodes.
-
All components except AWS Application Load Balancer were located on private networks, and ssh access was provided by AWS SystemsManager.
-
All secrets were migrated to AWS Secrets Manager, resulting in simpler architecture for the Kubernetes internals.
-
Route53 provides DNS resolution.
-
AuroraRDS for mySQL was the preferred approach to migrate a support mySQL database from on-premise.
-
The deployment of new app versions is handled with a mix of CodeBuild and Flux for Kubernetes, with the aim of getting a completely automated CI/CD environment.
Observaciones
En este diseño, aprovechamos el poder de los servicios de AWS para alcanzar nuestros objetivos más rápido y con menores costos:
El elemento central es el clúster de EKS, ya que todos los servicios se ejecutan dentro de él. El backend, el frontend y las bases de datos de ElasticSearch funcionan dentro del clúster. En este caso, no se pudo utilizar el servicio de AWS ElasticSearch porque el cliente requería un plugin personalizado de ES, el cual actualmente no está permitido en AWS ElasticSearch.
Los pods de ElasticSearch requieren espacio de almacenamiento, que es proporcionado por volúmenes EBS adjuntos a los nodos de EKS.
Todos los componentes, excepto el AWS Application Load Balancer, se ubicaron en redes privadas, y el acceso SSH fue proporcionado por AWS Systems Manager.
Todos los secretos fueron migrados a AWS Secrets Manager, lo que resultó en una arquitectura más simple para los internos de Kubernetes.
Route 53 proporciona la resolución de DNS.
​
Aurora RDS para MySQL fue el enfoque preferido para migrar una base de datos de soporte MySQL de on-premise.
El despliegue de nuevas versiones de la aplicación se maneja con una combinación de CodeBuild y Flux para Kubernetes, con el objetivo de lograr un entorno de CI/CD completamente automatizado.
Próximos pasos
Para completar la migración a tiempo, se tomaron decisiones de compromiso, lo que resultó en un escenario menos que ideal. Si bien no introdujimos riesgos de seguridad o confiabilidad, hay áreas que ciertamente pueden mejorarse:
-
Costos: Las instancias actuales pueden migrarse a Graviton, lo que reducirá costos. Esta iniciativa está actualmente bloqueada hasta que actualicemos a ElasticSearch v8.
-
Rendimiento: La refactorización de la aplicación puede resultar en un mejor uso de los recursos en la nube. Además, puede permitirnos escalar automáticamente.
-
Operacional: Contar con una canalización de CI/CD automatizada nos permitirá tener más confianza en el proceso de despliegue de nuevas aplicaciones y versiones.
Cómo trabajamos
Somos Advanced Services Partner de AWS. Creado por expertos en la nube certificados, con una amplia experiencia en la migración y el despliegue de startups, empresas y todo lo que hay en medio hacia la nube. Hemos trabajado con compañías de diversas industrias, como aerolíneas, salud, educación y comercio electrónico, diseñando, implementando y gestionando cargas de trabajo en la nube con arquitectura de alta disponibilidad bajo un SLA de tiempo de actividad del 99.9% y requisitos de cumplimiento de PCI/HIPAA.
Nuestra experiencia abarca desde el diseño de arquitecturas en la nube de última generación hasta el despliegue y la gestión de entornos en la nube a través de Servicios Gestionados, incluyendo Consultoría de AWS, Arquitectos, DevOps, DevSecOps, MLOps, Soporte 24/7, Automatización, Recuperación ante Desastres y Seguridad. Proporcionamos soluciones seguras, escalables y altamente disponibles para nuestros clientes.
Hablemos
Escala tu negocio sin límites
