¿Y si la próxima interface es la voz?

¿Y si el sucesor de las interfaces de usuario en React, Vue y Angular fuese nuestra propia voz?

En este segundo episodio del podcast píldoras tecnológicas te voy a contar porque creo que la voz puede ser la próxima interface.

¿Qué es lo que me haga convencido? Pues básicamente mi madre. No es que mi madre haya venido y me haya dicho: «hijo el futuro de las interface máquina humano es la voz». Sino que realmente, le he regalado un Amazon echo en lo que es el asistente con pantallita y una de las cosas que me he dado cuenta es que se ha puesto a utilizarlo sin ningún tipo de complejidad.

Mi madre ya pasa los 70 años, o sea que no es precisamente una nativa digital y tiene cierta dificultad con la tecnología, con los móviles con los ordenadores.

Porque realmente la cuestión es que hasta ahora todas las interface entre los humanos y las máquinas realmente era el humano el que se tenía que adaptar a la máquina. Antiguamente en las pantallas de host con los menús y hoy día con las aplicaciones tanto de escritorio como las aplicaciones web como los móviles en los que realmente tú tienes que saber qué opción le tienes que dar. Si tienes que dar doble click, si no tienes que dar doble click, ese botón que pone tres rayitas arriba que significa un menú.

Con lo cual realmente hay una cierta curva aprendizaje.

Pero al final estos asistentes realmente lo que hacen es un procesado de lenguaje natural, o sea, realmente tú le dices: Oye, ponme una canción de nosequé, ponme una lista de música clásica, enciéndeme las luces, ponme un recordatorio y todo eso lo haces con lenguaje natural hablando.

Me decía mi madre que le daba la sensación que había una personita ahí dentro del aparatito. Porque realmente lo que es la comunicación lo han conseguido bastante, está bastante logrado.

Entonces yo realmente creo que esto de la voz y de los asistentes virtuales puede ser la siguiente fase en la interface de usuario. Sobre todo porque ahora es la máquina la que se adapta al humano y eso simplifica mucho las cosas.

¿Y cuánto de buenos son estos asistentes virtuales? Pues yo la verdad es que creo que bastante.

Leí un artículo, un informe que decía que a día de hoy eran capaces, los algoritmos de estas inteligencias artificiales redes naturales, etcétera, etcétera, son capaces de detectar, o de entender el 95% de las palabras que se dicen.

Que por lo que decían es exactamente lo mismo que puede entender un humano.

Porque no siempre somos bien lo que nos han dicho. Sí que es cierto que un humano puede contextualizarlo y una máquina en ese aspecto todavía le cuesta un poquito. Pero al final con todas estas avances que está viendo en el tema de la inteligencia artificial cada vez los asistentes van a ser más inteligentes con lo cual no es de extrañar pensar que de aquí a 3 o 5 años sean capaces de manejar conversaciones más complejas de la que son capaces de manejar hoy.

¿Cuales son los retos? Pues para mí mismo por lo menos en el sistema de Amazon que es el que más conozco, porque es el que le he regalado a mi madre para que escuche música, el principal reto que tienes desde mi punto de vista es el tema de la privacidad.

Cualquier persona se puede acercar al aparato y darle una orden y la va a aceptar. No tiene muchos problemas si las órdenes, son pon una canción. Pero si por ejemplo es el estado de los pedidos en Amazon pues hombre, si tienes algún regalo para tu madre o así pues igual se entera, y eso pues puede ser un problemilla.

Sí que es cierto que no en todas las situaciones una interface de voz es lo más adecuado.

Porque claro, hay veces, si en el trabajo no te vas a poner aquí a hablar al ordenador, cuando tienes compañeros sentados alrededor, pero en una casa, pues a mí sí que me parece que puede ser bastante viable, en situaciones en las que pues no tienes a mano un ordenador una tablet o un móvil, por ejemplo si estás en la cocina cocinando y que te pongan un recordatorio o estas en el salón y decirle que te ponga la música y ese tipo de situaciones. Consultas sencillas a día de hoy yo creo que hay bastante recorrido se puede hacer cosas bastante interesantes

