Nuestro Blog

Nuestro equipo de especialistas quiso compartir algunos artículos sobre tecnologías, servicios, tendencias y novedades de nuestra industria en la era de la transformación digital.

Design Thinking para Software: Comprendamos el concepto de Design Thinking

Design Thinking para Software: Comprendamos el concepto de Design Thinking

Es bastante común que una empresa ofrezca productos o soluciones en función de aquello que los gerentes creen que necesitan los clientes. A partir de sus vivencias personales o de la observación subjetiva del contexto, las empresas generan una idea de lo que creen que valorará el usuario. Sin embargo, la realidad es que, en la mayoría de los casos, las ideas de una marca y sus colaboradores están muy lejos de lo que los usuarios realmente necesitan.

Es por esto que es importante contar con información y conocimientos, combinados con los comentarios de los usuarios, para generar una solución óptima sin riesgo de altos costos y fallas.

¿Qué es la metodología Design Thinking?

El Design Thinking es una metodología de iteración, exploración, diseño y desarrollo. Es un proceso mediante el cual se generan ideas sobre la base de la comprensión de las necesidades reales de un usuario. Busca el objetivo de concebir el diseño de una solución atendiendo a una necesidad detectada y contando con los comentarios y aportes de los usuarios.

Por último, pero no menos importante, es un proceso iterativo. Si bien se establece una serie de etapas, es importante saber que la iteración implica que se puede alternar entre etapas anteriores o posteriores, omitir etapas o realizarlas en simultáneo.

Veamos las etapas del proceso de Design Thinking y analicemos lo que representa cada una. Describiremos el proceso por medio del ejemplo de un proyecto de desarrollo de experiencia e interfaz de usuario (UX/UI) que llevamos a cabo para YPF.

Understand What Design Thinking Is - Process

Paso 1: Empatizar para comprender al usuario.

Esta etapa se centra en conocer a los usuarios que serán destinatarios de nuestra solución. Comprender cuáles son sus necesidades, cómo funcionan, cómo se compone su contexto y qué necesitan.

Para ello podemos observar y escuchar a los usuarios a través de diferentes técnicas de investigación de consumidores: entrevistas en profundidad, grupos de discusión, evaluaciones comparativas, sondeos, etc. En el caso del proyecto de YPF, el equipo de Huenei tuvo diferentes instancias de conversaciones con las áreas de interés y con futuros usuarios del software con el fin de comprender plenamente sus necesidades.

Una herramienta muy poderosa y útil, que se basa en las técnicas mencionadas anteriormente, es el mapa de empatía. Es un lienzo en blanco que nos permite plasmar nuestros hallazgos y así poder conocer al usuario desde cuatro puntos de vista: comprender lo que dice y lo que hace, saber lo que piensa y lo que siente, comprender lo que escucha, e identificar lo que ver.

Understand What Design Thinking Is - Empathy Map

Illustration by Nielsen Norman Group

 

Paso 2: Definir el problema

Después del paso anterior, tenemos que empezar a definir cuál será el alcance de nuestro desafío; en qué vamos a trabajar. En este punto debemos definir el problema y determinar nuestra meta. Para definir este objetivo, una recomendación clave es pensar en la siguiente frase:

¿Cómo podríamos hacer para?

Toda la información que recabamos en la etapa de empatía, que nos permitió conocer realmente al usuario, nos ayudará a definir correctamente esta pregunta y así desarrollar nuestro problema de investigación. En nuestro proyecto de desarrollo de UX/UI para YPF, la empresa necesitaba desarrollar una solución que le permitiese a su equipo agilizar las tareas relacionadas con la gestión de plataformas petrolíferas.

 

Paso 3: Elaborar ideas para generar conceptos y sintetizar para definir cursos de acción.

Una vez que definimos la pregunta que queremos responder (también conocida como el desafío), llega la etapa de elaboración de ideas. Esta consiste en pensar tantas ideas como sea posible para dar solución a la pregunta. Aquí la cantidad es más importante que la calidad. En este sentido, los equipos de trabajo cuentan con una amplia variedad de técnicas de elaboración de ideas, como el brainstorming, que permiten pensar con originalidad para llegar a ideas disruptivas.

Luego llevamos a cabo un proceso de síntesis en el cual tamizamos las ideas a través de un proceso de convergencia. Para esto también existen técnicas que utilizan los equipos para seleccionar las mejores ideas desde el punto de vista del usuario (satisfacción de su necesidad) y del negocio (viabilidad de recursos y resultados económicos).

Como resulta evidente, esta etapa se caracteriza por una gran divergencia (elaboración de ideas) y convergencia (síntesis) en términos del proceso. De hecho, la metodología de Design Thinking suele estar representada por una interacción constante entre divergencia y convergencia.

Illustration by ICF International 

Siguiendo el ejemplo de YPF, desde el equipo de Huenei se nos ocurrieron una gran cantidad de ideas, que luego pudieron converger en función de las necesidades específicas del cliente: una aplicación con altos niveles de usabilidad que pudiese integrarse con el resto de plataformas de gestión de YPF.

 

Paso 4: Prototipo para mostrarle al usuario una posible solución.

