Terminado

Analista de Ci/Cd - Impementacion de Infraestructura automatizada en cloud y on-premise

Publicado el 06 Febrero, 2025 en Programación y Tecnología

Sobre este proyecto

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

Otros proyectos publicados por G.