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

  • Acceso ilimitado 24/7
  • Todos los libros online de ENI
  • Novedades todos los meses
  • Acceso 100% online
  • Disponible
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis
  • Acceso gratuito a todos nuestros libros online durante 1 hora por toda compra
  • Consulta inmediata
  • Versión HTML online
  • Acceso ilimitado 24/7

Presentación

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

Índice

  • Introducción a Docker
    • 1. Docker como alternativa ligera a la virtualización
      • 1.1 El enfoque por virtualización
      • 1.2 Docker para optimizar el uso de los recursos
      • 1.3 Posicionamiento de Docker respecto a la virtualización
    • 2. Principio de los contenedores
      • 2.1 Principio de los contenedores industriales
      • 2.2 Docker y el enfoque normalizado
    • 3. Los aspectos principales de Docker
      • 3.1 Espacio de nombres
      • 3.2 Cgroups
      • 3.3 LXC
      • 3.4 Libcontainer
      • 3.5 Sistema de archivos en capas
        • 3.5.1 Principio de aislamiento de los archivos
        • 3.5.2 Enfoque por virtualización
        • 3.5.3 Herramienta de los sistemas de archivos en capas
        • 3.5.4 Gestión de las modificaciones de archivos
        • 3.5.5 Última capa en modo escritura
        • 3.5.6 Tecnologías utilizadas
    • 4. Aspectos adicionales de Docker
    • 5. El ecosistema Docker
    • 6. Arquitecturas de servicios
      • 6.1 Histórico de las arquitecturas de servicios
        • 6.1.1 Aspectos principales
        • 6.1.2 Enfoque EAI
        • 6.1.3 Enfoque SOA
        • 6.1.4 Microservicios
        • 6.1.5 Relacionado con la construcción de los SI
      • 6.2 Arquitectura de micro-servicios
        • 6.2.1 Aspectos principales
        • 6.2.2 Ventajas
        • 6.2.3 Inconvenientes
      • 6.3 Qué aporta Docker
      • 6.4 Hilo conductor
  • Primeros pasos
    • 1. Instalación de Docker
      • 1.1 Utilizar máquinas pre-configuradas
      • 1.2 Instalación de Docker en Linux
        • 1.2.1 Requisitos previos de sistema
        • 1.2.2 Instalación por administrador de paquetes
        • 1.2.3 Instalación por script
      • 1.3 Instalación de Docker en Windows
        • 1.3.1 Una paradoja resuelta
        • 1.3.2 Instalación en Windows 10
        • 1.3.3 Instalación en Windows Server 2016
        • 1.3.4 Máquina virtual
    • 2. Hello World, Docker
      • 2.1 Puesta en marcha de un contenedor sencillo
      • 2.2 ¿ Qué ha sucedido ?
        • 2.2.1 Recuperación de la imagen
        • 2.2.2 Anatomía de la imagen obtenida
        • 2.2.3 Ejecución del proceso
        • 2.2.4 Parada del contenedor
    • 3. Utilizar imágenes Docker preexistentes
      • 3.1 El Docker Store
        • 3.1.1 El principio
        • 3.1.2 Búsqueda y cualificación de imágenes
        • 3.1.3 Ejemplo de búsqueda
        • 3.1.4 Caso de las imágenes de la comunidad
        • 3.1.5 Complementos a las imágenes oficiales
        • 3.1.6 Enlace con el registro Docker Hub
        • 3.1.7 Búsqueda por la línea de comandos
        • 3.1.8 Precauciones con una imagen no oficial
      • 3.2 Gestión de la cuenta Docker Hub y almacenes privados
        • 3.2.1 Creación de una cuenta
        • 3.2.2 Características de la cuenta
        • 3.2.3 Automated build y cuenta GitHub
        • 3.2.4 Conexión a la cuenta en línea de comandos
        • 3.2.5 Webhook en evento de push en Docker Hub
        • 3.2.6 Desconexión de las cuentas Docker Hub y GitHub
    • 4. Un segundo contenedor
      • 4.1 Recuperación de la imagen
      • 4.2 Explicación de los tags
      • 4.3 Primera ejecución
      • 4.4 Ejecución en modo interactivo
      • 4.5 Persistencia de las modificaciones en forma de imagen
      • 4.6 Primeros pasos con el cliente Docker
        • 4.6.1 Limpieza en los contenedores
        • 4.6.2 Limpieza en las imágenes
        • 4.6.3 La gran limpieza
        • 4.6.4 Eliminación automática a la salida
        • 4.6.5 Asignación de un nombre de contenedor
        • 4.6.6 Modificación del punto de entrada por defecto
        • 4.6.7 Enviar variables de entorno
        • 4.6.8 Modificación de la hostname
      • 4.7 Manipulación de los contenedores
        • 4.7.1 Ejecución en modo bloqueante
        • 4.7.2 Ejecución en segundo plano
        • 4.7.3 Gestión correcta del ciclo de vida de los contenedores
        • 4.7.4 Exposición de archivos
        • 4.7.5 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
      • 1.2 Persistancia de la imagen para un uso futuro
      • 1.3 Utilización de la imagen creada
      • 1.4 Conexión desde la máquina host
      • 1.5 Seguimiento de las operaciones
    • 2. Utilización de un Dockerfile
      • 2.1 Interés de los archivos Dockerfile
      • 2.2 Utilización de un archivo Dockerfile
      • 2.3 Resultados de la utilización de un Dockerfile completo
      • 2.4 Anatomía de un archivo Dockerfile
        • 2.4.1 FROM
        • 2.4.2 RUN
        • 2.4.3 ENV
        • 2.4.4 VOLUME
        • 2.4.5 COPY
        • 2.4.6 ENTRYPOINT
        • 2.4.7 EXPOSE
        • 2.4.8 CMD
      • 2.5 Nuestro primer Dockerfile
        • 2.5.1 Creación y prueba del script
        • 2.5.2 Creación de Dockerfile
        • 2.5.3 Generación de la imagen
        • 2.5.4 Ejecución del contenedor
        • 2.5.5 Detener y volver a lanzar el contenedor
        • 2.5.6 Gestión de los argumentos
        • 2.5.7 Reconstrucción de la imagen y cacheado
      • 2.6 Comandos adicionales
        • 2.6.1 Gestión de los archivos
        • 2.6.2 Noción de contexto
        • 2.6.3 Resultados de la asignación del proceso de arrancar
        • 2.6.4 Observación sobre el formato línea de comandos o ejecución
        • 2.6.5 Comandos variados
    • 3. Compartición y reutilización sencilla de imágenes
      • 3.1 Enviar a su cuenta Docker Hub
      • 3.2 Exportación e importación en forma de archivos
    • 4. Buenas prácticas
      • 4.1 Principio de la caché de las imágenes
      • 4.2 Principio de la caché durante la compilación
        • 4.2.1 Vuelta a las imágenes intermedias
        • 4.2.2 Anatomía de una compilación de imagen
        • 4.2.3 Análisis de una modificación de la Dockerfile
        • 4.2.4 Gestión correcta de las etiquetas
        • 4.2.5 Invalidación de la caché por modificación de la imagen básica
        • 4.2.6 Invalidación de la caché, modificando el contexto
      • 4.3 Consecuencias de la escritura de Dockerfile
        • 4.3.1 El problema en las operaciones no idempotentes
        • 4.3.2 Solución del problema de la caché
        • 4.3.3 Efectos beneficiosos del número y tamaño de las imágenes
        • 4.3.4 Programación de los comandos en el Dockerfile
      • 4.4 Consecuencias de la elección de las imágenes básicas
        • 4.4.1 La imagen básica correcta
        • 4.4.2 Su propia imagen básica
      • 4.5 Arborescencia recomendada
        • 4.5.1 Ventajas de una arborescencia tipo
        • 4.5.2 Integración de los archivos
        • 4.5.3 Limitación del contexto
      • 4.6 La pregunta del proceso único
        • 4.6.1 Principio general
        • 4.6.2 Excepción al principio general con Supervisor
        • 4.6.3 Crítica
        • 4.6.4 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
      • 1.2 Advertencia sobre el antiguo registro
      • 1.3 Imagen Docker en local
      • 1.4 Apuntar a un registro dado
      • 1.5 Registro en una red pública
        • 1.5.1 Escenario y preparación de las máquinas
        • 1.5.2 Puesta en marcha del registro
        • 1.5.3 Depositar la imagen desde otra máquina
        • 1.5.4 Utilización de la imagen desde una tercera máquina
        • 1.5.5 Eliminación de la imagen en la máquina origen
    • 2. Un registro más profesional
      • 2.1 Gestión de la persistencia
        • 2.1.1 Gestión local por volumen
        • 2.1.2 Observación sur SELinux
        • 2.1.3 Un almacenamiento más seguro
      • 2.2 Securización del registro
        • 2.2.1 Preparación de las claves para el canal encriptado
        • 2.2.2 Implantación del front de Nginx
        • 2.2.3 Acceso por el cliente Docker
        • 2.2.4 Herramientas adicionales de diagnóstico
        • 2.2.5 Generación del archivo de los usuarios autorizados
        • 2.2.6 Añadir la autenticación en Nginx
        • 2.2.7 Corrección en los headers
        • 2.2.8 Gestión de la conexión
      • 2.3 Un verdadero registro en producción
    • 3. Utilización de un servicio de registro en el cloud
      • 3.1 Principio
      • 3.2 Oferta de pago de Docker Hub
      • 3.3 Azure Container Registry
        • 3.3.1 Preparación
        • 3.3.2 Creación del registro
        • 3.3.3 Configuración
    • 4. Enfoques adicionales
      • 4.1 El API del registro
      • 4.2 Implementación de un espejo
      • 4.3 Implementación de una caché para los paquetes
        • 4.3.1 Posible solución
        • 4.3.2 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
      • 1.2 Instalación
      • 1.3 Utilización
      • 1.4 Herramienta
      • 1.5 Aspectos principales del ejercicio
        • 1.5.1 Una palabra sobre las arquitecturas de micro-servicios
        • 1.5.2 Relación con la programación SOLID
    • 2. Creación de la arquitectura de ejemplo
      • 2.1 Principios de construcción
      • 2.2 Detalles del servicio optimizer
        • 2.2.1 Funcionamiento
        • 2.2.2 Integración en Docker
        • 2.2.3 Pruebas
        • 2.2.4 Observaciones
      • 2.3 Detalles del servicio de calculador
        • 2.3.1 Funcionalmente
        • 2.3.2 Integración en Docker
        • 2.3.3 Pruebas
      • 2.4 Implementación de enlaces entre contenedores
      • 2.5 Detalles del servicio reporting
        • 2.5.1 Funcionamiento
        • 2.5.2 Dockerización
        • 2.5.3 Pruebas
      • 2.6 Detalles del servicio notifier
        • 2.6.1 Funcionamiento
        • 2.6.2 Dockerización
        • 2.6.3 Pruebas
      • 2.7 Detalles del servicio de persistencia
      • 2.8 Implementación eventual de una imagen básica
      • 2.9 Detalles del servicio portal
        • 2.9.1 Funcionamiento
        • 2.9.2 Dockerización
        • 2.9.3 Pruebas
      • 2.10 Estado alcanzado
    • 3. Desarrollar automáticamente con Docker Compose
      • 3.1 Principio de Docker Compose
      • 3.2 Escritura del archivo docker-compose.yml
      • 3.3 Implementación
        • 3.3.1 Preparación
        • 3.3.2 Ejecución de los contenedores
        • 3.3.3 Gestión de los contenedores
      • 3.4 Paralelización de las operaciones
      • 3.5 Límites
    • 4. Explotación de una infraestructura Docker
      • 4.1 La red en Docker
        • 4.1.1 Modo de funcionamiento estándar (bridge)
        • 4.1.2 Modos de funcionamiento alternativos
        • 4.1.3 Soporte de los enlaces entre contenedores
        • 4.1.4 Otras opciones
        • 4.1.5 Límites de la capa de red existente
      • 4.2 Los volúmenes Docker
        • 4.2.1 El problema de la persistencia
        • 4.2.2 Los volúmenes como solución sencilla
        • 4.2.3 Enlace directo sobre un directorio local
        • 4.2.4 Compartir volúmenes
        • 4.2.5 Gestión de los volúmenes huérfanos
        • 4.2.6 Sofisticación del enfoque
        • 4.2.7 Aplicación para la gestión de los logs
        • 4.2.8 Ir más lejos con los volúmenes
  • Despliegue en un cluster
    • 1. Descripción global del enfoque
      • 1.1 Objetivo
      • 1.2 Situación actual
      • 1.3 Desarrollo del ejemplo
      • 1.4 Advertencia
    • 2. Montaje de un cluster Swarm
      • 2.1 Funcionamiento resumido de Swarm
      • 2.2 Descripción de las máquinas utilizadas
      • 2.3 Inicialización del cluster
      • 2.4 Adjuntar el resto de máquinas
      • 2.5 Control remoto
    • 3. Despliegue en el cluster Swarm
      • 3.1 Aspectos principales de los servicios
      • 3.2 Envío de las imágenes al registro
      • 3.3 Ejecución de un stack
      • 3.4 Escalado
    • 4. Alguna información adicional sobre Swarm
      • 4.1 ¿ Qué sucede en su interior ?
        • 4.1.1 Comandos de diagnóstico
        • 4.1.2 Gestión de la red overlay y de los puertos
      • 4.2 Para ir más allá
        • 4.2.1 Detener la plataforma
        • 4.2.2 Conexión a un registro privado
        • 4.2.3 Gestión de las restricciones
        • 4.2.4 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
      • 1.2 Producir imágenes como salida de build
        • 1.2.1 Posicionamiento
        • 1.2.2 Herramienta
        • 1.2.3 Consejos de implementación
      • 1.3 Utilizar contenedores para la fábrica de software
        • 1.3.1 Posicionamiento
        • 1.3.2 Herramienta
        • 1.3.3 Consejos de implementación
      • 1.4 Utilizar los contenedores para las pruebas
        • 1.4.1 Posicionamiento
        • 1.4.2 Herramienta
        • 1.4.3 Consejos de implementación
        • 1.4.4 Variante asociada
      • 1.5 Vuelta al registro
    • 2. Antes de empezar en producción con Docker
      • 2.1 Seguridad
      • 2.2 Restricción sobre los recursos
    • 3. Docker y Windows
    • 4. Conclusión
    • índice

