Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducción práctica a CI/CD con Gitlab, Docke...

Introducción práctica a CI/CD con Gitlab, Docker, DotNet Core y Azure Web App

Primera sesión de DDD Málaga con Diego Martín, de Sunny Attic Software, hablando sobre integración y entrega/despliegue continuo con GitLab, DotNet Core, Docker y Azure Web App.
Código fuente en https://gitlab.com/sunnyatticsoftware/learning/continuous-deployment-gitlab-docker-dotnet

Avatar for Diego Martin

Diego Martin

April 19, 2020
Tweet

More Decks by Diego Martin

Other Decks in Technology

Transcript

  1. Introducción práctica a CI/CD con Gitlab, Docker, Introducción práctica a

    CI/CD con Gitlab, Docker, DotNet Core y Azure Web App DotNet Core y Azure Web App Diego Martín [email protected] https://sunnyatticsoftware.com DDD Málaga DDD Málaga
  2. 2 / 11 Qué vamos a ver • Qué es

    CI/CD y su valor para un negocio • GitLab como herramienta principal CI/CD • CD con imágenes Docker • Azure Web App como un servicio en la nube • Ejemplo práctico con .NET Core
  3. 3 / 11 CI/CD • Es parte de una estrategia

    DevOps • CI: Integración Continua (integration) • CD: Entrega Continua (delivery) – y/o Despliegue Continuo (deployment)
  4. 4 / 11 CI: Integración Continua • Repositorio de código

    fuente – Git • Varios desarrolladores trabajando a la vez – branching y merge requests • Mismo proceso para todo cambio en código – Debe compilar (e.g: build) – Lo nuevo (y lo antiguo) debe funcionar (e.g: Unit & Integration tests)
  5. 5 / 11 CD: Entrega/Despliegue Continuo • Entrega Continua –

    Genera artefactos listos para desplegarse • Despliegue Continuo – Instalación/Ejecución en el servidor final – Uno o varios entornos de ejecución (Development, QA, Production, ...) • Muchas estrategias diferentes
  6. 6 / 11 GitLab • Plataforma open source de DevOps

    • La versión básica es gratuíta – 2000 minutos de ejecución CI al mes – Repositorios Git públicos y privados – Herramientas de gestión de proyecto – Equipos ilimitados – Repositorio de paquetes • nuget, npm, maven, pypi – Repositorio de imágenes docker
  7. 7 / 11 GitLab CI/CD • Multistage CI/CD pipeline disponible

    por defecto – .gitlab-ci.yml en la raíz de un proyecto – Integración con kubernetes y docker • Utiliza contenedores en la pipeline CI/CD
  8. 8 / 11 CD con Docker • Diferentes formas de

    desplegar una web app – Empaquetar ejecutables (e.g: dll, jar, war, js, etc.) y subir a un servidor web (e.g: Tomcat, IIS, Kestrel, etc) – Construir imagen y ejecutar una instancia como contenedor en servidor remoto
  9. 9 / 11 Azure Web App • Azure Web App

    es una PaaS • Tiene opción básica gratuíta – Sin soporte para dominios específicos (e.g: XXX.azurewebsites.net) ni SSL
  10. 10 / 11 Ejemplo Práctico con .NET Core • Pre-requisitos

    (con Linux, MacOS o Windows) – DotNet Core SDK 3.1 – Git – Azure CLI – Cuenta en GitLab – Cuenta en Azure – Docker no es necesario en local ...pero ¿aún vives sin Docker?
  11. ¡ ¡Gracias Gracias! ! Encuéntranos en Meetup o Youtube y

    contacta si deseas Encuéntranos en Meetup o Youtube y contacta si deseas colaborar con nosotros colaborar con nosotros DDD Málaga DDD Málaga