🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Docker - Primeros pasos y puesta en práctica de una arquitectura basada en micro-servicios

Docker Primeros pasos y puesta en práctica de una arquitectura basada en micro-servicios

Información adicional

  • 5% de descuento en todos los libros
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis por un año

Características

  • Encuadernación rústica - 17 x 21 cm
  • ISBN: 978-2-409-01589-2
  • EAN: 9782409015892
  • Ref. ENI: EPT2DOC

Información adicional

  • 5% de descuento en todos los libros
  • Versión online digital, no descargable
  • Consultable en línea durante 10 años inmediatamente después de la validación del pago.

Características

  • HTML
  • ISBN: 978-2-409-01590-8
  • EAN: 9782409015908
  • Ref. ENI: LNEPT2DOC
Este libro sobre Docker se dirige a todos los desarrolladores, arquitectos y administradores, que deseen adquirir un conocimiento estructurado sobre Docker, basándose en la realización práctica de un ejemplo específico de despliegue de una aplicación, basada en contenedores. Tener un conocimiento mínimo de Linux y de sus redes TCP/IP, es un requisito previo imprescindible para sacar el máximo beneficio posible de este libro, que se...
Consultar extractos del libro Extracto del libro
  • Nivel Experto
  • Número de páginas 468 páginas
  • Publicación octubre 2018
  • Nivel Experto
  • Publicación octubre 2018
Este libro sobre Docker se dirige a todos los desarrolladores, arquitectos y administradores, que deseen adquirir un conocimiento estructurado sobre Docker, basándose en la realización práctica de un ejemplo específico de despliegue de una aplicación, basada en contenedores. Tener un conocimiento mínimo de Linux y de sus redes TCP/IP, es un requisito previo imprescindible para sacar el máximo beneficio posible de este libro, que se organiza en dos partes diferentes. 

La primera de ellas detalla los mecanismos que forman los fundamentos de Docker, con ejemplos de operaciones basadas en ejercicios prácticos. Docker forma parte de un ecosistema muy poblado y extremadamente activo. El autor se centra en proporcionar al lector bases sólidas sobre su funcionamiento y sobre sus conceptos más importantes, para que su uso sea eficaz y para cubrir las necesidades básicas de los usuarios profesionales (creación de imágenes sencillas y sólidas, conocimiento sobre las buenas prácticasseguridad, etc.).

En una segunda parte, el autor implementa una infraestructura completa alrededor de una aplicación de ejemplo, basada en una arquitectura de micro-servicios. El punto de vista adoptado por el autor es el de un fabricante de software que necesita implantar servicios de software en una arquitectura flexible y evolutiva. Esta puesta en práctica sobre una aplicación realista, permite describir los trucos de despliegue de contenedores para Java, Core .NET, Python y Node.js/AngularJS. La aplicación que se crea de esta  manera, se despliega posteriormente en un cluster de máquinas gestionadas por Docker Swarm.

Hay elementos adicionales disponibles para su descarga en el sitio www.ediciones-eni.com. Así, el lector
puede implementar todos los ejemplos que se tratan en el libro.


Los capítulos del libro:
Prólogo – Introducción a Docker – Primeros pasos – Creación de sus propias imágenes – Instalación de un registro privado – Implementación de una arquitectura de software – Despliegue en un cluster – Ir aún más allá con Docker

Descargas

Prólogo
  1. Introducción
Introducción a Docker
  1. Docker como alternativa ligera a la virtualización
    1. 1. El enfoque por virtualización
    2. 2. Docker para optimizar el uso de los recursos
    3. 3. Posicionamiento de Docker respecto a la virtualización
  2. Principio de los contenedores
    1. 1. Principio de los contenedores industriales
    2. 2. Docker y el enfoque normalizado
  3. Los aspectos principales de Docker
    1. 1. Espacio de nombres
    2. 2. Cgroups
    3. 3. LXC
    4. 4. Libcontainer
    5. 5. Sistema de archivos en capas
      1. a. Principio de aislamiento de los archivos
      2. b. Enfoque por virtualización
      3. c. Herramienta de los sistemas de archivos en capas
      4. d. Gestión de las modificaciones de archivos
      5. e. Última capa en modo escritura
      6. f. Tecnologías utilizadas
  4. Aspectos adicionales de Docker
  5. El ecosistema Docker
  6. Arquitecturas de servicios
    1. 1. Histórico de las arquitecturas de servicios
      1. a. Aspectos principales
      2. b. Enfoque EAI
      3. c. Enfoque SOA
      4. d. Microservicios
      5. e. Relacionado con la construcción de los SI
    2. 2. Arquitectura de micro-servicios
      1. a. Aspectos principales
      2. b. Ventajas
      3. c. Inconvenientes
    3. 3. Qué aporta Docker
    4. 4. Hilo conductor