Autor

Jean-Philippe GOUIGOUXMás información

Jean-Philippe GOUIGOUX es director técnico de un fabricante de software, para el que ha rediseñado la arquitectura alrededor de micro-servicios urbanizados, participando al mismo tiempo en los aspectos técnicos, metodológicos y de gestión. Está reconocido como Microsoft MVP (Most Valuable Professional) en varias especialidades desde hace 8 años. Es autor de varios libros y artículos de investigación, bloguero, conferenciante regular y participante del mundo académico.

Características

  • Nivel Experto
  • Número de páginas 468 páginas
  • Publicación octubre 2018
    • Livre (broché) - 17 x 21 cm
    • ISBN: 978-2-409-01589-2
    • EAN: 9782409015892
    • Ref. ENI: EPT2DOC
  • Nivel Experto
  • Publicación octubre 2018
    • HTML
    • ISBN: 978-2-409-01590-8
    • EAN: 9782409015908
    • Ref. ENI: LNEPT2DOC

Descargas

Al completar este formulario, acepta recibir información y comunicaciones comerciales sobre nuestros productos y servicios. Puede darse de baja de nuestra newsletter en cualquier momento. Si desea conocer más información acerca de nuestra política de protección de datos, pulse aquí.
  • Descargar los ejemplos del libro (20,4 Ko)