Especialización en DevOps SRE: Site Reliability Engineering


Bienvenida

Competencia


Diseña soluciones implementando las últimas tecnologías utilizadas por las organizaciones líderes del área para la sistematización del ciclo de desarrollo de software.

Contenido


Pasa el cursor sobre la imagen para ingresar a los temas.


Actividad integradora


Competencia de la credencial:

Diseña soluciones implementando las últimas tecnologías utilizadas por las organizaciones líderes del área para la sistematización del ciclo de desarrollo de software.

Instrucciones:

Eres el nuevo ingeniero en la nube de CorpoCloud, empresa cuya principal línea de producción son aplicaciones full stack para la mediana y gran empresa, la cual crea soluciones basadas en una infraestructura de servidores físicos con varias máquinas virtuales, donde se aprovisionan los servidores web y bases de datos.

Cuentan con balanceadores de carga propios y, a manera de respaldo, se utilizan NAS que almacenan las aplicaciones y la copia de seguridad de los recursos de los desarrollos.

Con base en un estudio, CorpoCloud se ha dado cuenta de que la competencia ha empezado a entregar soluciones de manera más rápida y a un menor costo. De igual manera, la escalabilidad de los desarrollos es un área de oportunidad para CorpoCloud, ya que suelen complicarse las tareas de escalamiento.

Ante esta situación, el director del área de tecnologías de la información de CorpoCloud ha considerado cambiar el modo de llevar los proyectos de desarrollo a la modalidad DevOps.

Se te ha asignado como el responsable de proveer una propuesta de solución para iniciar la migración a la filosofía de desarrollo DevOps.

De acuerdo con el escenario propuesto, deberás diseñar una propuesta de solución utilizando las herramientas que proveen el marco de trabajo en DevOps. Para esto, considera elaborar los siguientes pasos:

Paso 1: Diseñar una arquitectura basada en microservicios, considerando lo siguiente:

  1. Aplicar la metodología DDD para delimitar los alcances y limitaciones de la arquitectura de microservicios distribuida.
  2. Diseñar con base en la metodología de los 12 factores.
  3. Detectar las fortalezas y las debilidades de la arquitectura monolítica.
  4. Documentar los puntos de desarrollo de tu arquitectura a través de diagramas, mapas mentales, etc.

Paso 2: Diseñar una propuesta donde la infraestructura del entorno de desarrollo a aprovisionar se lleve mediante un servicio de contenedores Docker. Considera tener lo siguiente:

  1. Contenedores.
  2. Volúmenes de datos.
  3. Redes.

Nota: Puedes consultar en la documentación oficial de Docker las imágenes necesarias para preparar el entorno de desarrollo.

Paso 3: Diseñar otra propuesta donde el entorno de desarrollo se aprovisione mediante AWS utilizando Terraform. Para este punto, considera lo siguiente:

  1. Los fundamentos de AWS.
  2. Las políticas de usuarios, grupos y llaves.
  3. Los servicios EC2 y S3.
  4. El ciclo de vida del IaC (Terraform).
  5. La estructura de Terraform.
  6. El trabajo con módulos para AWS en Terraform.

Paso 4: Diseñar el entorno de desarrollo basado en Kubernetes. Para diseñar este punto, asegúrate de aprovisionar lo siguiente:

  1. Pods para los microservicios.
  2. Asignación de recursos.
  3. Redes.
  4. Almacenamiento.
  5. Integración de los kubernetes.

Paso 5: Robustecer la seguridad de la propuesta de solución y su infraestructura.

  1. Políticas de seguridad en DevOps.
  2. Implementación de Vault.

Paso 6: Considerar el modelado de pipelines CI/CD para las operaciones de integración y despliegue continuos. Para ello, asegúrate de lo siguiente:

  1. Crear el pipeline CI/CD.
  2. Aprovisionar el monitoreo del pipeline.

Paso 7: Proponer una metodología para monitorear las operaciones.

  1. Monitorear la aplicación.
  2. Monitoreo de usuarios.
  3. Monitoreo de transacciones (datos).
  4. Monitoreo de componentes.

Para este rubro, puedes utilizar alguna de las siguientes herramientas: Prometheus o Grafana.

Paso 8: Una vez que hayas diseñado las diferentes propuestas de soluciones, crea una matriz de decisión y establece una comparativa de las propuestas a implementar. Con base en esto, argumenta cuál sería la mejor opción para utilizar en CorpoCloud y agrega tu justificación.

Paso 9: Integrar la información en un documento que sirva a modo de consulta y sustento argumentativo de las propuestas de infraestructura en DevOps. Para ello, usa el formato de reporte IMRD, el cual se integra de las siguientes partes:

  1. Introducción.
  2. Método.
  3. Resultados.
  4. Discusión y conclusiones.

Criterios de evaluación:

  1. Modelo de la arquitectura a través de microservicios.
  2. Diseño de la propuesta utilizando contenedores Docker.
  3. Diseño de la propuesta en AWS con Terraform.
  4. Diseño de la propuesta con Kubernetes.
  5. Implementación con Vault.
  6. Modelo de pipelines de CI/CD.
  7. Metodología de monitoreo.
  8. Integración de toda la documentación en formato IMRD.