Primeros pasos
  1. Instalación de Docker
    1. 1. Utilizar máquinas pre-configuradas
    2. 2. Instalación de Docker en Linux
      1. a. Requisitos previos de sistema
      2. b. Instalación por administrador de paquetes
      3. c. Instalación por script
    3. 3. Instalación de Docker en Windows
      1. a. Una paradoja resuelta
      2. b. Instalación en Windows 10
      3. c. Instalación en Windows Server 2016
      4. d. Máquina virtual
  2. Hello World, Docker
    1. 1. Puesta en marcha de un contenedor sencillo
    2. 2. ¿Qué ha sucedido?
      1. a. Recuperación de la imagen
      2. b. Anatomía de la imagen obtenida
      3. c. Ejecución del proceso
      4. d. Parada del contenedor
  3. Utilizar imágenes Docker preexistentes
    1. 1. El Docker Store
      1. a. El principio
      2. b. Búsqueda y cualificación de imágenes
      3. c. Ejemplo de búsqueda
      4. d. Caso de las imágenes de la comunidad
      5. e. Complementos a las imágenes oficiales
      6. f. Enlace con el registro Docker Hub
      7. g. Búsqueda por la línea de comandos
      8. h. Precauciones con una imagen no oficial
    2. 2. Gestión de la cuenta Docker Hub y almacenesprivados
      1. a. Creación de una cuenta
      2. b. Características de la cuenta
      3. c. Automated build y cuenta GitHub
      4. d. Conexión a la cuenta en línea decomandos
      5. e. Webhook en evento de push en Docker Hub
      6. f. Desconexión de las cuentas Docker Hub y GitHub
  4. Un segundo contenedor
    1. 1. Recuperación de la imagen
    2. 2. Explicación de los tags
    3. 3. Primera ejecución
    4. 4. Ejecución en modo interactivo
    5. 5. Persistencia de las modificaciones en forma de imagen
    6. 6. Primeros pasos con el cliente Docker
      1. a. Limpieza en los contenedores
      2. b. Limpieza en las imágenes
      3. c. La gran limpieza
      4. d. Eliminación automática a la salida
      5. e. Asignación de un nombre de contenedor
      6. f. Modificación del punto de entrada por defecto
      7. g. Enviar variables de entorno
      8. h. Modificación de la hostname
    7. 7. Manipulación de los contenedores
      1. a. Ejecución en modo bloqueante
      2. b. Ejecución en segundo plano
      3. c. Gestión correcta del ciclo de vida de loscontenedores
      4. d. Exposición de archivos
      5. e. Supervisión de los contenedores
  5. Regreso a los primeros pasos
