viernes, 13 de diciembre de 2019

Actualización de Seguridad en WordPress 5.3.1

Esta actualización de seguridad y mantenimiento incluye 46 correcciones y mejoras. Además, añade una buena cantidad de correcciones de seguridad – ve la lista abajo.


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

Puedes descargar WordPress 5.3.1 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 seguridad

Cuatro problemas de seguridad afectan a las versiones de WordPress 5.3 y anteriores; la versión 5.3.1 los corrige así que querrás actualizar. Si aún no has actualizado a la versión 5.3, hay también versiones actualizadas de la versión 5.2 y anteriores que corrigen los problemas de seguridad.


  • Gracias a Daniel Bachhuber por descubrir un problema por el que un usuario sin privilegios podría fijar una entrada mediante la REST API.
  • Gracias a Simon Scannell de RIPS Technologies por descubrir y divulgar un problema por el que se podría almacenar un script en sitios cruzados (XSS) en enlaces bien creados.
  • Gracias al equipo de seguirdad de WordPress.org por fortalecer wp_kses_bad_protocol() para asegurar que es consciente del atributo de guión.
  • Gracias a Nguyen The Duc por descubrir una vulnerabilidad XSS almacenada al usar el contenido del editor de bloques.
  • Actualizaciones de mantenimiento

Aquí tienes algunos de los cambios destacables:


  • Administración: mejoras en la estandarización de los controles de altura y alineamiento de los formularios (ve la nota de desarrollo relacionada), accesibilidad de los enlaces de widgets en el escritorio y problemas de legibilidad del esquema de color alterno (ve la nota de desarrollo).
  • Editor de bloques: corrige problemas de scroll en Edge y problemas intermitentes de JavaScript.
  • Temas incluidos: añadida opción al personalizador para mostrar/ocultar la biografía del autor, reemplazo del scroll suave basado en JS con CSS (ve la nota de desarrollo) y corrige el CSS de incrustados de Instagram.
  • Fecha/Hora: mejora en el cálculo de fechas no-GMT, corrige la visualización del formato de fecha en idiomas específicos y hace que get_permalink() sea más resiliente frente a cambios de zona horaria con PHP.
  • Incrustados: eliminado el proveedor de oEmbed CollegeHumor ya que el servicio ya no existe.
  • Bibliotecas externas: actualización de sodium_compat.
  • Salud del sitio: permite que se filtre el intervalo de recordatorio para el correo electrónico de verificación al administrador.
  • Subidas: se evita que las miniaturas sobreescriban otras subidas cuando coincida el nombre de archivo, y excluye a las imágenes PNG del escalado tras la subida.
  • Usuarios: se asegura que la verificación de correo electrónico de administración utiliza el idioma local del usuario en vez del idioma local del sitio.

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 en HelpHub de la version 5.3.1.

Fuente | WordPress.org

jueves, 12 de diciembre de 2019

Ya disponible la nueva versión de nftables 0.9.3

Hace algunos días fue liberada la nueva versión del filtro de paquetes nftables 0.9.3, que se desarrolla como reemplazo de iptables, ip6table, arptables y ebtables debido a la unificación de las interfaces de filtrado de paquetes para IPv4, IPv6, ARP y puentes de red.


El paquete nftables usa partes estructurales de la infraestructura Netfilter, como el connection tracking system (sistema de seguimiento de conexiones) o el subsistema de registro. También hay prevista una capa de compatibilidad para la traducción de las ya existentes reglas del cortafuegos iptables a sus equivalentes en nftables.

Sobre Nftables


Nftables incluye componentes de filtro de paquetes que funcionan en el espacio del usuario, mientras que a nivel del kernel, el subsistema nf_tables proporciona una parte del kernel de Linux desde la versión 3.13.

A nivel del núcleo, solo se proporciona una interfaz común que es independiente de un protocolo específico y proporciona funciones básicas para extraer datos de paquetes, realizar operaciones de datos y controlar el flujo.

La lógica de filtrado en sí y los procesadores específicos del protocolo se compilan en un bytecode en el espacio del usuario, después de lo cual este bytecode se carga en el kernel usando la interfaz Netlink y se ejecuta en una máquina virtual especial que se parece a BPF (Berkeley Packet Filters).

Este enfoque le permite reducir significativamente el tamaño del código de filtrado que se ejecuta a nivel del núcleo y eliminar todas las funciones de las reglas de análisis y la lógica de trabajar con protocolos en el espacio del usuario.

Las principales ventajas de nftables son:

  • Arquitectura que está integrada en el núcleo
  • Una sintaxis que consolida las herramientas de IPtables en una única herramienta de línea de comandos
  • Una capa de compatibilidad que permite el uso de la sintaxis de reglas de IPtables.
  • Una nueva sintaxis fácil de aprender.
  • Proceso simplificado de agregar reglas de firewall.
  • Informe de errores mejorado.
  • Reducción en la replicación de código.
  • Mejor rendimiento general, retención y cambios graduales en el filtrado de reglas.


¿Qué hay de nuevo en nftables 0.9.3?


En esta nueva versión de nftables 0.9.3 se añadió el soporte para paquetes coincidentes a lo largo del tiempo. Con ello se puede definir los intervalos de tiempo y fecha en los que se activará la regla y configurar la activación en días individuales de la semana. También se agregó una nueva opción “-T” para mostrar el tiempo de la época en segundos.

Otro de los cambios que se destacan es el soporte para restaurar y guardar etiquetas SELinux (secmark), sí como también el soporte para listas de mapas synproxy, lo que le permite definir más de una regla por backend.

De los demás cambios que se destacan de esta nueva versión:

  • Posibilidad de eliminar dinámicamente elementos set-set de las reglas de procesamiento de paquetes.
  • Soporte para mapeo de VLAN por identificador y protocolo definido en los metadatos de la interfaz del puente de red
  • Opción “-t” (“–terse”) para excluir elementos set-set al mostrar reglas. Al ejecutar “nft -t list ruleset”, se mostrará:
  • Conjunto de reglas nft list.
  • La capacidad de especificar más de un dispositivo en cadenas netdev (funciona solo con el kernel 5.5) para combinar reglas de filtrado comunes.
  • Posibilidad de agregar descripciones de tipos de datos.
  • Capacidad para construir una interfaz CLI con la biblioteca linenoise en lugar de libreadline.
  • ¿Cómo instalar la nueva versión de nftables 0.9.3?
  • Para obtener la nueva versión de momento solo se puede compilar el código fuente en su sistema. Aunque en cuestión de días estarán disponibles los paquetes binarios ya compilados dentro de las diferentes distribuciones de Linux.

Además de que los cambios necesarios para que funcione la versión nftables 0.9.3 están incluidos en la futura rama del kernel de Linux 5.5. Por lo que para realizar la compilación debes contar con las siguientes dependencias instaladas:

libmnl 
libnftnl

Estas las puedes compilar con:

./autogen.sh
./configure
make
make install

Y para nftables 0.9.3 este lo descargamos desde el siguiente enlace. Y la compilación se realiza con los siguientes comandos:

cd nftables
./autogen.sh
./configure
make
make install

Fuente | Blog Desde Linux

miércoles, 11 de diciembre de 2019

.htaccess en modo mantenimiento

Entiendo que la expresión del título no es la correcta, ya que la idea de este pequeño post es añadir una configuración al archivo .htaccess de un servidor Apache2 para capturar todas las peticiones y redireccionarlas a una página estática.


Este tipo de práctica es muy simple y además clave al momento de realizar alguna tarea de mantenimiento, actualización, etc.

Yo la suelo utilizar al momento de publicar por ejemplo la fortificación y actualización de un proyecto en WordPress o cuando de repente nos encontramos con una web a la que le realizaron algún Defacement y queremos utilizar redirección 302 hacia una determinada web.

Lo primero que les recomiendo es que tengan una página estática con algún mensaje acorde a la tarea que se va a realizar, algo tan simple como el siguiente ejemplo y a la que le podrían agregar el nombre de mantenimiento.html


Ahora bien, sobre el archivo de configuraciones .htaccess añadimos al principio las siguientes directivas:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/mantenimiento.html$
RewriteRule $ /mantenimiento.html [R=302,L]

A partir de este momento, solo se va a estar visualizando el contenido de la página mantenimiento.html capturando todas la peticiones y otorgandonos la tranquilidad de poder trabajar mientras se muestra este mensaje.