Una vez que definimos algunas posibles soluciones, se elaboran prototipos. Dependiendo de la cantidad de ideas que tengamos, podemos elaborar dos, tres o cuatro prototipos aproximadamente. Los prototipos son una herramienta poderosa y esencial en la innovación porque permiten convertir las ideas en algo tangible a bajo costo. Estos prototipos nos permiten implementar la filosofía de metodologías ágiles: “Realizar pruebas rápidas a bajo costo e iterar la solución rápidamente”.

Los prototipos pueden ser de alta fidelidad pero también pueden ser conceptos muy simples, como historias, dibujos, diapositivas de PowerPoint, entre otras cosas. Existen diferentes clases de prototipos y cada equipo define el ideal en función de las necesidades del proyecto y los recursos disponibles.

Para YPF, diseñamos un prototipo interactivo con la herramienta Just in Mind, que nos permitió validar la interacción y el diseño de la interfaz de usuario en las primeras etapas.

 

Paso 5: Realizar pruebas para recabar comentarios de los usuarios.

Una vez elaborado el prototipo, es hora de ponerlo a prueba. Esta etapa consiste en reunir a una muestra (generalmente pequeña) de usuarios para que interactúen con el prototipo, con el fin de recibir sus comentarios. Cuando el prototipo se considera adecuado para resolver el desafío, puede avanzar hacia el desarrollo del producto final. Sin embargo, en los casos en los que el prototipo no satisface las necesidades del usuario, debe volver a las etapas anteriores del proceso de Design Thinking para realizar ajustes.

Nuestra solución para YPF consistió en el desarrollo de una aplicación móvil que permitió a la empresa lograr una mejora en el desempeño de los empleados.

El Design Thinking es una metodología poderosa que puede ayudar a su empresa a desarrollar de manera eficiente la solución adecuada para sus usuarios. En Huenei podemos ayudarlo a conseguir sus objetivos a través de nuestros desarrollos basados ​​en metodologías ágiles..

La tercerización de Software como alternativa para aprovechar cualquier negocio

La tercerización de Software como alternativa para aprovechar cualquier negocio

La tercerización es una solución empresarial basada en la transferencia de recursos y responsabilidades a otra empresa que se dedica precisamente a la prestación de dichos servicios. En el mundo de las tecnologías de la información, la subcontratación de software se ha convertido en una práctica cada vez más común debido a las ventajas que representa.

Software Outsourcing Advantages

Illustration by Tiempo Development

 

El proceso de subcontratación está en estrecha relación con el crecimiento y los avances en el área de la tecnología de la información y los sistemas de información de las organizaciones, así como también con el impacto que estos elementos tienen en las relaciones comerciales, laborales y gubernamentales. La globalización, acompañada del acortamiento de las distancias físicas y la posibilidad de trabajar con equipos y organizaciones en diferentes países, han contribuido al avance de esta práctica durante los últimos 20 años. Hoy en día, la tercerización de servicios de TI es una solución importante que permite a las empresas de diversos sectores potenciar los servicios que ofrecen.

 

¿Tercerización de software o soluciones internas?

Ya no es necesario que una empresa tenga un área para cada proceso, o infraestructura tecnológica, para crecer. Además de una gran ventaja en la reducción de costos, la principal oportunidad que ofrece la externalización de servicios tecnológicos está relacionada con la innovación. Empresas como Huenei cuentan con equipos para la ideación, el diseño y el desarrollo de productos de software personalizados para lograr las mejores soluciones para los clientes.

Por otro lado, el desarrollo interno muchas veces implica que el equipo se desactualice con respecto a los avances de la industria y el mercado global. Esto significa que proveedores de servicios como Huenei pueden ofrecer resultados innovadores y actuales que constituyen un punto de diferenciación para las empresas clientes.

Adicionalmente, la tercerización en el desarrollo de software brinda a las empresas la posibilidad de enfocar sus actividades en el core de su negocio, sin descuidar la calidad de los productos desarrollados por los proveedores. Precisamente de eso se trata, de darle a la empresa la posibilidad de enfocarse en el desarrollo de sus actividades estratégicas, libre de preocuparse por tareas adyacentes.

 

Software Outsourcing Modalities

Las empresas ya no necesitan contar con un sector para cada proceso o infraestructura tecnológica para crecer. Además de una gran ventaja en términos de reducción de costos, la principal oportunidad que ofrece la tercerización de servicios tecnológicos tiene que ver con la innovación. Existen empresas como Huenei que cuentan con equipos para la concepción, el diseño y el desarrollo de productos de software personalizados con el fin de lograr las mejores soluciones para los clientes.

Por otro lado, el desarrollo interno a menudo lleva a los equipos a volverse obsoletos respecto de los avances de la industria y el mercado global. Esto significa que los proveedores de servicios como Huenei pueden ofrecer resultados innovadores y actuales que constituyen un punto de diferenciación para las empresas clientes.

Asimismo, la tercerización en el desarrollo de software brinda a las empresas la posibilidad de enfocar sus recursos en el núcleo de sus actividades sin descuidar la calidad de los productos desarrollados por los proveedores. De eso se trata precisamente: de darle a cada empresa la posibilidad de centrarse en el desarrollo de sus actividades estratégicas, liberándolas de tener que ocuparse de las tareas adyacentes.

 

Modalidades de tercerización de software