¿y tú crees que los asistentes virtuales son el futuro como pienso yo o tienes una opinión diferente?

s2i: más alternativas a Dockerfile

s2i otra alternativa a Dockerfile

Después del éxito de la anterior entrada sobre jib, en esta te voy a mostrar la otra alternativa que comentaba en la entrada anterior. Source To Image (s2i) se usa en OpenShift.

s2i Source To Image

Es una alternativa para construir imágenes de tecnología Docker. Tiene sus ventajas e inconvenientes, como todo. Para mi el inconveniente sobre todo si usas java y maven es que cada vez se baja las dependencias, al ejecutarse dentro de un contenedor nuevo.

La ventaja es que si tu imagen la vas a desplegar en OpenShift vas a usar en tu local la misma herramienta que luego se usará en OpenShift.

Pero mejor te dejo el video para que puedas verlo en acción, y recuerda pasarte por mis cursos si quieres formarte en estos temas de Docker, OpenShift, Kubernetes, etc

Alternativa para Dockerfile

Jib alternativa a Dockerfile

Si, existen alternativas para los Dockerfiles. Ya vimos hace unos pocas semanas la posibilidad de utilizar podman, que es un remplazo completo a Docker y hoy quiero enseñarte otra alternativa, pero restringida a la construcción de las imágenes.

No sé tú, pero yo he llegado al mundo de los contenedores, Kubernetes, OpenShift y en general a la cultura DevOps desde la parte de desarrollo. Así que me preocupa mucho que el equipo de desarrollo pueda aprovechar la tecnología de contenedores de una forma fácil.

Podemos usar la herramienta s2i que vimos en el curso de OpenShift pero realmente implica un paso más.

Jib de Google

Jib es una alternativa para Dockerfile creada por Google, que para mí tiene un importante beneficio y es que se integra con maven de tal forma que podemos crear una imagen Docker con la misma herramienta con la que generamos nuestro aplicativo.

Te invito a echarle un vistazo en el siguiente vídeo

Y no olvides que si necesitas aprender sobre OpenShift o Kubernetes tienes disponibles mis cursos sencillos y orientados a desarrolladores.

kubens: cambia rápidamente de namespace en Kubernetes

kubectx y kubens

Si usas varios namespaces en kubernetes y te resulta un incordio andar cambiando entre ellos ene esta entrada te voy a contar una forma de hacer esas tareas de forma más sencilla.

Kubectx y Kubens

Kubectx y kubens son dos herramientas de linea de comandos que nos simplifican enormemente la tarea de manejar diferentes contextos y namespaces de kubernetes.

En este video te enseño como instalarlos y un breve ejemplo de uso, espero que te guste.

Y si quieres aprender sobre kubernetes pásate por mi curso Kubernetes sencillo para desarrolladores

Kubernetes en Visual Studio Code

Kubernetes en Visual Studio Code

Kubernetes en Visual Studio Code, dos de las herramientas del momento juntas.

Kubernetes

El orquestador de contenedores estándar de facto en el mercado es Kubernetes. Cada día que pasa van tomando más importancia los contenedores y con ello la necesidad de gestionarlo adecuadamente.

En estas labores Kubernetes se destaca como el mejor orquestador, incluido en multitud de nubes, como la de Azure, Google y Amazon y en productos de nube hídrica como OpenShift.

Sin duda una herramienta que hay que conocer.

Visual Studio Code

Probablemente el editor de código más en boga actualmente. Lejos van quedando los pesados entornos de desarrollo como Eclipse y Netbeans. Hoy día empiezan a predominar este tipo de editores más ligeros basados en HTML.

Si quieres aprender más sobre Kubernetes no dejes de pasarte por mi curso Kubernetes sencillo para desarrolladores

