SlideShare a Scribd company logo
1 of 46
Download to read offline
Tribulaciones de un dev en
devops
Migrando CI
a Docker
Patxi Gortázar
patxi.gortazar@gmail.com
@fgortazar
2
Migrando CI a Docker
• Who
• What
• Why
• How
3
Who
Devops en Kurento
Profesor en URJC
Haskeller aficionado
@fgortazar
https://es.linkedin.com/in/franciscogortazar
MIGRANDO CIA DOCKER
4
Migrando CI a Docker
• Who
• What
• Why
• How
5
What
“Kurento is an Open Source SoftwareWebRTC media server”
MIGRANDO CIA DOCKER
6
What
MIGRANDO CIA DOCKER
https://webrtc.org
7
What
MIGRANDO CIA DOCKER
8
What
MIGRANDO CIA DOCKER
9
What
MIGRANDO CIA DOCKER
10
What
MIGRANDO CIA DOCKER
11
What
Kurento es...
• Media server
• APIs (clientes)
• Tutoriales
• Aplicaciones
MIGRANDO CIA DOCKER
12
What
MIGRANDO CIA DOCKER
13
What
Kurento en cifras:
curl https://api.github.com/orgs/kurento/repos
| grep -e '"name"'
| wc -l
30 repositorios publicos
find . -name config.xml | wc -l
334 jobs diferentes en Jenkins
MIGRANDO CIA DOCKER
14
What
Kurento en cifras:
• Cada release requiere desplegar +80 artefactos
Paquetes debian,
módulos npm,
módulos bower,
artefactos Maven (jar, sources, poms, javadocs)
MIGRANDO CIA DOCKER
15
Migrando CI a Docker
• Who
• What
• Why
• How
16
Why
Infraestructura OpenStack
• 88 cpus
• 188GB memoria
• 3TB disco
MIGRANDO CIA DOCKER
17
Why
Para construir el media server:
●
4 nodos UbuntuTrusty
●
2 nodos última release
Ubuntu
●
2 nodos trusty (versión
estable anterior)
MIGRANDO CIA DOCKER
Para construir los clientes:
●
4 nodos
Para infraestructura (Chef):
●
1 nodo
18
Why
MIGRANDO CIA DOCKER
deb
repo
Nightly build
chef-client
(Upgrades media server
on client nodes)
Client tests
1
2
19
Why
Deficiencias
• Máquinas separadas para media server y clientes
• Máquinas para media server divididas a su vez para
soportar diferentes versiones de Ubuntu
• Soporte de múltiples versiones del media server en la
misma máquina no disponible (problemas de
incompatibilidad de dependencias)
• Gestión de la configuración (Chef) demasiado compleja
– Especificidades de Jenkins
– Especificidades del tipo de nodo
MIGRANDO CIA DOCKER
20
Migrando CI a Docker
• Who
• What
• Why
• How
21
How
MIGRANDO CIA DOCKER
22
How
• Primera aproximación: marzo 2014 (Docker 0.9)
– No apto para producción
– Intento de lanzar esclavo Jenkins como contenedor:
múltiples procesos corriendo
– Jobs de Jenkins poco aptos para ser portados
(principalmente managed scripts)
– Intento de “provisionar” las imágenes Docker con Chef
(big fail!)
●
Ya deberíamos haberlo intuido de test-kitchen...
MIGRANDO CIA DOCKER
23
How
• Segunda aproximación: noviembre 2015 (Docker 1.8)
– Producto más maduro
– Procesos más claros
– Más herramientas (plugins, hubs privados, librerías de
gestión)
– Jobs en Jenkins más portables (bash scripts en
repositorio git)
– Jobs lanzan contenedores vs el job se lanza en el
contenedor
●
Más control sobre los contenedores
MIGRANDO CIA DOCKER
24
How
5 máquinas iguales
12 GB memoria
8 vCPUs
600 GB disco
Provisionadas con Chef Jenkins specifics + docker→
MIGRANDO CIA DOCKER
25
How
1 maestro
5 nodos iguales
MIGRANDO CIA DOCKER
26
How
¿Dónde vas a poner tus imágenes (privadas)?
●
Dogestry: usar s3 como registro de imágenes
MIGRANDO CIA DOCKER
27
How
¿Dónde vas a poner tus imágenes (privadas)?
●
Dogestry: usar s3 como registro de imágenes
MIGRANDO CIA DOCKER
28
How
¿Dónde vas a poner tus imágenes (privadas)?
docker run -d -p 5000:5000 --restart=always --name registry 
-v `pwd`/auth:/auth 
-e "REGISTRY_AUTH=htpasswd" 
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd 
-v `pwd`/certs:/certs 
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt 
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key 
registry:2
MIGRANDO CIA DOCKER
29
How
Imágenes para builds
Imágenes para aplicaciones
Imágenes para tests
MIGRANDO CIA DOCKER
30
How
Imágenes para builds
●
Pesadas
●
Una imagen por tool version (jdk7, jdk8)
●
docker pull ahead of time (si es posible)
●
Credenciales (firmar artefactos, despliegue...)
– Inyectadas desde Jenkins como ficheros
– Incorporadas al contenedor como volúmenes
– Variables de entorno para especificar su ubicación
MIGRANDO CIA DOCKER
31
How
Imágenes para builds en Kurento
●
dev-media-server (build-essentials, gstreamer…)
●
dev-integration (jdk, maven, node, npm, bower)
●
dev-documentation (sphinx, latex)
●
dev-operations (Chef DK)
MIGRANDO CIA DOCKER
32
How
Matrices de versiones
●
Ubuntu
– UbuntuTrusty
– UbuntuWily
– Ubuntu Xenial
MIGRANDO CIA DOCKER
●
JDK
– JDK 7
– JDK 8
33
How
Imágenes para builds
●
Matriz configuración dev-integration
– JDK
– Maven
– Node
– Npm
– Bower
MIGRANDO CIA DOCKER
34
How
Imágenes para builds
●
Ejecutan un paso previo de instalación de
dependencias
– Ahorra imágenes
– Costoso al arrancar… pero igualmente hay que generar la
imagen
– Se pierden al parar y eliminar el contenedor
MIGRANDO CIA DOCKER
35
How
Imágenes para aplicaciones
●
Media server
●
Tutoriales
●
Demos
MIGRANDO CIA DOCKER
36
How
Imágenes para tests
●
selenium/hub
●
selenium/node-chrome
●
selenium/node-firefox
MIGRANDO CIA DOCKER
●
selenium/node-chrome-
debug
●
selenium/node-firefox-
debug
37
How
Imágenes para tests
●
kurento/node-chrome-beta
●
kurento/node-chrome-dev
●
kurento/node-firefox-beta
●
kurento/node-chrome-beta-debug
●
kurento/node-chrome-dev-debug
●
kurento/node-firefox-beta-debug
MIGRANDO CIA DOCKER
https://github.com/KurentoForks/docker-selenium
38
How
Orquestación...
●
Si conoces el número y tipo de contenedores a
priori → docker compose
●
En caso contrario → docker run
●
El nombre de todos los contenedores lleva como
prefijo el $BUILD_TAG de la ejecución del job
●
El workspace del job se monta como volumen
●
Todos los contenedores se paran y eliminan
termine el job con éxito o no (Post build step)
MIGRANDO CIA DOCKER
39
How
Orquestación...
●
Test de interfaz
– 1-5 browsers
– Escenario de test se ejecuta varias veces
●
Chrome
●
Firefox
●
…
MIGRANDO CIA DOCKER
40
How
Orquestación...
●
Integración de cliente Docker en los tests de
kurento-client
– Arrancar, parar contenedores
– Inspeccionar contenedores
– Recopilar logs
– Montar volúmenes
– Gestionar variables de entorno
MIGRANDO CIA DOCKER
41
How
Orquestación...
●
Topologías de red específicas
docker run --net=none …
– Todo contenedor presenta un namespace
docker inspect -f '{{.State.Pid}}' $container
– Se pueden montar topologías específicas
ln -s /proc/$pid/ns/net /var/run/netns/$pid-cont
ip netns list
MIGRANDO CIA DOCKER
42
How
MIGRANDO CIA DOCKER
43
How
Orquestación...
●
Topologías de red específicas
MIGRANDO CIA DOCKER
br0
NAT
192...172... 192...
docker0
44
How
Limpieza...
●
Por job
– Post build action
– Ejecuta siempre
– Devuelve el workspace a Jenkins (chown)
●
Evita https://issues.jenkins-ci.org/browse/JENKINS-24824
– Obtener contenedores asociados al job
●
docker ps -a | grep $BUILD_TAG | awk '{print $1}'
– Eliminar contenedores y sus volúmenes asociados
●
docker rm -v ...
MIGRANDO CIA DOCKER
45
How
Limpieza...
●
Una vez al día (en la nightly)
– Parar y borrar contenedores que estén todavía corriendo
– Eliminar imágenes huérfanas (dangling images)
docker images -f "dangling=true" -q
– Eliminar volúmenes huérfanos (dangling volumes)
docker volume ls -qf dangling=true
– Eliminar workspaces causados por el bug
https://issues.jenkins-ci.org/browse/JENKINS-24824
sudo -H find ~jenkins/workspace -name '*cleanup*' 
-type d -exec rm -rf {} ;
MIGRANDO CIA DOCKER
Migrando CI
a Docker
http://www.kurento.org
https://github.com/kurento
@kurentoms
Tribulaciones de un dev en
devops