Si te gustó este post, te invito a que lo compartas en las redes sociales o me dejes un comentario! Me ayudas a difundirlo? Gracias.

Saludos!

miércoles, 27 de noviembre de 2019

¿Qué es Xpath?

El lenguaje Xpath es el sistema que se utiliza para navegar y consultar los elementos y atributos contenidos en la estructura de un documento XML. Pero, para comprender el concepto de Xpath (XML Path Language), es importante explicar primero el significado de XML eXtensible Markup Language, cuya traducción es lenguaje de etiquetado extensible.


Para esto utiliza una sintaxis de criterios y funciones que le permiten realizar cálculos, comparaciones e identificar nodos. Podría decirse que XPath funciona de forma similar al editor de fórmulas en Excel, pues extrae información de un documento para hacer cálculos.

Supongamos que quieres marcar las fechas importantes en un calendario, así que decides usar símbolos y colores para marcar y diferenciar entre las fechas de cumpleaños, las citas al médico y el vencimiento de las facturas. De la misma manera, el lenguaje XML utiliza etiquetas para diferenciar los tipos de datos que almacena y transporta en ficheros. Este lenguaje fue desarrollado por la World Wide Web Consortium W3C y proviene de otro inventado por IBM en los años 70, llamado GML.

Para qué sirve Xpath

XPath sirve para que los programadores puedan definir criterios de búsqueda avanzada y cálculos específicos, utilizando una sintaxis simple, pero bastante eficaz.

Contiene una librería de 100 funciones estándar, que permiten realizar operaciones para el manejo de cadenas, operaciones numéricas, comparaciones de fechas… etcétera.

XPath no es un lenguaje independiente, pues se usa en combinación con XSLT (eXtensible Stylesheet Language for Transformations) o lenguaje que permite aplicar una transformación a un documento XML.

Ejemplos de Xpath

Para XPath, un documento XML es como un árbol, que está compuesto por dos conceptos. Por un lado, la representación de distintos tipos de nodos; por el otro, las posibles relaciones que existen entre estos nodos.

Existen varios tipos de nodos, los más básicos se denominan:

  • Nodo Elemento.
  • Nodo Atributo.
  • Nodo Texto.
  • Nodo raíz.
  • Elemento raíz.
  • Valores atómicos.

El nodo raíz del árbol contiene al elemento raíz del documento. Todos los documentos XML tienen un nodo raíz que indica el inicio del documento, de donde dependen todos los demás nodos del documento.

Fuente | Neoattack

miércoles, 20 de noviembre de 2019

GitHub Security Lab un proyecto para identificar vulnerabilidades en software de código abierto

En la última conferencia de GitHub Universe para desarrolladores, GitHub anunció que lanzará un nuevo programa destinado a mejorar la seguridad del ecosistema de código abierto. El nuevo programa se llama GitHub Security Lab y permite a los investigadores de seguridad de una variedad de compañías identificar y solucionar problemas de proyectos populares de código abierto.


Todas las empresas interesadas y especialistas en seguridad informática individual están invitados a unirse a la iniciativa a la cual ya se han unido investigadores de seguridad de F5, Google, HackerOne, Intel, IOActive, JP Morgan, LinkedIn, Microsoft, Mozilla, NCC Group, Oracle, Trail of Bits, Uber y VMWare, que han identificado y ayudado a corregir 105 vulnerabilidades en los últimos dos años en proyectos como Chromium, libssh2, el kernel de Linux, Memcached, UBoot, VLC, Apport, HHVM, Exiv2, FFmpeg, Fizz, libav, Ansible, npm, XNU, Ghostscript, Icecast, Apache Struts, strongSwan, Apache Ignite, rsyslog, Apache Geode y Hadoop.

“La misión del Security Lab es inspirar y permitir que la comunidad de investigación global asegure el código del programa”, dijo la compañía.

El ciclo de vida del mantenimiento de la seguridad del código propuesto por GitHub implica que los participantes de GitHub Security Lab identificarán vulnerabilidades, después de lo cual se comunicará la información sobre los problemas a los encargados del mantenimiento y a los desarrolladores que resolverán los problemas, acordarán el momento de revelar información sobre el problema e informarán a los proyectos dependientes sobre la necesidad de instalar la versión con la eliminación de la vulnerabilidad.

Microsoft lanzó CodeQL, que fue desarrollado para encontrar vulnerabilidades en el código fuente abierto, para uso público. La base de datos alojará plantillas de CodeQL para evitar la reaparición de problemas resueltos en el código presente en GitHub.

Además, GitHub se ha convertido recientemente en una Autoridad de Numeración Autorizada (CNA) de CVE. Esto significa que puede emitir identificadores CVE para vulnerabilidades. Esta característica se ha agregado a un nuevo servicio llamado ” consejos de seguridad “.

A través de la interfaz de GitHub, se puede obtener el identificador CVE para el problema identificado y preparar un informe, y GitHub enviará las notificaciones necesarias por sí mismo y organizará su corrección coordinada. Además, después de solucionar el problema, GitHub enviará automáticamente solicitudes de extracción para actualizar las dependencias asociadas con el proyecto vulnerable.


Los identificadores CVE mencionados en los comentarios en GitHub automáticamente ahora hacen referencia a información detallada sobre la vulnerabilidad en la base de datos enviada. Para automatizar el trabajo con la base de datos, se propone una API separada.

GitHub también ha presentado el catálogo de vulnerabilidades de la base de datos de asesoramiento de GitHub, que publica información sobre vulnerabilidades que afectan a los proyectos de GitHub e información para rastrear paquetes y repositorios vulnerables. El nombre de la base de datos de consultoría de seguridad que estará en GitHub será GitHub Advisory Database.

También informó de la actualización del servicio de protección contra conseguir en un repositorio de acceso público de la información confidencial, como los tokens de autenticación y las claves de acceso.

Durante la confirmación, el escáner verifica los formatos típicos de clave y token utilizados por 20 proveedores y servicios en la nube, incluidos Alibaba Cloud API, Amazon Web Services (AWS), Azure, Google Cloud, Slack y Stripe. Si se detecta un token, se envía una solicitud al proveedor de servicios para confirmar la fuga y revocar los tokens comprometidos. Desde ayer, además de los formatos admitidos anteriormente, se ha agregado compatibilidad para definir tokens GoCardless, HashiCorp, Postman y Tencent

Para la identificación de vulnerabilidades, se proporciona una tarifa de hasta $ 3,000, dependiendo del peligro del problema y la calidad de la preparación del informe.

Según la compañía, los informes de errores deben contener una consulta CodeQL  que permite crear una plantilla de código vulnerable para detectar la presencia de una vulnerabilidad similar en el código de otros proyectos (CodeQL permite realizar análisis semántico del código y consultas de formulario para buscar estructuras específicas).

Fuente | DesdeLinux

viernes, 15 de noviembre de 2019

¿Qué es DevSecOps?

DevOps no solo concierne a los equipos de desarrollo y operaciones. Si desea aprovechar al máximo la agilidad y la capacidad de respuesta de los enfoques de DevOps, la seguridad de la TI también debe desempeñar un papel integrado en el ciclo de vida completo de sus aplicaciones.


¿Por qué? Antes, el papel de la seguridad estaba aislado y a cargo de un equipo específico en la etapa final del desarrollo. Cuando los ciclos de desarrollo duraban meses o incluso años, no pasaba nada. Pero eso quedó en el pasado. Una metodología efectiva de DevOps garantiza ciclos de desarrollo rápidos y frecuentes (a veces de semanas o días), pero las prácticas de seguridad obsoletas pueden revertir incluso las iniciativas de DevOps más eficientes.


Actualmente, en el marco de trabajo en colaboración de DevOps, la seguridad es una responsabilidad compartida e integrada durante todo el proceso. Puesto que es un enfoque tan importante, se acuñó el término "DevSecOps" para enfatizar la necesidad de crear una base de seguridad en las iniciativas de DevOps


DevSecOps implica pensar desde el principio en la seguridad de las aplicaciones y de la infraestructura. También implica automatizar algunas puertas de seguridad para impedir que se ralentice el flujo de trabajo de DevOps. Para cumplir con estos objetivos es necesario seleccionar las herramientas adecuadas para integrar la seguridad de manera permanente, como acordar el uso de un entorno de desarrollo integrado (IDE) con funciones de seguridad. Sin embargo, la seguridad efectiva de DevOps requiere más que herramientas nuevas; se basa en los cambios culturales de DevOps para integrar el trabajo de los equipos de seguridad lo antes posible.

