Inicio » Tecnologías

Archivos de la categoría: Tecnologías

Azure ML Studio y KNIME: Soluciones machine learning sin código

Muchos de nosotros tenemos la concepción de que para construir modelos de machine learning se necesita saber programar, sin embargo, ya es posible hacerlo sin conocer ningún lenguaje de programación.

Existen múltiples soluciones que permiten el desarrollo de modelos de predicción sin escribir una sola línea de código. En este vídeo hablamos de dos plataformas con las que podemos beneficiarnos de las ventajas del machine learning sin código: Azure Machine Learning Studio y KNIME.

Azure Machine Learning Studio y KNIME

Microsoft Azure ML Studio es una solución muy potente que permite construir e implementar rápidamente modelos de aprendizaje automático y se puede integrar con otros recursos de Azure, el servicio cloud de Microsoft. Es una herramienta drag-and-drop que se basa en la construcción de modelos definiendo tan solo canalizaciones, es decir, flujos de trabajo ejecutables que permiten tareas de aprendizaje automático. Existen multitud de nudos que se encargan de tareas diversas y al conectarlos entre ellos pueden constituir un modelo de machine learning de principio a fin.

El único inconveniente de esta herramienta es que Azure necesita de una suscripción mensual, lo cual en ocasiones puede resultar costoso. Por ello, presentamos una opción gratuita que puede darnos una solución alternativa. Es KNIME, un programa de software libre que posee muchas de las funcionalidades que nos ofrece Azure ML Studio y cuenta con una versión totalmente gratuita. De igual forma que la solución anterior, nos permite construir modelos de machine learning desde una interfaz interactiva y fácil de usar. Cuenta con la posibilidad de conectarse a múltiples fuentes de datos pudiendo así, unificar datos provenientes de distintas BBDD, archivos y servicios web diversos como Azure, etc. con muy poco esfuerzo.

Te explicamos cómo funcionan en el siguiente video:

 

Para conocer todas nuestras novedades suscríbete a nuestra newsletter .También puedes seguirnos en nuestras redes sociales:

Team: Jorge López, Formador técnico en Icono Training Consulting.

Arquitectura monolítica frente a la arquitectura de microservicios

Es posible que hayas oído hablar de los términos “arquitectura monolítica” y “microservicios“, pero, ¿qué significan y en qué se diferencian?. Ambos enfoques tienen sus pros y sus contras, pero ¿cuál es el más adecuado?. En este artículo, analizamos en detalle la arquitectura de microservicios y la arquitectura monolítica con el objetivo de conocer cuál es la más adecuada para nuestro caso de uso.

Arquitectura monolítica vs arquitectura de microservicios

Según el diccionario, un monolito es una estructura sólida y compacta. De esta definición se desprende que una arquitectura monolítica es aquella en la que todos los componentes de la aplicación están integrados en un solo bloque. En pocas palabras, una arquitectura monolítica consiste en una única aplicación de software que realiza todas las funciones del sistema. 

En cambio, una arquitectura de microservicios está formada por un conjunto de servicios independientes los unos de los otros. Cada servicio tiene su propia lógica, y se comunica con otros servicios a través de dependencias definidas previamente por el usuario. De esta manera, la implementación con microservicios, constituye una colección de pequeños servicios que funcionan juntos para lograr un objetivo específico.

Ver nuestro curso de Spring con microservicios.

Ver nuestro curso de Docker, Kubernetes y Microservicios.

arquitectura de microservicios

Ventajas e inconvenientes de las arquitectura monolítica vs arquitectura de microservicios

Cuando se trata el debate de la aplicación monolítica frente a la arquitectura de microservicios hay pros y contras para ambas opciones, pero al final, todo se reduce a lo que funciona mejor para tu equipo y tu proyecto.

Arquitectura monolítica

Con una arquitectura monolítica:

  • Todo el código se agrupa en un único lugar. Esto facilita la gestión porque no hay que preocuparse de todas esas molestas dependencias que pueden causar problemas en el futuro.
  • Son difíciles de escalar y pueden ser difíciles de mantener. Cada cambio que se realiza en ellas tiene el potencial de romper todo el sistema ya que todo está estrechamente integrado, y un error puede tener consecuencias de gran alcance.
  • Suele ser difícil de depurar, como todo ocurre en un único lugar, es complicado averiguar de dónde viene el problema.

Arquitectura de microservicios