En este video te enseño como puedes utilizar Kubernetes dentro del Visual Studio Code.

Alternativas a Docker

¿Alternativas a docker? Pues si efectivamente las hay.

Os voy a contar alguna opcion que hay para tener alternativas a docker.

Lo primero que tenemos que aclarar es: ¿que es lo que entendemos por docker? Hay dos formas de entender docker.

Docker como contenedor

Realmente la primera es entender docker como contenedor. Docker es simplemente como la tecnología de contenedores.

En este caso Docker es una parte de lo que es el instalable que
nos podemos bajar y tener los contenedores, los dockers, en nuestro ordenador.

La alternativa más típica viene a ser el CRI o el CRI-O, que es la máquina que ha desarrollado Google muy orientado a orquestador Kubernetes.

Igual que nosotros podemos bajarnos el docker community edition para utilizarlo en nuestro portátil, en nuestro equipo de trabajo, hay una versión que lleva implementada la máquina de ejecución de contenedores del CRI que os comentaba, que se llama minishift.

Que al final lo que nos da es lo que sería la tecnología de contenedores más el orquestador. Viene a ser una versión para trabajo en el local del openshift, que ahora vamos a hablar.

Docker como empresa

Y por otra parte si lo que vemos o entendemos como docker es lo que sería la empresa que nos da los productos. como la versión enterprise de Docker, también hay más alternativas.

Realmente podemos tener alternativas en la nube tanto de google como de amazon etcétera etcétera y lo que sería más para instalar onpremise, instalar en nuestros ordenadores, en nuestros servidores, en nuestro cpd, la opción es openshift.

OpenShift de Red Hat

Openshift es de redhat. Hay una versión que es de la comunidad y luego hay otra versión que la distribuye redhat con un servicio de subscripciones y soporte.

Entonces OpenShift es lo que vendría a ser el equivalente a docker enterprise que nos da, ya no sólo la tecnología de contenedores, sino también lleva incorporado el kubernetes como el orquestador y toda una serie de servicios que necesitamos para desplegar contenedores en un entorno empresarial.

Tengo una entrada en la que explico por qué los contenedores en una empresa no son suficientes y también alguna serie de consideraciones de seguridad que hay que tener en cuenta con respecto a los contenedores.

La ventaja que tiene redhat es que proporciona tanto el sistema operativo como la tecnología de contenedores como el sistema operativo sobre el que corren esos contenedores. Incluso en muchos casos pues los servidores de aplicaciones.

Es el típico jboss o el Fuse para colas, infinispan para lo que sería o datagrid para lo que sería caché etcétera.

Saber más sobre OpenShift

Si queréis ampliar conocimientos sobre openshift tengo un curso de openshift  con un descuento bastante importante, el precio más barato que vais a poder encontrar.

Os dejo el video

https://youtu.be/eaFOigowtrs

Curso de Docker gratis

¿Un curso de docker gratis? Os estáis preguntando si hay algo mal… Pues no, no hay nada mal.

Curso de Docker gratis

Hoy os quiero anunciar que he hecho público, en YouTube mi curso Docker sencillo para desarrolladores. Así que vais a poder tener acceso a un curso de docker gratis.

Lógicamente en YouTube no se puede tener un certificado de finalización del curso. Para obtenerlo tendríais que recurrir a mi curso. Sí que es cierto que es de pago pero es muy económico.

En mi web vais a encontrar el precio más barato y ahí sí que podéis tener un certificado de finalización.

Si solo os interesa el conocimiento en YouTube podéis tener el mismo curso, exactamente el mismo curso.

Este curso se compone de una serie de secciones.

Sección teoría Docker

Hay una primera parte que es teórica, en la que pues explica lo que es el docker, qué problemas o qué situaciones se solventa.

Ya sé que la parte teórica no es la parte que más suele gustar. Pero creo que es importante para entender un poco y contextualizar lo que es el producto.