Ya sea que lo llame "DevOps" o que prefiera "DevSecOps" para incorporar en el nombre la seguridad, lo ideal siempre ha sido incluirla como parte integral de todo el ciclo de vida de la aplicación. El término DevSecOps no se refiere a un perímetro de seguridad que rodea las aplicaciones y los datos, sino a la seguridad integrada. Si esta sigue quedándose al final del proceso de desarrollo, las empresas que adoptan DevOps corren el riesgo de volver a los largos ciclos que pretendían evitar desde el principio.

En parte, DevSecOps destaca la necesidad de invitar a los equipos de seguridad desde el inicio de las iniciativas de DevOps, para que incorporen la seguridad de la información y establezcan un plan para su automatización. También subraya la necesidad de ayudar a los desarrolladores a escribir códigos teniendo en cuenta la seguridad, lo cual implica que los equipos de seguridad compartan su perspectiva, los comentarios y la información valiosa sobre las amenazas conocidas. Posiblemente esto también implique que los desarrolladores tengan que capacitarse en seguridad, ya que el método tradicional para desarrollar aplicaciones no siempre ha hecho hincapié en el tema.

¿Qué significa la seguridad integrada en concreto? Para empezar, una buena estrategia de DevSecOps implica determinar la tolerancia a los riesgos y realizar un análisis de riesgos y beneficios al respecto. ¿Qué cantidad de controles de seguridad es necesaria en cierta aplicación? ¿Qué tan importante es la velocidad de comercialización para las diferentes aplicaciones? La automatización de las tareas repetidas es clave para DevSecOps, ya que la ejecución de comprobaciones de seguridad manuales en el proceso puede requerir mucho tiempo.

La seguridad de DevOps está automatizada


Se recomienda mantener ciclos de desarrollo cortos y frecuentes, integrar medidas de seguridad con una interrupción mínima de las operaciones, mantenerse al día con las tecnologías innovadoras (como los contenedores y los microservicios) y, al mismo tiempo, fomentar una colaboración más estrecha entre los equipos que suelen estar aislados, lo cual es una tarea difícil para cualquier empresa. Todas estas iniciativas comienzan a nivel humano, con los pormenores de la colaboración en su empresa, pero la automatización facilita esos cambios humanos en un marco de DevSecOps.


¿Pero qué conviene automatizar y cómo se puede hacer? Hay una guía escrita que lo ayudará a responder estas preguntas. Las empresas deben dar un paso atrás y considerar todo el entorno de desarrollo y operaciones. Esto incluye los repositorios de control de códigos fuente, los registros de contenedores, el canal de integración e implementación continuas (CI/CD), la gestión de la interfaz de programación de aplicaciones (API), la automatización de los lanzamientos y la coordinación, y la gestión y la supervisión operativas.

Las nuevas tecnologías de automatización han ayudado a las empresas a adoptar prácticas de desarrollo más ágiles, y a promover nuevas medidas de seguridad. Pero la automatización no es lo único que ha cambiado en el panorama de TI durante los últimos años; las tecnologías nativas de la nube, como los contenedores y los microservicios, son ahora una parte importante de la mayoría de las iniciativas de DevOps, y la seguridad de la plataforma debe adaptarse para cumplir con ellas.

La seguridad de DevOps se diseñó para los contenedores y los microservicios.


La mayor escalabilidad y la infraestructura más dinámica habilitadas por los contenedores han cambiado la forma de hacer negocios de muchas empresas. Debido a esto, las prácticas de seguridad de DevOps deben adaptarse al nuevo panorama y ajustarse a las pautas de seguridad específicas de los contenedores. Las tecnologías nativas de la nube no son adecuadas para las listas de verificación y las políticas de seguridad estáticas. Por el contrario, la seguridad debe ser constante y estar integrada en cada etapa del ciclo de vida de la aplicación y la infraestructura.

DevSecOps significa integrar la seguridad al desarrollo de las aplicaciones durante todo el proceso. Esta integración no solo requiere las nuevas herramientas, sino también un enfoque organizativo distinto. Los equipos de DevOps deben tenerlo en mente al automatizar la seguridad para proteger el entorno y los datos en general, así como el proceso de integración y distribución continuas; un objetivo que probablemente incluya la seguridad de los microservicios en contenedores.

Fuente | RedHat

jueves, 14 de noviembre de 2019

Como bloquear una dirección IP desde .htaccess

Administrar una web es tener a cargo un montón de tareas que en muchas maneras se refiere a optimizar sus recursos, pero que también está ligado a analizar desde donde pueden llegar los próximos ataques.

Los que solemos utilizar el Servidor Web Apache2, tenemos una gran herramienta para implementar y es hacer uso del archivo .htaccess


.htaccess es una archivo de configuración del servidor web que permite extender algunas configuraciones para una aplicación en particular, activar y desactivar módulos, ocultar mensajes de error, redireccionar, evitar un Full Path Disclosure y limitar peticiones, etc.

Por otro lado, es sabido que cuando logramos detectar una actividad sospechosa desde algún origen asociado a su dirección IP, podemos comenzar a actuar de una forma pro-activa.

Con esto no quiere decir que se está recibiendo ataques, o caer en falsas paranoias, sino que se trata simplemente de actuar y avanzar.

Por ejemplo, si desde un archivo log notamos varios request en pocos en intervalos cortos de tiempo (milisegundos) o comenzamos a recibir mucho #SPAM desde un origen es momento de actuar.

Bloquear una dirección IP


Entre las bondades del archivo .htaccess es posible limitar los tipos de peticiones y las direcciones IP de su origen de la siguiente forma:

<Limit GET HEAD OPTIONS POST PUT>
 Order Allow,Deny
 Allow from All
 Deny from 91.200.12.
</Limit>

De esta manera estamos especificando no solamente los métodos que queremos bloquear como ser GET, HEAD, OPTIONS, POST y PUT, sino que además podemos especificar las direcciones IP o rangos de IP públicas desde donde estamos recibiendo una actividad distinta.

miércoles, 13 de noviembre de 2019

Nuevo WordPress 5.3 "Kirk"

WordPress 5.3 "Kirk", nombrado en honor al músico de jazz estadounidense Rahsaan Roland Kirk, ya está disponible para descargar. La actualización incluye un nuevo tema predeterminado llamado Twenty Twenty, mejoras en la interfaz de usuario destinadas a la accesibilidad y nuevas características del editor de bloques.


Esta versión recibió contribuciones de 645 voluntarios, que es el grupo más grande de contribuyentes para una versión de WordPress.

WordPress 5.2 tenía 84 millones de descargas antes del lanzamiento de WordPress 5.3.

La extensión JSON nativa de PHP ahora se requiere para cualquier sitio que ejecute WordPress 5.3 o posterior. Esto no debería ser un problema para la mayoría de los usuarios porque la extensión se ha incluido con PHP de forma predeterminada desde 2006. WordPress generará un error y cancelará el procedimiento de actualización si detecta que falta la extensión. Los usuarios que no puedan actualizar deberán ponerse en contacto con sus servidores web para habilitar la extensión.

Twenty Twenty: Nuevo tema predeterminado


WordPress está obteniendo una nueva capa de pintura. Anders Norén dirigió el equipo de diseño para el nuevo tema Twenty Twenty , que era una bifurcación de su tema Chaplin original .

El tema Twenty Twenty está completamente orientado a crear contenido con el editor de bloques con su estilo audaz y obstinado. Viene con una plantilla de portada y tiene un sistema de color personalizado diseñado para mantener accesible el contraste de color del sitio.

Características y mejoras del editor de bloques


WordPress 5.3 incluye características de las versiones 5.4 - 6.5 del complemento Gutenberg junto con correcciones de errores y mejoras de rendimiento de las versiones 6.6 y 6.7. Para los usuarios que no han estado ejecutando el complemento, deberían ver tiempos de carga más rápidos y respuestas más rápidas de las pulsaciones de teclas.

Otras características principales

El trabajo para el manejo de imágenes grandes entró en la actualización. En lugar de verificar el tamaño de los archivos, las imágenes de más de 2,560 píxeles se reducen y se usan como el tamaño de imagen "completo". Este cambio hace que las imágenes grandes estén listas para la web y disminuirá significativamente el tamaño de los archivos para muchos usuarios que cargan imágenes sin optimizarlas de antemano. Esto es común con las cargas de teléfonos móviles.