En los últimos años, diferentes países han demostrado cierto nivel de especialización o dominio en la tercerización de servicios en diferentes ámbitos. Por ejemplo, la prestación de servicios financieros para América y otros países del mundo generalmente se enfoca en países como México, Argentina, India y otros países asiáticos a través de la modalidad de servicios compartidos. Es común encontrar la prestación de servicios descentralizados de Centro de atención en Colombia o Perú para mercados de habla hispana. Y son países como Argentina, Chile y Brasil los que se caracterizan por ofrecer servicios de desarrollo de software y tecnología de alto nivel.

En este sentido, las empresas pueden optar por tres enfoques a la hora de seleccionar un proveedor de servicios de tercerización en función de su ubicación: Onshore, nearshore u offshore.

Onshore. Básicamente se refiere a la contratación de servicios tecnológicos de la mano de una empresa que se encuentra ubicada dentro del mismo territorio nacional. Un ejemplo de este campo es un proyecto realizado por Huenei para Aeropuertos Argentina 2000 (Argentina), que se basó en el desarrollo de un sistema de relevamiento de pasajeros con análisis automático de respuestas y presentación de indicadores en paneles de control.

Nearshore. Se refiere a empresas que tercerizan servicios a organizaciones en otros países, pero que son cercanos, ya sea geográficamente, en términos de zona horaria, idioma, cultura u otros aspectos de relevancia. Por lo general, esto facilita la implementación y reduce la desigualdad en la transferencia de conocimientos y las horas de capacitación. Como ejemplo, cabe mencionar el proyecto que llevó adelante Huenei para la Contraloría General de la República (Chile), en el cual se desarrolló una aplicación móvil para que los ciudadanos puedan acceder a información sobre las obras públicas que realiza el Gobierno de Chile.

Offshore. Otro método de desarrollo de tercerización es el conocido como offshore, que consiste en contratar los servicios de empresas en otros países distantes en términos de cultura, geografía, ubicación, idioma, etc. Al igual que la modalidad nearchore, esta estrategia trae importantes ventajas, pero por lo general implica una mayor reducción de costos, lo cual justifica las limitaciones culturales horarias y lingüísticas en la relación entre las personas. Para ejemplificar esta alternativa, podemos hablar de una plataforma de asistente de voz que Huenei desarrolló para SoundHound (Estados Unidos); el proyecto consistió en el desarrollo de un sistema de reconocimiento de voz.

Como conclusión de todo lo que se mencionó en este artículo, podemos estar de acuerdo en que el avance de las tecnologías y la globalización han llevado al rápido desarrollo de la industria de la tercerización. Cada vez son más las empresas que deciden tercerizar diferentes servicios, y el desarrollo de software es una de los principales sectores en los cuales es visible esta tendencia. La tercerización representa grandes ventajas para las empresas que necesitan productos de software para lograr sus objetivos y crecer, independientemente de la modalidad que elijan. Si busca soluciones de tercerización para su organización, lo invitamos a conocer nuestros servicios de Equipos especializados, Aumento de personal y Proyectos llave en mano para determinar cuál es la que mejor se adapta a las necesidades de su proyecto y de su empresa.

¿Cuál es el lenguaje de programación más importante en 2021?

¿Cuál es el lenguaje de programación más importante en 2021?

A medida que la programación se torna indispensable en la mayoría de los trabajos actuales, es posible que te preguntes dónde enfocarse en tu nuevo camino para aprender a programar, y teniendo en cuenta la enorme cantidad de lenguajes que existen, tomar la decisión correcta puede ser una aventura intrincada. Es por eso que decidimos escribir sobre cuál es el lenguaje de programación más importante en 2021.

En este artículo analizaremos por qué Python, el lenguaje que se está apoderando de todas las industrias, desde las artes y el diseño hasta la bioingeniería y la fabricación, puede ser una alternativa importante para los principiantes en 2021.

What's the most important programming language in 2021?

Image by Chris Ried on Unsplash

¿Qué es Python y para qué puede servir? 

La programación es la forma en que nos comunicamos con las computadoras y Python es una de las muchas formas en que podemos decirles qué hacer, al igual que JavaScript, HTML, R y SQL. La clave de Python es su relativa facilidad de uso y su enfoque orientado a objetos.

Los números hablan por sí solos: según el índice TIOBE, que mide la popularidad de los lenguajes de programación por medio de motores de búsqueda y clasificaciones, Python está a punto de convertirse en el lenguaje más popular antes de C y Java por primera vez en 20 años desde que se utiliza el índice.

Python fue obra de Guido van Rossum y, desde su lanzamiento en 1991, no ha dejado de evolucionar hasta convertirse en un lenguaje útil para crear aplicaciones web, conectar sistemas de bases de datos, modificar archivos, realizar cálculos matemáticos, manejar big data e incluso trazar prototipos.

La instalación gratuita de Python y la ejecución de código en Mac, Linux o Windows no toma más de 10 minutos. La versión más reciente del lenguaje se llama Python 3 y tiene una sintaxis más simple que la versión anterior; también sirve mejor para el desarrollo de trabajos de aprendizaje automático, inteligencia artificial y ciencia de datos.

La mayoría de la gente dice que programar en Python es similar a hablar en inglés de manera simple, y es por eso que el lenguaje suele resultar tan intuitivo desde el principio. Al mismo tiempo, es un lenguaje de programación orientado a objetos, es decir que permite representar el mundo real utilizando estructuras con comportamientos.