La arquitectura de microservicios:

  • Es más flexible y puede adaptarse a los cambios en el negocio más fácilmente.
  • Los servicios pueden ser escalados de forma individual, lo que permite maximizar el rendimiento de la aplicación.
  • Cada servicio individual puede desarrollarse y desplegarse de forma independiente. Esto los convierte en una gran opción para el desarrollo ágil, ya que se puede iterar rápidamente y desplegar actualizaciones con mayor frecuencia. Además, si necesitamos añadir más capacidad, sólo tenemos que agregar más instancias del mismo servicio, y como cada servicio está desacoplado de los demás, es menos probable que surjan problemas cuando se realicen cambios. 

Entonces: 

¿Cuándo se utiliza una arquitectura monolítica y cuándo una arquitectura de microservicios?

La aplicación de una arquitectura u otra va a depender siempre del proyecto que se vaya a realizar, pero vamos a nombrar algunas pautas generales:

Si tienes un proyecto pequeño con un número limitado de miembros en el equipo, probablemente te pueda valer hacer uso de una arquitectura monolítica. Pero tanto si tu proyecto es más grande o complejo, como si tienes la necesidad de escalar rápidamente, entonces necesitarás usar los microservicios.

Otra cosa que hay que tener en cuenta es que, los microservicios son mejores para proyectos que cambian y evolucionan constantemente. Así que si estás desarrollando algo que va a ser constantemente actualizado y adaptado, entonces, los microservicios son la mejor elección.

Por lo que, teniendo todos estos puntos en cuenta, ya podrás responder a la pregunta, ¿ qué arquitectura tengo que utilizar ?. Y si aún te queda alguna duda, puedes contactarnos y te ayudaremos a encontrar la solución que mejor se adapte a tu proyecto.

Para conocer todas nuestras novedades suscríbete a nuestra newsletter .También puedes seguirnos en nuestras redes sociales:

Extensiones gratuitas para Visual Studio Code

Visual Studio Code es un potente editor de texto muy útil para escribir y depurar código en cualquier lenguaje de programación. Viene con muchas funcionalidades ya insertadas, pero también dispone de una gran variedad de extensiones que podemos instalar para aumentar sus capacidades.

En este artículo de nuestra nueva sección #iconotech compartimos un video en el que os mostramos dos de nuestras extensiones favoritas de visual studio code, como son BlackboxCodeGeex y su funcionalidad.

 

Git cheat sheet: Comandos básicos que todo desarrollador debería conocer

El control de versiones es una de las herramientas más importantes en cualquier proyecto. Es la forma que tenemos de hacer un seguimiento de nuestro trabajo y nos ayuda a asegurarnos que siempre estamos trabajando sobre la misma versión de código.

La mejor manera de aplicar el control de versiones es utilizando un software específico para ello como es Git.

Diferencias entre GIT y Github

En ocasiones se tiende a confundir Git con GitHub. Git es el software que nos permite llevar un seguimiento de nuestro código, por otro lado GitHub nos permite alojar nuestros repositorios de Git en un entorno basado en cloud y colaborar con otros desarrolladores en su plataforma.

Puedes utilizar Git de dos formas diferentes:

  • Mediante una interfaz gráfica de usuario.
  • Utilizando la interfaz de línea de comandos (CLI)

La CLI suele ser la forma más común y cómoda de trabajar, pero en ocasiones su uso suele resultar algo tedioso. Por ello, te adjuntamos la siguiente lista con los principales comandos que os puede ser de ayuda, sobre todo para aquellos que os estáis iniciando en el control de versiones.

Puedes descargarlo aquí

Git Cheat Sheet infografía

Java 19: Actualizaciones y novedades.

¡Java 19 ya está aquí!

La nueva versión del kit de desarrollo de Java (JDK) trae consigo una serie de actualizaciones y mejoras muy interesantes. Entre ellas tenemos algunas nuevas características que nos ayudarán a sacar el máximo provecho de nuestros proyectos basados en Java, desde optimización de rendimiento y nuevas herramientas, hasta un montón de emocionantes mejoras en JShell.

java 19Novedades de Java 19

Entre las novedades de Java 19 podemos destacar:

