Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Pruebas de integración con Docker en Azure DevOps

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio

Eche un vistazo a continuación

1 de 21 Anuncio
Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Similares a Pruebas de integración con Docker en Azure DevOps (20)

Anuncio

Más de Software Guru (20)

Más reciente (20)

Anuncio

Pruebas de integración con Docker en Azure DevOps

  1. 1. Pruebas de integración con Docker en Azure DevOps Rodolfo Ortiz
  2. 2. Agenda ● Revisar conceptos ○ Pruebas de integración ○ Docker ○ Azure DevOps ● Consideraciones ● Detalles de implementación
  3. 3. Meta Correr las pruebas sobre una base de datos que se crea al iniciar las pruebas, y que al terminarlas la base de datos se borra.
  4. 4. ¿Qué son las pruebas de integración? Es la fase de pruebas de software en la que módulos individuales de software son combinados y probados como un grupo. Controlador => Command/Query (CQRS) => Repositorio => Base de datos
  5. 5. ¿Qué es Docker? Docker es una herramienta diseñada para hacer más fácil la creación, despliegue (deploy) y ejecución de aplicaciones usando contenedores. Es como una máquina virtual (VM) pero más ligera. Utiliza virtualización.
  6. 6. Diferencias entre Máquina Virtual y Contenedores Máquina Virtual Contenedor Pesadas (en cuanto a recursos) Ligeras Desempeño limitado Desempeño nativo Cada MV corre en su propio sistema operativo Todos los contenedores comparten el sistema operativo anfitrión (host OS) Virtualización a nivel de hardware Virtualización a nivel de software Pueden requerir minutos para iniciar Inician en milisegundos Asignan la memoria requerida Requieren menos espacio de memoria Totalmente aislada y más segura Aislamiento a nivel de proceso, posiblemente menos seguro
  7. 7. Ejemplo docker run -it ubuntu cat /etc/issue docker run --name my_sqlserver -d -p 15435:1433 -e "SA_PASSWORD=Password_01" -e "ACCEPT_EULA=Y" mcr.microsoft.com/mssql/server:2019-latest
  8. 8. Dockerfile Docker puede crear imágenes automáticamente leyendo las instrucciones de un archivo llamado Dockerfile. Un archivo Dockerfile es un archivo de texto que contiene todos los comandos que un usuario podría ejecutar en la línea de comandos para crear una imagen.
  9. 9. Ejemplo FROM mcr.microsoft.com/dotnet/core/aspnet:2.1-stretch-slim AS base WORKDIR /app EXPOSE 80 WORKDIR /src RUN dotnet restore "Contoso.Web/Contoso.Web.csproj" COPY /src/Contoso.Web Contoso.Web/ RUN dotnet build "Contoso.Web.csproj" -c Release -o /app RUN dotnet publish "Contoso.Web.csproj" -c Release -o /app/publish WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "Contoso.Web.dll"]
  10. 10. ¿Qué es Azure DevOps? Un ambiente de integración continua y despliegue continuo (CI/CD)
  11. 11. Consideraciones de esta implementación DevOps usa Linux 100% (Ubuntu) SQL Server es necesario (versión Linux) Se utiliza Roundhouse (herramienta de migración de base de datos)
  12. 12. Configuración del ambiente en Azure DevOps ¿Cuáles son los pasos necesarios para correr pruebas de integración usando Docker en Azure DevOps? 1) Crear una imagen en base a un Dockerfile 2) Correr un contenedor con la imagen creada 3) Configurar DevOps para que corra las pruebas de integración
  13. 13. Azure DevOps Dockerfile image Dockerfile Correr SQL Server Restaurar base de datos Correr migraciones de base de datos Docker container SQL Server Tarea de Azure corre las pruebas Compila docker build Corre docker run dotnet test
  14. 14. Detalles de implementación docker build -t contoso_sqlserver --file Dockerfile . docker run --name contoso_sqlserver -d -p 1433:1433 -e "SA_PASSWORD=Password_01" -e "ACCEPT_EULA=Y" contoso_sqlserver dotnet test
  15. 15. Revisión del Azure DevOps Pipeline
  16. 16. Atrás de escenas > compilar la imagen Instalar .NET Core Instalar SQL Server Copiar el script para restaurar la base de datos Copiar el script para instalar roundhouse Copiar el script para correr las migraciones de base de datos
  17. 17. Atrás de escenas > correr el contenedor Correr el contenedor exponiendo el puerto 1433 Esperar uno o dos minutos antes de continuar con la restauración de BD Se ejecutan los siguientes scripts: ● para restaurar la base de datos ● para instalar Roundhouse ● para correr migraciones de base de datos
  18. 18. Atrás de escenas > pruebas de integración Existen 2 opciones: ● dotnet test ● dotnet vstest
  19. 19. Preguntas
  20. 20. Links https://dev.azure.com/ortiz-mpr/Contoso/ https://github.com/enriquecatala/mssql-server-samplesdb

×