La programación orientada a objetos es simple porque permite a los programadores vincular estados, que representan las características de los objetos, con comportamientos y sus respectivos objetos divididos por clase. Veamos un ejemplo:

Object-oriented programming

Las librerías de Python, que son módulos de código reutilizables, son otra gran ventaja competitiva que hace que este lenguaje tenga un rendimiento superior. Hay más de 137.000 librerías que pueden eliminar la necesidad de escribir código desde cero, y la mayoría de ellas son de código abierto.

Un aspecto notable de las librerías es que pueden ayudarlo a completar tareas que de otro modo tendría que realizar en un lenguaje diferente. Por ejemplo, la librería Pandas es de gran utilidad para la creación de modelos y el análisis de datos, tareas que por lo general se suelen realizar con lenguajes más específicos como R.

Cómo aprender Python: Los mejores cursos, aplicaciones y libros 

Contrariamente a la creencia popular de que la programación solo es útil para trabajos relacionados con la tecnología, Python puede ser la siguiente habilidad que necesita para llevar adelante sus proyectos, incluso si su campo de trabajo no está relacionado con la tecnología de la información.

El código Python está en todas partes: está presente en la vida cotidiana cada vez que Amazon, Netflix, Youtube o Spotify nos recomiendan algo según nuestras preferencias, e incluso cuando hablamos con un bot o miramos Instagram o Snapchat. En Huenei, realizamos todo tipo de desarrollos de software con este increíble lenguaje.

Al mismo tiempo puede servir para fines profesionales, como análisis y visualización de datos, aprendizaje automático y minería de datos, así como también aspectos más personales, como potenciar el rendimiento de sus finanzas personales mientras se mantiene al día con los precios del bitcoin. Así que aquí tenemos una lista de los recursos más útiles disponibles para aprender este lenguaje:

Freecodecamp.org es uno de los mejores recursos en Internet para aprender a programar de forma gratuita. Esta plataforma web fundada por una organización sin fines de lucro ofrece una abundante biblioteca de cursos a la cual acceden más de 350.000 estudiantes cada mes.

Además de Python, en freecodecamp.org también se puede aprender JavaScript, CSS y HTML, y cada vez que el usuario completa un módulo, recibe un certificado. Otro beneficio es que cuenta con salas de chat y comunidades online donde se puede pedir ayuda y despejar dudas.

  • Sololearn (Android/ iOS) (Free / Pro version) 

El mejor aspecto de esta aplicación para aprender Python es que permite comunicarse con otros estudiantes en cada lección, lo cual la convierte no solo en una plataforma de aprendizaje sino también en una red social; de este modo nunca se sentirá solo mientras intenta resolver un error.

Sololearn utiliza cuestionarios como método de evaluación, y cada sesión contiene un glosario terminológico. También ofrece desafíos y competencias a través de los cuales el usuario obtiene puntos que luego podrá mostrar.

Este curso puede llevarlo de principiante a experto en el desarrollo de programas para el análisis de datos con Python 3. Y como su nombre lo indica, es sencillo para aquellos que nunca han tenido un acercamiento a este lenguaje. Se puede asistir al curso como oyente de forma gratuita u optar por una evaluación paga con un certificado.

El contenido incluye conceptos fundamentales que se explican en el libro de texto “Python for Everybody” (Python para todos) y enseña cómo manejar estructuras de datos, acceder a datos web y usar bases de datos. Al final, podrá recibir un certificado de finalización después de haber completado el proyecto final del último módulo.

Si bien aprender un lenguaje de programación en un solo día parece muy poco realista, si lo que busca es un enfoque práctico, este libro te resultará ideal, ya que te hará poner manos a la obra desde el comienzo.

Después de enseñarte cómo instalar algún software necesario, te enseñará conceptos básicos como variables, operadores, enteros, flotantes y cadenas al mismo tiempo ofrece ejemplos.

Casos de uso de Serverless Computing

Casos de uso de Serverless Computing

La revolución de la informática sin servidores ha llegado para quedarse, y es que esta novedosa tecnología permite desarrollar aplicaciones sin tener que pasar por la gestión y administración de un servidor. Bajo este modelo, las aplicaciones pueden ser agrupadas y cargadas a una plataforma para luego ejecutarlas y escalarlas en la medida en que se incrementa la demanda de las mismas.

Si bien es cierto que la “Serverless Computing” no suprime el uso del servidor cuando se ejecuta un código, si elimina todas las actividades relacionadas al mantenimiento y actualización del mismo. Estableciendo un modelo eficiente donde los desarrolladores logran desvincularse de esas tareas rutinarias para enfocarse en actividades más productivas, y con ello, elevar la eficiencia operacional de la empresa.

¿Qué es la función como servicio (FaaS)?
La función como servicio FaaS es un modelo que permite ejecutar diversas acciones informáticas en función a los eventos, y gracias a ella, los desarrolladores pueden administrar las aplicaciones logrando “baipasear” el uso de servidores durante su gestión.
En el mundo de la informática, las funciones son las encargadas de administrar los estados de un servidor, por esta razón, el modelo FaaS, desarrolla una nueva lógica que posteriormente es ejecutada en otros contenedores ubicados en la nube.