Soporte mejorado para Kotlin: Esto es una gran noticia para los desarrolladores que utilizan este lenguaje en sus aplicaciones.
– Anotaciones en el código: Ahora puedes añadir una anotación a tu código que identifique qué tipos son inmutables. Esto ayudará a evitar fugas de memoria cuando se trabaje con objetos inmutables.
Tasklets: Esta nueva característica experimental llamada “tasklets” ofrece la capacidad de ejecutar una clase a la vez, en paralelo, utilizando múltiples hilos. Es ideal para tareas que requieren un uso intensivo de la CPU, como el procesamiento de Big Data o los conjuntos de entrenamiento de aprendizaje automático.
Mejoras en las comprobaciones de Android Lint y en la calidad del código, pero sin dejar de lado a los desarrolladores de iOS para los cuales también trae un soporte mejorado.
Actualizaciones de seguridad: Por último, Java 19 incorpora una serie de actualizaciones de seguridad que dificultan a los hackers la explotación de vulnerabilidades en el software mediante la creación de nuevos exploits. Esto significa que los desarrolladores tendrán que dedicar menos tiempo en preocuparse por los problemas de seguridad a la hora de crear sus aplicaciones.

¿Qué te parecen todas estas novedades? Cuéntanos si quieres conocer algún detalle más sobre esta tecnología o tu experiencia si ya la has probado.

Y si quieres saber más sobre Java siempre puedes mirar los cursos que tenemos disponibles aquí y las próximas convocatorias en nuestro calendario formativo.

Para conocer nuestras novedades inscríbete a nuestra newsletter o síguenos en Linkedin.

Cloud Computing: Los perfiles profesionales más demandados.

El Cloud Computing se ha convertido en los últimos años en una de las hard skills más demandadas dentro del sector IT. Perfiles como el del Ingeniero en Cloud System y el Especialista en Cloud Security entran en el ranking de los profesionales de IT más solicitados por las empresas.

Esto se debe a que según informes de Flexera, el 92% de las empresas ya cuenta con una estrategia multicloud que combina el almacenamiento en la nube pública, híbrida y privada. 

ventajas cloud computing
Imagen de rawpixel.com en Freepik

Ventajas del Cloud Computing

El Cloud ofrece múltiples ventajas, entre ellas:

  • Alta disponibilidad: con un sistema cloud aseguramos la capacidad operacional durante un período de tiempo mucho más largo, sin interrupciones por fallos.
  • Gran escalabilidad: obtenemos mayor capacidad de la infraestructura para hacer frente a una demanda de aumento de uso, optimizando los recursos para obtener el máximo rendimiento de los equipos.
  • Una extensa oferta de servicios: amplia cantidad de soluciones que se adaptan a las necesidades de cada negocio.
  • Un modelo de pago por uso que como resultado optimiza los costes.

Por todo esto y más, surge la necesidad de contratar perfiles que estén formados y cuenten con  conocimientos en esta tecnología, ya que en la actualidad muchos de los recursos y servicios utilizados por las empresas se hospedan en el Cloud.

 

Amazon Web Service, Microsoft Azure y Google como líderes del mercado

En la actualidad, empresas como Amazon, Google o Microsoft obtienen la mayoría de sus ingresos gracias a la venta de este tipo de servicios. En el caso de AWS, este genera un crecimiento del 57% de los ingresos operativos de Amazon. Al ser uno de los primeros en lanzar su infraestructura Cloud en 2006, esto le ha dado cierta ventaja y le ha convertido en el proveedor con mayor cuota de mercado.

Cuota de mercado de las empresas Cloud

Aún así, existen otros proveedores que pueden presumir de estar cerca de sus cifras, uno de ellos es Microsoft con Azure. Uno de los aspectos más interesantes de la plataforma Cloud de Microsoft es que mensualmente ofrece sus conocidos “Microsoft Virtual Training Days”. Estos eventos son de gran interés, puesto que en dos sesiones muy breves de unas seis horas se ofrece toda la información necesaria para obtener las certificaciones más básicas. Entre ellas el AZ-900, la certificación de Azure Fundamentals que acredita que se conocen los conceptos básicos del Cloud. Esta puede ser una gran oportunidad para iniciarse en el sector del Cloud Computing, una tecnología muy apasionante que cuenta con muchas oportunidades laborales. Os compartimos el enlace para el próximo Training Day que tendrá lugar los días 5 y 6 de octubre.

Y si ya cuentas con suficiente interés por esta tecnología y no quieres quedarte en los conceptos básicos, puedes revisar todas las formaciones que tenemos disponibles para convertirte en todo un profesional del cloud.

También puedes contactar con nosotros y te ayudaremos a orientar tu carrera formativa para alcanzar todos tus objetivos.

