La herramienta Docker Human friendly

Lando

"Trabajar en local, responsabilidad en el desarrollo web"

WordCamp España | #WCES

Gracias Organización WordCamp España

"Es de bien nacido ser agradecido"

WordCamp España | #WCES

¡Hola y bienvenid@s!

Mi nombre es José J. Peleato Pradel

Apasionado del Clean Code, me defino como una persona adepta del conocimiento libre y gratuito.

Trabajo en Numéricco cómo Full-stack Developer PHP/JS, soy organizador de la comunidad WordPress Zaragoza y fui organizador de la WordCamp Zaragoza 2018 y 2019.

by jjpeleato.com

Disclaimer

https://bit.ly/2XLkbqR

WordCamp España | #WCES

  • ¿Quiero utilizar Docker?
  • ¿Tengo que saber Docker para utilizar Lando? No

WordCamp España | #WCES

Vamos a aprender terminología sobre Docker y Lando, seremos capaces de definir ambas herramientas.

Veremos en directo cómo construir entornos de trabajo en local con Lando de una forma fácil, sencilla y rápida.

Conoceremos los principales comandos para trabajar con Lando.

WordCamp España | #WCES

Dispondremos de ejemplos para construir nuestros propios ecosistemas de desarrollo, crearemos entornos LAMP, LAMP + Node y LEMP, por último, ejecutaremos un entorno personalizado compuesto por Apache, PHP, Node.js, MariaDB, Mailhog, PhpMyAdmin, Gulp, Yarn y Deployer.

WordCamp España | #WCES

¿Qué es XAMP?

WordCamp España | #WCES

XAMP es el acrónimo para describir el conjunto de tecnologías necesarias para crear una infraestructura de un servidor web.

WordCamp España | #WCES

  • X: Definición del sistema operativo. Puede ser Linux, Windows o Mac OS X.
  • A: Servidor web Apache.
  • M: Definición del gestor de bases de datos. Puede ser MySQL o MariaDB.
  • P: Definición del lenguaje de programación. Puede ser PHP, Perl o Python.

WordCamp España | #WCES

LAMP

Linux Apache MySQL PHP

Más información

WordCamp España | #WCES

WAMP

Windows Apache MySQL PHP

Más información

WordCamp España | #WCES

MAMP

MacOS Apache MySQL PHP

Más información

WordCamp España | #WCES

Aprende más

Guía básica: Instalación entorno XAMP

WordCamp España | #WCES

¿Qué es Docker?

Docker

Página oficial | Documentación | GitHub

WordCamp España | #WCES

Docker es un término polisémico, nació cómo un conjunto de herramientas que facilitan la gestión de contenedores y evoluciono en una empresa que lidera el proyecto Open Source, promoviendo soluciones para la comunidad o empresas.

Por ello, podemos hablar de Docker como empresa o Docker como proyecto de código abierto.

WordCamp España | #WCES

El proyecto de código abierto Docker, permite la automatización e implementación de aplicaciones a través del uso de contenedores y que además, se pueden ejecutar en la nube o localmente.

Proporcionando una capa adicional de abstracción a través de la virtualización en múltiples sistemas operativos (Windows, macOS y Linux).

WordCamp España | #WCES

El propósito de los contenedores es la independencia, la capacidad de ejecutar varios procesos y aplicaciones por separado, para poder hacer un mejor uso de su infraestructura, y al mismo tiempo, conservar la seguridad que tendría con sistemas separados.

WordCamp España | #WCES

Se podría resumir, en una tecnología que nos permite crear unidades independientes con un propósito único (Apache, MySQL, PHP, etc) y que la suma de todas ellas nos permite disponer de un sistema para ejecutar nuestras aplicaciones de software.

WordCamp España | #WCES

Glosario

Más información

WordCamp España | #WCES

Término Descripción
Contenedor Un contenedor represente la unidad de ejecución de una sola aplicación, proceso o servicio. Instancia de una imagen de Docker.
Imagen de contenedor Paquete con todas las dependencias e información necesaria para la creación de un contenedor. Una vez que se crea una imagen, esta es inmutable.
Dockerfile Archivo de texto (script) que contiene instrucciones sobre cómo crear una imagen de Docker. Define por ejemplo las instrucciones para la instalación de software necesario.

WordCamp España | #WCES

Término Descripción
docker-compose Herramienta de línea de comandos y formato de archivo YAML con metadatos para definir y ejecutar aplicaciones de varios contenedores.
Volúmenes Sistema de archivos que el contenedor puede utilizar. Puesto que las imágenes son de solo lectura, los volúmenes agregan la capa de escritura encima de la imagen del contenedor, por lo que los programas tienen acceso al sistema de archivos.
Persistencia Gestionado a través de los volúmenes, consiste en la acción de la no perdida de datos cuando un contenedor es eliminado o reinstalado. No se encuentra integrado en el ciclo de vida del contenedor.

WordCamp España | #WCES