En términos generales, la función como servicio FaaS, nos permite el diseño de aplicaciones en una nueva arquitectura donde el servidor pasa a un segundo plano y la ejecución de códigos por eventos se convierte en el pilar fundamental del modelo. Esto quiere decir, que los procesos subyacentes que ocurren normalmente en un servidor no se ejecutan continuamente, pero se encuentran disponibles en caso de necesitarse.

Esto último se convierte en una clara ventaja del modelo FaaS al permitir a los desarrolladores escalar de forma dinámica, es decir, implementar la automatización de la aplicación para que se reduzca o incremente en función a la demanda real.

Además de lo anterior la función como servicio (FaaS) incrementa la eficacia y rentabilidad de las operaciones, ya que el cobro por parte de los proveedores no ocurre cuando existe inactividad sino cuando se consumen recursos.
Todo esto hace que el modelo FaaS se convierta en un elemento innovador dentro del reciente campo de la arquitectura serverless al minimizar la inversión en infraestructura, aprovechando las ventajas competitivas de la informática en la Nube

La evolución de la informática sin servidor
Con el advenimiento de la nube en la primera década del año 2000, las personas tuvieron la oportunidad de almacenar y transferir datos en la red, dejando a un lado los discos duros de sus ordenadores.

Esto, indudablemente generó importantes ventajas para el usuario, quien tuvo la oportunidad de acceder de manera inmediata a su información utilizando cualquier dispositivo conectado al internet.

Sin embargo, para los desarrolladores había un elemento que faltaba en esta ecuación, se trata del lugar donde se implementaban las aplicaciones o software. En este sentido, se implantó un modelo de “Máquina virtual”, en donde se podía apuntar a un “Servidor Simulado”, generando una importante flexibilización en las actualizaciones y migraciones, y con ello, se pudo dejar a un lado los problemas asociados a las variaciones del hardware.

A pesar de este avance, las “máquinas virtuales” tenían algunas limitaciones en su funcionamiento, y esto dio pie a la creación de los contenedores, una nueva tecnología que permitía a los administradores fragmentar el sistema operativo con la finalidad de mantener varias aplicaciones activas de forma simultánea, sin que una interfiriera en la otra.

Al observar esta realidad, podemos notar que todas esas tecnologías mantienen el paradigma del “donde se ejecuta una aplicación” como su estructura fundamental. Bajo este escenario surge Serverless Computing, la cual promete otro nivel de abstracción que centra su mirada en el código en sí, y con ello, resta importancia al lugar donde se aloja dicho código.

Con el advenimiento a finales del año 2014 del servicio AWS Lambda de Amazon, se crea un hito en la arquitectura serverless, ya que finalmente los desarrolladores podían centrar sus esfuerzos en la creación de software sin tener que preocuparse por el hardware, el mantenimiento del sistema operativo, la ubicación de la aplicación, así como su nivel de escalabilidad.

Casos de uso de la informática sin servidor
A continuación mencionaremos algunos casos exitosos de empresas que aplicaron la tecnología serverless, o informática sin servidor, dentro de sus organizaciones:

Caso 1. Major League Baseball Advanced Media (MLBAM)
La Major League Baseball ha utilizado la tecnología de informática sin servidor para ofrecer, a todos sus fanáticos, datos de los juegos de béisbol en tiempo real a través de su producto “Statcast”. Esta adquisición ha incrementado la velocidad de procesamiento de MLBAM, así como también la posibilidad de manejar mayor cantidad de datos.

Caso 2. T-Mobile US
T-Mobile US, es una operada de telefonía móvil con una fuerte presencia en el mercado norteamericano. Esta ha empresa ha decido apostar por la tecnología serverless consiguiendo importantes beneficios en cuanto a la optimización de recursos, a la simplicidad del escalado, y en la reducción de parches informáticos, aumentando con esto su capacidad real para responder de una forma mucho más eficiente a todos sus clientes.

Caso 3. Autodesk
Autodesk es una empresa que desarrolla software para la industria de la arquitectura, la construcción y la ingeniería. Recientemente esta organización decidió aplicar la tecnología serverless, con el objetivo de administrar su desarrollo, así como el tiempo de comercialización de todos sus productos. En consonancia con esta política, Autodesk creo la aplicación “Tailor”, como una respuesta eficiente a la gestión de las cuentas de sus clientes.

Caso 4. iRobot
iRobot es una empresa que diseña y fabrica dispositivos robóticos destinados al uso dentro del hogar y también en las industrias. Desde que la organización decidiera involucrarse con la tecnología de la informática sin servidor, la capacidad de procesamiento de datos de sus robots se incrementó sustancialmente, permitiendo además la captación de flujos de datos en tiempo real. De esta manera la novedosa arquitectura serverless les permite concentrase en sus clientes y no en las operaciones.

Caso 5) Netflix
Netflix se ha convertido en uno de los proveedores de contenido multimedia online bajo demanda más grande del mundo. Siendo consecuente con su espíritu innovador, esta empresa ha decidido utilizar el serverless computing para generar una arquitectura que ayude a optimizar los procesos de codificación de sus archivos audiovisuales, así como el monitoreo de sus recursos.

Conclusiones
Cuando observamos la evolución del serverless computing, y como este ha logrado impactar de manera significativa los procesos informáticos en general, entendemos que este novedoso sistema se convertirá rápidamente en el siguiente paso del mundo de la computación en la nube, auspiciando un futuro prometedor que enfila sus baterías hacia la adopción de un enfoque operativo multimodal.