Para aquellos que prefieren mantener el tamaño original de las cargas de imágenes, que a veces es el caso de los sitios de fotografía, tome el complemento de Umbral Desactivar "BIG Image" .

La pantalla de estado del sitio introducida en WordPress 5.2 tiene algunas mejoras en la experiencia del usuario, como ajustar cómo funciona el indicador de calificación para mayor claridad. Los propietarios de sitios de WordPress también deberán verificar su correo electrónico de administrador cada seis meses. Esta característica es para ayudar a garantizar que los correos electrónicos de recuperación del sitio se envíen al lugar correcto cuando se produce un error. También sienta las bases para futuras características que se puedan construir sobre él.

Cambios de desarrollador

Los desarrolladores deben leer la guía de campo completa de WordPress 5.3 para asegurarse de que ninguno de los cambios afecte a sus complementos o temas. Algunos de los cambios incluyen los siguientes.

  • Soporte completo para PHP 7.4.
  • Manejo mejorado de fecha / hora.
  • La metaetiqueta Robots ahora se usa para disuadir a los motores de búsqueda de que enumeren un sitio.
  • Se agregaron nuevos operadores de comparación de meta-claves.
  • Ya no se permiten números enteros para las babosas del menú de navegación.
  • wp_die() ahora permite HTML personalizado.
Fuente | WP Tavern

martes, 12 de noviembre de 2019

Linux 5.4 rc7: novedades del nuevo lanzamiento del kernel

El pasado 10 de noviembre se anunció el lanzamiento del kernel Linux 5.4 rc7. Se trata del Release Candidate 7º de la versión 5.4 del núcleo libre. Y como es habitual, se ha encargado de anunciarlo Linus Torvalds. Que por cierto, recientemente comentó para un medio que ya no aportaba código a su propio proyecto, su trabajo se basa en leer y contestar correos electrónicos para tomar grandes decisiones sobre el rumbo de Linux.


Cuando alguien envía un parche él le puede responder con pseudocódigo, edita parches en ocasiones, etc. No es un programador ya como tal. De hecho, esto no es algo extremadamente nuevo, ya que la aportación de Linus en los últimos años ha venido a menos, y en los últimos años sus aportaciones eran muy escasas. Pero que nadie se alarme, esto no es ni mejor ni peor para Linux. El proyecto no va a cambiar por este motivo… Además, hay que asumir que en el futuro, si Linus lo deja, Greg se quedaría al mando y tal vez algún día en un futuro otro sustituto… Es ley de vida.

Dicho eso, como he dicho, ya tienes a tu disposición el kernel Linux 5.4-rc7 para probarlo si lo deseas. Pronto llegará la versión final de esta rama. Y en el caso de este RC, ya se intuye bastante bien cómo será. Nueva semana y nuevo rc, con no demasiadas cosas que destacar en cuanto al aspecto negativo, y con más cambios.

El nuevo código presenta un nuevo driver vboxsf (VirtualBox Shared Folders), se han dado unos 300 commits sin fusión, siendo esto último algo que no ha gustado demasiado a Linus. El resto de novedades están por todas las partes, el 55% de las aportaciones son de los drivers o controladores, como es habitual: redes, sistemas de archivos (octfs2, btrfs, Ceph,…), actualizaciones de arquitecturas (x85 y ARM64 principalmente), correcciones de algunas herramientas, del propio núcleo y VM, etc.

El propio Linus ha comentado que nada preocupa, pero que hay demasiado aportado como novedad, por lo que habrá un rc8 antes de la versión final para asegurarse de que todo está correcto. Debería llegar este mismo fin de semana, y será entonces cuando tome una decisión de lanzar la final o seguir, según cómo vaya el nuevo trabajo de desarrollo…

Si quieres descargar esta versión o cualquier otra – Kernel.org

Fuente | desdelinux

lunes, 11 de noviembre de 2019

¿Microsoft Defender para Linux? Llegará en 2020

Microsoft Defender para Linux llegará en 2020, según ha adelantado la compañía en la Ignite Conference 2019 celebrada esta semana, y en la que entre otras cosas se supo que Microsoft Edge para Linux también está en camino.


Los planes del gigante del software para con el ecosistema de Linux no pasan solo por llevar a la plataforma de código abierto su nuevo navegador web basado en Chromium. Harán lo propio con su suite de seguridad, que a principio de este año renombraron de Windows Defender a Microsoft Defender precisamente para allanar su asalto al espectro multiplataforma, comenzando por macOS.

Cabe señalar que este Microsoft Defender no es exactamente lo que el usuario de Windows entiende por Windows Defender, esto es, una aplicación gráfica de protección contra el malware o lo que de manera común se ha llamado siempre un antivirus, que también. Los de Redmomd se están tomando muy en serio el asunto y el sistema de seguridad integral que están diseñando pretende abarcar del escritorio Windows a aplicaciones como el navegador Edge o servicios en la nube como Office 365 y por supuesto Azure.

Así, cuando el pasado marzo renombraron el proyecto como Microsoft Defender y lo portaron a macOS, lo que en realidad están ofreciendo a los expertos en seguridad, no a los usuarios, es una interfaz para la línea de comandos con la que analizar el sistema de Apple. Esto es lo que se espera que hagan también con Linux, al menos hasta que aclaren un poco mejor en qué consiste la idea en su conjunto. De hecho, se sabía desde hace meses, pero ahora queda confirmado.

Es decir, lo que Microsoft quiere exportar al ámbito de la multiplataforma es su solución empresarial Defender ATP (Advanced Threat Protection o protección avanzada contra las amenzadas), la cual consta de funciones que van más allá de las necesidades típicas de un usuario de escritorio, incluyendo aislamiento de procesos e instancias de navegación web, análisis profundo de la red y otras.

Pero hasta que lo lancen y expliquen con detalle, no se sabe de qué características gozará esta particular versión de Microsoft Defender para Linux. En todo caso, no parece que vaya dirigida al escritorio de PC, aunque es probable que quien lo desee pueda utilizarla ahí. Y a la cuestión de quién puede querer eso, la respuesta es la que se da implícitamente en el anuncio: se trata de una iniciativa enfocada en el cliente corporativo.

Fuente | MuyLinux

sábado, 9 de noviembre de 2019

Coloreado de Sintaxis en Twig para Sublime Text 3

En estos últimos par de años, estuve trabajando en diferentes proyectos web con el Framework Symfony 3, entonces voy a aprovechar la oportunidad para mostrar como podemos instalar un Paquete en Sublime Text 3 para que reconozca la sintaxis de Twig.


Twig

Twig es un motor de plantilla para el lenguaje de programación PHP. Su sintaxis origina de Jinja y las plantillas Django. Es un producto de código abierto autorizado bajo Licencia BSD y mantenido por Fabien Potencier.​ La versión inicial estuvo creada por Armin Ronacher. El framework Symfony2 para PHP viene con un soporte incluido para Twig como su motor de plantilla por defecto.

Instalación del Paquete

Lo primero que vamos hacer, es abrir una terminal de comandos y dirigirnos hasta el directorio donde se encuentran los paquetes de Sublime Text 3

$ cd ~/.config/sublime-text-3/Packages/

Luego vamos a clonar el proyecto PHP Twig tmBundle directamente de su repositorio en GitHub de la siguiente manera:

$ git clone https://github.com/Anomareh/PHP-Twig.tmbundle.git Sintaxis-twig

Con esto vamos a crear el directorio Sintaxis-twig donde se va a encontrar todo el proyecto.

Finalmente, necesitamos mover el contenido del directorio Sintaxis-twig/Syntaxes a Sintaxis-twig osea un directorio más arriba.