Sección instalación Docker

Luego hay otra parte que es de instalación. Vamos a instalar el Docker tanto en Linux, como en windows, como en mac.

Y como entorno de desarrollo vamos a utilizar el eclipse. Básicamente porque es el entorno típico en entornos de desarrollo java, que es en donde yo más me muevo.

Sección uso de Docker

Luego viene una parte que básicamente lo que vamos es a aprender cómo utilizar contenedores o imágenes docker que ya existen.

Vamos a bajarnoslas y vamos a ejecutarlas. Vamos a utilizar el WildFly y una base de datos mysql o maría db.

Sección personalizar Docker

Luego hay otra sección que en la que lo que vamos a ver es cómo crear nuestros propios contenedores.

No vamos a coger un contenedor ya hecho sino que en base a un nuevo existente lo vamos a personalizar.

Sección cadena suministro software con Docker

Y luego ya por último lo que hay es una sección en la que lo que vamos a ver son unas pinceladas de lo que sería Docker dentro de la cadena de suministro de software. Con github, docker compose etcétera etcétera.

Esta parte no la he desarrollado mucho porque creo que el futuro, o más bien el presente son las distribuciones de Kubernetes como OpenShift ahora renombrada a OKD, pero eso en otra entrada 😉

Espero que os resulte interesante, si es así dejármelo en los comentarios que os lo agradecería. Podéis subscribiros al canal y así os llega notificaciones y de paso me ayudáis a propagar el contenido.

https://www.youtube.com/watch?v=yVey-R8MWHU

Riesgos de seguridad en los contenedores Docker

En esta ocasión os quiero hablar de una cosa que normalmente se nos suele pasar por alto a la mayoría de nosotros cuando trabajamos con los contenedores Docker.

Y es el sistema operativo sobre el que se ejecutan los contenedores, no tanto sobre el que se ejecuta el motor de contenedores, sino sobre el sistema operativo sobre el que se ejecuta nuestro contenedor.

Sobre el contenedor que nos basamos a la hora de crear la imagen.

Los contenedores Docker

Esto de los contenedores está muy bien porque realmente nos proporcionan un servidor que no tenemos que configurar, ya está configurado y simplemente nosotros metemos nuestra aplicación.

Con lo cual como desarrolladores esto lógicamente es una funcionalidad muy interesante.

Sí que es cierto que normalmente los desarrolladores solemos tener una cierta tendencia a no preocuparnos de estas cosas de infraestructura.

Pero realmente esa aplicación que nosotros estamos corriendo sobre un servidor de aplicaciones, típicamente por ejemplo un JBoss eap o un Wildfly etcétera, tienen por debajo unas librerías de un sistema operativo.

Contenedores seguros

La cuestión es que ese sistema operativo nos puede afectar. Ya que tenemos que tener en cuenta que ese sistema operativo tiene bugs y tiene normalmente parches de seguridad que van saliendo.

Con lo cual si nosotros no nos preocupamos de mantener actualizado el sistema operativo sobre el que está ejecutándose en nuestro contenedor podemos tener unos problemas de seguridad.

Se puede ver un ejemplo en las imágenes que están en el Docker Hub, que es el repositorio más popular de imágenes de contenedores. La mayor parte de las imágenes tienen serios problemas de librerías.

Quizás normalmente la última versión es la que puede tener los parches más actualizados.

Lógicamente porque normalmente se han generado hace poco tiempo con lo cual se basa en un sistema operativo que ya tiene corregido todas las vulnerabilidades.

Pero realmente las versiones un poquito más viejas podemos ver que realmente suelen tener bastantes problemas.

Para verlo simplemente tenemos que entrar en el hub de docker. Loguearnos. Ir a la imagen que estemos utilizando, que queramos utilizar y ver cuál es el estado de la  seguridad.

