miércoles, 21 de abril de 2021

Docker en modo Experimental

Develop Docker Experimental Feature

Para usar las características experimentales en Docker hay que ajustar el servidor y el cliente de Docker, en esta imagen vemos como esta activado solo en uno de los dos: usamos docker version

Te indico como configurar cada uno de ellos.

Como activamos el server

Necesitas modificar el fichero del servicio de la configuración

sudo vim /etc/docker/daemon.json

Añadimos el siguiente texto ( ten en cuenta que puedes tener mas configuraciones, entonces respeta el formato json)

{ 
  "experimental": true
}

Guarda los cambios y reinicia el servidor (depende del sistema operativo puede cambiar )

sudo service docker restart

ya puedes confirmar que esta activo usando el comando

docker version

En la parte de server tienes que encontrar Experimental: true



En mi mac se puede hacer editando desde preferencias:



Como activamos en el CLI

Podemos activarlo de forma temporal para el cliente:

$ docker version
Experimental:     false
$ export DOCKER_CLI_EXPERIMENTAL=enabled
$ docker version
Experimental:     true

Si queremos que sea de forma permanente debemos añadir en el fichero config.json del CLI , en el server se llama igual el fichero ten cuidad es fácil equivocarse

En el fichero $ vim ~/.docker/config.json

Añadimos"experimental" : "enabled"

Ten en cuenta que es un json puede ser que necesites añadir {} o comas respecta el formato.

Con todas las dos opciones activadas.

Podemos también usar docker version -f '{{.Server.Experimental}}'

En este caso la salida de docker version marcado en rojo las características, se pueden ver como están activadas.



Características experimentales actuales

Hay que tener muy presente que las funciones experimentales experimentan cambios con las versiones. Estas características dan acceso anticipado a las funciones que pueden aparecer en versiones futuras. A veces, esas características se convierten en una versión final y, a veces, se desaparecen.

Una búsqueda rápida de la documentación actual de Docker revela que las siguientes características están incluidas en la lista experimental no están todas y por supuesto, esto podría cambiar en cualquier momento:

  • docker assemble es un complemento que proporciona una herramienta compatible con el framework-aware para permitir a los usuarios crear una aplicación en un contenedor Docker optimizado. Con esta función, es posible crear rápidamente imágenes de Docker sin proporcionar información de configuración.

  • docker deploy es un alias para stack deploy. Esta función es compatible con la versión de fichero "compose" 3.0 y superior.

  • docker manifest inspect muestra un "manifest" de imagen o una lista de "manifiéstala".

  • docker checkpoint create crea un punto de control desde un contenedor en ejecución.

  • docker buildx es un complemento CLI que amplía el comando docker con las características (proporcionadas por Moby BuildKit ) como crear contenedores para distintas arquitecturas como ARM, compilar en varios nodos al mismo tiempo, recolección automática garaje, formatos frontend extensibles, importar / exportar caché de compilación y más.

También debe tenerse en cuenta que algunos de los comandos experimentales están disponibles para el motor docker estándar, mientras que otros solo están disponibles para los motores docker-ce o docker-ee.

Y así es como puede acceder a las funciones experimentales de Docker.

Docker buildx

[Crear images para distintas arquitecturas]



Con la aparición de distintas arquitecturas Intel Arm y Darwin, podemos necesitar característica.

BuildKit está diseñado para crear contenedores para la construcción de múltiples plataformas y no solo para la arquitectura y el sistema operativo que el usuario que en la que se ejecuta la construcción.

En el momento de escribir este artículo (principios de 2021), buildx es una función experimental. Si intenta usarlo sin activar las funciones experimentales, fallará:

$ docker buildx
docker: ‘buildx’ is not a docker command.
See ‘docker --help



