Páginas

jueves, 27 de enero de 2022

¿Qué es Docker y para qué sirve?

En informática un contenedor es una unidad estándar de software que empaqueta código y todas sus dependencias de tal forma que una aplicación se despliega y ejecuta rápida y fiablemente entre diferentes entornos. Un contenedor Docker es una imagen ligera, aislada y ejecutable que incluye todo lo necesario para ejecutar un software: código, herramientas, librerías y configuración.

Las imágenes de Docker llegan a ser contenedores cuando se ejecutan bajo el motor de Docker. Este motor está disponible para Linux, Windows y Mac.

La tecnología Docker se lanzó en 2013 como código abierto, enfocada en las necesidades de los desarrolladores y administradores de sistemas para ayudarles a separar las dependencias de la infraestructura. Esta tecnología ayuda a eliminar los problemas de instalar un software en distintos entornos y que las diferencias en la infraestructura produzcan fallos. De todos los desarrolladores y administradores es conocido el problema de desplegar el software desde los entornos de desarrollo a los de pruebas y producción.

El éxito que cosechó Docker en Linux condujo a la asociación con Microsoft que creó contenedores Docker para Windows. La tecnología Docker también está muy implantada en centros de datos, proveedores de servicios en la nube y frameworks serverless.

En una misma máquina pueden ejecutarse múltiples contenedores compartiendo el núcleo del sistema operativo, pero cada uno ejecutando los procesos de forma aislada en su propio espacio de nombres.

Un ejemplo de uso de Docker

  1. Instalación de Docker
    En https://hub.docker.com/ se descarga el producto para el sistema operativo que se necesite: Linux, Windows o Mac, y se procede a su instalación. Normalmente tiene más que seguir las indicaciones (siguiente, siguiente, .. ya sabes)
  2. Descarga del container getting-started
    Tras la instalación se puede proceder a descargar y ejecutar el primer contenedor de muestra que proporciona Docker. Este contenedor incluye un servidor web Nginx y una web con la documentación de Docker. Para instalarlo en cada sistema operativo acceder al modo comando y escribir:
    docker run -d -p 80:80 docker/getting-started

    este comando comprueba si tenemos esta imagen en nuestro ordenador, sino la tenemos la descarga (es nuestro caso, que acabamos de llegar a docker) y lo arranca.
  3. Ejecución de la aplicación del contenedor
    Lo que tenemos que hacer ahora el ir al navegador y escribir localhost. Esto arranca la web de documentación de Docker, que se ha instalado en el puerto 80 como si esta aplicación web de documentación y el servido Nginx estuviesen en nuestro ordenador.
    Si miramos en detalle vemos la url escrita en el navegador y corresponde con nuestro ordenador.

Uso de Docker desktop

El Docker dektop se instaló con la instalación de docker y permite entre otras cosas gestionar las imágenes y contenedores.

Si miramos en detalle vemos que el contenedor que está arrancado es el getting-started que acabamos de instalar y usar, que se llama vigorous-hofstadter

Conclusión

La tecnología de contenedores está actualmente en boga y ayuda a desarrollar y desplegar software evitando los quebraderos de cabeza que producen las dependencias entre unos paquetes software y otros.

Referencia

Para saber lo que es Docker está muy bien el post https://www.luisllamas.es/que-es-docker-y-como-usarlo/

viernes, 7 de enero de 2022

Javascript: Para qué sirve AJAX (Asynchronous JavaScript And XML)

AJAX es el acrónimo de Asynchronous JavaScript And XML, y son un conjunto de técnicas ideadas alrededor de 2005 para mejorar el desarrollo de aplicaciones web. En ese momento las aplicaciones web eran mucho menos fléxibles que las aplicaciones de escritorio y con AJAX esta circunstancia cambió notablemente.

AJAX es un nombre para aglutinar varias tecnologías desarrolladas entorno a internet:


  • XHTML+CSS
  • DOM
  • XMLHTTPRequest
  • Javascript
  • XML+XSLT (Actualmente en muchos casos JSON)

De todas estas tecnologías el objeto JavaScript XMLHTTPRequest es el motor. Este objeto es capaz de hacer peticiones "no bloqueantes" al servidor. Esto mejora la experiencia de usuario, puesto que el navegador puede lanzar peticiones al servidor y mientras este realiza el proceso necesario para contestar a esa petición el navegador no ha de estar esperando. El navegador puede seguir recibiendo ordenes del usuario y encadenar peticiones que cuando van siendo respondidas incorporan datos que se actualizan en la página html ya cargada mediante funciones javascript que acceden a las etiquetas de la página con DOM.

Para explicar la diferencia de acceso al servidor con AJAX y sin AJAX se puede acceder a las siguientes grabaciones:

Sin AJAX

Con AJAX

Conclusión

AJAX ha permitido desarrollar numerosas aplicaciones web, que tan útiles nos resultan en nuestro día a día. Eso si, no sin entrañar dificultades al tratar con las asincronías de XMLHTTPRequest y por lo tanto del API FETCH que tantos quebraderos de cabeza nos producen a los programadores.