Creación de sus propias imágenes
  1. Creación manual de una nueva imagen
    1. 1. Instalación de un software en un contenedor
    2. 2. Persistancia de la imagen para un uso futuro
    3. 3. Utilización de la imagen creada
    4. 4. Conexión desde la máquina host
    5. 5. Seguimiento de las operaciones
  2. Utilización de un Dockerfile
    1. 1. Interés de los archivos Dockerfile
    2. 2. Utilización de un archivo Dockerfile
    3. 3. Resultados de la utilización de un Dockerfilecompleto
    4. 4. Anatomía de un archivo Dockerfile
      1. a. FROM
      2. b. RUN
      3. c. ENV
      4. d. VOLUME
      5. e. COPY
      6. f. ENTRYPOINT
      7. g. EXPOSE
      8. h. CMD
    5. 5. Nuestro primer Dockerfile
      1. a. Creación y prueba del script
      2. b. Creación de Dockerfile
      3. c. Generación de la imagen
      4. d. Ejecución del contenedor
      5. e. Detener y volver a lanzar el contenedor
      6. f. Gestión de los argumentos
      7. g. Reconstrucción de la imagen y cacheado
    6. 6. Comandos adicionales
      1. a. Gestión de los archivos
      2. b. Noción de contexto
      3. c. Resultados de la asignación del proceso dearrancar
      4. d. Observación sobre el formato líneade comandos o ejecución
      5. e. Comandos variados
  3. Compartición y reutilización sencilla de imágenes
    1. 1. Enviar a su cuenta Docker Hub
    2. 2. Exportación e importación en formade archivos
  4. Buenas prácticas
    1. 1. Principio de la caché de las imágenes
    2. 2. Principio de la caché durante la compilación
      1. a. Vuelta a las imágenes intermedias
      2. b. Anatomía de una compilación de imagen
      3. c. Análisis de una modificación dela Dockerfile
      4. d. Gestión correcta de las etiquetas
      5. e. Invalidación de la caché por modificaciónde la imagen básica
      6. f. Invalidación de la caché, modificandoel contexto
    3. 3. Consecuencias de la escritura de Dockerfile
      1. a. El problema en las operaciones no idempotentes
      2. b. Solución del problema de la caché
      3. c. Efectos beneficiosos del número y tamañode las imágenes
      4. d. Programación de los comandos en el Dockerfile
    4. 4. Consecuencias de la elección de las imágenesbásicas
      1. a. La imagen básica correcta
      2. b. Su propia imagen básica
    5. 5. Arborescencia recomendada
      1. a. Ventajas de una arborescencia tipo
      2. b. Integración de los archivos
      3. c. Limitación del contexto
    6. 6. La pregunta del proceso único
      1. a. Principio general
      2. b. Excepción al principio general con Supervisor
      3. c. Crítica
      4. d. Enfoque intermedio
  5. Para ir más lejos
Instalación de un registro privado
  1. Primeros pasos para un registro privado
    1. 1. Observación inicial importante
    2. 2. Advertencia sobre el antiguo registro
    3. 3. Imagen Docker en local
    4. 4. Apuntar a un registro dado
    5. 5. Registro en una red pública
      1. a. Escenario y preparación de las máquinas
      2. b. Puesta en marcha del registro
      3. c. Depositar la imagen desde otra máquina
      4. d. Utilización de la imagen desde una terceramáquina
      5. e. Eliminación de la imagen en la máquinaorigen
  2. Un registro más profesional
    1. 1. Gestión de la persistencia
      1. a. Gestión local por volumen
      2. b. Observación sur SELinux
      3. c. Un almacenamiento más seguro
    2. 2. Securización del registro
      1. a. Preparación de las claves para el canal encriptado
      2. b. Implantación del front de Nginx
      3. c. Acceso por el cliente Docker
      4. d. Herramientas adicionales de diagnóstico
      5. e. Generación del archivo de los usuarios autorizados
      6. f. Añadir la autenticación en Nginx
      7. g. Corrección en los headers
      8. h. Gestión de la conexión
    3. 3. Un verdadero registro en producción
  3. Utilización de un servicio de registro en el cloud
    1. 1. Principio
    2. 2. Oferta de pago de Docker Hub
    3. 3. Azure Container Registry
      1. a. Preparación
      2. b. Creación del registro
      3. c. Configuración
  4. Enfoques adicionales
    1. 1. El API del registro
    2. 2. Implementación de un espejo
    3. 3. Implementación de una caché paralos paquetes
      1. a. Posible solución
      2. b. Implementación de una caché de paquetes