Lógicamente si somos mínimamente exigentes con la seguridad de nuestra infraestructura estas  imágenes no las podríamos utilizar en producción.

En el resto internos sí que se pueden utilizar pero no en producción.

Mantener actualizado los contenedores

Cuando queramos utilizar contenedores tenemos que tener la seguridad de que tenemos un soporte sobre el sistema operativo sobre el que se están ejecutando esos contenedores. Y en general de toda la infraestructura que está por debajo de nuestra aplicación.

Podemos encargarnos nosotros o utilizar un proveedor que nos proporcione esta base actualizada.

Más sobre contenedores

Si queréis pues ampliar conocimientos sobre el tema de los contenedores podéis echar un vistazo a mis cursos sobre contenedores y sobre openshift.

OpenShift es un poco la evolución de los contenedores más orientados a entornos empresariales. Por qué sí que es cierto que un contenedor lo podemos utilizar en nuestro portátil para hacer unas pruebas a nuestro desarrollo. Pero cuando ya entramos en lo que es el uso en entornos empresariales, entornos grandes pues los contenedores se nos quedan un poquito cortos y necesitamos herramientas como openshift

Os dejo el video en el que comentos más sobre este tema

https://youtu.be/VwqERlo64Yw

Los contenedores Docker no son suficientes

Si estáis empezando o lleváis un cierto tiempo trabajando con contenedores, lo que popularmente conocemos como docker, este artículo probablemente os resulte interesante. Porque os voy a contar porque los contenedores no son suficientes en una empresa.  Cuales son las carencias o de las limitaciones que tienen los contenedores.

Como comento en mi curso sobre “Docker sencillo para desarrolladores” al final lo que es el docker no deja de ser un contenedor y viene de lo que es los contenedores físicos que se utilizan para transportar mercancías.

El símil que se hace es que antiguamente las mercancías no se transportaban todas de la misma forma. Es decir es la típica imagen de la película de época en la que hay una grúa subiendo con una red, subiendo los baúles de la señora que se va a hacer el viaje en el barco.

Cada mercancía se transportaba de una determinada forma. Con lo cual, pues claro, eso era un problema. ¿Qué solución se le dio?. Meterlo en cajas, qué son los contenedores.

Y los contenedores están muy bien, pero al igual que en un mundo físico los contenedores simplemente solos no sirven para transportar mercancías, porque solo son una caja. Solo es el contenedor que dentro lleva la mercancía. En el mundo del software con los contenedores software pasa exactamente lo mismo.

Es decir un contenedor, una imagen, un contenedor es una imagen en ejecución y realmente para desarrollar pues está muy bien. Pero si tú quieres meterlo dentro de un entorno empresarial pues se quedan un poco corto.

Igual que en el tema de los transportes, el contenedor solo es la caja, pero necesitas los camiones, las grúas, los barcos portacontenedores para mover una mercancía de un sitio a otro. Pues aquí pasa exactamente lo mismo.

¿Porque se nos quedan cortos los contenedores?

Pues porque realmente dentro de lo que es un despliegue de una aplicación normalmente tú no tienes un único contenedor. Sino que tienes múltiples contenedores. Cada aplicación normalmente va en un único contenedor. Y tienes varias copias ejecutándose de ese contenedor.

Entonces realmente puedes llegar a tener un volumen de contenedores en ejecución muy alto y eso es muy difícil de manejar manualmente. Así que necesitas herramientas que te ayuden a manejar esa complejidad y ese volumen.

Aparte de que luego hay una serie de necesidades , por ejemplo de logs, porque como ya sabéis los contenedores son efímeros. Pueden desaparecer en un momento determinado y aparecer en otra máquina etcétera.

Con lo cual pues toda la gestión de logs que tradicionalmente se hacía entrando a la máquina y consultando el fichero pues aquí te puedes encontrar que esa máquina que sería el contenedor ya no existe, ha desaparecido.