Cuando ejecuta "buildx", puede establecer la marca --platfor para especificar la plataforma de destino para la salida de compilación (por ejemplo, `linux/amd6 linux/arm64 o darwin/amd64´.

Puedes crear imágenes multiplataforma utilizando tres formas diferentes que son compatibles con Buildx y Dockerfiles:

Dependiendo del proyecto, y la tecnología de su lenguaje que utilice puede tener un soporte para la compilación cruzada.

Suponiendo que los contextos node-amd64 y node-arm64 existen en el

docker context ls

 $ docker buildx create --use --name mybuild node-amd64
$ docker buildx create --append --name mybuild node-arm64
$ docker buildx build --platform linux/amd64,linux/arm64 .

En ese caso, las compilaciones de múltiples etapas en los ficheros para usar en la contruccion "Dockerfiles" se pueden usar de manera efectiva para compilar binarios para la plataforma especificada con --platfor utilizando la arquitectura nativa del nodo de compilación. Una lista de argumentos de compilación como BUILDPLATFOR y TARGETPLATFOR está disponible automáticamente dentro de su Dockerfile y puede ser aprovechada por los procesos que se ejecutan como parte de su compilación.

# syntax=docker/dockerfile:syntax=docker/dockerfile:`1
FROM --platform=$BUILDPLATFORM golang:alpine AS build
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM" > /log
FROM alpine
COPY --from=build /log /log

Creando un Build con Buildx

Usando CLI con docker necesitamos crear una nueva instancia de constructor que buildx pueda usar:

$ docker buildx create --name mybuilder
mybuilder
$ docker buildx use mybuilder

Podemos ver que esta funcionando perfectamente:

$ docker buildx inspect --bootstrap

Podemos ver en la salida.


Fijate en la ultima línea.

Usando build con buildx

Ya podemos crear imágenes de Docker de arquitectura múltiple con buildx. Para tener algo concreto con lo que trabajar, usaremos el siguiente ejemplo de este Dockerfile:

FROM alpine:latest
CMD echo “Running on $(uname -m)”

Ahora autenticaremos para dejar las imágenes en nuestro repositorio, este caso usare Docker hub https://hub.docker.com/

´docker login -u marioezquerro´

Nos pedirá la contraseña, si todo es correcto tendremos un "Login Succeeded"

Ahora podemos crear las imágenes y subirlas al repositorio.

$ docker buildx build -t mario.ezquerro/buildx-test:latest --platform linux/amd64,linux/arm64,linux/ppc64le --push .

Si todo es correcto veremos la salia y la subida en el repositorio.



Nos encontraremos las imágenes en el repositorio las imágenes para las distintas plataformas creadas.



Bueno ya podemos usar esta imagen.

$ docker run --rm marioezquerro/buildx-test:latest
Unable to find image 'marioezquerro/buildx-test:latest' locally
latest: Pulling from marioezquerro/buildx-test
540db60ca938: Already exists
Digest: sha256:02db0fb4ab93de95b50b31031e886f435e731af71b0cf297976fbde3ab073b1d
Status: Downloaded newer image for marioezquerro/buildx-test:latest
“Running on x86_64”

Tambien podemos analizar la arquetectura en mi caso es un Mac con i5

$ docker inspect --format “{{.Architecture}}” marioezquerro/buildx-test:latest
"amd64"

$ docker run --rm --platform linux/aarch64 marioezquerro/buildx-test:latest”
“Running on x86_64”

miércoles, 17 de marzo de 2021

Nuevo podcast T1-03

El viernes 19 de marzo a las 19:00 tendréis el nuevo podcast, (ya era hora).

Hablaremos de lo humano y divino, del los backups y de los incendios, y te recordamos que si estas preparado no debería ser un problema.



Esperamos que te guste.

lunes, 30 de noviembre de 2020

Devfest Cloud Español 2020, el mayor evento de difusión tecnológica anual del GDG Cloud Español



 Aquí puedes ver el evento:


https://youtu.be/rIIlA-oK-7g

 

Presentacion

www.cloudespañol.com   (sí, con Ñ!!)

¡Desde GDG Cloud Español vamos a montar el Devfest de Cloud Español! 

Este año, el devfest será algo diferente, con una modalidad on-line con charlas sobre los 30 minutos. 

Este Devfest se celebrará durante todo el día el próximo sábado 19 de diciembre y será retransmitido por en nuestro canal de YouTube. Próximamente publicaremos toda la información del evento aquí, en este blog, ¡y si te suscribes a nuestro canal podrás ver el recordatorio del evento también allí directamente!

Por parte de la organización, queremos hacer un evento seguro y abierto a todo el mundo. Dado que este año vamos a retransmitir el evento vía online, cualquier ponente puede participar desde cualquier parte del mundo y podremos adaptarnos a cualquier horario.

La temática tratará del ámbito tecnológico y tecnologías cloud, sin importar proveedor.

Fecha y hora: sábado 19 de diciembre del 2020, desde las 16:00 horas UTC+2 [Spain]

Contenidos

Las charlas están relacionadas con todas las tecnologías y servicios cloud, despliegues multi-cloud o de conexión híbrida, conectando la nube pública al on-premise: creación de VMs, servicios serverless, redes, routers virtuales, bases de datos, clústeres, contenedores Docker, Kubernetes y sistemas CI/CD, entre otros.

Formato

Online. Dada la época de pandemia que estamos pasando los eventos presenciales no son recomendables, y el evento finalmente tendrá un formato virtual usando nuestro canal de YouTube. La versión híbrida no sería recomendable en estas circunstancias.

Precio

El evento es completamente gratuito.

Inscripción

Al ser un evento online no requiere inscripción alguna, simplemente conectarse al evento en YouTube en directo.

Agenda

- Presentacion:

Big Data con Notebooks en Dataflow

Con la versatilidad de python y la flexibilidad de los Notebooks desde la GCP, mostraremos como podemos manipular más de 120 GB de información de imágenes almacenados el Cloud storage para hacer Integración de datos para entrenar un modelo de ML

PonenteAaron Guerrero Hernandez

Me desempeño como Data Scientist/Cloud Architect en Kayum en México y Colaborador en Glucopic en Argentina. Estoy Lead Organizer en la comunidad de GDG Cloud Mexico City, me gusta ayudar a la comunidad compartiendo y mostrando que con tecnología podemos cambiar al mundo.



- "Retos al hacer Machine Learning y cómo AWS puede ayudarte"

Tanto si estás empezando con Machine Learning como si ya tienes experiencia, preparar tus datos, desplegar y operar tus modelos a escala, o mantener la calidad de tus predicciones son algunos de los desafíos que te vas a encontrar. En esta charla te cuento un poco más sobre las dificultades de hacer ML y ciencia de datos, y te presentaré brevemente algunas de las soluciones que AWS ha lanzado recientemente para hacerte la vida más fácil.

Ponente: Javi Ramírez

Como Developer Advocate en AWS, ayudo a desarrolladoras y desarrolladores a sacar el mayor partido de la nube.

Me encanta el almacenamiento y procesos de datos, tanto a pequeña como a gran escala. Tengo mucha experiencia con SQL, NoSQL, bases de datos en memoria, de grafos, Big Data, analítica y Machine Learning. Me gustan los sistemas distribuídos, escalables, y que están siempre funcionando.

Antes de trabajar para AWS, pasé 20 años desarrollando software profesionalmente y compartiendo lo aprendido con la comunidad. He hablado en eventos en más de 20 países, mentorizado a docenas de startups, impartido clase en varias universidades, y formado a cientos de profesionales en sistemas en nube e ingeniería de datos.


- Big Data con Spark y Dataproc.

 
    Es todo un desafío enfrentarnos al procesamiento de grandes cantidades de datos, pero ese desafío puede no ser una batalla perdida si contamos con las herramientas adecuadas, ¡Spark al rescate! Sin embargo, para poder ejecutar Spark necesitaremos también una infraestructura, y eso puede suponer otro problema. En esta charla veremos con ejemplos diferentes casos de uso y cómo podemos utilizar Dataproc para trabajar con Spark de una manera sencilla y optimizar los procesos de procesamiento de datos.

Ponente: Laura Morillo Velarde 

Laura es una Desarrolladora de Software con más de 12 años de experiencia trabajando con diferentes tecnologías (C ++, Java, Ruby, Javascript ...).  Es una apasionada de la tecnología y el aprendizaje continuo es lo que más valora en su profesión.  Le encanta trabajar en nuevas empresas para ayudar a hacer crecer tanto el producto como el equipo.  Como Teach Lead en seedtag, dirige el equipo de Supply Side Platform.  Entre sus responsabilidades se encuentran desarrollar esta plataforma (utilizando tecnologías como Typescript, Nodejs, BigQuery, Spark y Kubernetes) y ayudar al resto del equipo desde un punto de vista técnico a mejorar sus habilidades y tomar las mejores decisiones para construir un gran producto.  Laura también está involucrada con diferentes iniciativas.  Fundó AgileGirls en 2010 para tratar de mejorar el bajo número de mujeres en la tecnología, colabora con los ppdcasts de GDG Spain y Tech&Ladies y ha liderado la organización del Día Internacional de la Mujer que Women Techmakers Madrid impulsa anualmente desde 2016. Google Developer Expert en Cloud y Certificada Google Cloud Architect.


- VPN en el Cloud, entre proyectos distintos


¿Es posible crear VPN entre distintos cloud  proyectos dentro de Google?... Si , Es posible, y Javier lo explica con un sencillo y potente ejemplo sin red y sin demo...

Ponente: Javier López Martínez

Javier López es ingeniero informático & MBA IT y Arquitecto de Soluciones Cloud en Telefónica; previamente trabajó en BBVA, KMPG y Banco Santander. En su tiempo libre (y en sus horas de sueño) a fundado cuatro startups, es GDE de Cloud y Organizer Lead de Google Developers Group Burgos.




Servicios de Google Cloud Platform para crear aplicaciones serverless.

    El mundo de los contenedores ha dado paso a una infinidad de posibilidades, una de ellas es desplegar aplicación en arquitecturas serverless, para ellos Google Cloud platform ofrece servicio como: Cloud Run, Google Cloud Storage y algunos servicios más para que puedas olvidarte de administrar servidores y solo te enfoques en las funcionalidades de tu aplicación.

Ponente: Yolanda López

Ingeniería de software, enfocada en temas de infraestructura; apasionada por la computación en la nube y la cultura DevOps, embajadora de Woman Tech Maker y Google Developer Expert en cloud platforms. Certified Scrum Master y Certified Scrum Developer por Scrum Alliance. Cloud Associate Engineer en Google Cloud Platform. Con 8 años de experiencia en desarrollo de aplicaciones y todo el ciclo de vida del software, enfocada en arquitecturas para sistemas resilientes implementando enfoques como, Infraestructura inmutable e infraestructura como código.