jueves, 8 de octubre de 2020

Como obtener la versión de Docker

 Para quienes estamos acostumbrados a escribir una gran cantidad de comandos sobre una terminal, naturalmente ya sabemos que estos comandos se componen por varios parámetros. Hoy vamos a repasar como obtener la versión de Docker que estamos ejecutando.


Es muy importante conocer en todo momento la versión del software que estamos utilizando. En grandes proyectos como puede Docker, el modelo de desarrollo basado en versiones siempre es importante tenerlo presente.

Ya que entre versiones, además de corregir bugs, optimizar componentes, etc, se suelen implementar varias mejoras o implementar fixtures y que para este caso no es lo mismo trabajar con una versión que con la otra.

Versión de Docker

Ahora bien, para conocer la versión de Docker que se está ejecutando es necesario escribir el siguiente comando:

$ docker version

Por otro lado, si lo que necesitamos es particularizar nuestra consulta solo a un objeto de esta salida o quizás por que lo necesitamos en un formato diferentes, para se puede utilizar el argumento --format o -f

$ docker version --format '{{ .Server.Version }}'
17.05.0-ce

Para modificar el formato de salida por ejemplo a JSON

$ docker version --format '{{ json . }}'
{"Client":{"Version":"17.05.0-ce","ApiVersion":"1.29","DefaultAPIVersion":"1.29","GitCommit":"89658be","GoVersion":"go1.7.5","Os":"linux","Arch":"amd64","BuildTime":"Thu May 4 22:10:54 2017"},"Server":{"Version":"17.05.0-ce","ApiVersion":"1.29","MinAPIVersion":"1.12","GitCommit":"89658be","GoVersion":"go1.7.5","Os":"linux","Arch":"amd64","KernelVersion":"4.4.0-190-generic","BuildTime":"Thu May 4 22:10:54 2017"}}

Video

Los invito a poner en práctica estos comandos. Saludos!

miércoles, 19 de febrero de 2020

¿Qué es Docker?

Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos.


​Docker utiliza características de aislamiento de recursos del kernel Linux, tales como cgroups y espacios de nombres (namespaces) para permitir que "contenedores" independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales.

El soporte del kernel Linux para los espacios de nombres aísla la vista que tiene una aplicación de su entorno operativo,​ incluyendo árboles de proceso, red, ID de usuario y sistemas de archivos montados, mientras que los cgroups del kernel proporcionan aislamiento de recursos, incluyendo la CPU, la memoria, el bloque de E/S y de la red.

Desde la versión 0.9, Docker incluye la biblioteca libcontainer como su propia manera de utilizar directamente las facilidades de virtualización que ofrece el kernel Linux, además de utilizar las interfaces abstraídas de virtualización mediante libvirt, LXC (Linux Containers) y systemd-nspawn.

De acuerdo con la firma analista de la industria Research, "Docker es una herramienta que puede empaquetar una aplicación y sus dependencias en un contenedor virtual que se puede ejecutar en cualquier servidor Linux. Esto ayuda a permitir la flexibilidad y portabilidad en donde la aplicación se puede ejecutar, ya sea en las instalaciones físicas, la nube pública, nube privada, etc."

La tecnología detrás de Docker


Docker implementa una API de alto nivel para proporcionar contenedores livianos que ejecutan procesos de manera aislada.

Construido sobre las facilidades proporcionadas por el kernel Linux (principalmente cgroups y namespaces), un contenedor Docker, a diferencia de una máquina virtual, no requiere incluir un sistema operativo independiente.7​ En su lugar, se basa en las funcionalidades del kernel y utiliza el aislamiento de recursos (CPU, la memoria, el bloque E / S, red, etc.) y namespaces separados para aislar la vista de una aplicación del sistema operativo. Docker accede a la virtualización del kernel Linux ya sea directamente a través de la biblioteca libcontainer (disponible desde Docker 0.9), o indirectamente a través de libvirt, LXC o systemd-nspawn.

Mediante el uso de contenedores, los recursos pueden ser aislados, los servicios restringidos, y se otorga a los procesos la capacidad de tener una visión casi completamente privada del sistema operativo con su propio identificador de espacio de proceso, la estructura del sistema de archivos, y las interfaces de red. Contenedores múltiples comparten el mismo núcleo, pero cada contenedor puede ser restringido a utilizar solo una cantidad definida de recursos como CPU, memoria y E / S.

Usar Docker para crear y gestionar contenedores puede simplificar la creación de sistemas altamente distribuidos, permitiendo que múltiples aplicaciones, las tareas de los trabajadores y otros procesos funcionen de forma autónoma en una única máquina física o en varias máquinas virtuales. Esto permite que el despliegue de nodos se realice a medida que se dispone de recursos o cuando se necesiten más nodos, lo que permite una plataforma como servicio (PaaS - Plataform as a Service) de estilo de despliegue y ampliación de los sistemas como Apache Cassandra, MongoDB o Riak. Docker también simplifica la creación y el funcionamiento de las tareas de carga de trabajo o las colas y otros sistemas distribuidos.

Si te gustó esta entrada y te gustaría que veamos algunos ejemplos de lo que se puede hacer con Docker, me lo dejas en los comentarios!

Saludos!

Fuente | Wikipedia

lunes, 27 de enero de 2020

¿Qué es Integración Contínua?

En el desarrollo de software hay infinidad de formas de organizar el trabajo, según las tecnologías, grupo de trabajo, los proyectos, etc. La Integración Continua (Continuous Integration CI) es una práctica que incrementa la eficacia y la eficiencia de los resultados del equipo de desarrolladores.