Entonces hay un serie de necesidades que surgen con el uso de los contenedores que con el contenedor simplemente no se pueden solventar.

OpenShift como solución a las carencias de los contenedores

Necesitamos herramientas que nos ayuden a esa gestión. Herramientas como OpenShift que es una de las mejores herramientas que hay en este momento para trasladar lo que son los contenedores al mundo empresarial.

Como adquirir conocimiento sobre OpenShift

Si estáis interesados en avanzar en el conocimiento de los contenedores y su empleo en entornos empresariales podéis pasaros por mi página de cursos en el cual tengo referencias a un par de cursos que tengo.

Uno sobre contenedores, sobre docker, y otro sobre concretamente openshift. Enfocados ambos a lo que sería un perfil de desarrollador no tanto a un perfil de sistemas de instalación de los productos. Y yo creo que ahí os podréis hacer una idea más precisa de las interioridades de lo que es el producto openshift.

Os dejo el vídeo en el que explico estas situaciones

https://youtu.be/xTSpPNGFdMw

Las 7 claves de una infraestructura moderna

Evento RedHat Serikat. Las 7 claves de una infraestructura moderna

El pasado día 17 participé como ponente en la presentación «Las 7 claves de una infraestructura moderna» organizada por RedHat, Intel y Serikat.

Las 7 claves de una infraestructura moderna

La presentación tuvo lugar en el Palacio Euskalduna de Bilbao y conversamos sobre las necesidades de las organizaciones en el ámbito de las tecnologías de la información.

La transformación digital es un concepto que está muy de actualidad.

Comenzó la jornada Iñigo Landa haciendo una presentación sobre la importancia de la transformación digital y la trayectoria de Serikat como partner de RedHat.

Automatización con Ansible

Una de las necesidades de las organizaciones es dotarse de mayor agilidad para poder responder más rápidamente a las necesidades del negocio.

En esta parte de la sesión Javier Martínez Nohalés de RedHat nos introdujo cuales son esas necesidades que se están demandando hoy día por parte de las organizaciones.

Me gustó especialmente el planteamiento del auto consumo de las TI. Tradicionalmente cuando alguien de la organización necesita algún servicio tiene que solicitarlo mediante alguna herramienta de ticket. Este proceso es muy lento y lo que necesitamos es velocidad.

El enfoque que se está imponiendo es dar a los usuarios la posibilidad de consumir directamente el TI de la organización. Igual que cuando compras almacenamiento en una nube, por ejemplo. Simplemente lo solicitas, pagas y disfrutas del servicio, todo en minutos.

Este enfoque lleva a que se necesite automatizar las operaciones de TI. De tal forma que los operadores ya no se dediquen a aprovisionar manualmente, sino que centren su trabajo en definir las automatizaciones y las reglas por las que se rige el aprovisionamiento automático.

Javier nos mostró las posibilidades de la herramienta Ansible en este aspecto.

El camino hacia los microservicios con OpenShift

Esta parte de la presentación la comencé yo hablando de cual ha sido el pasado y el presente del desarrollo de las aplicaciones.

Fue una presentación muy didáctica en la que expuse que oportunidades de mejora hay en el desarrollo de las aplicaciones, siguiendo un enfoque de cadena de suministro de software. Desde que negocio solicita una funcionalidad hasta que esa funcionalidad llega a producción.

Vimos las oportunidades de mejora en la fase de construcción, operaciones y explotación y como OpenShift puede ayudarnos a dotarnos de mayor agilidad.

La argumentación fue un condensado de todo el contenido que he ido compartiendo tanto en este blog, como en los vídeos de YouTube y en mis cursos.

Para rematar la jornada volvió a coger el testigo Javier y nos habló del futuro de la construcción o más bien arquitectura de las aplicaciones. Futuro que está cada vez mas evolucionando hacia los microservicios.

En resumen un evento muy interesante y enriquecedor que pudimos compartir con muchos de nuestros clientes.