Autor: Jorge López, Formador IT en Icono Training Consulting.

La necesaria coexistencia generacional en las empresas

El III Barómetro DCH sobre la gestión del talento en España, elaborado por esta organización junto a EAE Business School, recoge que casi la mitad del total de las contrataciones que firmaron las empresas el pasado año 2018 recayeron en perfiles júnior; cantidad que sin ninguna duda, se eleva considerablemente en las empresas del sector IT.

De unos años a esta parte venimos observando cómo las empresas se están centrando en los perfiles más jóvenes, impulsando sus carreras con programas de incorporación, pero olvidándose del talento maduro.

La realidad es que las nuevas necesidades empresariales giran en torno a la digitalización, lo que está implicando un gran aumento de vacantes laborales para profesionales especializados en las nuevas tecnologías y/o  con competencias digitales, generando en las empresas una alta perspectiva en cuanto a la contratación de nuevo personal, que identifica con el Talento Joven.

Pese a estas expectativas de contratación, la irrupción digital se ha presentado con una doble cara, creando AMENAZAS vs OPORTUNIDADES para los mayores de 45 años, tanto en activo como en el desempleo.
– Cómo AMENAZA para los trabajadores en activo con largos recorridos profesionales pero carentes de competencias digitales, y por lo tanto con escasa cabida en este nuevo tejido empresarial, en gran parte identificados en personas que superan los 45 años.
– Pero por otro lado, cómo OPORTUNIDAD, ya que un alto porcentaje de las empresas en España tienen problemas a la hora de encontrar personal cualificado en esta área. DEFICIT DE TALENTO DIGITAL.

Hay que tener en cuenta que en España hay ya más de 1.000.000 de parados mayores de 45 años. La reducción del desempleo entre los mayores de 45 años es muy inferior a la que registran los desempleados más jóvenes, deduciéndose que el colectivo de mayor edad sobre el conjunto de los desempleados no ha dejado de crecer. A estas cifras, hay que añadir que la población está envejeciendo a un ritmo vertiginoso, por lo que a corto/medio plazo estas cifras se incrementarán.

Ante este contrasentido, ¿Cómo podemos actuar con estas realidades tan dispares? ¿Cómo podemos generar sinergias positivas?
Desde los departamentos de RRHH, no sólo debemos implicarnos con el Talento Joven, sino también con el Talento Maduro, implantando medidas que apuesten por la integración de los profesionales “mayores” en el contexto tecnológico, que solucionen su falta de empleabilidad por sus carencias digitales.

Así, de la misma manera que impulsamos el Talento Joven con la implantación de programas de incorporación, hagámoslo también con el Talento Maduro, no sólo a nivel interno dentro de las empresas con planes de reconversión basados en la formación en competencias digitales, sino también a nivel externo, integrando a los desempleados mayores de 45 años, en programas de incorporación basados en planes de formación.

Parece evidente que las nuevas generaciones están más familiarizadas con las nuevas tecnologías, pero también es cierto que el Talento Maduro es un activo muy valioso para las empresas por sus aportaciones: transferencia del conocimiento adquirido a través de la experiencia, bagaje, madurez, capacidad de rápida adaptación al cambio, sin entrar a  mencionar las ventajas económicas que conlleva su contratación.

Las empresas deben concienciarse de lo enriquecedora que es la COEXISTENCIA GENERACIONAL a todos los niveles, implantando medidas que reduzcan la brecha generacional, redefiniendo competencias y gestionando entornos colaborativos en las que TODOS APORTEMOS.

Aplicaciones a toda velocidad

Categorías

La tecnología y la formación que ofrecemos para cubrirla siempre van de la mano. De vez en cuando, salen a la luz algunos elemento que prometen un fuerte impacto en ambas, a veces a corto plazo, a veces a medio plazo. Creo que estamos en presencia de una. (más…)

Las diez claves de Angular 2+

Categorías

Plantearse qué framework vamos a utilizar en nuestros proyectos no es cosa pequeña. Es una decisión crítica. (más…)

Versión de Java, JSE 8.0

Categorías

Desde hace unos meses (18 de Marzo de 2014), tenemos una nueva versión de la plataforma estándar de Java, JSE 8.0. (más…)

"Este sitio web utiliza cookies -propias y de terceros- para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y de nuestra política de cookies, pudiendo acceder al siguiente enlace política de cookies para más información"

ACEPTAR
Aviso de cookies