Bridge to Kubernetes simplifica el desarrollo de microservicios en Visual Studio / VS Code

bridge kubernetes panama

Las nuevas extensiones Bridge to Kubernetes disponibles para Visual Studio y VS Code simplifican el desarrollo de microservicios al conectar una máquina de desarrollo local a dependencias específicas en clústeres remotos.

Bridge to Kubernetes alcanzó la disponibilidad general el mes pasado y se presentó en la conferencia en línea para desarrolladores / profesionales de TI Ignite 2020 de Microsoft.

El objetivo es ayudar a los desarrolladores de Visual Studio y VS Code a crear aplicaciones de microservicio más rápido, incluida la depuración y las pruebas de un extremo a otro.

«Puente a Kubernetes amplía las Kubernetes perímetro de la estación de trabajo de desarrollo, lo que le permite dejar de lado las complejidades operativas de la construcción y el despliegue de su código en el clúster para probar, depurar y rápidamente iterar», dijo de Microsoft Nick Greenfield, director del programa, en un blog de post anunciando el movimiento del proyecto a disponibilidad general.

Greenfield también apareció la semana pasada en un video de Visual Studio Toolbox en el sitio del Canal 9 de la compañía para describir con más detalle el proyecto.

«Bridge to Kubernetes es una herramienta de desarrollo iterativa para desarrolladores que crean aplicaciones de microservicio que se dirigen a Kubernetes», dijo. «Se ofrece como una experiencia de cliente tanto en Visual Studio como en Visual Studio Code a través de extensiones que puede adquirir en el mercado».

Microservice Development Options (source: Microsoft).

Greenfield explicó el proyecto en el contexto de tres enfoques para trabajar en un solo microservicio como parte de una aplicación más grande, como se muestra en el gráfico anterior y se detalla a continuación:

Local: en el que el código de una máquina de desarrollo local maneja dependencias externas, como variables de entorno, cadenas de conexión, volúmenes de un clúster, etc., mediante stubs, simulacros o conexión manual a dependencias que se ejecutan en la máquina local. O los desarrolladores pueden usar un sistema como Docker Compose para ejecutar esas dependencias y contenedores. Una ventaja de ese enfoque son los ciclos de desarrollo rápidos, pero una desventaja es que es probable que la máquina de desarrollo local sea bastante diferente del entorno en el que se implementa el código, como Kubernetes alojado en Azure.
Remoto: en el que el código se desarrolla localmente pero luego se implementa en un entorno como Kubernetes alojado en Azure para realizar pruebas y depurar. Al tiempo que proporciona fidelidad con el entorno de implementación, ese enfoque puede ralentizar los ciclos de compilación y agregar fricción al flujo de trabajo de desarrollo.
Híbrido: esta opción de lo mejor de ambos mundos es donde vive Bridge to Kubernetes. Permite a los desarrolladores «escribir su código en su estación de trabajo de desarrollo, pero conectarse a dependencias externas que se ejecutan en algún entorno remoto», dijo Greenfield. «Así que en realidad estoy cumpliendo con todas esas dependencias externas al conectarme a mi clúster de Kubernetes, digamos que se ejecuta en Azure, para poder aprovechar todo el flujo de trabajo de un extremo a otro. Pero lo único que estoy ejecutando en mi La estación de trabajo del desarrollador es el código en el que estoy trabajando «.

Bridge to Kubernetes in Animated Action (source: Microsoft).

La página de GitHub del proyecto dice:

Bridge to Kubernetes extiende el perímetro de Kubernetes a su computadora de desarrollo, lo que le permite escribir, probar y depurar código de microservicio mientras está conectado a su clúster de Kubernetes con el resto de su aplicación o servicios. Con este flujo de trabajo, no hay necesidad de activos adicionales, como manifiestos de Dockerfile o Kubernetes. Simplemente puede ejecutar su código de forma nativa en su estación de trabajo de desarrollo mientras está conectado al clúster de Kubernetes, lo que le permite probar los cambios de su código en el contexto de la aplicación más grande.

La página enumera características clave que incluyen:

  • Simplificando el desarrollo de microservicios al eliminar la necesidad de obtener, configurar y compilar manualmente dependencias externas en una computadora de desarrollo.
  • Depuración sencilla, ya que los desarrolladores pueden ejecutar sus perfiles de depuración habituales con la configuración de clúster agregada, depurando como de costumbre y aprovechando la velocidad y flexibilidad de la depuración local.
  • Desarrollar y probar de un extremo a otro durante el tiempo de desarrollo. Los desarrolladores pueden seleccionar un servicio existente en el clúster para enrutarlo a una máquina de desarrollo donde una instancia de ese servicio se ejecuta localmente. Una solicitud generada por el front-end de una aplicación que se ejecuta en Kubernetes se enrutará entre los servicios que se ejecutan en el clúster hasta que se llame al servicio especificado para redireccionar.


Como se señaló, Bridge to Kubernetes brinda una experiencia de cliente con extensiones para Visual Studio IDE y el editor de código VS multiplataforma de código abierto disponible en sus respectivos mercados.

De los dos, la herramienta VS Code está obteniendo más tracción, con 30,100 instalaciones al momento de escribir este artículo, en comparación con 1,934 para la extensión IDE de Visual Studio .

En respuesta a la pregunta de un desarrollador expresada en un comentario en su publicación de blog, Greenfield señaló que la extensión VS Code no está vinculada a ningún lenguaje de programación ni a .NET, lo que confirma específicamente que se puede usar para depurar aplicaciones de Node.

En respuesta a otra pregunta, dijo: «Por el momento, Bridge to Kubernetes se limita a .NET Core destinado a contenedores de Linux. Estamos trabajando para admitir contenedores de Windows y esperamos tener una vista previa disponible en los próximos meses».

