Agile - how?
SCRUM KANBAN
Agile - Scrum
Agile - Kanban
Agile - how?
Mucha gente piensa que Agile significa Scrum y DevOps significa Entrega Continua
¡Esta simplificación excesiva crea una tensión innecesaria entre Agile y DevOps.
Ambos son complementos.
“Hasta que DevOps sea convencional, DevOps no será un resultado orgánico de Scrum.
Si el equipo contrata a un entrenador ágil o DevOps es probablemente irrelevante,
siempre y cuando esa persona pueda aportar experiencia en automatización en la
construcción, prueba e implementación de software”... Atlassian
Agile - ¿Cómo DevOps puede ayudar?
Agile - ¿Cómo DevOps puede ayudar?
Resumen - DevOps
[Link]
Agile - DevOps
Con DevOps, NO todo es deployment, SÍ se puede tener el tracking
desde la planificación hasta el despliegue con las herramientas
correctas
DevOps
DEV OPS
Plan Code Build Test Release Deploy Operate
Continuous Deployment
Continuous Delivery
M A D U R E Z
Continuous Testing
Continuous Integration
Inception
Algunas Herramientas… de las tantas que hay
DEV OPS
Plan Code Build Test Release Deploy Operate
Docker
¿Qué es Docker?
Docker es una herramienta que empaqueta o “embala” aplicaciones y sus dependencias en
imágenes. Éstas son inmutables, ligeras y portables. Y permite ejecutar “N” veces estas
imágenes en contenedores.
¿Qué versiones de Docker
tenemos?
Docker Community Edition
Docker Enterprise Edition
INSTALACIÓN DE DOCKER
Windows 10 Windows 10 (Pro o Mac Linux
(Home) 8,7 y Enterprise)
otros
curl -sSL
[Link]
/ | sh
Verificando instalación de docker
$ docker version
1
$ docker info
2
$ docker run hello-world
3
Imagen y Contenedor
Creando nuestro 1er contenedor
$ docker run -d -p 80:80 --name servidor_nginx nginx
Unable to find image 'nginx:latest' locally contenedor en segundo plano (-d)
latest: Pulling from library/nginx y se expone en el puerto 80 del host
27833a3ba0a5: Pulling fs layer
e83729dd399a: Pulling fs layer imagen nginx
ebc6a67df66d: Pulling fs layer
ebc6a67df66d: Verifying Checksum
ebc6a67df66d: Download complete
Terminal e83729dd399a: Verifying Checksum
e83729dd399a: Download complete
27833a3ba0a5: Verifying Checksum
27833a3ba0a5: Download complete
27833a3ba0a5: Pull complete
e83729dd399a: Pull complete
ebc6a67df66d: Pull complete ID
Digest: sha256:c8a861b8a1eeef6d48955a6c6d5dff8e2580f13ff4d0f549e082e7c82a8617a2
Status: Downloaded newer image for nginx:latest
dacd4807bece8339fed41bdf9dc0779a1ef01301890b09e2dd6d5d4516ae4731
Resultado del 1er contenedor
Ingresar en el browser la siguiente URL: [Link]
** Si instalaste docker toolbox, ingresa esta url: [Link]
** Con docker toolbox no se debe usar la palabra localhost
$ docker run -d -p 80:80 --name servidor_nginx nginx
Sin -p (--publish), no podemos ingresar a la web de nginx,
--publish publica un puerto interno de un contenedor hacia un
puerto externo del host
Comandos básicos...
Estructura de los comandos docker:
● Antiguo: docker <command> (options)
● Nuevo: docker <command> <subcommand> (options)
$ docker images (sirve
para visualizar las imágenes docker)
$ docker ps -a
(sirve para mostrar los contenedores incluidos los detenidos)
$ docker run -it --rm -p 8888:8080 tomcat:8.0 (sirve para crear un contenedor en base a una imagen)
$ docker rm -f tomcat_server (sirve para eliminar contenedores
a la fuerza -f)
$ docker rm -f $(docker ps -aq) (sirve para eliminar todos los
contenedores, incluido los detenidos)
$ docker rmi -f mysql (sirve para eliminar
una imagen a la fuerza -f)
Gestión de múltiples contenedores...
$ docker run -d -p 8000:8080 --name tomcat_server tomcat:8.0-alpine
$ docker run -d -p 9000:8080 -p 9990:9990 --name jboss_server andreptb/wildfly:[Link].jdk8-alpine
/opt/jboss/wildfly/bin/[Link] -b [Link] -bmanagement [Link]
$ docker exec -it jboss_server /opt/jboss/wildfly/bin/[Link] admin Admin#70365 --silent
$ docker run -d -p 9043:9043 -p 9443:9443 --name was_server ibmcom/websphere-traditional:latest
$ docker exec -it was_server cat /tmp/PASSWORD
$ docker logs -f jboss_server
$ docker exec -it jboss_server bash
$ docker rm -f tomcat_server
$ docker rm -f $(docker ps -aq)
$ docker rmi -f mysql
Gestión de múltiples contenedores...
$ docker pull mysql:latest
$ docker run -d -p 3333:3306 -e MYSQL_ROOT_PASSWORD=12345678 --name mysql_server mysql:5.7.25
--default-authentication-plugin=mysql_native_password
$ docker cp ~/Desktop/fuentes_sesion_05/apps/mysql_server/scripts/[Link] mysql_server:/tmp
$ docker exec -it mysql_server bash
$root@a123e:/# mysql -u root -p
$mysql> source /tmp/[Link]
$mysql> exit
$root@a123e:/# exit
$ docker stop mysql_server
$ docker rm mysql_server
¿Dudas?
devops@[Link]