Sobre este proyecto
it-programming / others-5
Abierto
Se requiere un analista de integracion e implementacion de workflows de ci/cd que contemple:
establecer la infraestructura base y configuración inicial
objetivos clave:
1. Proveer un ecosistema consistente basado en contenedores Docker que permita:
o Múltiples servicios según las necesidades del cliente.
O Configuración escalable dependiendo del plan del cliente.
2. Asegurar un proceso eficiente para gestionar cambios, actualizaciones y parches.
3. Implementar una estrategia de backups y retención de datos controlada desde el
aplicativo.
4. Preparar un flujo de upgrades basado en una imagen base y deltas aplicables.
5. Optimizar recursos para mantener los costos bajos al usar una sola imagen base
por cliente.
Plan de Implementación
1. Infraestructura básica (Terraform)
Crear un entorno de contenedores para cada cliente utilizando Docker en una
instancia EC2.
Configurar los siguientes servicios según el ecosistema del cliente:
o Laravel (aplicativo principal).
O Servidor web (por ejemplo, Nginx).
O Base de datos (MySQL/PostgreSQL).
O Servicios adicionales según el plan adquirido (por ejemplo, Redis,
Elasticsearch).
Terraform se usará para:
1. Aprovisionar las instancias EC2 con configuraciones iniciales.
2. Configurar un grupo de seguridad que permita:
o Acceso por SSH.
O Puertos necesarios para cada servicio (http, https, api).
3. Automatizar la creación del entorno Docker con las imágenes y configuraciones
iniciales.
2. Gestión de backups
Estrategia:
o Backups automatizados a través de cron jobs en contenedores Docker.
O Almacenar los backups comprimidos en el directorio de Laravel.
O Retención de datos configurable por cliente (por ejemplo, 7, 14, 30 días).
O Enlace con Amazon S3 o almacenamiento similar para backups a largo
plazo (opcional).
Configuración inicial:
o Configurar scripts automatizados para generar backups periódicos.
O Permitir al cliente definir:
Frecuencia de backups (diaria, semanal).
Retención de datos.
3. Gestión de cambios y upgrades
Gestión de versiones:
o Usar un repositorio de control de versiones (GitHub, AWS
CodeCommit) para almacenar el historial de cambios.
O Nombrar las versiones siguiendo el esquema: TaskControl-
<major>.<Minor>.<Patch>.<Build>.<Revision>.
Deltas y upgrades:
o Almacenar una imagen base por cliente.
O Aplicar cambios incrementales (deltas) según sea necesario:
La imagen base permanece estática hasta que se define una
nueva.
Cada cliente puede tener su propia imagen base personalizada.
O Implementar scripts en el aplicativo para:
Generar backups antes del upgrade.
Aplicar deltas sobre la imagen base.
4. Automatización del flujo
Terraform: Automatiza la infraestructura inicial y configuración.
Docker Compose: Controla los servicios dentro de los contenedores.
GitHub o similar: Manejo de deltas y versiones del sistema.
Scripts Bash/Python: Automatización de backups y upgrades.
Fase 1: Resultado esperado
1. Infraestructura básica: Instancia EC2 con Laravel, base de datos y
configuración inicial.
2. Servicios consistentes: Contenedores configurados según el ecosistema del
cliente.
3. Gestión de cambios: Soporte para aplicar deltas y upgrades.
4. Backups configurables: Retención de datos y seguridad para rollback.
Solo con experiencia comprobable. Nivel SENIOR.
Contexto general del proyecto
Por favor leer descripcion anterior.
Categoría Programación y Tecnología
Subcategoría Otros
Tamaño del proyecto Pequeño
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo las especificaciones
Disponibilidad requerida Según se necesite
Integraciones de API Cloud Storage (Dropbox, Google Drive, etc.), Otros (Otras APIs)
Plazo de Entrega: No definido
Habilidades necesarias