¿Qué es Serverless Computing?

¿Qué es Serverless Computing?

La innovación en el mundo de la informática ocurre a un ritmo vertiginoso en todas y cada una de sus áreas, generándose importantes avances en los procesos relacionados con la “Severless Computing”, o también denominada “Arquitectura Serverless”, o simplemente, “Informática sin Servidor”.

Bajo ese contexto cada día son más las empresas que dirigen su mirada hacia la “Nube”, como una forma de optimizar la creación y ejecución de aplicaciones y procesos, minimizando el uso de servidores. De esta manera, la informática sin servidor se convierte en un elemento clave para el desarrollo adecuado de la arquitectura interna de un software.

Si bien es cierto que el severless computing disminuye el uso de un servidor, este no desaparece en su totalidad, simplemente se optimiza y redirige su uso por parte del proveedor de la nube, quien será finalmente el responsable de todas las actividades rutinarias que se asocian al mantenimiento de los servidores.

Historia
La creación de una aplicación web durante sus inicios requería del uso de hardware que permitiera la ejecución de un servidor, convirtiéndose en algunas ocasiones en un proceso complicado y costoso. Posteriormente, con el advenimiento de la nube, las empresas y los desarrolladores tuvieron la posibilidad de alquilar espacios en servidores remotos para realizar sus actividades.

Sin embargo, este proceso tampoco resultó del todo eficiente, ya que las empresas contrataban un espacio superior al necesario para darle estabilidad al sistema en caso de picos de demandas muy elevados, incurriendo de esta manera en gastos adicionales, por esta razón, surgió la necesidad de contar con una plataforma que le permitiera a los desarrolladores pagar solo por el servicio utilizado.

En este sentido, la historia de la informática sin servidor es reciente, encontrándose los primeros reportes de esta tecnología en un artículo del especialista en aplicaciones descentralizadas y desarrollo sin servidor, Ken Fromm, publicado en octubre 2012 cuyo título es “Why the Future of Software and Apps is Serverless”, o en español, “Por qué el futuro del software y las aplicaciones no tiene servidor”.

Para noviembre de 2014, la empresa Amazon lanza al mercado su servicio “AWS Lambda”, el cual permite a los desarrolladores ejecutar códigos y administrar de forma automática todos sus recursos sin la necesidad de manejar la infraestructura que subyace durante estos procesos.

Luego de esto en julio del 2015, Amazon crea “API Gateway”, un servicio para la creación y mantenimiento de API REST, HTTP y WebSocket, donde los desarrolladores puedan generar Interfaz de Programación de Aplicaciones que accedan a Amazon Web Services o a otros servicios web, así como también a los datos almacenados en la nube. Finalmente en octubre de 2015, nace “Serverless Framework” como el primer marco desarrollado para crear aplicaciones en AWS Lambda.

Visión general de la arquitectura sin servidor
El Serverless Computing, o la arquitectura sin servidor, no implica la total inexistencia de un servidor como tal, ya que en realidad lo que se busca con este sistema es que el proveedor de la nube administre adecuada y eficientemente todos los procesos relacionados con el servidor en sí.
En este sentido, una de las características que resalta de Serverless Computing es el abandono de la forma tradicional de gestionar los servidores en una empresa, para sustituirlo por la administración automatizada que lleva a cabo el proveedor de la nube.

Esto significa, que el proveedor de la nube es el responsable de administrar todos los recursos organizacionales durante la ejecución de una actividad en particular, quedando relegada la antigua acción administrativa que realizaban los usuarios dentro de la organización.

Bajo este novedoso esquema, las actividades informáticas de una empresa se facturan en función a la necesidad de recursos para cada tarea en particular, generándose un claro contraste con el antiguo modelo donde se contrataban espacios que a menudo no se utilizaban, obteniendo con esto un importante ahorro de capital, ya que solo se paga lo que efectivamente se utiliza.

Además de lo anterior, en el modelo Serverless Computing ya no es necesario hacer reservas de servidores, evitándose con esto que los desarrolladores vallan al servidor mediante una Interfaz de Programación de Aplicaciones (API) para agregar recursos, ya que será el proveedor de la nube el total responsable de realizarlo automáticamente.

Ventajas
La informática sin servidores presenta una serie de ventajas cuando se compara con el modelo tradicional, y entre ellas podemos mencionar las siguientes:

  • La informática sin servidor reduce significativamente los costos operativos del desarrollador, ya que permite pagar solo por el espacio utilizado.
  • Aumenta la productividad de las empresas, quienes tendrán la posibilidad de asignar aquellas tareas relacionadas a la administración de servidores a terceros, y con ello enfocarse directamente en el desarrollo de las aplicaciones.
  • Los tiempos asociados a la comercialización disminuyen en una plataforma Severless Computing, ya que los desarrolladores tendrán la opción de modificar o agregar paulatinamente los códigos.
  • Los proveedores de este novedoso servicio pueden gestionar todo lo relacionado al escalado de códigos bajo la demanda real.
  • Permite enfocarse en unificar el desarrollo de software y la operacionalización del mismo, es decir adoptar la práctica de ingeniera de sistema “DevOps”.
  • Optimiza el desarrollo de aplicaciones gracias a la incorporación de componentes esenciales del modelo BaaS que ofrecen otros proveedores.