Otra pregunta más planteaba cómo Bridge to Kubernetes en comparación con Azure Dev Spaces . De hecho, las dos ofertas parecen ser similares, como dice la documentación de Microsoft para Azure Dev Spaces: «Azure Dev Spaces es una extensión de AKS [Azure Kubernetes Service] que le permite ejecutar y depurar fácilmente su código en el contexto de una aplicación más grande. . Puede probar su código de un extremo a otro, alcanzar puntos de interrupción en el código que se ejecuta en el clúster y compartir un clúster de desarrollo entre los miembros del equipo sin interferencias «.

Aquí está la respuesta de Greenfield a lo que dijo que era «una gran pregunta»:

En resumen, Bridge to Kubernetes ofrece muchos de los escenarios de desarrollo clave que Dev Spaces admite, pero con una solución mejorada y más liviana.

Dev Spaces ayuda a los desarrolladores a trabajar con código que se ejecuta directamente en su clúster, evitando la necesidad de replicar un entorno local que se asemeje mucho al entorno implementado. Este enfoque mejora ciertos aspectos del desarrollo, como proporcionar alta fidelidad, pero también introduce un requisito previo para aprender conceptos adicionales como Docker, Kubernetes y Helm antes de comenzar a usar Dev Spaces.

Bridge to Kubernetes reduce las complejidades del bucle interno al evitar la necesidad de crear configuraciones de Docker y Kubernetes, lo que permite a los desarrolladores centrarse exclusivamente en la lógica empresarial de su código. Los desarrolladores pueden trabajar directamente en su computadora de desarrollo mientras interactúan con el resto de los servicios que se ejecutan en su clúster. Este enfoque aprovecha la familiaridad y la velocidad de la ejecución local, mientras comparte las dependencias y el entorno proporcionado por su clúster. Bridge to Kubernetes también aprovecha la fidelidad y el escalado que se obtienen al ejecutar en Kubernetes.

Fuente: visualstudiomagazine.com

Microsoft lanza un puente a Kubernetes

kubernetes microsoft panama

A principios de esta semana, Microsoft lanzó Bridge to Kubernetes , una extensión de Visual Studio que permite a los desarrolladores escribir, probar y depurar código de microservicio localmente mientras consume dependencias de un entorno de Kubernetes. El propósito de esta extensión es simplificar el desarrollo de microservicios al eliminar la necesidad de activos adicionales, como un Dockerfile o manifiestos de Kubernetes.

Bridge to Kubernetes (anteriormente conocido como Proceso local con Kubernetes) es una herramienta de desarrollo iterativo que se ofrece como extensiones para Visual Studio y VS Code con el objetivo de simplificar el desarrollo de microservicios. Según la documentación oficial de Microsoft:

Bridge to Kubernetes le permite ejecutar y depurar código en su computadora de desarrollo mientras aún está conectado a su clúster de Kubernetes con el resto de su aplicación o servicios. […] Le permite probar y desarrollar rápidamente su servicio en el contexto de la aplicación completa sin crear ninguna configuración de Docker o Kubernetes.

La herramienta funciona redirigiendo el tráfico entre la máquina local y un clúster de Kubernetes conectado, lo que permite que el código local y los servicios remotos se comuniquen como si estuvieran en el mismo clúster de Kubernetes. También proporciona una forma de replicar localmente las variables de entorno y los volúmenes montados, sin la necesidad de volver a crear manualmente estas dependencias.

Según Nick Greenfield, administrador de programas de Microsoft, la herramienta es una versión más ligera de los Dev Spaces existentes para Azure Kubernetes Services (AKS) :

Dev Spaces ayuda a los desarrolladores a trabajar con código que se ejecuta directamente en su clúster, evitando la necesidad de replicar un entorno local que se asemeje mucho al entorno implementado. Este enfoque mejora ciertos aspectos del desarrollo, como proporcionar alta fidelidad, pero también introduce un requisito previo para aprender conceptos adicionales como Docker, Kubernetes y Helm antes de comenzar a usar Dev Spaces.

Bridge to Kubernetes reduce las complejidades del bucle interno al evitar la necesidad de crear configuraciones de Docker y Kubernetes, lo que permite a los desarrolladores centrarse exclusivamente en la lógica empresarial de su código. Los desarrolladores pueden trabajar directamente en su computadora de desarrollo mientras interactúan con el resto de los servicios que se ejecutan en su clúster. Este enfoque aprovecha la familiaridad y la velocidad de ejecutar localmente mientras comparte las dependencias y el entorno proporcionado por su clúster. Bridge to Kubernetes también aprovecha la fidelidad y el escalado que se obtienen al ejecutar en Kubernetes.

Una de las ventajas de la nueva herramienta es que permite a un desarrollador trabajar de forma aislada en un entorno de desarrollo compartido. Trabajar de forma aislada en un clúster compartido significa que todo el tráfico entre la máquina local y el clúster está aislado, lo que evita que varias sesiones de depuración (establecidas entre varias máquinas de desarrollo y el mismo clúster de Kubernetes) interfieran entre sí.

Esta versión es solo el último de los esfuerzos recientes de Microsoft para aumentar la productividad de los desarrolladores en el desarrollo de microservicios. A principios de este año, Microsoft lanzó Project Tye , una herramienta destinada a «facilitar el desarrollo de microservicios» al proporcionar características como ejecutar varios servicios localmente a la vez y automatizar la implementación de aplicaciones .NET en Kubernetes. Sin embargo, a diferencia de Bridges to Kubernetes, Project Tye es un proyecto experimental que se volverá a evaluar una vez que .NET 5 se lance oficialmente.

Bridge to Kubernetes está disponible como extensiones para VS Code y Visual Studio (versión 16.7 o posterior). También es fundamental observar que no es posible utilizar la nueva herramienta en un clúster con Azure Dev Spaces habilitado. Puede encontrar más información sobre problemas abiertos y próximas funciones aquí.

Fuente: infoq.com

Qué aporta el seguimiento y monitoreo a su estrategia de microservicios

monitoreo microservicios

Muchas organizaciones se están precipitando hacia los microservicios sin comprender realmente algunos de los componentes más críticos de una implementación exitosa. El rastreo y el monitoreo ocupan un lugar destacado en esa lista. Vea cómo aprovechar la supervisión y el seguimiento puede mejorar sus microservicios.