Consiste en combinar los cambios realizados en el código del proyecto, en un repositorio central de forma periódica, para luego ejecutar pruebas y detectar y reparar errores lo antes posible.

Este mecanismo permite mejorar la calidad del software, entregar avances con más frecuencia al cliente y sumar participantes al equipo de desarrollo, que no necesariamente, conozcan en profundidad el proyecto completo.

Actualización contínua y Automatización IT

Como complemento de la Integración Contínua la práctica de Entrega Contínua (Continuous Delivery CD) tiene el objetivo de facilitar la publicación del código combinado en cada iteración y desplegarlo en un ambiente de prueba con idénticas características que el de producción, de forma automática y sin asistencia técnica.

Esta automatización del proceso de entrega involucra la integración de sistemas de ejecución, servicios cloud, repositorios de software y sistemas de comunicación para el control de las etapas y estados.

viernes, 3 de enero de 2020

Tras 20 años de desarrollo, finaliza el soporte de Python 2

El 1 de enero finalizó oficialmente el soporte a la versión 2.7 del lenguaje de programación Python. La Python Software Foundation, liderada por el creador del lenguaje, Guido van Rossum, anunció que en el futuro dejaría de recibir actualizaciones de seguridad y correcciones de errores.


A priori podría no parecer algo demasiado grave, ya que el lanzamiento de su sucesor, Python 3, tuvo lugar hace nada menos que 14 años, en 2006. De hecho, el soporte para Python 2.7 tendría que haber finalizado en 2015. Sin embargo, la enorme popularidad de esta versión (sigue siendo la versión de Python por defecto en muchas distribuciones de Linux, por ejemplo) convenció a la fundación de la necesidad de apoyar ambas ramas de desarrollo, y de posponer la fecha de la 'muerte' Python 2.7.

La Python Software Foundation no quiere mirar atrás

Según el comunicado de la Python Software Foundation, el cambio a la versión 3.0 tuvo lugar porque "nos dimos cuenta de que necesitábamos hacer grandes cambios para mejorar Python. Muchos usuarios no actualizaron y no queríamos lastimarlos. Por lo tanto, durante muchos años, hemos seguido mejorando y publicando Python 2 y Python 3. Pero eso dificulta la tarea de mejorar Python".

Por eso, ahora avisan que, incluso si se detecta un problema de seguridad catastrófico en el software de Python 2, los voluntarios de la fundación no ayudarán a solventarlo, porque estarán centrados en el desarrollo de Python 3. Y recomienda a los rezagados que recurran a las herramientas de portabilidad (como el software 2to3) que la fundación lanzó para facilitar la migración de proyectos de una a otra rama de desarrollo del lenguaje.

Desde la fundación también se ha publicado una completa guía con consejos para portar el código a Python 3. Nick Coghlan, uno de sus directivos, afirmaba que "gracias a los esfuerzos combinados de un gran número de contribuyentes a lo largo del ecosistema Python, Python 3 ya está listo para cualquier tarea que pueda haber sido llevada a cabo previamente con Python 2. Este es un momento histórico para la comunidad Python".

Como último gesto hacia su versión más popular, la fundación ha anunciado que las mejoras que se han ido incorporando durante 2019 a la rama inestable de la 2.7 se lanzarán en abril, incorporadas a la que será su última versión estable. Y tras eso, no mirarán atrás: Python(2) ha muerto, viva Python (3).

Fuente | Genbeta

jueves, 2 de enero de 2020

Actualización de Mantenimiento WordPress 5.3.2

No quería dejar pasar esta noticia que corresponde al año pasado, 2019 donde los desarrolladores de WordPress daban a conocer una nueva versión de mantenimiento para la rama 5.3


Esta actualización de mantenimiento contiene 5 correcciones y mejoras.

WordPress 5.3.2 es una actualización de ciclo corto. La siguiente versión mayor será la 5.4.

Puedes descargar WordPress 5.3.2 desde el botón de la parte superior de esta página, o visitar tu Escritorio → Actualizaciones y hacer clic en Actualizar ahora.

Si tienes sitios compatibles con las actualizaciones automáticas en segundo plano ya hemos empezado el proceso de actualización.

Actualizaciones de mantenimiento

Poco después del lanzamiento de WordPress 5.3.1, se abrieron un par de tiques en el Trac de gran importancia. El equipo del núcleo programó esta rápida actualización de mantenimiento para resolver estos problemas.

Principales problemas corregidos en la versión 5.3.2:


  • Fecha/hora: Asegurar que get_feed_build_date() gestiona correctamente un objeto de entrada modificado con una fecha no válida.
  • Subidas: Corregir la colisión del nombre de archivo en wp_unique_filename() al subir un archivo con la extensión en mayúsculas en los sistemas de archivos que no distinguen entre mayúsculas y minúsculas.
  • Medios: Corregir advertencias de PHP en wp_unique_filename() cuando el directorio de destino no se puede leer.
  • Administración: Corregir los colores en todos los esquemas de colores para los botones con la clase .active.
  • Entradas, tipos de contenido: En wp_insert_post(), cuando se comprueba la fecha de publicación para configurar el estado de future o publish, uso de una comparación delta adecuada.

Para más información revisa la lista completa de cambios en el Trac o echa un vistazo a la página de documentación de la versión 5.3.2 en HelpHub.

Entradas populares