Desventajas
En cuanto a las desventajas o inconvenientes de la informática sin servidores podemos mencionar lo siguiente:

  • Existe una importante restricción en la capacidad interactiva de los proveedores de la nube que influye directamente en la personalización y flexibilización de los sistemas.
  • Se genera dependencia de los proveedores del servicio.
  • Pudiese ocasionar algunos problemas asociados a la falta de control de servidores propios.
  • El ingreso a máquinas virtuales y sistemas operativos se ve limitado.
  • Implementar una arquitectura serverless implica un esfuerzo económico ya que, por lo general, se requiera actualizar los sistemas para que estén acordes con las demandas del proveedor.

¿Qué función desempeña el proveedor de nube en la informática sin servidor?
Los proveedores de nube juegan un rol fundamental en la arquitectura serverless, ya que son ellos los encargados de ejecutar los servidores, y al mismo tiempo, asignar recursos para los desarrolladores.
En este sentido, los proveedores de nube ofrecen dos métodos principales dentro del esquema de la informática sin servidores, llamados “Function as a Services” (FaaS) y “Backend as a Services” (BaaS).

El primer método, “Function as a Services” (FaaS), le permite a los desarrolladores aplicar micro servicios cuando escriben y actualizan los diferentes códigos a implementar en la nube, simplificando con esto la incorporación de datos, la reducción de los tiempos de ejecución, así como, la gestión oportuna del proveedor.

En segunda instancia, el método “Backend as a Services” (BaaS), se fundamenta en la prestación de servicios a terceros basado en la Interfaz de Programación de Aplicaciones (API) establecida por el proveedor, destacándose entre ellos, las bases de datos, los servicios de autenticación, y los procesos de cifrado.
Finalmente, vale la pena destacar que grandes proveedores de nube funcionan bajo la modalidad “Function as a Services” (FaaS), como por ejemplo AWS Lambda de Amazon, Azure Functions de Microsoft, IBM Cloud Functions y Google Cloud.

Conclusión
Sin lugar a dudas el Severless Computing, ha producido un impacto significativo en el mundo de la informática, al permitir que los desarrolladores se enfoquen en la creación de software sin tener que preocuparse por la administración de las aplicaciones ni por el código de producción de las mismas, ya que será el proveedor de la nube el encargado de administrar de manera eficiente los recursos necesarios para esa importante actividad.

¿Querés conocer más sobre el tema? Visitá nuestra página IT Continuity para entender más sobre los servicios que ofrecemos relacionados a la infraestructura, y Software Development, para aquellos relacionados a desarrollo a medida.

Casos de uso de Blockchain Empresarial

Casos de uso de Blockchain Empresarial

En artículos anteriores, realizamos una “Introducción a Blockchain Empresarial” y resumimos “Aspectos técnicos sobre Blockchain“. En esta última entrega de la serie, nos enfocaremos en los patrones de uso más difundidos y analizaremos el caso emblema, fuera de lo que es Finanzas Descentralizadas (DeFi), de la Cadena de Suministros.

Casos de uso

Bancos y Finanzas
Las DeFi incluyen activos digitales, protocolos, contratos inteligentes y Aplicaciones Distribuidas (dApps). Es el caso de uso original e implica todo lo relacionado a criptomonedas y al mundo financiero en general. Podemos mencionar la red global de pagos electrónicos Ripple, con el apoyo de instituciones como Santander, Itaú, American Express y muchas otras. Otro ejemplo es Santander One Pay FX, una red Blockchain para agilizar las transferencias internacionales.

Cadenas de suministro
Después de DeFi, es el caso de uso más difundido. Blockchain permite la trazabilidad completa de cualquier bien, desde el productor hasta el consumidor final, ya sean materias primas, alimentos o medicamentos, en el caso de la Farmacovigilancia. Es común además la utilización de dispositivos IoT (Internet of Things) para el registro automatizado en las distintas etapas del flujo. Ya existen numerosos casos de éxito en diversas industrias, tales como la alimenticia (donde Walmart y posteriormente IBM Food Trust son el caso más emblemático que analizaremos), la farmacéutica (Novartis), la automotriz (Ford, BMW, Tesla), entre otras.

Auditoría
Aprovechando la inmutabilidad, una de las características distintivas de Blockchain, se almacenan transacciones que no puedan ser modificadas posteriormente, lo que permite una auditoría completa de información crítica. Esto se utiliza en la Prevención de Fraudes, Gestión de Reclamos, Seguros (BBVA), Salud (EHR, manejo de Historias Clínicas, con proyectos como MedicalChain & MedRec) y Farmacovigilancia (por ejemplo, el proyecto Pharmaledger).

Administración Pública
Actualmente hay muchos gobiernos en el mundo que investigan cómo aprovechar los beneficios de Blockchain en sistemas de Identidad Ciudadana, votaciones, presupuestos y licitaciones públicas para aumentar la eficacia y transparencia del Estado. Latinoamérica se esfuerza por no quedarse atrás, y ya existen muchos desarrollos en marcha.
En Argentina existen varios proyectos sobre la red Blockchain Federal Argentina (BFA), como las sesiones de Diputados del Congreso, Registro de Quejas del Banco Central, Carpeta Ciudadana de la Ciudad de Buenos Aires, entre otros. También Brasil, Perú y Uruguay están realizando avances. A nivel global, Emiratos Árabes, en particular Dubai, planea convertirse para el 2021 en una ciudad gobernada completamente con Blockchain, sin papeles, a través de su proyecto Smart Dubai.