No se equivoque al respecto: las migraciones cada vez mayores a la arquitectura de microservicios están garantizadas y continuarán. La agilidad, la flexibilidad y las recompensas de escala de reemplazar aplicaciones monolíticas voluminosas con servicios desacoplados que los equipos de DevOps, los desarrolladores y los ingenieros pueden implementar de forma independiente están ahí para tomar. Pero hacerlo bien no siempre es tan fácil como parece. Muchas organizaciones se están precipitando hacia los microservicios sin comprender realmente algunos de los componentes más críticos de una implementación exitosa.

El rastreo y el monitoreo ocupan un lugar destacado en esa lista.

Los grupos de microservicios suelen actuar como una aplicación única, incluso cuando las solicitudes se enrutan a través de varios servicios. Si ocurre un problema, los desarrolladores necesitan una forma de rastrear los problemas a lo largo de esa ruta bastante compleja. Incluso los sistemas que de otro modo funcionan bien pueden incluir problemas rastreables (como baja latencia). Para optimizar los microservicios, los desarrolladores necesitan un método para rastrear la latencia entre servicios y recopilar registros de servicios, al tiempo que minimizan la sobrecarga de registro.

El registro, la supervisión y el seguimiento no son lo mismo


Los términos registro, monitoreo y rastreo a menudo se combinan, pero es necesario comprender las distinciones:

El registro es la primera herramienta que utilizan los operadores para reaccionar e investigar errores de servicio o eventos de seguridad. Ofrece capacidades de auditoría a nivel de microservicio.

Logging permite a los operadores comprender las respuestas del servicio a las solicitudes mediante métricas proactivas. Estos incluyen métricas de infraestructura clave como CPU, memoria y E / S, así como métricas de tiempo de ejecución de la aplicación, como tamaño de pila, recuento de subprocesos y administración de memoria (recolección de basura).

Monitoring permite la optimización del rendimiento al registrar cómo varias solicitudes físicas logran una única solicitud lógica a nivel de aplicación en una cadena de servicios.

Tracing captura las excepciones y los errores que encuentra cada solicitud, incluida la información de tiempo y metadatos valiosos como el código de respuesta y los encabezados. Esto hace que el rastreo sea una herramienta de diagnóstico particularmente valiosa.

Si bien el registro es importante, profundicemos en el monitoreo y el rastreo debido a la utilidad particularmente alta que ofrecen en múltiples servicios.

Tracing
El seguimiento comienza en la ubicación donde una solicitud ingresa a una aplicación (a menudo llamada punto final) y luego genera una ID única para la solicitud. Cada servicio subsiguiente en el flujo de tráfico agrega más datos al seguimiento. Esto incluye la hora de llegada de la solicitud y el tiempo total de procesamiento. Al aprovechar esos datos, los operadores pueden crear políticas de alerta, objetivos de nivel de servicio y visualizar completamente el flujo de llamadas utilizando tecnologías de código abierto como Jaeger o Elastic APM. En muchos casos, los operadores utilizarán los datos recopilados mediante el rastreo para ayudar a aumentar la comprensión de sus datos de monitoreo.

Para los entornos de ejecución y marcos más populares, las bibliotecas y herramientas están disponibles para el seguimiento de instrumentos dentro de una aplicación de microservicios. Los equipos también pueden desarrollar sus propias soluciones para interceptar llamadas, agregar encabezados a solicitudes posteriores o colocar metadatos para rastrear el tráfico.

Seguimiento vs Monitoreo vs Ambos

La forma en que los desarrolladores aprovechan la supervisión y el monitoreo queda a su entera discreción; ambos son métodos poderosos, ya sea que se utilicen por separado o en conjunto.

La estrategia de muchas organizaciones a menudo comienza con métricas de monitoreo porque son más fáciles de implementar. El rastreo requiere un mayor esfuerzo para recopilar, almacenar y analizar grandes cantidades de telemetría de rastreo, pero también descubrirá una mayor amplitud y profundidad de visibilidad. Los datos de seguimiento agregados brindan información a los equipos sobre cuándo y dónde se deben escalar sus servicios. Monitorear y rastrear cada uno ayuda a detectar comportamientos anómalos en servicios individuales. El rastreo va un paso más allá al identificar la causa de las anomalías. El seguimiento también es un requisito para lograr una optimización más completa y mejoras de rendimiento de un extremo a otro. Las herramientas de código abierto como Traefik y Maesh pueden simplificar la implementación inicial del seguimiento distribuido al reducir significativamente las cargas de trabajo o los gastos generales de administración de telemetría.

Monitorear y rastrear cada uno produce buenos rendimientos al crear aplicaciones de microservicios que son confiables y de alto rendimiento. El monitoreo supervisa los servicios de la plataforma y el estado de la infraestructura. El seguimiento permite la resolución de problemas de cuellos de botella y anomalías inesperadas. Las aplicaciones maduras deben ser compatibles con cada una de estas técnicas para que la administración de servicios complejos sea optimizada y eficiente.

Mejores prácticas para usar Docker Hub CI / CD

docker panama 2020

Según la encuesta de desarrolladores de Jetbrains de 2020, el 44% de los desarrolladores ahora están utilizando alguna forma de integración e implementación continuas con Docker Containers. Sabemos que muchos desarrolladores han configurado esta configuración utilizando Docker Hub como su registro de contenedores para parte de su flujo de trabajo, por lo que decidimos investigar las mejores prácticas para hacer esto y brindar una guía sobre cómo comenzar. Para respaldar esto, publicaremos una serie de publicaciones de blog durante las próximas semanas para responder las preguntas comunes que vemos con los principales proveedores de CI.

También hemos escuchado comentarios que, dados los cambios que Docker introdujo en relación con la salida de la red y la cantidad de extracciones para los usuarios gratuitos, existen preguntas sobre la mejor manera de usar Docker Hub como parte de los flujos de trabajo de CI / CD sin superar estos límites. Esta publicación de blog cubre las mejores prácticas que mejoran su experiencia y utiliza un consumo sensato de Docker Hub que mitigará el riesgo de alcanzar estos límites y cómo aumentar los límites según su caso de uso.

