Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Següent revisió
Revisió prèvia
info:cursos:pue:devops:sesion2 [09/02/2019 03:01] – creat mateinfo:cursos:pue:devops:sesion2 [23/02/2019 03:12] (actual) – [docker] mate
Línia 1: Línia 1:
 = Sesión 2: Docker = Sesión 2: Docker
-== capas +== info 
-  * desconfiar de lo que no se puede trazar o comprobar +  * [[https://es.atlassian.com/software/confluence]]
-  * agrupar capas de comandos que las generan siempre que sea posible +
-    * RUN, COPY, ADD..+
- +
-== docker +
-  * ''docker run -ti --entrypoint /bin/bash grafana/grafana'' +
-  * supervisor daemon (levanta varios servicios)+
   * https://12factor.net   * https://12factor.net
   * duffle -> helm   * duffle -> helm
   * istio.io : securiza la conexión entre PODs   * istio.io : securiza la conexión entre PODs
-  * [[https://es.atlassian.com/software/confluence]]+ 
 +=== sudo & services
   * sudoreplay   * sudoreplay
     * /var/log/sudo-io     * /var/log/sudo-io
 +  * supervisor daemon (levanta varios servicios)
 +
 +
 +=== datos
 +  * datadog : [[https://www.datadoghq.com/]]
 +  * influx : [[https://www.influxdata.com/]]
 +
 +=== Parallel changes
 +  * Avro / Parquet / Hadoop
 +
 +== docker
 +  * ''docker run -ti --entrypoint /bin/bash grafana/grafana''
 +
 +=== imágenes
 +  * desconfiar (imágenes) de lo que no se puede trazar o comprobar
 +    * probablemente no se actualicen
 +    * si no hay Dockerfile o depende de otras imágenes que no son confiables, no es recomendable
 +
 +=== capas
 +  * agrupar capas de comandos que las generan siempre que sea posible
 +    * RUN, COPY, ADD...
 +
 +=== VOLUME
 +    * ''docker volume create <nombre>''
 +      * por defecto en local, al crear se puede especificar otro (drivers)
 +    * ''docker volume ls''
 +    * ubicación volúmenes: **/var/lib/docker/volumes/...**
 +
 +=== NETWORK
 +    * bridge = switch software
 +    * ''brctl show''
 +    * ''docker network create --attachable <red>''
 +      * **%%--%%attachable** permite añadir a mano otros contenedores a una red
 +
 +=== varios
 +  * REDIS
 +    * usarlo para guardar sesiones, permite ampliar los frontales
 +
 +== DOCKER-COMPOSE
 +  * [[https://docs.docker.com/compose/install/]]
 +  * services : uno o más contenedores haciendo lo mismo
 +<code yaml; docker-compose.yml>
 +version: '3.3'
 +
 +services:
 +   db:
 +     image: mysql:5.7
 +     volumes:
 +       - db_data:/var/lib/mysql
 +     restart: always
 +     environment:
 +       MYSQL_ROOT_PASSWORD: somewordpress
 +       MYSQL_DATABASE: wordpress
 +       MYSQL_USER: wordpress
 +       MYSQL_PASSWORD: wordpress
 +
 +   wordpress:
 +     depends_on:
 +       - db
 +     image: wordpress:latest
 +     ports:
 +       - "8000:80"
 +     restart: always
 +     environment:
 +       WORDPRESS_DB_HOST: db:3306
 +       WORDPRESS_DB_USER: wordpress
 +       WORDPRESS_DB_PASSWORD: wordpress
 +       WORDPRESS_DB_NAME: wordpress
 +volumes:
 +    db_data: {}
 +</code>
 +/via: [[https://docs.docker.com/compose/wordpress/]]
 +
 +== DOCKER-SWARM
 +  * stack: conjunto de servicio+volumenes+redes...
 +  * ''docker stack ls''
 +  * ''docker node ls''
 +  * ''docker stack servies <STACK>''
 +  * ''docker service scale wordpresito_wordpress=10'' : escala a 10 los wordpress
 +    * en este caso no coordina las sesiones (para eso el REDIS)
 +  * ''docker stack deploy -c docker-compose.yaml <nombre_stack>''
 +
 +== recortes
 +
 +
 +== continous deployment
 +  * canary release : 5% + 95%
 +    * rolling updates : actualizamos un nodo, si todo correcto, a por el siguiente, si no, atrás
 +  * blue-green (red-black)
 +  * microservicios
 +    * cada uno con su storage
 +    * ACID - CAP (2 de 3)
 +
 +== laboratorio
 +<code; fracaso>
 +FROM debian:7-slim 
 +
 +ARG WP_FILE=latest.tar.gz
 +
 +WORKDIR /tmp
 +#ADD https://wordpress.org/${WP_FILE} .
 +
 +RUN apt-get -y update
 +RUN apt-get install -y apache2 wget php7.0
 +RUN wget --no-check-certificate https://wordpress.org/${WP_FILE}
 +RUN tar xf ${WP_FILE}
 +#RUN mkdir -p /var/www/html
 +RUN mv wordpress/* /var/www
 +RUN rm ${WP_FILE}
 +RUN apt-get clean
 +
 +#    apt-get install -y apache2 libapache2-mod-php7.0 php-mysql php-gd php-redis && \
 +
 +EXPOSE 80
 +
 +ENTRYPOINT ["/usr/sbin/apache2ctl", "-DFOREGROUND"]
 +</code>
 +
 +== deberes
 +funciona por separado, pero no junto
 +<code yaml; docker-compose.yml>
 +version: '3.3'
 +
 +services:
 +  db:
 +    image: mysql:5.7
 +    volumes:
 +      - db_data:/var/lib/mysql
 +    environment:
 +      MYSQL_ROOT_PASSWORD: toor 
 +      MYSQL_DATABASE: wordpress
 +      MYSQL_USER: wordpress
 +      MYSQL_PASSWORD: wordpress 
 +
 +  wordpress:
 +    depends_on:
 +      - db
 +    image: wordpress:latest
 +    ports:
 +      - "8080:80"
 +    restart: always
 +    environment:
 +      WORDPRESS_DB_HOST: db:3306
 +      WORDPRESS_DB_USER: wordpress
 +      WORDPRESS_DB_PASSWORD: wordpress
 +      WORDPRESS_DB_NAME: wordpress
 +
 +volumes:
 +  db_data:
 +    driver: local
 +    driver_opts:
 +      type: 'none'
 +      o: 'bind'
 +      device: '${HOME}/Docker/_storage/mysql/wordpress'
 +</code>
 +  * ''docker run -d --rm --name mysql-test -p 3306:3306 --env-file mysql.env -v ${DATA_PATH}/mysql/test:/var/lib/mysql mysql:5.7.25''
 +  * ''docker run --link mysql-test:mysql -p 8080:80 -d wordpress''
  • info/cursos/pue/devops/sesion2.1549710081.txt.gz
  • Darrera modificació: 09/02/2019 03:01
  • per mate