Término Descripción
Repositorio Conjunto de imágenes de Docker. Las diferentes imágenes en el repositorio pueden ser etiquetadas.
Registro Servicio que proporciona acceso a los repositorios.
Docker Hub Registro predeterminado para la mayoría de las imágenes públicas. https://hub.docker.com/

WordCamp España | #WCES

Término Descripción
Clúster Colección de host de Docker que se expone como si fuera un solo host. De esta manera la aplicación se puede escalar a varias instancias de los servicios repartiros entre varios hosts.
Orquestador Herramienta que simplifica la administración de clústeres y host de Docker. Los orquestadores permiten administrar las imágenes, los contenedores y los hosts a través de una CLI o interfaz gráfica. Los clústeres de Docker se pueden crear con Docker Swarm, Kubernetes, entre otros.
Etiqueta Marca o etiqueta que se puede aplicar a las imágenes para que se puedan identificar.

WordCamp España | #WCES

¿Tod@s bien?

Docker

WordCamp España | #WCES

¿Qué es Lando?

Docker

Página oficial | Documentación | GitHub

WordCamp España | #WCES

«A Liberating Dev Tool For All Your Projects» – Lando.
«Lando es una herramienta qué humaniza el trabajar en local con Docker» - JJPeleato.

WordCamp España | #WCES

Una de sus principales características es simplificar enormemente el habilitar infraestructuras complejas en local y permitir el centrarnos en el desarrollo de Software y crear valor a nuestros clientes.

WordCamp España | #WCES

Ventajas

  • Fácil
  • Completa (casi sin límites)
  • Respaldada por una gran comunidad en GitHub
  • Portable
  • Configuraciones predeterminadas
  • Overrides
  • Gratis
  • Open Source
  • Estandarización del flujo de trabajo en equipo

WordCamp España | #WCES

¿Por qué utilizar Lando?

«Avoid the built-in-masochism of directly using docker or docker-compose» – Lando.

Lando es una herramienta para desarrolladores que quieren dejar atrás el masoquismo que supone usar directamente docker o docker-compose.

WordCamp España | #WCES

Instalación

Para poder utilizar Lando lo primero que debemos hacer es instalarlo en nuestro ordenador. El proceso de instalación es muy sencillo y lo tienes muy bien explicado en la documentación oficial.

macOS | Linux | Windows

WordCamp España | #WCES

Si estás en Linux, debes tener instalado Docker Community Edition. Si estás en Mac o Windows, el propio instalador de Lando se encargará de instalarlo.

Nota: Debes asegurarte de que tienes habilitado Hyper-V o Docker y Lando no funcionará.
Nota: No es compatible con versiones Windows 10 Home, mínimo Windows 10 Professional.

WordCamp España | #WCES

Descargaremos el instalador adecuado según nuestro sistema operativo. En el caso de Linux, descargar el fichero lando-*.deb e instalar con dpkg -i. Para macOS, usar el fichero .dmg y para Windows, el .exe.

WordCamp España | #WCES

Kitematic

Software (instalación recomendada) de interfaz gráfica para la administración de los contenedores de Docker. https://kitematic.com/

WordCamp España | #WCES

¿Como funciona?

Lando funciona a través de un fichero YAML (.lando.yml) situado en la raíz del proyecto denominado Landofile.

Los archivos Landofile tienen la función de definir qué tipo de sistema va a crear, con qué tecnologías, servicios y herramientas.

WordCamp España | #WCES

Recipes

Las recipes son la abstracción de más alto nivel de Lando, configuraciones predeterminadas de servicios, herramientas y rutas.

Dicho de otra forma, puntos de partida con las necesidades básicas para proyectos de Software, cómo por ejemplo: LAMP, LEMP, MEAN, WordPress, Drupal 8, Laravel, etc.

WordCamp España | #WCES

Comandos

Más información

WordCamp España | #WCES

Comando Descripción
lando version Muestra la versión de Lando.
lando init Inicializa el código a utilizar con Lando.
lando start Iniciar e instalar los contenedores Docker del proyecto.
lando info Imprime por consola información relevante del proyecto.
lando stop Detiene los contenedores Docker del proyecto.
lando poweroff Detiene todos los contenedores Docker del equipo.
lando rebuild Reconstruye su aplicación desde cero, conservando los datos.
lando destroy Destruye todos los contenedores del proyecto.

WordCamp España | #WCES

Comando Descripción
lando logs Muestra registros del proyecto.
lando db-export [file] Exporta la base de datos.
lando db-import [file] Elimina la base de datos actual e importa un archivo a la base de datos principal.
lando ssh [name] Conexión por SSH al contenedor principal o al indicado por parámetro.
lando ssh [name] --user root Conexión por SSH al contenedor principal o al indicado por parámetro.
lando php Permite ejecutar comando php dentro del contenedor.
lando composer Ejecuta comandos de Composer dentro del contenedor definido en la recipe.
lando npm Ejecuta comandos NPM dentro del contenedor definido en la recipe.

WordCamp España | #WCES

Ejemplos

https://bit.ly/2VS6m7N

WordCamp España | #WCES

¡FIN!

Simplemente, GRACIAS

Gracias

WordCamp España | #WCES