Para comenzar, una de las cosas más importantes cuando se trabaja con Docker y realmente cualquier CI / CD es determinar cuándo necesita probar con el CI o cuándo puede hacerlo localmente. En Docker pensamos en cómo trabajan los desarrolladores en términos de su ciclo interno (código, compilación, ejecución, prueba) y su ciclo externo (cambio de inserción, compilación de CI, prueba de CI, implementación).

docker panama 2020

Antes de pensar en optimizar su CI / CD, siempre es importante pensar en su ciclo interno y cómo se relaciona con el ciclo externo (CI). Sabemos que la mayoría de las personas no son fanáticas de la «depuración a través del CI», por lo que siempre es mejor si su bucle interno y externo son lo más similares posible. Con este fin, puede ser una buena idea ejecutar pruebas unitarias como parte de su comando de compilación de Docker agregando un destino para ellas en su Dockerfile. De esa manera, mientras realiza cambios y reconstruye localmente, puede ejecutar las mismas pruebas unitarias que ejecutaría en el CI en su máquina local con un simple comando. Chris escribió una publicación de blog a principios de año sobre el desarrollo de Go con Docker, este es un gran ejemplo de cómo puede usar pruebas en su proyecto de Docker y reutilizarlas en el CI. Esto crea un ciclo de retroalimentación más corto sobre los problemas y reduce la cantidad de tirones y compilaciones que su CI necesita hacer.

Una vez que ingrese a su bucle exterior real y a Docker Hub, hay algunas cosas que podemos hacer para aprovechar al máximo su CI y brindar la experiencia Docker más rápida.

En primer lugar, ¡manténgase seguro! Cuando esté configurando su CI, asegúrese de estar usando un token de acceso de Docker Hub en lugar de su contraseña, puede crear nuevos tokens de acceso desde su página de seguridad en Docker Hub.

Una vez que tenga esto y lo haya agregado a cualquier tienda de secretos que esté disponible en su plataforma, querrá ver cuándo decide presionar y extraer su CI / CD junto con de dónde, según el cambio que esté realizando. Lo primero que puede hacer aquí para reducir el tiempo de compilación y reducir la cantidad de llamadas es utilizar la caché de compilación para reutilizar las capas que ya ha extraído. Esto se puede hacer en muchas plataformas utilizando la funcionalidad de almacenamiento en caché buildX (buildkits) y cualquier caché que proporcione su plataforma.

El otro cambio que puede querer hacer es que sus imágenes de lanzamiento solo vayan a DockerHub, esto significaría configurar funciones para enviar sus imágenes de relaciones públicas a una tienda de imágenes más local para que se extraigan y prueben rápidamente en lugar de promocionarlas hasta la producción.

Sabemos que hay muchos más consejos y trucos para usar Docker en CI, pero realmente viendo cómo hacer esto con los cambios recientes en la tasa de Hub, creemos que estas son las mejores cosas que puede hacer.

Si todavía tiene problemas con los límites de extracción una vez que esté autenticado, puede considerar actualizar a una cuenta Pro o Team. Esto le brindará extracciones autenticadas ilimitadas de Docker Hub, además de brindarle repositorios privados ilimitados y retención de imágenes ilimitada. En un futuro cercano, esto también incluirá el escaneo de imágenes (con tecnología de Snyk) al enviar nuevas imágenes a Docker Hub.

Busque la próxima publicación de blog de la serie sobre cómo implementar algunas de estas prácticas con acciones de Github y siéntase libre de darnos ideas de qué proveedores de CI le gustaría que cubrimos enviándonos un mensaje en Twitter @Docker .

Fuente: docker.com

Escalando Docker para prestar servicio a millones de desarrolladores más: salida de red

docker

En la Parte 1 de este blog, profundizamos en el análisis de todas las imágenes almacenadas en Docker Hub, el registro de contenedores más grande del mundo. Hicimos esto para brindarle una mejor comprensión de cómo nuestras nuevas actualizaciones de los Términos de servicio afectarán a los equipos de desarrollo que usan Docker Hub para administrar sus imágenes de contenedor y canalizaciones de CI / CD.

La parte 2 de esta publicación de blog profundiza en los límites de velocidad para las extracciones de imágenes de contenedores. Esto también se anunció como parte de nuestras comunicaciones actualizadas de los Términos de servicio (ToS) de Docker. Detallamos los siguientes límites de tasa de extracción para los planes de suscripción de Docker que entrarán en vigencia el 1 de noviembre de 2020: Plan gratuito – usuarios anónimos: 100 extracciones cada 6 horas Plan gratuito – usuarios autenticados: 200 extracciones por 6 horas Plan Pro – ilimitado Plan de equipo – ilimitado.

Docker define los límites de la tasa de extracción como la cantidad de solicitudes de manifiesto a Docker Hub. Los límites de frecuencia para las extracciones de imágenes de Docker se basan en el tipo de cuenta del usuario que solicita la imagen, no en el tipo de cuenta del propietario de la imagen. Para los usuarios anónimos (no autenticados), las tasas de extracción están limitadas según la dirección IP individual.

Recibimos preguntas de los clientes y de la comunidad sobre las capas de imágenes de contenedores. No contamos las capas de imágenes como parte de los límites de la tasa de atracción. Debido a que estamos limitando las solicitudes de manifiesto, la cantidad de capas (solicitudes de blob) relacionadas con una extracción es ilimitada en este momento. Este es un cambio basado en los comentarios de la comunidad para que sea más fácil de usar, por lo que los usuarios no necesitan contar capas en cada imagen que pueden estar usando.

Una mirada más profunda a las tasas de extracción de Docker Hub

Para determinar por qué eran necesarios los límites de velocidad y cómo aplicarlos, dedicamos un tiempo considerable a analizar las descargas de imágenes de Docker Hub. Lo que encontramos confirmó que la gran mayoría de los usuarios de Docker extrajeron imágenes a una velocidad que cabría esperar para los flujos de trabajo normales. Sin embargo, existe un impacto enorme por parte de una pequeña cantidad de usuarios anónimos. Por ejemplo, aproximadamente el 30% de todas las descargas en Hub provienen de solo el 1% de nuestros usuarios anónimos.