Información Certificada
Muchas instituciones utilizan Blockchain para la certificación y validación de todo tipo de registros educativos (Carpeta Ciudadana en Buenos Aires), laborales y personales.

Compartición de datos
En un nuevo modelo centrado en el ser humano, las personas toman control de su información, la centralizan y son ellas las que deciden a quienes darles acceso. Por ejemplo, los pacientes son dueños de su Historia Clínica completa y pueden dar acceso al profesional que lo necesite (EHR » MedicalChain & MedRec), los ciudadanos pueden compartir sus credenciales (proyectos Identidad Digital Soberana en Argentina, Data Sharing Toolkit en UAE, etc.).

Tokenización de activos
Se utiliza Blockchain para la gestión de activos digitales, en el intercambio de todo tipo de bienes entre individuos o entidades, tales como entradas a espectáculos (UEFA & Ticketmaster), puntos de programas de fidelidad (American Express), inmuebles (UK Land Registry en Inglaterra), etc.

Propiedad intelectual
Esta tecnología es usada para crear registros con fecha, hora y autoría, para optimizar el manejo de la Propiedad Intelectual. Usada por Kodak con Tracking de fotos y Spotify Mediachain para atribuir de forma precisa cada canción a sus creadores.

Caso de uso: Cadena de suministro de alimentos
Entre los numerosos casos de uso de Blockchain, su aplicación en una cadena de suministro es una de las más emblemáticas, con desarrollos en todas las industrias.

En una cadena de suministro de alimentos, existen múltiples actores involucrados: agricultores, ganaderos, proveedores, cooperativas, empacadoras, transportistas, exportadores, importadores, mayoristas, minoristas y, por último, el consumidor final. La seguridad sanitaria es una de las mayores preocupaciones en la industria alimentaria. Al igual que la industria farmacéutica, el sector alimentario se enfrenta a una mayor presión regulatoria de organismos gubernamentales.

Walmart es un pionero en este campo, ya que había intentado varias veces la creación de un sistema que permita la transparencia y completa trazabilidad en el sistema alimentario, pero no fue sino hasta 2016 que lo logró. Blockchain, con su libro mayor descentralizado y compartido, parecía hecho a medida de sus necesidades. Comenzó a trabajar con su socio tecnológico IBM en un sistema de trazabilidad alimentaria basado en Hyperledger Fabric. Para carne de cerdo en China, permitió cargar certificados de autenticidad, lo que brinda más confianza a un sistema donde solía ser un problema grave, mientras que para mangos en los Estados Unidos, el tiempo necesario para rastrear su procedencia pasó de 7 días… a 2 segundos!

El sistema desarrollado permite saber el origen exacto de cada ítem (para controlar brotes de enfermedades) en segundos, descartando únicamente los productos de las granjas afectadas. Por ejemplo, permite que un cliente tome un frasco de comida para bebés y vea dónde se fabricó, rastreando todos los ingredientes hasta las granjas.

Como resultado, se lanzó IBM Food Trust, involucrando a múltiples empresas como Nestlé y Unilever. Esta plataforma permite conocer en tiempo real:

  • Inventario en cada lugar.
  • Frescura de cada producto.
  • Tiempo promedio de permanencia.


Blockchain permite rastrear un producto a través de las distintas operaciones industriales, logísticas y administrativas, partiendo desde el inicio del proceso y llegando hasta el final, y viceversa.
De esta forma, se puede consolidar un registro seguro y distribuido con el historial de todos los actores de la cadena, sus intercambios durante la producción y distribución de cualquier producto, gestionando la información de manera confiable e inviolable. Las transacciones automáticas, al no tener intermediarios (por ejemplo, un banco), permiten liquidaciones más rápidas, con las condiciones pautadas en los smart contracts.

IoT y Blockchain combinados ofrecen grandes beneficios. Los sensores pueden capturar una variedad de datos en las instalaciones de fabricación o en los medios de transporte, y transmitir toda la información a un repositorio centralizado en tiempo real. Los gerentes a su vez, pueden obtener una multitud de nuevos conocimientos sobre el uso de materiales, las condiciones de transporte, etc., y aplicarlos en la planificación/optimización. Los productores pueden registrar vía IoT todo el proceso de crecimiento del producto (alimentación, pesticidas, humedad, almacenamiento, ubicación). Los transportistas pueden garantizar automáticamente que los productos se movilizan en las condiciones adecuadas de temperatura, humedad, etc., logrando una mejor visibilidad de la logística general.

Conclusiones
A lo largo de esta serie de 3 artículos, conocimos la tecnología Blockchain y su aplicación en el ámbito empresarial. Pudimos entender su funcionamiento básico, las plataformas más importantes y cómo está siendo utilizada actualmente en muchas industrias.

¿Cómo puede Huenei ayudar a su negocio con Blockchain?

  • Consultoría: Lo ayudamos a elegir la tecnología que mejor se adapte a sus necesidades.
  • Arquitectura: Definición, despliegue y puesta en marcha.
  • Desarrollo: De Contratos Inteligentes y sistemas completos basados en Blockchain.

Lo acompañamos desde el planeamiento y definición de requerimientos, hasta la puesta en marcha del proyecto final.