More Related Content

What's hot

Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCarlos Huamaní
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPKeopx
 
Flujo de trabajo básico con git
Flujo de trabajo básico con gitFlujo de trabajo básico con git
Flujo de trabajo básico con gitJan Sanchez
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantesnscoder_mad
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Githubguest638090
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitSergio Rus
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con DockerErnesto Crespo
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4fyomaira
 
Git y drupal
Git y drupalGit y drupal
Git y drupalJuampy NR
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a GitMario IC
 
Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/pushAlexis Lopez
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopRestorando
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHubdrsevilla
 

What's hot (20)

Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
 
Flujo de trabajo básico con git
Flujo de trabajo básico con gitFlujo de trabajo básico con git
Flujo de trabajo básico con git
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Github
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con Docker
 
Introducción a git y git hub
Introducción a git y git hubIntroducción a git y git hub
Introducción a git y git hub
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
 
Git y drupal
Git y drupalGit y drupal
Git y drupal
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
 
Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/push
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 

Similar to Migrando CI a Docker

Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoMario IC
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCMicael Gallego
 
PHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHPPHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHPRolando Caldas
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresJesús A. Rodríguez B.
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a DockerOpen Canarias
 
Docker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdfDocker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdfLeonardo Micheloni
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Vicente Gerardo Guzman Lucio
 