Los nuevos límites de extracción se basan en este análisis, de modo que la mayoría de nuestros usuarios no se verán afectados. Estos límites están diseñados para adaptarse a los casos de uso normales de los desarrolladores: aprendizaje de Docker, desarrollo de código, creación de imágenes, etc.

Ayudar a los desarrolladores a comprender los límites de la tasa de extracción Ahora que entendimos el impacto y dónde deberían aterrizar los límites, necesitábamos definir a nivel técnico cómo deberían funcionar estos límites. Limitar las extracciones de imágenes a un registro de Docker es complicado. No encontrará una API de extracción en la especificación del registro, no existe. De hecho, una extracción de imagen es en realidad una combinación de solicitudes de API de manifiesto y blob, y estas se realizan en diferentes patrones según el estado del cliente y la imagen en cuestión.

Por ejemplo, si ya tiene la imagen, el cliente de Docker Engine emitirá una solicitud de manifiesto, se dará cuenta de que tiene todas las capas referenciadas según el manifiesto devuelto y se detendrá. Por otro lado, si extrae una imagen que admite varias arquitecturas, se emitirá una solicitud de manifiesto y devolverá una lista de manifiestos de imagen para cada arquitectura compatible. Luego, Docker Engine emitirá otra solicitud de manifiesto específica para la arquitectura en la que se está ejecutando y recibirá una lista de todas las capas de esa imagen. Finalmente, solicitará cada capa (blob) que falte.

Entonces, una extracción de imagen es en realidad una o dos solicitudes de manifiesto, y de cero a infinitas solicitudes de blob (capa). Históricamente, Docker supervisaba los límites de velocidad basados ​​en blobs (capas). Esto se debió a que un blob se correlacionó más estrechamente con el uso de ancho de banda. Sin embargo, escuchamos los comentarios de la comunidad de que esto es difícil de rastrear, conduce a una experiencia inconsistente dependiendo de cuántas capas tenga la imagen que está extrayendo, desalienta las buenas prácticas de Dockerfile y no es intuitivo para los usuarios que solo quieren obtener cosas. hecho sin ser expertos en imágenes y registros de Docker.

Como tal, estamos limitando la tasa en función de las solicitudes de manifiesto en el futuro. Esto tiene la ventaja de estar acoplado más directamente con un tirón, por lo que es fácil de entender para los usuarios. Hay una pequeña compensación: si extrae una imagen que ya tiene, esta aún se cuenta incluso si no descarga las capas. En general, esperamos que este método de limitación de velocidad sea justo y fácil de usar.

Agradecemos sus comentarios Supervisaremos y ajustaremos estos límites a lo largo del tiempo en función de casos de uso comunes para asegurarnos de que los límites sean apropiados para cada nivel de usuario y, en particular, que nunca bloquearemos a los desarrolladores para que no hagan su trabajo. Estén atentos en las próximas semanas para ver una publicación de blog sobre la configuración de CI y sistemas de producción a la luz de estos cambios. Finalmente, como parte del compromiso de Docker con la comunidad de código abierto, antes del 1 de noviembre anunciaremos la disponibilidad de nuevos planes de código abierto. Para solicitar un plan de código abierto, complete el breve formulario aquí. Para obtener más información sobre los cambios recientes en los términos de servicio, consulte las preguntas frecuentes.

Para los usuarios que necesitan límites de extracción de imágenes más altos, Docker también ofrece extracción de imágenes ilimitada como una característica de los planes Pro y Team. Visite www.docker.com/pricing para ver los planes disponibles. Como siempre, agradecemos sus preguntas y comentarios en pricingquestions@docker.com.

Fuente: docker.com

Escalando Docker’s Business para servir a millones de programadores: Almacenamiento

Docker scaled

En Docker, nuestra misión es permitir que los desarrolladores de todo el mundo den vida rápidamente a sus ideas reduciendo la complejidad del desarrollo de aplicaciones. Si bien más de 6,5 millones de desarrolladores de Docker registrados disfrutan de los beneficios de Docker en la actualidad, queremos ampliar el negocio de Docker a las decenas de millones de desarrolladores que acaban de descubrir Docker. Ofrecer herramientas y servicios gratuitos es una piedra angular de nuestra misión, y estos están financiados por nuestros servicios de suscripción de pago.

En esta serie de blogs, profundizaremos en por qué y cómo se introdujeron los cambios en los Términos de servicio anunciados recientemente. Este blog, Parte 1, explorará la política de retención de imágenes inactivas y cómo afectará a los equipos de desarrollo que usan Docker Hub para administrar sus imágenes de contenedor. La Parte 2 se centrará en las nuevas políticas de límites de tarifas que se introdujeron para las extracciones de imágenes.

Una mirada más profunda a las imágenes de Docker Hub La entrega de aplicaciones en contenedores de una manera portátil, segura y eficiente en el uso de recursos también requiere herramientas y servicios para almacenar y compartir aplicaciones de forma segura con su equipo de desarrollo. En la actualidad, Docker se enorgullece de ofrecer el registro de contenedores más grande del mundo, Docker Hub, que utilizan más de 6,5 millones de desarrolladores en todo el mundo. En la actualidad, más de 15 PB de imágenes de contenedores se almacenan en Docker Hub, que abarcan desde las bases de datos en memoria más populares del mundo hasta las plataformas de transmisión de eventos, las imágenes oficiales de Docker altamente seleccionadas y confiables, y los 150 millones de imágenes creadas por la comunidad de Docker.

Las herramientas de análisis internas de Docker han demostrado que de los 15 PB de imágenes almacenadas en Docker Hub, no se ha accedido a más de 10 PB de estas imágenes durante más de 6 meses. Profundizando un poco más, encontramos que más de 4.5 PB de estas imágenes inactivas están asociadas con cuentas gratuitas. Muchas de estas imágenes solo se usaron durante un corto período de tiempo, incluidas las imágenes que resultaron de las canalizaciones de CI configuradas con Docker Hub, donde a menudo se pasaba por alto la eliminación de estas imágenes efímeras.