Implementación de una arquitectura de software
  1. Presentación de la aplicación ejemplo
    1. 1. Arquitectura
    2. 2. Instalación
    3. 3. Utilización
    4. 4. Herramienta
    5. 5. Aspectos principales del ejercicio
      1. a. Una palabra sobre las arquitecturas de micro-servicios
      2. b. Relación con la programación SOLID
  2. Creación de la arquitectura de ejemplo
    1. 1. Principios de construcción
    2. 2. Detalles del servicio optimizer
      1. a. Funcionamiento
      2. b. Integración en Docker
      3. c. Pruebas
      4. d. Observaciones
    3. 3. Detalles del servicio de calculador
      1. a. Funcionalmente
      2. b. Integración en Docker
      3. c. Pruebas
    4. 4. Implementación de enlaces entre contenedores
    5. 5. Detalles del servicio reporting
      1. a. Funcionamiento
      2. b. Dockerización
      3. c. Pruebas
    6. 6. Detalles del servicio notifier
      1. a. Funcionamiento
      2. b. Dockerización
      3. c. Pruebas
    7. 7. Detalles del servicio de persistencia
    8. 8. Implementación eventual de una imagen básica
    9. 9. Detalles del servicio portal
      1. a. Funcionamiento
      2. b. Dockerización
      3. c. Pruebas
    10. 10. Estado alcanzado
  3. Desarrollar automáticamente con Docker Compose
    1. 1. Principio de Docker Compose
    2. 2. Escritura del archivo docker-compose.yml
    3. 3. Implementación
      1. a. Preparación
      2. b. Ejecución de los contenedores
      3. c. Gestión de los contenedores
    4. 4. Paralelización de las operaciones
    5. 5. Límites
  4. Explotación de una infraestructura Docker
    1. 1. La red en Docker
      1. a. Modo de funcionamiento estándar (bridge)
      2. b. Modos de funcionamiento alternativos
      3. c. Soporte de los enlaces entre contenedores
      4. d. Otras opciones
      5. e. Límites de la capa de red existente
    2. 2. Los volúmenes Docker
      1. a. El problema de la persistencia
      2. b. Los volúmenes como solución sencilla
      3. c. Enlace directo sobre un directorio local
      4. d. Compartir volúmenes
      5. e. Gestión de los volúmenes huérfanos
      6. f. Sofisticación del enfoque
      7. g. Aplicación para la gestión de loslogs
      8. h. Ir más lejos con los volúmenes
Despliegue en un cluster
  1. Descripción global del enfoque
    1. 1. Objetivo
    2. 2. Situación actual
    3. 3. Desarrollo del ejemplo
    4. 4. Advertencia
  2. Montaje de un cluster Swarm
    1. 1. Funcionamiento resumido de Swarm
    2. 2. Descripción de las máquinas utilizadas
    3. 3. Inicialización del cluster
    4. 4. Adjuntar el resto de máquinas
    5. 5. Control remoto
  3. Despliegue en el cluster Swarm
    1. 1. Aspectos principales de los servicios
    2. 2. Envío de las imágenes al registro
    3. 3. Ejecución de un stack
    4. 4. Escalado
  4. Alguna información adicional sobre Swarm
    1. 1. ¿Qué sucede en su interior?
      1. a. Comandos de diagnóstico
      2. b. Gestión de la red overlay y de los puertos
    2. 2. Para ir más allá
      1. a. Detener la plataforma
      2. b. Conexión a un registro privado
      3. c. Gestión de las restricciones
      4. d. Despliegue incremental (rolling update)
Ir aún más allá con Docker
  1. Docker en su fábrica de software
    1. 1. Docker a todos los niveles
    2. 2. Producir imágenes como salida de build
      1. a. Posicionamiento
      2. b. Herramienta
      3. c. Consejos de implementación
    3. 3. Utilizar contenedores para la fábrica desoftware
      1. a. Posicionamiento
      2. b. Herramienta
      3. c. Consejos de implementación
    4. 4. Utilizar los contenedores para las pruebas
      1. a. Posicionamiento
      2. b. Herramienta
      3. c. Consejos de implementación
      4. d. Variante asociada
    5. 5. Vuelta al registro
  2. Antes de empezar en producción con Docker
    1. 1. Seguridad
    2. 2. Restricción sobre los recursos
  3. Docker y Windows
  4. Conclusión
Autor : Jean-Philippe GOUIGOUX

Jean-Philippe GOUIGOUX

Jean-Philippe GOUIGOUX es ingeniero de sistemas mecánicos (Universidad de Tecnología de Compiègne) y licenciado por la Universidad de Cranfield en Inglaterra (Master of Science, Advanced Automation and Design). Certificado TOGAF, hoy en día director técnico de un grupo de editores de software empresarial, se especializa en la urbanización de los sistemas de información y sabe valorizar su certificación tanto en su entorno profesional con la implementación de API estandarizadas que permiten integraciones potentes y económicas, como en el contexto de la investigación académica sobre arquitecturas de microservicios. Jean-Philippe GOUIGOUX es un Microsoft MVP (Most Valuable Professional) en varias especialidades desde 2011. Interviene regularmente en universidades y conferencias sobre diversos temas de TI, como la gestión de datos, Docker o el rendimiento en .NET. Apasionado por compartir sus conocimientos, es autor de varios libros y vídeos publicados por Ediciones ENI.
Más información

Descubrir todos sus libros

  • C# 10 Pack de 2 libros: Escribe código eficiente y eficaz
  • Escribir código .NET eficaz Perfilado, benchmarking y buenas prácticas

Novedades

Ver más