Elias Grande - Dagda [rootedvlc4]
Elias Grande - Dagda [rootedvlc4]Elias Grande - Dagda [rootedvlc4]
Elias Grande - Dagda [rootedvlc4]RootedCON
 
Earthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesEarthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesMario IC
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-dockerCLEFormación
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfAngel Borroy López
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloMarco Bellido
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 

Similar to Migrando CI a Docker (20)

Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
PHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHPPHPVigo #23 - Taller de Docker para PHP
PHPVigo #23 - Taller de Docker para PHP
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los Contenedores
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
 
TECNIRIS47-1b.pdf
TECNIRIS47-1b.pdfTECNIRIS47-1b.pdf
TECNIRIS47-1b.pdf
 
Docker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdfDocker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdf
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
 
Elias Grande - Dagda [rootedvlc4]
Elias Grande - Dagda [rootedvlc4]Elias Grande - Dagda [rootedvlc4]
Elias Grande - Dagda [rootedvlc4]
 
Earthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesEarthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroides
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 

More from Patxi Gortázar

Desarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y AzureDesarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y AzurePatxi Gortázar
 
La computación en la nube en el aula
La computación en la nube en el aulaLa computación en la nube en el aula
La computación en la nube en el aulaPatxi Gortázar
 
Path relinking for high dimensional continuous optimization
Path relinking for high dimensional continuous optimizationPath relinking for high dimensional continuous optimization
Path relinking for high dimensional continuous optimizationPatxi Gortázar
 
Grammarware engineering: un enfoque dirigido por modelos
Grammarware engineering: un enfoque dirigido por modelosGrammarware engineering: un enfoque dirigido por modelos
Grammarware engineering: un enfoque dirigido por modelosPatxi Gortázar
 

More from Patxi Gortázar (6)

Jenkins pipeline
Jenkins pipelineJenkins pipeline
Jenkins pipeline
 
Docker & ci
Docker & ciDocker & ci
Docker & ci
 
Desarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y AzureDesarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y Azure
 
La computación en la nube en el aula
La computación en la nube en el aulaLa computación en la nube en el aula
La computación en la nube en el aula
 
Path relinking for high dimensional continuous optimization
Path relinking for high dimensional continuous optimizationPath relinking for high dimensional continuous optimization
Path relinking for high dimensional continuous optimization
 
Grammarware engineering: un enfoque dirigido por modelos
Grammarware engineering: un enfoque dirigido por modelosGrammarware engineering: un enfoque dirigido por modelos
Grammarware engineering: un enfoque dirigido por modelos
 

Recently uploaded

Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfdarosario3d
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfjuanrubenc78
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdfRodrigo Cerón
 
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfdaa100407
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdfRodrigo Cerón
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfLeonardoOa4
 
Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfMiSpotify
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...AlexaRamirez39
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarjosuesj13
 

Recently uploaded (9)

Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdf
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf
 
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdf
 
Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdf
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizar
 

Migrando CI a Docker