Con una enorme huella de datos inactivos inactivos en Docker Hub, el equipo se enfrentó a una pregunta difícil: cómo limitar la cantidad de datos inactivos por los que Docker está incurriendo en cargos de almacenamiento mensualmente, sin afectar al cliente general de Docker. ¿experiencia? Los principios rectores para abordar este desafío fueron dos: Continúe ofreciendo un paquete atractivo de herramientas y servicios Docker de uso gratuito que los desarrolladores, incluidos los proyectos de código abierto, pueden usar para crear, compartir y ejecutar aplicaciones. Asegúrese de que Docker pueda escalar para satisfacer la demanda de nuevos desarrolladores limitando los costos de almacenamiento ilimitados actualmente, uno de los mayores gastos operativos de Docker Hub.

Ayudar a los desarrolladores a gestionar imágenes inactivas Para ayudar a Docker a escalar económicamente su infraestructura para admitir servicios gratuitos para nuestra creciente base de usuarios, se anunciaron varias actualizaciones. Primero, se introdujo una nueva política de retención de imágenes inactivas que eliminará automáticamente las imágenes alojadas en cuentas gratuitas que no se hayan utilizado en 6 meses. Además, Docker también proporcionará herramientas, en forma de interfaz de usuario y API, que permitirán a los usuarios administrar sus imágenes más fácilmente. Juntos, estos cambios permitirán a los desarrolladores limpiar más fácilmente sus imágenes inactivas y también garantizarán que Docker pueda escalar económicamente su infraestructura. Con esta nueva política, a partir del 1 de noviembre, se eliminarán las imágenes almacenadas en repositorios gratuitos de Docker Hub cuyo manifiesto no se haya insertado ni eliminado en los últimos 6 meses. Esta política no se aplica a las imágenes almacenadas por cuentas de suscripción pagas de Docker Hub, editores verificados de Docker o imágenes oficiales de Docker.

Ejemplo n. ° 1: Molly, un usuario gratuito de Docker Hub, envió una imagen etiquetada molly / hello-world: v1 a Docker Hub el 1 de enero de 2019. La imagen nunca se extrajo desde que se envió. Esta imagen etiquetada se considerará inactiva a partir del 1 de noviembre de 2020 cuando entre en vigor la nueva política. La imagen y cualquier etiqueta que apunte a golpear estarán sujetas a eliminación el 1 de noviembre de 2020. Ejemplo n. ° 2: Molly tiene otra imagen sin etiquetar molly / myapp @ sha256: c0ffee que se publicó por primera vez el 1 de enero de 2018. Esta imagen se extrajo por última vez el 1 de agosto de 2020. Esta imagen se considerará una imagen activa y no estará sujeta a supresión el 1 de noviembre de 2020.

