SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
La nube, tu
aplicación y tú
Bienvenido
Index
1. ¿Qué es “la nube”?
2. Requisitos para publicar tu aplicación
3. Opciones de despliegue
4. Proceso de CI/CD
5. GitLab CI
6. Ejercicio práctico
.
1.¿Qué es “la nube”?
Servicios disponibles en la nube
Repositorios de código: GitLab, GitHub,
Bitbucket, …
Sistemas CI: GitLab, Travis CI,
CircleCI, …
Registro y gestión DNS: OVH,
Cloudflare, …
Otros: Messaging, monitoring, analitics,
etc.
Repositorio de imágenes Docker:
DockerHub, GitLab, …
Hosting: Serv. Dedicados, VPS,
Máquinas virtuales AWS o similar,
Kubernetes, …
.
2. Requisitos para publicar tu
aplicación
Qué necesitas para publicar tu aplicación
Un repositorio de código (en la nube*)
Un sistema de CI (*)
Un registro de imágenes docker en la
nube
Un servidor donde desplegar
Un dominio
(*) Si se desea automatizar el proceso
.
3. Opciones de despliegue
Opciones de despliegue
Contenedores / Kubernetes
• Servicios de orquestación autogestionados
Amazon Elastic Kubernetes Service
Azure Kubernetes Service
Google Kubernetes Engine, …
Hosting tradicional
• Servidores dedicados: HW físico
• VPS (Virtual Private Server): HW Virtualizado
• Máquinas “cloud”: HW Virtualizado diinámico
Serverless
• AWS Lambdas
• Google (& Firebase) Cloud functions
• Azure Functions, …
.
4. Proceso CI/CD
Building en local con docker
Dockerfile multi-stage
docker build -t h3lp3r-back -t qualityobjects/h3lp3r-
back --rm -f ./Dockerfile.complete .
Subir imagen a DockerHub
docker login -u qualityobjects
docker push qualityobjects/h3lp3r-back
Building con servicio de CI/CD
Proceso CI automático
• Lanzamiento vía evento (git push) o bajo
demanda
• Ejecución en “pipeline” (script con fases)
• Validación estática de código (SonarQube)
• Pruebas unitarias
• Generación de artefactos
• Generación de imágenes (Docker)
• Pruebas e2e (entorno test)
• Despliegue
.
5. GitLab CI
Qué ofrece GitLab
Repositorios de código GIT (públicos y
privados)
Un sistema de CI
Registro de artefactos e imágenes docker
Gestión básica de proyectos
https://gitlab.com/
Definición pipeline (.gitlab-ci.yml)
variables:
JAR_FILE: h3lp3r-back.jar
services:
- docker:dind
stages:
- build
- build_docker
build_job:
stage: build
image: maven:3.6.3-jdk-11
cache:
paths:
- .m2/repository/
script:
- mvn clean package -B -DskipTests=true
- mv target/*.jar ./$JAR_FILE
artifacts:
paths:
- ./$JAR_FILE
expire_in: 1 day
dependencies:
- prepare_job
build_docker_job:
only:
- master
stage: build_docker
image: docker:latest
script:
- docker build --build-arg "JAR_FILE=$JAR_FILE" -
t qualityobjects/h3lp3r-back:$VERSION -
t qualityobjects/h3lp3r-back:latest .
- docker push "$CI_REGISTRY_IMAGE:latest"
- docker push "$CI_REGISTRY_IMAGE:$VERSION"
dependencies:
- prepare_job
- build_job
Fuente: https://gitlab.com/qo-oss/h3lp3r/h3lp3r-back/-/blob/master/.gitlab-ci.yml
Ejecución de pipeline en GitLab
.
6. Ejercicio práctico
Qué vamos a utilizar
GitLab como repositorio GIT y sistema CI
DockerHub como repositorio de imágenes docker
Un servidor VPS básico.
(1 vCPU / 2 Gb RAM / 20GB disco)
Dominio meetup2.qodev.es
Prepararemos imágenes Docker con la
versión de la aplicación a publicar
Ejercicio
Configuraremos el servidor desde cero, para
poder desplegar la aplicación
Modificaremos el código de la aplicación para
ver el proceso de actualización de la
aplicación desplegada
Recursos
Repositorios GIT de la app
https://gitlab.com/qo-oss/h3lp3r
Repositorio Docker con imágenes de la app
https://hub.docker.com/u/qualityobjects
Configuración del servidor
https://gitlab.com/qo-oss/h3lp3r/h3lp3r-back/-
/tree/master/etc/meetup/la_nube_tu_aplicacion_y_tu
Pipelines
https://gitlab.com/qo-oss/h3lp3r/h3lp3r-back/-
/blob/master/.gitlab-ci.yml
https://gitlab.com/qo-oss/h3lp3r/h3lp3r-front/-
/blob/master/.gitlab-ci.yml
Gracias ;)
Roberto Sánchez:
https://www.linkedin.com/in/robertosanchezcustodio
https://www.meetup.com/QOnecta/

Más contenido relacionado

La actualidad más candente

TestingAR VII - Siete Magníficos - Matias Lespiau - Introducción a docker pa...
TestingAR VII - Siete Magníficos - Matias Lespiau - Introducción a docker pa...TestingAR VII - Siete Magníficos - Matias Lespiau - Introducción a docker pa...
TestingAR VII - Siete Magníficos - Matias Lespiau - Introducción a docker pa...TestingAR Meetup
 
Configurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ideConfigurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ideferosorno
 
Experiencia de publicación de un WMTS RESTful para IDENA
Experiencia de publicación de un WMTS RESTful para IDENAExperiencia de publicación de un WMTS RESTful para IDENA
Experiencia de publicación de un WMTS RESTful para IDENAAlvaro Huarte
 
Despliegue de aplicaciones Java con Docker y Kubernetes
Despliegue de aplicaciones Java con Docker y KubernetesDespliegue de aplicaciones Java con Docker y Kubernetes
Despliegue de aplicaciones Java con Docker y KubernetesJaime Perera Merino
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a DockerOpen Canarias
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitSergio Rus
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaJoselu Marina
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-dockerCLEFormación
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azureOscar Gensollen
 
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
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
Presentacion OpenShift by RedHat
Presentacion OpenShift by RedHatPresentacion OpenShift by RedHat
Presentacion OpenShift by RedHatJosé Pino
 
Net Core + Docker + Kubernetes + Azure Devops
Net Core + Docker + Kubernetes + Azure DevopsNet Core + Docker + Kubernetes + Azure Devops
Net Core + Docker + Kubernetes + Azure DevopsAndrés Londoño
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y GithubJavier Novoa Cataño
 

La actualidad más candente (20)

TestingAR VII - Siete Magníficos - Matias Lespiau - Introducción a docker pa...
TestingAR VII - Siete Magníficos - Matias Lespiau - Introducción a docker pa...TestingAR VII - Siete Magníficos - Matias Lespiau - Introducción a docker pa...
TestingAR VII - Siete Magníficos - Matias Lespiau - Introducción a docker pa...
 
El camino de Java a Kubernetes
El camino de Java a KubernetesEl camino de Java a Kubernetes
El camino de Java a Kubernetes
 
Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
 
Configurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ideConfigurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ide
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Experiencia de publicación de un WMTS RESTful para IDENA
Experiencia de publicación de un WMTS RESTful para IDENAExperiencia de publicación de un WMTS RESTful para IDENA
Experiencia de publicación de un WMTS RESTful para IDENA
 
Docker containers-itb-2021
Docker containers-itb-2021Docker containers-itb-2021
Docker containers-itb-2021
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Despliegue de aplicaciones Java con Docker y Kubernetes
Despliegue de aplicaciones Java con Docker y KubernetesDespliegue de aplicaciones Java con Docker y Kubernetes
Despliegue de aplicaciones Java con Docker y Kubernetes
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azure
 
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
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Presentacion OpenShift by RedHat
Presentacion OpenShift by RedHatPresentacion OpenShift by RedHat
Presentacion OpenShift by RedHat
 
Net Core + Docker + Kubernetes + Azure Devops
Net Core + Docker + Kubernetes + Azure DevopsNet Core + Docker + Kubernetes + Azure Devops
Net Core + Docker + Kubernetes + Azure Devops
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y Github
 

Similar a La nube, tu app y tu

Elias Grande - Dagda [rootedvlc4]
Elias Grande - Dagda [rootedvlc4]Elias Grande - Dagda [rootedvlc4]
Elias Grande - Dagda [rootedvlc4]RootedCON
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAmazon Web Services LATAM
 
Docker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup MayoDocker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup MayoMario IC
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 
Empaquetando aplicaciones Java con Docker y Kubernetes
Empaquetando aplicaciones Java con Docker y KubernetesEmpaquetando aplicaciones Java con Docker y Kubernetes
Empaquetando aplicaciones Java con Docker y KubernetesVíctor Leonel Orozco López
 
Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)
Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)
Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)Alvaro Huarte
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosGabriel Huecas
 
Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineMario IC
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenIñaki Arenaza
 
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
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakubDemian Raschkovan
 
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Carlos Crisóstomo Vals
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 

Similar a La nube, tu app y tu (20)

Elias Grande - Dagda [rootedvlc4]
Elias Grande - Dagda [rootedvlc4]Elias Grande - Dagda [rootedvlc4]
Elias Grande - Dagda [rootedvlc4]
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWS
 
Docker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup MayoDocker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup Mayo
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
Empaquetando aplicaciones Java con Docker y Kubernetes
Empaquetando aplicaciones Java con Docker y KubernetesEmpaquetando aplicaciones Java con Docker y Kubernetes
Empaquetando aplicaciones Java con Docker y Kubernetes
 
Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)
Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)
Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
 
Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - Engine
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirven
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Propuesta devops pasesv1
Propuesta devops pasesv1Propuesta devops pasesv1
Propuesta devops pasesv1
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakub
 
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 

Último

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (13)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

La nube, tu app y tu

  • 2. Bienvenido Index 1. ¿Qué es “la nube”? 2. Requisitos para publicar tu aplicación 3. Opciones de despliegue 4. Proceso de CI/CD 5. GitLab CI 6. Ejercicio práctico
  • 4. Servicios disponibles en la nube Repositorios de código: GitLab, GitHub, Bitbucket, … Sistemas CI: GitLab, Travis CI, CircleCI, … Registro y gestión DNS: OVH, Cloudflare, … Otros: Messaging, monitoring, analitics, etc. Repositorio de imágenes Docker: DockerHub, GitLab, … Hosting: Serv. Dedicados, VPS, Máquinas virtuales AWS o similar, Kubernetes, …
  • 5. . 2. Requisitos para publicar tu aplicación
  • 6. Qué necesitas para publicar tu aplicación Un repositorio de código (en la nube*) Un sistema de CI (*) Un registro de imágenes docker en la nube Un servidor donde desplegar Un dominio (*) Si se desea automatizar el proceso
  • 7. . 3. Opciones de despliegue
  • 8. Opciones de despliegue Contenedores / Kubernetes • Servicios de orquestación autogestionados Amazon Elastic Kubernetes Service Azure Kubernetes Service Google Kubernetes Engine, … Hosting tradicional • Servidores dedicados: HW físico • VPS (Virtual Private Server): HW Virtualizado • Máquinas “cloud”: HW Virtualizado diinámico Serverless • AWS Lambdas • Google (& Firebase) Cloud functions • Azure Functions, …
  • 10. Building en local con docker Dockerfile multi-stage docker build -t h3lp3r-back -t qualityobjects/h3lp3r- back --rm -f ./Dockerfile.complete . Subir imagen a DockerHub docker login -u qualityobjects docker push qualityobjects/h3lp3r-back
  • 11. Building con servicio de CI/CD Proceso CI automático • Lanzamiento vía evento (git push) o bajo demanda • Ejecución en “pipeline” (script con fases) • Validación estática de código (SonarQube) • Pruebas unitarias • Generación de artefactos • Generación de imágenes (Docker) • Pruebas e2e (entorno test) • Despliegue
  • 13. Qué ofrece GitLab Repositorios de código GIT (públicos y privados) Un sistema de CI Registro de artefactos e imágenes docker Gestión básica de proyectos https://gitlab.com/
  • 14. Definición pipeline (.gitlab-ci.yml) variables: JAR_FILE: h3lp3r-back.jar services: - docker:dind stages: - build - build_docker build_job: stage: build image: maven:3.6.3-jdk-11 cache: paths: - .m2/repository/ script: - mvn clean package -B -DskipTests=true - mv target/*.jar ./$JAR_FILE artifacts: paths: - ./$JAR_FILE expire_in: 1 day dependencies: - prepare_job build_docker_job: only: - master stage: build_docker image: docker:latest script: - docker build --build-arg "JAR_FILE=$JAR_FILE" - t qualityobjects/h3lp3r-back:$VERSION - t qualityobjects/h3lp3r-back:latest . - docker push "$CI_REGISTRY_IMAGE:latest" - docker push "$CI_REGISTRY_IMAGE:$VERSION" dependencies: - prepare_job - build_job Fuente: https://gitlab.com/qo-oss/h3lp3r/h3lp3r-back/-/blob/master/.gitlab-ci.yml
  • 17. Qué vamos a utilizar GitLab como repositorio GIT y sistema CI DockerHub como repositorio de imágenes docker Un servidor VPS básico. (1 vCPU / 2 Gb RAM / 20GB disco) Dominio meetup2.qodev.es
  • 18. Prepararemos imágenes Docker con la versión de la aplicación a publicar Ejercicio Configuraremos el servidor desde cero, para poder desplegar la aplicación Modificaremos el código de la aplicación para ver el proceso de actualización de la aplicación desplegada
  • 19. Recursos Repositorios GIT de la app https://gitlab.com/qo-oss/h3lp3r Repositorio Docker con imágenes de la app https://hub.docker.com/u/qualityobjects Configuración del servidor https://gitlab.com/qo-oss/h3lp3r/h3lp3r-back/- /tree/master/etc/meetup/la_nube_tu_aplicacion_y_tu Pipelines https://gitlab.com/qo-oss/h3lp3r/h3lp3r-back/- /blob/master/.gitlab-ci.yml https://gitlab.com/qo-oss/h3lp3r/h3lp3r-front/- /blob/master/.gitlab-ci.yml