Diseño de Infraestructura y automatización de procesos para Startup en crecimiento

CookUnity nace de la idea de poder llevar a la casa de sus clientes una comida sana, cocinada por chefs profesionales. Es la primer plataforma que conecta directamente a un grupo diverso de talentosos chefs con amantes de la comida para crear una experiencia gastronómica.

CookUnity es el hogar de más de 30 chefs de Nueva York. A través de una suscripción semanal, los consumidores pueden seleccionar entre más de 200 menús que se adaptan a una amplia variedad de paladares y preferencias dietéticas.

CookUnity

El Desafío

Al comienzo de su diseño CookUnity solo contaba con instancias creadas a mano. Las pocas réplicas de las aplicaciones se habían creado a partir de snapshots de otras, por lo que no se estaba seguro de que componentes y dependencias eran necesarios para la aplicación.

Los deploys eran manuales y, al ser una empresa jóven, no estaban documentados los procesos. A causa de esto crecer en recursos de desarrollo era cada vez más dificultoso, ya que el proceso de inducción sin documentación era complicado.

Además, encontrar un problema en producción era una tarea cada vez más difícil al no contar con servicios centralizados para monitoreo o logs de sistema de aplicación.

Finalmente, CookUnity contaba con créditos en AWS, por lo tanto el billing estaba sobredimensionado para el caso de uso que tenían y existía la preocupación sobre qué sucedería en el futuro si no se optimizaba.

Objetivos
  • Infraestructura estática
  • Migración de Docker y Kubernetes en todos los entornos
  • Creación de la infraestructura en terraform para versionado y aprobación de cambios
  • Reducción de la facturación de AWS en un 50% como mínimo
  • Automatización completa de procesos de deploy para aplicaciones
  • Implementación de monitoreo, con inclusión de APM y métricas de consumo de recursos
  • Centralizar un directorio de usuarios para deliberar el acceso a servicios internos
  • Migrar todo lo a posible a tráfico interno con una VPN para desarrollo y BI

Solución

El equipo de Craftech se sumó a trabajar junto a CookUnity y realizamos un stack completo para desarrollo nativo en Kubernetes. La plataforma adoptó Docker para toda su línea de productos (tanto local como en la nube), y los proyectos ahora tienen configuraciones reutilizables de CI / CD totalmente automatizadas para desarrollar a velocidad más altas con mayor confiabilidad.

Se implementó un stack 100% personalizado para monitoreo y escalamiento, con notificaciones automáticas para métricas de infraestructura y negocio.

Además, se centralizó todo el stack de logging de CookUnity, definiendo un standard de logs y facilitando la depuración de problemas en producción y entornos de desarrollo.

Resultados