Minimizar el impacto en la comunidad de desarrolladores Para cuentas gratuitas, Docker ofrece retención gratuita de imágenes inactivas durante seis meses. Para los usuarios que necesitan que se retengan sus imágenes inactivas, Docker también ofrece retención de imágenes ilimitada como una característica de los planes Pro y Team. Visite www.docker.com/pricing para ver los planes disponibles. Además, Docker ofrecerá un conjunto de herramientas y servicios para ayudar a los desarrolladores a ver y administrar fácilmente sus imágenes, incluidas las siguientes actualizaciones de productos que estarán disponibles en Docker Hub en los próximos meses: Panel de administración de imágenes para ver y administrar imágenes en todos los repositorios dentro de un espacio de nombres (problema # 146 de la hoja de ruta) Notificaciones por correo electrónico para imágenes que están programadas para caducar (problema de la hoja de ruta # 147) Restauración de imágenes eliminadas recientemente (edición de la hoja de ruta n. ° 148)

Finalmente, como parte del compromiso de Docker con la comunidad de código abierto, antes del 1 de noviembre anunciaremos la disponibilidad de nuevos planes de código abierto. Para solicitar un plan de código abierto, complete el breve formulario aquí. Para obtener más información sobre los cambios recientes en los términos de servicio, consulte las preguntas frecuentes. Esté atento a las comunicaciones por correo electrónico con respecto a las próximas imágenes que vencerán en su cuenta o regístrese en un plan Pro o Team para una retención ilimitada de imágenes inactivas. Si bien intentamos minimizar el impacto en los desarrolladores, es posible que tenga preguntas o casos de uso que no estén cubiertos. Como siempre, agradecemos sus preguntas y comentarios en pricingquestions@docker.com.

Fuente: docker.com

Impresoras: seguimos descuidando su seguridad

En un primer vistazo, puede parecer que las impresoras son el elemento más inofensivo de una infraestructura IT, ya sea ésta empresarial, de un pequeño despacho o doméstica. Y es que, ¿qué riesgos pueden producirse por un dispositivo cuya única función es, mediante diferentes técnicas, transferir textos e imágenes a papel? Y además, ¿no son ya seguras de por sí? ¿De qué hay que preocuparse, más allá de llevar un cierto control sobre el gasto de consumibles?

Pues en realidad, a poco que paremos a pensarlo, sí que hay riesgos asociados a las impresoras, y no deben ser subestimados, ya que una mala configuración de uno de estos dispositivos puede hacer, por ejemplo, que un atacante pueda acceder a su memoria de trabajo y, de este modo, tener acceso a toda la documentación que imprimimos, una acción que se puede prolongar en el tiempo hasta que el ciberdelincuente obtenga aquello que estaba esperando encontrar.

Tampoco hay que olvidar que, en cada vez más casos, hablamos de dispositivos conectados a la red y que, por lo tanto, cuentan con legitimidad en la misma. Dicho de otra manera: el tráfico que provenga de las impresoras será, al menos en principio, considerado seguro. Y no hace falta profundizar en los riesgos de tener un dispositivo cuya seguridad se ha visto comprometida dentro de una infraestructura, ¿verdad?

Así pues, el erróneo concepto de que las impresoras no nos deben preocupar al hablar de seguridad debe quedar descartado de inmediato. Y aunque es cierto que los fabricantes de las mismas se esfuerzan por hacer que sus dispositivos sean cada día más seguros, en ocasiones por algún fallo de seguridad en el firmware de las mismas, y en otras muchas porque los usuarios las configuran sin activar ninguna medida de seguridad, a día de hoy siguen presentando ciertos riesgos que hay que tener en cuenta, valorar y, siempre que esté en nuestra mano, prevenir. El último ejemplo de ello lo tenemos en la prueba llevada a cabo recientemente por Cybernews, y cuyos resultados son bastante reveladores.

Impresoras inseguras: la prueba

Para sus pruebas, empezaron realizando una búsqueda masiva en Internet, mediante servicios especializados en detección de dispositivos IoT, con los que pudieron localizar alrededor de 800.000 impresoras que tenían habilitadas las funciones de impresión en red y eran accesibles a través de Internet. Es importante distinguir, en este punto, que eso no significa que todas esas impresoras fueran inseguras. Aún así, y en base a sus posteriores averiguaciones, los investigadores calculan que los problemas de seguridad afectan a unas 500.000 de ellas.

De todas las impresoras encontradas, se tomó una muestra de 50.000 dispositivos, procurando que hubiera representación geográfica de todo el mundo, probar modelos de todos los principales fabricantes y verificar que los problemas de seguridad se reproducen con distintos protocolos de conexión a las mismas. Una vez definida la muestra, los expertos confeccionaron un script que intentaría conectarse a las mismas y, en caso de éxito, imprimiría un documento PDF con instrucciones para evitar que esto pudiera suceder en el futuro.

Un aspecto importante, y que los técnicos explicitan en los resultados de su investigación, es que a la hora de desarrollar el script se centraron exclusivamente en las funciones de impresión, sin buscar tener acceso a ninguna otra característica o información almacenada en las impresoras. Es decir, que en un ataque malintencionado, los ciberdelincuentes sí que podrían acceder a esas funciones de las impresoras y, por lo tanto, producir daños que van mucho más allá de imprimir algunos documentos de manera remota.

Seguro que te estás preguntando por el resultado de las pruebas, ¿verdad? Pues son bastante llamativos, porque de las 50.000 impresoras «atacadas», nada menos que 27.9444 imprimieron el documento o, como mínimo, lo incluyeron en su buffer de impresión. Hablamos de una tasa de éxito del 56%, y si la extrapolamos a las 800.000 impresoras encontradas por los investigadores, podemos calcular que al menos unas 447.000 de ellas no tienen la configuración de seguridad adecuada.

¿Y cómo proteger las impresoras de estos riesgos? La buena noticia es que hablamos de medidas sencillas, que pueden ser adoptadas de manera prácticamente inmediata y que, en la inmensa mayoría de los casos, evitarán que cualquier ciberdelincuentes pueda acceder a las mismas, con los riesgos que esto conlleva.

  • Limitar las conexiones aceptadas por la impresora: desde emplear solo protocolos seguros, como IPPS mediante SSL a permitir solo el tráfico de determinados rangos de direcciones IP, pasando por reducir al mínimo las opciones de impresión remota, a través de Internet, etcétera.
  • El uso de un firewall también previene muchos de estos ataques a las impresoras. No hace falta ni decirlo, los cortafuegos son un elemento imprescindible en cualquier infraestructura conectada a Internet.
  • En ocasiones, los problemas de seguridad de las impresoras tienen su origen en el firmware de la mismas. Los fabricantes son conscientes de ello y, ante cualquier señal que indique que hay un problema de seguridad, publican versiones actualizadas del firmware. No olvides actualizarlo si es posible.
  • Muchos dispositivos, también las impresoras, tienen contraseñas predeterminadas al salir de fábrica. Comprueba si es el caso y, de ser así, modifícala de inmediato. Recuerda que una contraseña predeterminada es más peligrosa aún que no tener contraseña, porque genera una falsa sensación de seguridad.

Fuente: muyseguridad.net

VISA: un fallo de seguridad permite eludir el PIN

Si el pago por medios electrónicos, Visa, Paypal, monederos electrónicos, etcétera, no había dejado de crecer durante los últimos años, con la situación provocada por el coronavirus su uso se ha disparado hasta niveles que no eran previsibles, en circunstancias normales, hasta dentro de algunos años. En parte por el auge del comercio electrónico, y también en una parte importante por los temores asociados a emplear dinero en efectivo, y que este pueda actuar como vector de difusión del patógeno.

Y es que, por norma general, el nivel de seguridad que nos ofrecen los medios de pago electrónicos es muy alto. No digo, claro, que sean 100% seguros (¿hay algo en esta vida que lo sea?), pero es indudable que sus responsables, ya sean bancos, emisores de tarjetas, entidades de pago, etcétera, extreman los cuidados a este respecto. Ir al supermercado y pagar con Visa, Mastercard o cualquier otra tarjeta de débito/crédito es, por norma general, una opción muy segura.

Esa seguridad depende, no obstante, de sistemas que no son perfectos, y no es sino por la colaboración de expertos e investigadores de seguridad, que son detectados algunos problemas de seguridad. Tal es el caso de un equipo de investigación suizo, que ha encontrado un problema de seguridad en el protocolo EMV, empleado por Visa, y que es vulnerable a un ataque de tipo man-in-the-middle que permite realizar transacciones sin que sea necesario validarlas mediante el PIN asociado a las tarjetas.

EMV («Europay, MasterCard, Visa) es el protocolo utilizado por todos los principales bancos e instituciones financieras del mundo. Europay, Mastercard y Visa desarrollaron el estándar y existe desde hace más de 20 años. La razón más importante para la adopción generalizada del protocolo EMV tiene que ver con el «cambio de responsabilidad», un procedimiento que garantiza que, siempre que el cliente apruebe la transacción con un PIN o firma, la institución financiera no es responsable.

Utilizando nuestro modelo, identificamos un fallo crítico en las propiedades de autenticación mediante el protocolo sin contacto de Visa: el método de verificación del titular de la tarjeta utilizado en una transacción, si lo hay, no está autenticado ni protegido criptográficamente contra modificaciones”, dicen los investigadores en su artículo.

«Desarrollamos una aplicación de Android de prueba de concepto que aprovecha esto para eludir la verificación del PIN mediante el montaje de un ataque de intermediario que indica al terminal que no se requiere la verificación del PIN porque la verificación del titular de la tarjeta se realizó en el dispositivo del consumidor«.

De esta manera, un delincuente que lograra hacerse con una tarjeta Visa robada, podría realizar compras con ella sin que fuera necesario emplear el PIN para validar la operación. Y, debido al planteamiento asociado a EMV, la responsabilidad del mismo recaería sobre el titular de la tarjeta robada, y no de la entidad, pese a que el problema de seguridad tenga su origen en ésta. Cabe entender, no obstante, que de darse algún ataque in the wild que aproveche esta vulnerabilidad, las entidades financieras actuarán de forma responsable.

La mala noticia es que todas las tarjetas Visa con chip se ven afectadas por este problema, y la entidad financiera tiene que emitir una actualización del software empleado en datáfonos y TPVs. En su parte positiva, el problema de seguridad no es inherente a EMV, sino a una implementación deficiente de las medidas de seguridad asociadas a la validación de los pagos mediante PIN en operaciones contactless. Eso sí, los investigadores cifran en alrededor de 161 millones los TPVs que hay a lo largo del mundo, por lo que vaticinan que la actualización de todos ellos será un proceso que llevará cierto tiempo.

Fuente: muyseguridad.net

Los 10 mejores firewall de código abierto para proteger su red empresarial 2020

Open Source Firewall es mejor conocido por proteger la red de una amenaza al filtrar el tráfico entrante y saliente y garantizar la seguridad de la red.

Siempre que hablamos de Open Source Firewall, lo primero que nos llama la atención es «Totalmente gratuito». Sin embargo, permítanme explicarlo, código abierto es el término que se utiliza para el software que se distribuye bajo una licencia que permite al usuario acceder al código fuente.

Básicamente, este tipo de licencia simplemente permite a los usuarios analizar y modificar el software con total independencia. Además, el código abierto también promueve la colaboración entre usuarios, lo que significa un desarrollo rápido y variado de muchas herramientas.

En general, el firewall de código abierto pertenece a la comunidad; por lo tanto, sin duda, su desarrollo y actualizaciones simplemente dependen principalmente de la comunidad. Sin embargo, el hecho es que esto también aumenta la confianza en la continuidad del programa. Ahora viene el firewall, es una de las partes más importantes de un sistema de seguridad de red.

Todos estos productos se pueden descargar e implementar fácilmente en cualquier hardware, en una plataforma virtual o también en la nube. Sin embargo, hay muchos que también los venden con dispositivos preconfigurados, solo si le gustan sus funciones o soporte, y no desea construir su propia máquina.

Aquí en este artículo, hemos mencionado los mejores firewalls de código abierto para infraestructura y hogar. Sin embargo, aparte de todas estas cosas, encontramos que pfSense y Untangle son uno de los mejores firewalls que podrían usarse en una amplia gama de entornos.

10 mejores firewall de código abierto 2020

  • PfSense
  • Desenrede el cortafuegos
  • Firewall OPNsense
  • Iptables
  • IPFire
  • Cortafuegos IPCop
  • Shorewall
  • SmoothWall
  • Endian
  • ClearOS

Principales tendencias de seguridad cibernética esperadas en 2020

La seguridad cibernética es vital para todas las empresas, es importante para proteger su empresa contra ataques cibernéticos, un solo ataque cibernético podría causar daños graves. La seguridad cibernética es la máxima prioridad para todas las organizaciones para controlar los ciberataques. Aquí está la lista de tendencias de seguridad cibernética.

A medida que las organizaciones avanzan hacia la transformación digital para explorar nuevas estrategias comerciales, los riesgos asociados con el negocio digital están evolucionando.

Por otro lado, los actores de amenazas mejoran constantemente sus armas cibernéticas y se adaptan a las nuevas tecnologías para lanzar ataques sofisticados dirigidos a organizaciones e individuos.

Hoy en día, los incidentes cibernéticos como los ataques de malware, el robo de datos y la amenaza interna son los riesgos más frecuentes que una organización debe manejar, en algunos casos, estos incidentes son causados ​​por empleados de las propias empresas, ya sea intencionalmente o sin saberlo.

Principales tendencias de seguridad cibernética 2020
Aquí están las predicciones para las tendencias de seguridad cibernética para 2020

Los grupos APT expanden los vectores de ataque

  • Ataques dirigidos a infraestructura crítica
  • Aumento de los ataques de IoT
  • Ataques de phishing dirigidos
  • Vectores de ataque móvil
  • Un aumento en la automatización de la seguridad cibernética
  • Cambios en la privacidad debido a GDPR


Grupos APT expanden vectores de ataque


APT significa Amenaza persistente avanzada, al igual que otros actores de amenazas, estos grupos de amenazas avanzadas se centran en robar información, participar en actividades de espionaje o destruir los servicios.

Estos grupos de APT lanzan ataques a gran escala utilizando métodos de ataque avanzados dirigidos a servicios financieros, industriales, gubernamentales, de defensa, servicios legales y muchos más.

Los grupos APT continúan ampliando los ataques geográficamente y también la frecuencia de sus ataques, un ejemplo reciente es el grupo Silencio, que comienza a atacar bancos en Rusia y ahora expande el perímetro de ataque geográficamente.

Otro grupo infame es Turla APT, conocido por renovar constantemente su arsenal con nuevas herramientas de piratería y técnicas de ataque.

Estos grupos APT penetran en las redes y permanecen sin ser detectados, es importante defenderse proactivamente contra los ataques APT. Según el informe de tendencias de Kaspersky APT, los nuevos y sofisticados grupos APT evolucionan constantemente y aumentan constantemente el número de ataques.