$ mv Sintaxes-twig/Syntaxes/* Sintaxes-twig

Con esto es suficiente para que Sublime Text 3 reconozca la sintaxis de Twig, de todas maneras podemos verificar ingresando al Menú > View > Syntax > HTML (twig)

Ahora si editamos nuestras template vamos a notar que todo está funcionando correctamente.



Si te gustó este post te invito a que me dejes tu comentario o lo comparta en las redes sociales!

Saludos

jueves, 7 de noviembre de 2019

Sublime Text 3 como IDE de Programación

Hace mucho tiempo, en el blog expliqué lo que son los IDEs de Programación, herramienta que un buen programador debe saber escoger y que va a depender mucho de las necesidades de cada uno.


Si bien los IDEs suelen tener una gran cantidad de herramientas incorporadas que permiten al desarrollador optimizar su productividad al momento de escribir código, sin embargo cualquier editor puede ser un buen IDE, se los digo yo que escribí la mayoría del código de WPHardening en Vim y otra gran parte en Kate.

Sublime Text 3


Hoy les propongo ver como instalar un IDE que utilicé en algún momento en su versión 2 y que por estas fechas más y más programadores comenzaron a utilizarlo a diario.

Sublime Text es un editor de texto y editor de código fuente está escrito en C++ y Python para los plugins. Desarrollado originalmente como una extensión de Vim, con el tiempo fue creando una identidad propia, por esto aún conserva un modo de edición tipo vi llamado Vintage mode.

Se puede descargar y evaluar de forma gratuita. Sin embargo no es software libre o de código abierto​ y se debe obtener una licencia para su uso continuado, aunque la versión de evaluación es plenamente funcional y no tiene fecha de caducidad.

En próximos post, podemos ir hablando de las bondades que tiene Sublime Text, pero para comenzar veamos como podemos instalarlo en GNU/Linux

Instalación de Sublime Text 3


Ingresar en la Web oficial de Sublime Text 3 y escoger el último build para la plataforma que están utilizando, en mi caso Linux 64 bit.

Se va a descargar un archivo con extensión .tar.bz2, recordando que este tipo de archivo se encuentran comprimidos por bzip2 y empaquetados en sistemas tar.

El build que tengo descargado tiene como nombre sublime_text_3_build_3211_x64.tar.bz2

Para descomprimir el archivo, ejecutamos lo siguiente:

$ bzip2 -dc sublime_text_3_build_3211_x64.tar.bz2 | tar -xv

En este punto, se crea un directorio llamado sublime_text_3/ ingresamos y finalmente ejecutamos el Script llamado sublime_text

$ cd sublime_text_3
$ ./sublime_text

Una de las bondades por la que me gustar Sublime Text es que es super ligero y reconoce una gran cantidad de lenguajes de programación.

Si les gustó este post y quieren leer más post similares, los invito a que me dejen un comentario o compartan esta entrada en las redes sociales.

Saludos!

miércoles, 6 de noviembre de 2019

[ LIBRO ] Buenas Prácticas en Symfony 3.4

Symfony es un excelente framework para PHP, a mi entender muy organizado y con comandos que permite la generación de código muy simple y rápido. Sin embargo si no entendemos algunos conceptos puede que no sea la mejor opción.


Para ello, les quería compartir el Libro de Buenas Prácticas para Symfony donde además de explicar los conceptos fundamentales y sus funcionalidades, comparte la mejor forma de "hacer" cosas dentro del Framework.


Si no saben con que versión comenzar a trabajar, según su Roadmap que publicamos hace un par de entradas, lo mejor es escoger una versión LTS (Long Term Support) que para estos tiempos es la versión 3.4.x

El libro comprende temas tales como:

  • The Symfony Framework Best Practices
  • Creating the Project
  • Configuration
  • Organizing Your Business Logic
  • Controllers
  • Templates
  • Forms
  • Internationalization
  • Security
  • Web Assets
  • Tests
De más está decir que es un material de lectura, muy recomendado no solo para principiantes sino también para avanzados en el tema, ya que siempre es bueno entender y conocer pequeños tips que ayudan muchísimo.

Si te gustó este post o quieres compartir otro libro sobre estos temas, dejanos tu comentario o compartilo por las redes!

Saludos.

lunes, 4 de noviembre de 2019

WordPress 5.3 ya tiene fecha de publicación

A lo largo de estos últimos he seguido muy de cerca toda la evolución de WordPress, buscando estar actualizado en sus novedades y mejoras.


Actualmente se encuentra disponible WordPress 5.3 RC3 que corresponder a un Release Candidate y que de ninguna manera debería estar en un proyecto en producción, pero que sin embargo sirve para ir conociendo todas las novedades de la versión final.

El equipo de desarrolladores de WordPress anunció que el 12 de Noviembre del 2019 estará disponible la versión final de WordPress 5.3

Como primera gran novedad, WordPress 5.3 incluirá el theme por defecto llamado Twenty Twenty, que está basado en un Theme muy popular dentro de su directorio llamado Chaplin.

WordPress sigue apostando fuertemente a su editor de bloques llamado Gutenberg añadiendo más funcionalidades y comodidades, tanto para escribir el contenido como para mejorar el diseño de la web.

En proximos post, vamos a ir descubriendo más funcionalidades para esta última actualización grande de WordPress para lo que queda del año 2019.

Saludos!

domingo, 3 de noviembre de 2019

El roadmap de Symfony

Este año he trabajado bastante en varios proyectos junto a Symfony. Lo vengo siguiendo desde hace muchisimo tiempo y me parece que es un excelente Framework PHP que se va actualizando constantemente.


Tengo ganas de escribir algunos post relacionados, pero me gustaría que me dejaran sus comentarios si les gustaría avanzar con estos temas de desarrollo.

Sin embargo, si están interesados en iniciar un proyecto estoy seguro que van a necesitar conocer el roadmap del proyecto, para saber las fechas de lanzamiento y soporte del framework.

De esta manera, conociendo su calendario, van a poder determinar la versión en la que le conviene desarrollar estos proyectos. Por mi experiencia lo mejor es utilizar alguna versión LTS (Long Term Support) o versión de soporte extendido.

Calendario de Soporte de Symfony



Como pueden observar por el gráfico, si hoy están pensando en iniciar un proyecto y que el mismo se valla desarrollando en un tiempo, lo mejor es utilizar Symfony 3.4 que va a tener un soporte casi hasta el 2022. Tiempo suficiente para que el proyecto continúe madurando.

Hasta aquí quería acercarle el Roadmap de Symfony, un framework super recomendado para los proyectos web que quieran desarrollar.

Saludos!

sábado, 2 de noviembre de 2019

Larga vida a la línea de comandos

La terminal o línea de comando como muchos la conocemos o hacemos referencia a ella, es una de las entradas y salidas más primitivas de un sistema operativo.


Hace algunos años atrás era la única forma en que un operados podía realizar tareas con su computador. Con el tiempo las ventadas, mouse y otros dispositivos lo hicieron más simple y más populares, con lo cuál poco a poco estaba perdiendo terreno de popularidad.

Sin embargo, aquellos administradores o entusiastas que se iniciaron con GNU/Linux, de ninguna manera saltearon los primeros comandos tales como pwd, ls, cd, ...

En los últimos años, el mundo de las ventanas continuaba ganando terreno, sin mencionar que la web y sus nuevas tecnologías comenzaron a hacer sistemas más interactivos y simples para el usuarios, que al final es quien operan los sistemas.

Por otro lado, la rueda comenzó a girar y resulta que se volvieron a alinear los planetas a favor de la línea de comandos y no solo el Bash de Linux tomó más protagonismo sino también PowerShell de Windows, y lenguajes de programación se fueron haciendo más populares, como Python, Ruby, NodeJS y las tecnologías DevOps que hoy se están usando. Docker, Kubernetes, etc.

Todos estos condimentos estan haciendo que los DevOps y SRE, quienes en la actualidad tiene un protagonismo único en las infraestructuras TI, tengan la posibilidad de administrar y automatizar las tareas de despliegue de una forma que hace años parecía imposible.

Y ustedes, usan la línea de comandos? ¿Les gustaría aprender más de estos temas? Si tenes alguna opinión sobre estos temas, me gustaría que me dejes en los comentario y lo compartas con la gran comunidad de desarrolladores.

Saludos!

viernes, 1 de noviembre de 2019

Vim for Dev: 3 parámetros que siempre uso

Una de las primeras cosas que hago al finalizar la instalación de un GNU/Linux por ejemplo en alguna computadora personal o incluso en maquinas virtuales, es instalar y configurar mi Vim.


El universo de Linux se encuentra creado por una infinidad de archivos de configuraciones y siempre es necesario tener la posibilidad de utilizar algún editor de texto para realizar estas tareas que son diarias.

¿Por qué Vim?


Posiblemente no tenga una respuesta concreta, decir que es mas cómodo cuando cada acción que realizamos está basada en una combinación de teclas sería una contradicción debido a la inmensa cantidad de combinaciones. Por esa razón mejor digo que es por costumbre, por gusto o simplemente para poner a prueba la memoria.

Además de Vim, van a encontrar editores de consolas muy simples tales como ed, nano, mcedit o incluso sed.

Pero vim es mi favorito y junto a él, en su archivo de configuración general (/etc/vim/vimrc) me gusta dejar estos 3 parámetros seteados.

set background=dark

Con esta opción añadimos un fondo oscuro en la sección de edición que nos permite visualizar mucho mejor lo que vamos a editar, pintando palabras reservadas, otorgando una gran ayuda.

set tabstop=4

Con esto especificamos que una tabulación que realizamos es igual a 4 espacios.

set number

Finalmente con esta opción, le especificamos a Vim que nos muestre sobre el margen izquierdo el número de linea para visualizarla mucho más rápido.

Hasta aquí 3 opciones que uso siempre para mi editor Vim. Si te gustó este post te invito a que lo compartas o me dejes tus comentarios. Si tienes algunso tips mas para compartirlos nos hace saber en los comentarios!

Saludos!

lunes, 21 de octubre de 2019

Puedes desbloquear el Pixel 4 con los ojos cerrados

El detalle ha sido señalado como un potencial riesgo de seguridad. Otras alternativas, como la de Apple, requieren que el usuario se muestre como atento y mire hacia el dispositivo.


Google ha confirmado que el Pixel 4 puede desbloquearse a través del sistema de reconocimiento facial aún cuando el usuario tenga los ojos cerrados. Este detalle puede no resultar importante, salvo cuando consideramos la posibilidad de que alguien tome nuestro teléfono mientras estamos dormidos y acceda al sistema gracias a las bondades de nuestro rostro.

La compañía ha señalado que el sistema del Pixel 4 cumple con todos los requisitos de seguridad para ser una medida de seguridad biométrica de gran fortaleza.

Sherry Lin, directora de producto de Pixel, había señalado que solo existen dos soluciones con el nivel de seguridad necesario para que los dispositivos puedan ser utilizados como, por ejemplo, medios de pago. Una de ellas es la de Apple y otra la de Google.

Un detalle perdido


Aunque en términos generales lo dicho por la ejecutiva de Google es cierto existe un pequeño detalle, en la solución de Apple el usuario debe estar alerta y mirando hacia el teléfono para desbloquearlo.

Las imágenes que se habían filtrado del Pixel 4 antes de su lanzamiento indican que en el menú de configuración existía una opción para que el tener los ojos abiertos fuera una condición para el desbloqueo. Sin embargo, esta opción no está presente en los actuales modelos que fueron entregados a la prensa para su evaluación.

Hasta donde se sabe Google no planea incorporar esta alternativa de forma posterior. El sitio web dedicado al modelo advierte sobre la posibilidad de desbloqueo con ojos cerrados y ofrece como alternativa desactivar del sistema en favor de opciones más restrictivas.

Google ha señalado que su sistema no puede ser engañado por fotos o máscaras y que planea mejorarlo con el tiempo. Pero esto mismo hace mucho más extraño el hecho de que un requisito relativamente simple, y que parece para muchos un estándar dictado por el sentido común, no haya sido incluido.

lunes, 14 de octubre de 2019

Actualización de Seguridad en WordPress 5.2.4

Ya se encuentra disponible una nueva actualización de Seguridad para el CMS más popular de toda la historia, estamos hablando de WordPress y su versión 5.2.4. La misma está corrigiendo 6 fallos de Seguridad.


Atención, ya que estos es muy importante, estas vulnerabilidades afectan a las versiones anteriores como la 5.2.3 y la 5.1 por esa razón es muy importante que actualicen sus proyectos de forma urgente.

Todas estas contribuciones que ayudan a crecer a WordPress, fueron reportadas de forma privada y no divulgadas hasta obtener una solución como es éste parche de Seguridad y evitar eventos catastróficos de seguridad ante la inmensidad de proyecto que se encuentran actualmente en internet.

Para obtener más información sobre los script modificados y entender más las modificaciones, se encuentra disponible la página de documentación de la versión 5.2.4 de WordPress

A no dormirse al momento de fortificar los proyectos en WordPress que mañana puede ser muy tarde!

Saludos!

Fuente | wordpress.org

jueves, 3 de octubre de 2019

¿Qué es la integración continua/distribución continua (CI/CD)?

La CI/CD es un método para distribuir aplicaciones de forma frecuente a los clientes mediante el uso de la automatización en las etapas del desarrollo de las aplicaciones. Los principales conceptos que se atribuyen a la CI/CD son la integración continua, la distribución continua y la implementación continua. La CI/CD es una solución para los problemas que puede generar la integración del código nuevo a los equipos de desarrollo y operaciones (también conocida como "el infierno de la integración").


En concreto, la CI/CD incorpora la automatización continua y el control permanente en todo el ciclo de vida de las aplicaciones, desde las etapas de integración y prueba hasta las de distribución e implementación. Este conjunto de prácticas se conoce como "canalizaciones de CI/CD", y cuenta con el soporte de los equipos de desarrollo y de operaciones que trabajan de forma conjunta y con agilidad.

¿Cuál es la diferencia entre CI y CD (y la otra CD)?

Las siglas CI/CD tienen significados diferentes. La "CI" en CI/CD siempre se refiere a la integración continua, que es un proceso de automatización para los desarrolladores. Si la CI tiene éxito, los cambios del código nuevo en una aplicación se diseñan, se prueban y se combinan periódicamente en un repositorio compartido. Esto soluciona el problema de que se desarrollen demasiadas divisiones de una aplicación al mismo tiempo, porque podrían entrar en conflicto entre sí.

La "CD" en CI/CD se refiere a la distribución continua o a la implementación continua, que son conceptos relacionados y que a veces se usan indistintamente. Ambos conceptos se refieren a la automatización de las etapas posteriores de la canalización, pero a veces se usan por separado para explicar la cantidad de automatización que se está realizando.

Por lo general, la distribución continua se refiere a los cambios que implementa un desarrollador en una aplicación, a los que se les realizan pruebas de errores automáticas y que se cargan en un repositorio (como GitHub o un registro de contenedor), para que luego el equipo de operaciones pueda implementarlos en un entorno de producción en vivo. Es una solución al problema de la poca visibilidad y comunicación entre los equipos comerciales y de desarrollo. Con ese fin, el propósito de la distribución continua es garantizar que la implementación del código nuevo se lleve a cabo con el mínimo esfuerzo.

La implementación continua (la otra "CD") hace referencia a la liberación automática de los cambios que implementa el desarrollador desde el repositorio hasta la producción, para que los clientes puedan usarlos. Así se resuelve el problema de sobrecargar a los equipos de operaciones con procesos manuales que retrasan la entrega de las aplicaciones. Esto se basa en los beneficios de la distribución continua y automatiza la próxima etapa de la canalización.

La CI/CD puede especificar ya sea las prácticas relacionadas de integración y distribución continuas solamente, o las tres prácticas vinculadas de integración continua, distribución continua e implementación continua. Para complicarlo un poco más, el término "distribución continua" también abarca los procesos de la implementación continua.

En realidad no vale la pena meterse en este enredo semántico. Solo recuerde que la CI/CD es un proceso que suele percibirse como una canalización y que implica incorporar un alto nivel de automatización continua y control constante al desarrollo de las aplicaciones. El significado de los términos varía por caso, y depende de la cantidad de automatización que se ha incorporado a la canalización de CI/CD. Muchas empresas comienzan con la incorporación de la CI, y luego van automatizando la distribución y la implementación como parte de las aplicaciones nativas de la nube, por ejemplo.

Integración continua

El objetivo del desarrollo de las aplicaciones modernas es contar con múltiples desarrolladores que trabajen de forma simultánea en distintas funciones de la misma aplicación. Sin embargo, si una organización fusiona todo el código fuente diversificado en un solo día (conocido como el "día de la fusión"), las tareas resultantes pueden ser tediosas y manuales, y pueden tomar mucho tiempo. Esto sucede porque, cuando un desarrollador trabaja de forma aislada para implementar un cambio en una aplicación, existe la posibilidad de que este cambio entre en conflicto con otros cambios implementados simultáneamente por otros desarrolladores.

La integración continua (CI) ayuda a que los desarrolladores fusionen los cambios que introducen en el código para incorporarlos a una división compartida (o "rama") con más frecuencia, incluso diariamente. Una vez que se fusionan los cambios implementados por un desarrollador en una aplicación, se validan con el desarrollo automático de la aplicación y la ejecución de distintos niveles de pruebas automatizadas (generalmente, pruebas de unidad e integración) para verificar que los cambios no hayan dañado la aplicación. Esto significa probar todo, desde las clases y el funcionamiento hasta los distintos módulos que conforman toda la aplicación. Si una prueba automática detecta un conflicto entre el código nuevo y el existente, la CI facilita la resolución de esos errores con frecuencia y rapidez.

Distribución continua

Después de la automatización de los diseños y las pruebas de unidad e integración de la CI, la distribución continua automatiza la liberación de ese código validado hacia un repositorio. Por eso, a fin de lograr un proceso de distribución continua eficaz, es importante que la CI ya esté incorporada al flujo de desarrollo. El objetivo de la distribución continua es tener una base de código que esté siempre lista para implementarla en un entorno de producción.

En la distribución continua, cada etapa (desde la fusión de los cambios de código hasta la distribución de los diseños listos para la producción) implica la automatización de pruebas y la liberación de código. Al final de este proceso, el equipo de operaciones puede implementar una aplicación para que llegue a la etapa de producción de forma rápida y sencilla.

Implementación continua

La última etapa de una canalización de CI/CD lista es la implementación continua, que es una extensión de la distribución continua. Recordemos que esta última automatiza la liberación de un diseño listo para la producción a un repositorio del código. A su vez, la implementación continua automatiza la liberación de una aplicación a producción. Debido a que no hay una entrada manual en la etapa de la canalización anterior a la producción, la implementación continua depende, en gran medida, del correcto diseño de la automatización de pruebas.

En la práctica, la implementación continua implica que el cambio implementado por un desarrollador en una aplicación pueda ponerse en marcha unos cuantos minutos después de escribirlo (en el supuesto de que haya pasado las pruebas automatizadas). Esto facilita mucho más el proceso de recibir e incorporar continuamente los comentarios de los usuarios. En conjunto, todas estas prácticas de CI/CD conectadas hacen que la implementación de una aplicación se lleve a cabo con menos riesgos, ya que es más fácil liberar cambios en las aplicaciones en fragmentos pequeños, en vez de hacerlo de una sola vez. Sin embargo, también deben realizarse muchas inversiones iniciales, ya que las pruebas automatizadas deben diseñarse para que se adapten a las distintas etapas de prueba y entrega en la canalización de la CI/CD.

miércoles, 2 de octubre de 2019

Mirando la cola de Logs

Esta es una de las tareas de monitoreo que los administradores llevamos a diario, ante cualquier anomalía en el servicio, al iniciar el día y hasta el final estamos constantemente mirando e interpretando los logs o bitacoras más importantes de nuestros servidores.

Es por ello que cada servicio que agregamos, responde a un archivo que refleja su comportamiento, sus accesos y errores, esto son los archivos Logs tan indispensables para hacer seguimiento de servicios y detectar problemas y fallas.

Por otro lado existe una infinidad de herramientas que interpretan y analizan estos archivos logs para darnos datos estadísticos más visibles e interpretables, pero eso será motivo para otro post. Por ahora quería mostrarle dos herramientas para mirar las colas de cualquier archivo log.

La primera es la famosa multitail para servidores UNIX. En donde es posible seguir más de un log en la pantalla y a grandes rasgos entender que es lo que está registrando un determinado servicio, como por ejemplo apache:

$ multitail /var/log/apache2/access.log /var/log/apache2/error.log


Esta sería la forma más primitiva de utilizar multitail, es más existen una gran cantidad de parámentros para modificar su comportamiento que merece la pena seguir investigando.

Y la Segunda herramienta que les quería presentar se llama ccze, y lo podemos utilizar para darle un formato más claro a los logs que queremos ver, la forma más simple para utilizar es la siguiente

$ tail -f /var/log/apache2/access.log | ccze


Y una vez más podemos ver archivos Logs de cualquier servicio con un formato visual un poco más claro que el habitual.

A poner en práctica estas herramientas y si alguien se anima, dejen sus comentarios y recomendaciones para utilizar otras herramientas. Compartilo con tus amigos y si te pareció interesante regalanos tu Like!

Saludos!

lunes, 30 de septiembre de 2019

Cloudflare, primer CDN en tener tecnología HTTP/3

Nos hacemos eco del nuevo anuncio de Cloudflare que ha añadido el soporte de HTTP/3. Se trata de un protocolo que mejorará notablemente la experiencia de los usuarios a la hora de navegar. Una navegación más veloz y segura. Se convierte así en el primer CDN (red de distribución de contenidos) en agregar esta tecnología. Google Chrome y Mozilla Firefox, dos de los principales navegadores hoy en día, también forman parte de este anuncio.


Qué es la tecnología HTTP/3

Cuando hacemos mención a la tecnología HTTP/3 nos referimos a la tercera versión del protocolo HTTP. Anteriormente se le conocía como HTTP over QUIC. Se trata de un nuevo estándar para la web. Llega para ofrecer conexiones más rápidas, más fiables y seguras hacia sitios web o API.

Básicamente va a significar una mejora notable para todos a la hora de navegar por Internet. Esto significa que cuando se activa la compatibilidad de un dominio web con HTTP/3, los visitantes podrían interactuar con ese sitio y sus API utilizando este nuevo protocolo. Eso se traduce, como hemos mencionado, en una mayor velocidad y más seguridad.

Desde ya vamos a poder interactuar con este tipo de sitios web que tengan habilitado HTTP/3. Eso sí, para ello vamos a tener que hacer uso de Google Chrome Canary, la versión del navegador que ya es compatible con esta tecnología.

HTTP/3 cambia la capa de transporte utilizada. Hasta ahora se usaba TCP, pero gracias a esta nueva tecnología utiliza QUIC. Se trata de un nuevo protocolo de transporte de Internet.

Cloudflare, el primer CDN en agregar HTTP/3

Cloudflare se ha convertido en el primer CDN en agregar la tecnología HTTP/3. Hay que mencionar que anteriormente ya impulsó el protocolo HTTP/2 y también TLS 1.3, entre otras cosas importantes para nuestras conexiones.

Lógicamente para que esto haya sido posible ha hecho falta el trabajo de varias partes. De nada sirve que esta tecnología esté implantada si la parte del soporte del cliente no es compatible. Con esto último nos referimos al navegador. En este sentido ya podemos anunciar que Google Chrome en su versión Canary, así como cURL, ya pueden desde hoy iniciar solicitudes a Cloudflare para ir a sitios basados en HTTP/3.

Respecto a Mozilla es de esperar que próximamente lance soporte para agregar esta tecnología en su versión Nightly. No han precisado una fecha concreta pero sí que esperan tenerlo listo para finales de otoño.

Sin duda estamos ante un paso importante para Internet. El despliegue de HTTP/3 significará acercarnos a una experiencia de navegación más veloz y más segura. Algo que sin duda será muy valorado por parte de los usuarios.

Desde hoy los clientes de Cloudflare podrán habilitar en su panel la posibilidad de activar HTTP/3 en sus dominios. Esto no significa que todos los visitantes que entre en ese sitio a partir de ahora lo hagan a través de esta nueva tecnología, claro. Para que eso ocurra deben utilizar un navegador con soporte de HTTP/3. Es en ese momento en el que se la conexión se actualiza automáticamente al nuevo protocolo. Si utiliza un navegador que aún no es compatible, la conexión funcionaría mediante las versiones anteriores.

Cloudflare agrega HTTP/3

Quiénes pueden usar ya HTTP/3 y cómo activarlo
Hay que mencionar que no todos los usuarios de Cloudflare van a poder utilizar desde ya la nueva tecnología HTTP/3. Desde la compañía han indicado que desde hace un tiempo crearon una lista de espera a la cual se podían ir apuntando los usuarios. Es por ello que de momento serán esos usuarios que estaban en la lista de espera los primeros en poder agregar este nuevo protocolo.

En caso de que algún lector sea uno de los usuarios que pueden implantarlo desde ya, recibirán un correo electrónico donde se indica que ya puede agregar esta función desde el panel de control.

Para activarlo hay que ir al panel de control de Cloudflare y buscar la opción de Red o Network. Allí veremos una opción denominada HTTP/3 (with QUIC). Justo al lado habrá un botón para activar o desactivar esta función.

De momento solo estará disponible en los sitios que se inscribieron en la lista de espera, como hemos mencionado. Poco a poco irán incluyendo más sitios que podrán agregar HTTP/3 y disfrutar de las ventajas de cara a sus usuarios.

Cómo utilizar HTTP/3 como usuario en Chrome

Para poder utilizar HTTP/3 como usuario desde Chrome lo primero que tenemos que hacer es contar con la última versión de Google Chrome Canary. Una vez lo tengamos instalado es necesario ejecutarlo con los comandos habilitados “--enable-quic” y “--quic-version=h3-23”, como explican desde la web de Chromium.

A partir de ese momento Google Chrome Canary se ejecutará con lo que hemos configurado y podremos introducir dominios a la barra de direcciones que se carguen a través de HTTP/3. De momento, como hemos indicado, únicamente estarán disponibles los dominios que formaban parte de la lista de espera que hizo Cloudflare.

Lógicamente HTTP/3 vendrá habilitado también en futuras versiones estables del navegador de Google Chrome. En un futuro próximo no necesitará de ningún tipo de configuración y será más sencillo habilitarlo, así como también tener a nuestra disposición más dominios disponibles.

Fuente > Cloudflare

sábado, 21 de septiembre de 2019

¿Qué es DevOps?

Actualmente no hay consenso en la industria con respecto a la definición de DevOps. Cada organización ha formulado su propia definición de DevOps y ha tratado de implementarla. Tienen su propia perspectiva y piensan que han implementado DevOps si tienen su automatización en su lugar, la administración de la configuración habilitada, mediante el uso de procesos ágiles o cualquier otra combinación.


DevOps trata sobre el mecanismo de entrega de sistemas de software. Se trata de unir a las personas, hacer que colaboren y se comuniquen, trabajar juntos hacia un objetivo y una visión comunes. Se trata de tomar responsabilidad conjunta, rendición de cuentas y propiedad. Se trata de implementar procesos que fomenten la colaboración y una mentalidad de servicio. Permite mecanismos de entrega que aportan agilidad y flexibilidad dentro de la organización. Contrariamente a la creencia popular, DevOps no se trata de herramientas, tecnología o automatización. Son habilitadores que ayudan en la colaboración, la implementación de procesos ágiles y la entrega más rápida y mejor al consumidor.

Hay varias definiciones disponibles en Internet para DevOps y no son correctas ni incorrectas. DevOps no proporciona un marco o metodología. Es un conjunto de principios y prácticas que, cuando se emplean dentro de una organización, interacción o proyecto, logran el objetivo y la visión tanto de DevOps como de la organización. Estos principios y prácticas no exigen ningún proceso, herramientas, tecnologías ni entorno específicos. DevOps proporciona la orientación que puede implementarse a través de cualquier herramienta, tecnología y proceso, aunque parte de la tecnología y los procesos podrían ser más aplicables para lograr la visión de los principios y prácticas de DevOps.

Aunque las prácticas de DevOps se pueden implementar en cualquier organización que ofrezca servicios y productos a los consumidores, en este libro veremos a DevOps desde la perspectiva del desarrollo de software y el departamento de operaciones de cualquier organización.

Entonces, ¿qué es DevOps?


Es un conjunto de principios y prácticas que reúne tanto a los Desarrolladores como a los equipos de operaciones desde el inicio del sistema de software para una entrega de principio a fin más rápida, veloz y eficiente del sistema de software al consumidor final, una y otra vez de manera coherente y predecible reduciendo el tiempo de comercialización, obteniendo así una ventaja competitiva.

Lea en voz alta la definición anterior de DevOps y, si la observa detenidamente, verá que no indica ni se refiere a ningún proceso, herramienta o tecnología específicos. No está prescribiendo ninguna metodología o entorno particular.

El objetivo de implementar los principios y prácticas de DevOps en cualquier organización es garantizar que las demandas de las partes interesadas (incluidos los consumidores) y las expectativas se cumplan de manera eficaz y efectiva.

Las demandas y expectativas del consumidor se cumplen cuando:


  • El consumidor obtiene las características que desea
  • El consumidor las obtiene cuando lo desea
  • El consumidor obtiene actualizaciones más rápidas de las características
  • La calidad de entrega es alta


Cuando una organización puede cumplir con las expectativas anteriores, los consumidores están satisfechos y se mantienen leales a la organización. Esto, a su vez, aumenta la competitividad en el mercado de la organización, lo que se traduce en una mayor marca y valoración del mercado. Tiene un impacto directo en los resultados y las ventas de la organización. La organización puede invertir más en innovación y comentarios de los consumidores, provocando cambios continuos en su sistema y servicios para mantener su relevancia.

La implementación de los principios y prácticas de DevOps en cualquier organización está guiada por el ecosistema circundante. Este ecosistema está compuesto por la industria y los dominios a los que pertenece la organización.

Los principios básicos de DevOps son los siguientes:


  • Agilidad
  • Automatización
  • Colaboración
  • Comentarios


Las prácticas principales de DevOps son las siguientes:


  • Integración continua
  • Administración de configuración
  • Implementación continua
  • Entrega continua
  • Aprendizaje continuo


DevOps NO es un paradigma nuevo, pero recientemente está ganando mucha popularidad y relevancia. Su adopción se encuentra en su nivel más alto y cada vez más empresas están emprendiendo este proceso. Mencioné a propósito DevOps como un proceso porque hay diferentes niveles de madurez dentro de DevOps. Si bien el éxito de la implementación y la entrega continuas se considera el nivel más alto de madurez en este proceso, al adoptar el control del código fuente, el desarrollo ágil de software se considera un comienzo.

Una de las primeras cosas de las que habla DevOps es romper las barreras entre los desarrolladores y el equipo de operaciones. Aporta el aspecto de colaboración estrecha entre varios equipos. Se trata de cambiar la mentalidad de la que el desarrollador es responsable de escribir solo el código y pasarlo a operaciones para la implementación una vez que se haya probado. También se trata de cambiar la mentalidad de que las operaciones no tienen ningún papel que desempeñar en las actividades de desarrollo. Las operaciones deben influir en la planificación del producto y deben ser conscientes de las características que se publicarán como lanzamiento. También deben proporcionar continuamente comentarios a los desarrolladores sobre los problemas operativos, de modo que puedan solucionarse en versiones posteriores. Deben influir en el diseño del sistema para un mejor funcionamiento operativo del sistema. De manera similar, los desarrolladores deben ayudar a las operaciones en la implementación del sistema y resolver incidentes cuando surjan.

La definición hace referencia a la entrega más rápida, veloz y eficiente de los sistemas a los interesados. No habla de lo rápida o eficiente que debería ser la entrega. Debería ser lo suficientemente rápida o veloz según el dominio de la organización, la industria, la segmentación de clientes, etc. Para algunas organizaciones, lo suficientemente rápido podría ser trimestral, mientras que para otras podría ser semanal. Ambos tipos son válidos para el punto de vista de DevOps y se pueden implementar procesos y tecnologías relevantes para lograr lo mismo. DevOps no lo ordena. Las organizaciones deben identificar la mejor implementación de los principios y las prácticas de DevOps en función de su visión general del proyecto, la interacción y la organización.

La definición también habla de la entrega de un extremo a otro. Esto significa que desde la planificación y la entrega del sistema a los servicios y operaciones debe ser parte de la implementación de DevOps. Los procesos deben ser los que permitan una mayor flexibilidad, modularidad y agilidad en el ciclo de vida del desarrollo de la aplicación. Mientras que las organizaciones son libres de usar el mejor proceso de ajuste: cascada, Agile, Kanban, etc., por lo general, las organizaciones tienden a favorecer los procesos ágiles con la entrega basada en iteraciones. Esto permite una entrega más rápida en unidades más pequeñas que son mucho más comprobables y manejables en comparación con las grandes entregas.

DevOps habla sobre clientes finales una y otra vez de una manera coherente y predecible


Esto significa que las organizaciones deben realizar entregas continuamente a los consumidores con funciones más nuevas y actualizadas utilizando la automatización. No podemos lograr consistencia y previsibilidad sin el uso de la automatización. El trabajo manual debe reducirse a ninguno para garantizar un alto nivel de consistencia y previsibilidad. La automatización también debe ser de extremo a extremo, para evitar fallos. Esto también indica que el diseño del sistema debe ser modular, lo que permite una entrega más rápida, ya que son fiables, disponibles y escalables. Las pruebas desempeñan un gran papel en la entrega coherente y predecible.

El resultado final de la implementación de las prácticas y los principios mencionados anteriormente es que la organización puede satisfacer las expectativas y demandas de los clientes. La organización puede crecer más rápido que la competencia y aumentar aún más la calidad y la capacidad de sus productos y servicios a través de la innovación y mejora continuas.

Fuente | Libro Azure for Architects

Entradas populares