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.

Cloud Computing en el Centro de tu Estrategia: Cuáles son los Diferentes Tipos

Cloud Computing en el Centro de tu Estrategia: Cuáles son los Diferentes Tipos

¿Escuchaste hablar de la nube? El término Cloud Computing viene resonando hace ya algunos años. Seguramente has escuchado sobre sus virtudes, como que permite una mayor productividad y seguridad en todos los trabajos. Pero a la hora de decidir implementar soluciones de Cloud Computing en tu empresa, surge un desafío importante: ¿Qué tipo de nube deberías utilizar? En este artículo te contamos todo lo que necesitas saber sobre las distintas tipologías de Cloud, para que puedas tomar la decisión correcta.

 

Tipos de Cloud Computing que debe conocer

Al seleccionar el sistema de Cloud a implementar en tu organización, cuentas con cuatro tipos distintos: nubes públicas, nubes privadas, nubes híbridas y multinubes. Asimismo, contamos con tres tipologías de servicios de Cloud Computing: Infraestructura como Servicio (IaaS), Software como Servicio (SaaS) y Plataforma como Servicio (PaaS).

Pero… ¿cuáles son las similitudes entre ellos? Todos extraen, agrupan y comparten recursos informáticos en una red. De esta forma, se inicia el proceso de computación en la nube (o Cloud Computing), que es un sistema que ejecuta cargas de trabajo. En este sentido y para facilitar la administración, las herramientas de Cloud suelen incluir un sistema operativo, una plataforma de gestión, virtualización o automatización, entre otros elementos.

Sin embargo, también hay varias diferencias. Nos gustaría poder contártelas a continuación!

 

Nubes públicas

Microsoft define a las nubes públicas como aquellas que se crean a partir de una infraestructura de TI externa al usuario final. Por ejemplo, algunos proveedores conocidos son Google Cloud, Amazon Web Services (AWS) e IBM Cloud. Hasta hace algún tiempo, las nubes públicas se ejecutaban fuera del sitio.

Sin embargo, los proveedores de nube pública han comenzado a ofrecer estos servicios en los centros de datos locales de sus clientes. Entonces, ¿cuándo se vuelven “públicas”? Cuando los entornos están particionados y se distribuyen entre múltiples usuarios.

 

Nubes privadas

Las nubes privadas consisten en sistemas de nube que están específicamente dirigidos a un usuario final, pero que también pueden ser un grupo de ellos. Esto significa que muchas nubes pueden convertirse en nubes privadas en los casos en que la infraestructura de TI esté destinada solo a un cliente, de forma aislada.

Sin embargo, también se debe tener en cuenta que hoy en día existe una tendencia en las organizaciones hacia la creación de nubes privadas en centros de datos de terceros fuera de las instalaciones. En otras palabras, las nubes privadas ya no necesitan provenir de una infraestructura de TI local. A continuación te contamos sobre los dos subtipos de nubes privadas con los que te puedes encontrar:

  • Nubes privadas exclusivas. Puedes entenderlas como nubes dentro de otras nubes. Es decir, puedes tener una nube exclusiva en una nube pública, pero también una nube privada. Esto sucede en las grandes empresas. Por ejemplo, el departamento de contabilidad puede tener una nube dedicada dentro de la nube privada corporativa.
  • Nubes privadas administradas. En este caso, los clientes crean y usan una nube privada administrada por un proveedor externo. Este tipo es perfecto para aquellas empresas que no cuentan con los recursos o habilidades necesarias para autogestionar sus nubes.

 

cloud computing

 

Nubes híbridas

Estos tipos de Clouds se conforman como un mix de las dos tipologías anteriores. Google define las nubes híbridas como ambientes de TI que se crean en multiplicidad de entornos y se conectan a través de redes de tipo LAN, WAN, VPN, o API.

¿Y cuáles son las características de estas nubes? Suelen ser los más complejos. Una nube híbrida, al igual que los modelos híbridos de aplicaciones, se compone de una combinación de elementos. En este caso, suele tener al menos una nube privada y una nube pública. También es posible tener dos o más nubes privadas, dos o más nubes públicas y un entorno virtual conectado a una nube, generalmente con un sistema operativo.

Esto nos permite entender que los sistemas de TI se transforman en nubes híbridas cuando las aplicaciones se trasladan a diferentes entornos. Todos estos entornos digitales necesitan ser gestionados como un único entorno, a través de una plataforma que se integre en la organización y gestión.

 

Multinubes

El último tipo de Cloud del cual queremos hablarte son las Multinubes. Éstas constan de al menos dos servicios en la nube, por lo que se prevén al menos dos proveedores de nube pública o privada en simultáneo. ¿Te parece similar a lo que mencionábamos sobre las nubes híbridas? Es que todas las nubes híbridas son a su vez multinubes, pero no todas las multinubes son híbridas.

Las multinubes se vuelven híbridas solamente en los casos en que se conectan varias nubes a través de alguna integración. El entorno digital de múltiples nubes se puede crear a propósito, por ejemplo, cuando los datos sensibles necesitan ser controlados. También pueden generarse aleatoriamente, por ejemplo, luego de usar un software no aprobado por la empresa.

 

Entonces, hemos visto que existen diferentes sistemas de computación en la nube. Ninguna alternativa es superadora o “la mejor”, sino que depende de las necesidades específicas de cada organización. Todas ellas pueden ser útiles, dependiendo de los diferentes contextos. Por ello, es clave que sepas cuáles son tus objetivos a la hora de contratar este software.

En resumen, hemos analizado los diferentes tipos de computación ruidosa y lo que debes tener en cuenta al optar por uno de ellos. ¡Guarda este artículo para cuando necesites implementar la nube en su empresa!

La computación en la nube es la mejor alternativa para su empresa, pero ¿por qué?

La computación en la nube es una excelente herramienta para revolucionar su negocio. Pero, ¿sabe cómo aprovecharla al máximo? Si está buscando mejorar sus resultados, esto es lo que necesita saber.

La computación en la nube es la mejor alternativa para su empresa: ¿qué es exactamente?

Este término se le aparece con frecuencia en el día a día, pero no sabe exactamente qué es o para qué sirve. Bueno, se trata de un concepto asociado con la transformación digital que estamos atravesando. Los servicios en la nube hacen referencia a la posibilidad de utilizar diferentes sistemas sin necesidad de estar en presencia del hardware físico en el que se alojan los archivos.

Tal vez no haya entendido exactamente lo que es, ¡pero aquí hay un ejemplo que le resultará útil! Todos los días usamos el correo electrónico para enviar y recibir mensajes de otras personas. Ahora bien, ¿ha pensado alguna vez dónde se almacenan esos mensajes? La respuesta es simple: en un servidor externo. Ni siquiera necesita una aplicación para acceder a su cuenta de correo electrónico, ya que puede hacerlo desde un navegador. De la misma forma, su cuenta de correo electrónico también tiene un sistema de almacenamiento remoto. Es decir que no afecta su disco duro.

Este es el cambio de paradigma que propone la tecnología en la nube. En la actualidad, los archivos que usa no necesariamente deben estar disponibles en su computadora o smartphone. Al contrario: están alojadas en un servidor remoto al cual se puede acceder en cualquier momento. ¡Esta es una gran revolución para el mundo del trabajo!

Formas en que la tecnología en la nube puede revolucionar su empresa

Estos son algunos ejemplos de formas en que la computación en la nube resulta útil para las operaciones diarias de una empresa.

 

 

  • Mayor eficiencia en la gestión

Si tiene una empresa, es posible que haya implementado un sistema “en la nube” sin saberlo. Esta situación se dio durante la pandemia cuando muchas empresas implementaron el home office. El cambio fue de tal magnitud que, según la BBC, este sistema redefinirá el trabajo en la era pospandemia. 

Muchos empleadores se dieron cuenta de que trabajar de este modo era más eficiente. Por ejemplo, algunos empleados se sienten más cómodos trabajando desde sus casas. Gracias a la tecnología en la nube, pueden acceder a todos los archivos de importancia sin tener que estar físicamente cerca de las computadoras.

¿El resultado? Mayor satisfacción de los empleados. Así es como esa metodología puede fortalecer la cultura empresarial y aumentar la productividad de los empleados. 

 

  • Mayor seguridad para sus operaciones

¿Alguna vez pensó en los problemas de seguridad que implica tener todos los archivos en el mismo dispositivo? Lo cierto es que, siempre que navega por Internet, corre el riesgo de recibir malware que su antivirus no puede detectar. Lo mismo puede ocurrir con los discos duros que se pueden romper, lo cual provoca una pérdida de datos.

Si piensa que estos problemas solo afectan a las empresas pequeñas, debemos decirle que esto no es cierto. Hay un caso muy particular que lo convencerá de adoptar la tecnología en la nube: Pixar. Según The Next Web, esta empresa de animación tuvo un problema de seguridad durante la creación de Toy Story 2, una de sus franquicias más exitosas.

La película se convirtió en una de las mejores películas de todos los tiempos. Ganó 500 millones de dólares en taquilla según AnimationCareerReview. Sin embargo, casi no llega a estrenarse: durante la producción, la computadora comenzó a arrojar errores y se perdieron los datos esenciales del disco duro.

Se ejecutó un comando incorrecto, lo cual provocó que se borrasen escenas muy importantes de la película. ¡Se había perdido un trabajo de 10 meses! Sin embargo, una empleada tenía una copia de seguridad en su computadora. Si bien la información se perdió, Pixar ahorró $ 100 millones gracias a esa acción.

Lo mismo puede pasar en su empresa: si tiene copias de seguridad en un sistema en la nube, estará protegido ante cualquier inconveniente que pueda ocurrir en el disco duro.

 

  • Oportunidades comerciales instantáneas

Este aspecto es muy útil para generar grandes negocios con personas de cualquier parte del mundo. Imagine la siguiente situación: recibió una propuesta comercial de una persona de otro país. Dispone de un documento donde tiene toda la información de relevancia para que la otra parte entre en la negociación.

Si no existieran los sistemas en la nube (como sucedía hace algunos años), tendría que sacar un pasaje de avión, una estadía en un hotel y preparar un discurso para una propuesta que ni siquiera sabe si tendrá éxito. Bueno, ahora gracias a los sistemas en la nube, puede hacer una videollamada. En ese momento puede compartir los documentos necesarios en vivo. Si lo hace, ahorrará tiempo y dinero, por lo tanto sus oportunidades comerciales serán mucho mayores y más eficientes.

En definitiva, ha visto que la computación en la nube es una tecnología que está revolucionando todos los negocios. Si invierte en un sistema 100% digital, seguramente verá resultados comerciales con el tiempo. ¡Esperamos que esta información le haya resultado útil!

DevOps: ¿Cuál es la forma correcta de desarrollar software y manejar procesos de TI?

DevOps: ¿Cuál es la forma correcta de desarrollar software y manejar procesos de TI?

Muchos desarrolladores necesitan saber exactamente qué es la metodología DevOps y para qué sirve. Si quiere tener un mejor desarrollo de TI en su empresa, aquí encontrará todo lo que necesita saber sobre este término.

DevOps: ¿qué es y en qué consiste?

“DevOps” es uno de los términos de mayor relevancia en el desarrollo de TI. Si lleva unos meses programando, es probable que ya sepa exactamente a qué se refiere este acrónimo. Sin embargo, si está a punto de empezar y aún no se decides, probablemente necesite esta información.

DevOps es un acrónimo en inglés que hace referencia a las palabras “development” (desarrollo) y “operations” (operaciones). Por lo tanto, es una metodología de desarrollo de software que permite una buena colaboración con todos los profesionales de la tecnología de la información (TI). De esta forma, busca generar interdependencia en el desarrollo de software y las operaciones de TI.

Hay 3 ideas fundamentales para entender el concepto de DevOps. Estas son las siguientes:

  • Permite integrar desarrolladores de software y administradores de sistemas.
  • Es un proceso complejo para la creación de software de calidad.
  • Tiene una filosofía que busca la eficiencia en todos los procesos. Es decir, funciona más rápido y a menor costo. 

En cuanto al origen de este término, debe saber que surgió en 2008, en Toronto. Se relaciona con la metodología ágil, indispensable en el mundo del desarrollo de software. Cuando Andrew Clay y Patrick Debois buscaron llevar la filosofía ágil al mundo de la administración de sistemas, usaron este término.

En 2009, el término incluso se convirtió en trending topic en Twitter, ya que pasó a ser un verdadero “movimiento cultural”. En otras palabras, el término DevOps se asoció con el progreso constante, el desarrollo exitoso de software y la posibilidad de encontrar nuevas formas de trabajar con código.

¿Cuáles son las características básicas de la metodología de trabajo DevOps?

Tal como mencionamos anteriormente, el estilo de trabajo DevOps implica tener en cuenta diferentes elementos.  Es fundamental destacar que cada desarrollo es diferente, por lo tanto cada proyecto es único. 

Sin embargo, a grandes rasgos, se podría decir que estos son los fundamentos de este sistema:

  • Código. Por supuesto, estamos hablando de desarrollo de software, por lo tanto el código siempre está presente. Aquí también dependerá del lenguaje que utilice, es por ello que es común ver metodologías de trabajo con Python, Ruby, Java, entre otras. Lo importante es que siempre tenga algo en lo cual trabajar. Después de todo, su negocio puede beneficiarse de esto, dado que sus proyectos serán más eficientes.
  • Pruebas. La metodología DevOps implica pruebas continuas. No se trata de mirar el lado negativo de cada proyecto, sino de anticipar posibles complicaciones. La idea es poder realizar pruebas para garantizar la calidad final del desarrollo de TI. Siempre intente hacer la mayor cantidad de pruebas posible, ya que esto también le permitirá tener una buena reputación como empresa.
  • Seguimiento. Finalmente, también es necesario garantizar un seguimiento constante del desarrollo. No se trata solo de hacer una única implementación, sino de tener un equipo que busque mejorar la experiencia del usuario. Por lo tanto, deberá ofrecer soporte para cualquier eventualidad que afecte el desempeño del producto.

Los métodos de trabajo DevOps más importantes

Existen algunos ejemplos que le permitirán entender en qué consiste este proceso de DevOps. En consecuencia, este marco de trabajo también una filosofía, ya que busca aumentar la eficiencia de cada desarrollo a través de una comunicación exitosa entre los desarrolladores y el propio código.

Estos son algunos métodos comunes:

Scrum

Scrum es un método que permite el trabajo colaborativo entre equipos que buscan desarrollar un producto. La idea es que puedan organizarse para tener mejores resultados a través de buenas prácticas en conjunto. Por ejemplo, en Scrum, los proyectos de una negocio se dividen en ciclos de tiempos cortos y duración fija, entre 2 y 4 semanas. 

Según Agile Alliance, al final de cada ciclo se entrega una versión preliminar con diferentes funciones. A partir de ahí se lleva a cabo una revisión que implica resaltar fortalezas y debilidades. Por lo tanto, este ciclo se repite hasta la fecha de entrega final a fin de garantizar un resultado mucho más satisfactorio y exitoso. 

Ágil

En el mundo del desarrollo de TI, la metodología ágil, que mencionamos anteriormente, es exitosa. La idea del método ágil implica poder inspeccionar el código con frecuencia a fin de facilitar el trabajo en equipo. Según Wirke, también es relevante para responder con eficacia a los cambios. 

Por lo tanto, la idea es generar un entorno flexible capaz de adaptarse a las necesidades del cliente. El desarrollo nunca debe ser estático, sino que todo el proceso debe estar estructurado de manera que se puedan realizar cambios rápidamente. De este modo, en caso de surgir una situación urgente, los desarrolladores de su empresa podrán realizar los cambios necesarios. 

Ahora sabe exactamente qué es la metodología DevOps y por qué debería incorporarla al ciclo de trabajo de su empresa. Sin duda, el desarrollo de código aprovechará los beneficios de este marco de trabajo, que es necesario en un mundo tan cambiante. ¡Esperamos que esta información le haya resultado útil!

Data Lakes en AWS

Data Lakes en AWS

Introducción

En el artículo Conceptos clave sobre Data Lakes, hablamos sobre su importancia, arquitectura y los comparamos con un Data Warehouse. En esta entrega, nos enfocaremos en su implementación usando Amazon Web Services (AWS), la plataforma cloud de Amazon. Veremos el flujo general, los distintos servicios disponibles y, por último, AWS Lake Formation, una herramienta especialmente diseñada para facilitar esta tarea.

 

Flujo general

Un Data Lake respalda las necesidades de nuestras aplicaciones y analíticas, sin que debamos preocuparnos constantemente por el aumento de recursos de almacenamiento y cómputo, a medida que la empresa crece y la cantidad de datos aumenta. Sin embargo, no existe una fórmula mágica para su creación. Generalmente, implica el uso de docenas de tecnologías, herramientas y entornos. En el siguiente diagrama, se puede observar el flujo general de datos, desde la recopilación, el almacenamiento y el procesamiento, hasta el uso de las analíticas mediante técnicas de Machine Learning y Business Intelligence.

Servicios disponibles en AWS

AWS brinda un amplio conjunto de servicios administrados que ayudan a constituir un Data Lake. Es necesaria una planificación y diseño adecuados para migrar un ecosistema de datos a la Nube, y para ello es fundamental comprender la oferta de Amazon. Aquí haremos mención de solo algunas de las herramientas más importantes en cada etapa del flujo.

 

Ingestión

El primer paso es analizar los objetivos y beneficios que se desean lograr con la implementación de un Data Lake basado en AWS. Una vez diseñado el plan, se deben migrar los datos a la Nube, teniendo en cuenta el volumen de los mismos. Es posible acelerar fácilmente esta migración con servicios como Snowball y Snowcone (dispositivos edge para almacenamiento y cómputo) o DataSync y Transfer Family, para simplificar y automatizar transferencias.

 

Canalización

En este paso, se puede operar de 2 modos: por Lotes o por Streaming.

En la Carga por Lotes, se utiliza AWS Glue para extraer información de varias fuentes, en intervalos periódicos, y moverlos al Data Lake. Normalmente implica alguna transformación mínima (ELT), como la compresión o la agregación de datos.

En el caso de trabajar con Streaming, se ingieren datos generados continuamente a partir de múltiples fuentes, como archivos de logging, telemetría, aplicaciones móviles, sensores IoT y redes sociales. Se pueden procesar durante una ventana de tiempo circular y canalizar el resultado al Data Lake.

Las Analíticas en tiempo real brindan información útil para procesos de negocio críticos que dependen del análisis de datos en streaming, como algoritmos de Machine Learning para la detección de anomalías. Amazon Kinesis Data Firehose (servicio gestionado para streaming) ayuda a realizar este proceso desde cientos de miles de orígenes en tiempo real, en lugar de cargar datos durante horas y procesarlos luego.

 

Almacenamiento y Procesamiento

En un Data Lake de AWS el servicio más importante de todos es Amazon S3, que brinda almacenamiento de alta escalabilidad, excelentes costos y niveles de seguridad, ofreciendo así una solución integral para llevar a cabo diferentes modelos de procesamiento. Puede almacenar datos ilimitados y cualquier tipo de archivo como un objeto. Permite crear tablas lógicas y jerarquías a partir de carpetas (por ejemplo, por año, mes y día), permitiendo la partición de datos en volumen. También ofrece un amplio conjunto de funciones de seguridad, como controles y políticas de acceso, cifrado en reposo, registro, monitoreo, entre otros. Una vez que los datos se cargan, pueden usarse en cualquier momento y en lugar, para afrontar cualquier necesidad. Cuenta con una amplia gama de clases de almacenamiento (Estándar, Inteligente, Acceso poco frecuente), cada una con diferentes capacidades, tiempos de recuperación, seguridad y costo.

AWS Glacier es un servicio para el archivado seguro y la gestión de copias de seguridad, a una fracción del costo de S3. Las recuperaciones de archivos pueden demorar de pocos minutos a 12 horas, dependiendo de la clase de almacenamiento seleccionada.

AWS Glue es un servicio administrado de ETL y Catálogo de Datos que ayuda a encontrar y catalogar metadatos para realizar consultas y búsquedas más rápidas. Una vez que Glue apunta a los datos almacenados en S3, los analiza mediante rastreadores automáticos y registra su esquema. El propósito de Glue es realizar transformaciones (ETL/ELT) usando Apache Spark, scripts Python y Scala. Glue no tiene servidor; por lo tanto, no hay ninguna infraestructura configurada, lo que lo hace más eficiente.

Si se requiere una indexación de los contenidos del Data Lake, puede utilizarse AWS DynamoDB (base de datos NoSQL) y AWS ElasticSearch (servidor de búsqueda de texto). Además, mediante el uso de funciones AWS Lambda, activadas directamente por S3 en respuesta a eventos como la carga de nuevos archivos, pueden dispararse procesos para mantener su Catálogo actualizado.

Analíticas para Machine Learning y Business Intelligence

Hay varias opciones para obtener información de forma masiva del Data Lake.

Una vez que los datos han sido catalogados por Glue, se pueden utilizar diferentes servicios en la capa de cliente para analíticas, visualizaciones, dashboards. etc. Por ejemplo, Amazon Athena, un servicio serverless interactivo para consultas exploratorias ad hoc utilizando SQL estándar; Amazon Redshift, un servicio Data Warehouse para consultas e informes más estructurados; Amazon EMR (Amazon Elastic MapReduce), un sistema administrado para herramientas de procesamiento Big Data como Apache Hadoop, Spark, Flink, entre otras; y Amazon SageMaker, una  plataforma de aprendizaje automático que permite a los desarrolladores crear, entrenar e implementar modelos de Machine Learning en la nube.

Con Athena y Redshift Spectrum, se puede consultar directamente el Data Lake en S3 utilizando el lenguaje SQL, a través del Catálogo de AWS Glue, que contiene metadatos (tablas lógicas, esquema, versiones, etc.). El punto más importante es que sólo se paga por las consultas ejecutadas, en función de la cantidad de datos escaneados. Por lo tanto, puede lograr significantes mejoras en el desempeño y el costo al comprimir, dividir en particiones o convertir sus datos en un formato de columna (como Apache Parquet), ya que cada una de esas operaciones reduce la cantidad de datos que Athena o Redshift Spectrum deben leer.

 

AWS Lake Formation

Construir un Data Lake es una tarea compleja, de varios pasos, entre ellos:

  • Identificar fuentes (Bases de Datos, archivos, streams, transacciones, etc.).
  • Crear los buckets necesarios en S3 para almacenar estos datos, con sus correspondientes políticas.
  • Crear los ETLs que realizarán las transformaciones necesarias y la correspondiente administración de políticas de auditoría y permisos.
  • Permitir que los servicios de Analíticas accedan a la información del Data Lake.

AWS Lake Formation es una opción atractiva que permite a usuarios (tanto principiantes como expertos) comenzar de manera inmediata con un Data Lake básico, abstrayendo los detalles técnicos complejos. Permite monitorear en tiempo real desde un único punto, sin necesidad de recorrer múltiples servicios. Un aspecto fuerte es su costo: AWS Lake Formation es gratis. Sólo se cobrará por los servicios que se invoquen a partir de él.

Permite la carga de diversas fuentes, monitorizar esos flujos, configurar particiones, activar el cifrado y gestión de claves, definir trabajos de transformación y monitorearlos, reorganizar datos en formato columnar, configurar el control de acceso, deduplicar datos redundantes, relacionar registros vinculados, obtener acceso y auditar el acceso.

 

Conclusiones

En estos 2 artículos, conocimos que es un Data Lake, qué lo hace diferente a un Data Warehouse y cómo se podría implementar en la plataforma de Amazon. Es posible reducir significativamente el CTO moviendo su ecosistema de datos a la nube. Proveedores como AWS agregan nuevos servicios continuamente, mientras mejoran los existentes, reduciendo los costos de los mismos.

Huenei puede ayudarlo a planificar y ejecutar su iniciativa de Data Lake en AWS, en el proceso de migración de sus datos a la nube y la implementación de las herramientas de Analíticas necesarias para su organización.

Conceptos clave sobre Data Lakes

Conceptos clave sobre Data Lakes

Los datos se han convertido en un elemento vital para las empresas digitales, y una ventaja competitiva clave, pero el volumen de datos que actualmente necesitan administrar las organizaciones es muy heterogéneo y su velocidad de crecimiento exponencial. Surge así la necesidad de soluciones de almacenamiento y análisis, que ofrezcan escalabilidad, rapidez y flexibilidad para poder gestionar esta masiva cantidad de datos. ¿Cómo es posible almacenarlos de manera rentable y acceder a ellos rápidamente? Un Data Lake (Lago de Datos) es una respuesta moderna a este problema.

En esta serie de artículos, veremos qué es un Data Lake, cuáles son sus beneficios y cómo podemos implementarlo utilizando Amazon Web Services (AWS).

¿Qué es un Data Lake?

Un Data Lake es un repositorio de almacenamiento centralizado, que permite guardar todo tipo de datos estructurados o no, a cualquier escala, sin procesar, hasta que se los necesite. Cuando surge una pregunta de negocio, es posible obtener la información relevante y ejecutar diferentes tipos de análisis sobre ella, a través de dashboards, visualizaciones, procesamiento de Big Data y aprendizaje automático, para guiar la toma de mejores decisiones.

Un Data Lake puede almacenar datos tal como están, sin tener que estructurarlos primero, con poco o ningún procesamiento, en sus formatos nativos, tales como JSON, XML, CSV o texto. Puede almacenar tipo de archivos: imágenes, audios, videos, weblogs, datos generados desde sensores, dispositivos IoT, redes sociales, etc. Algunos formatos de archivo son mejores que otros, como Apache Parquet que es un formato columnar comprimido que proporciona un almacenamiento muy eficiente. La compresión ahorra espacio en disco y accesos de E/S, mientras que el formato permite al motor de consultas escanear sólo las columnas relevantes, lo cual reduce el tiempo y los costos de las mismas.

El uso de un sistema de archivos distribuido (DFS), como AWS S3, permite almacenar más datos a un costo menor, brindando múltiples beneficios:

  • Replicación de datos
  • Altísima disponibilidad
  • Bajos costos, con diferentes escalas de precios y múltiples tipos de almacenamiento dependientes del tiempo de recuperación (desde acceso instantáneo a varias horas)
  • Políticas de retención, lo que permite especificar cuánto tiempo conservar los datos antes de que se eliminen automáticamente

 

datalakes

 

Data Lake versus Data Warehouse

Los Data Lakes y los Data Warehouses son dos estrategias diferentes de almacenar Big Data, en ambos casos sin atarse a una tecnología específica. La diferencia más importante entre ellos es que, en un Data Warehouse, el esquema de datos está preestablecido; se debe crear un esquema y planificar las consultas. Al alimentarse de múltiples aplicaciones transaccionales en línea, se requiere que los datos se transformen vía ETL (extraer, transformar y cargar) para que se ajusten al esquema predefinido en el almacén de datos. En cambio, un Data Lake puede albergar datos estructurados, semi-estructurados y no estructurados y no tiene un esquema predeterminado. Los datos se recogen en estado natural, necesitan poco o ningún procesamiento al guardarlos y el esquema se crea durante la lectura para responder a las necesidades de procesamiento de la organización.

El Data Lake es una solución más flexible y adaptada a usuarios con perfiles más técnicos, con necesidades de análisis avanzadas, como Científicos de Datos, porque se necesita un nivel de habilidad para poder clasificar la gran cantidad de datos sin procesar y extraer fácilmente el significado de ellos. Un almacén de datos se centra más en usuarios de Análiticas de Negocios, para respaldar las consultas comerciales de grupos internos específicos (Ventas, Marketing, etc.), al poseer los datos ya curados y provenir de los sistemas operacionales de la empresa. Por su parte, los Data Lakes suelen recibir datos tanto relacionales como no relacionales de dispositivos IoT, redes sociales, aplicaciones móviles y aplicaciones corporativas.

En lo que respecta a la calidad de los datos, en un Data Warehouse, estos están altamente curados, son confiables y se consideran la versión central de la verdad. En cambio, en un Data Lake son menos confiables porque podrían llegar de cualquier fuente en cualquier estado, curados o no.

Un Data Warehouse es una base de datos optimizada para analizar datos relacionales, provenientes de sistemas transaccionales y aplicaciones de línea de negocios. Suelen ser muy costosos para grandes volúmenes de datos, aunque ofrecen tiempos de consulta más rápidos y mayor rendimiento. Los Data Lakes, en cambio, están diseñados pensando en el bajo costo de almacenamiento.

Algunas críticas legítimas que reciben los Data Lakes son:

  • Es aún una tecnología emergente frente el modelo de madurez fuerte de un Data Warehouse, el cual posee muchos años en el mercado.
  • Un Data Lake podría convertirse en un “pantano”. Si una organización practica una deficiente gestión y gobernanza, puede perder el rastro de lo que existe en el “fondo” del lago, provocando su deterioro, volviéndolo incontrolado e inaccesible.

Debido a sus diferencias, las organizaciones pueden optar por utilizar tanto un Data Warehouse como un Data Lake en una implementación híbrida. Una posible razón sería el poder agregar nuevas fuentes o usar el Data Lake como repositorio para todo aquello que ya no se necesite en el almacén de datos principal. Con frecuencia, los Data Lakes son una adición o una evolución de la estructura de administración de datos actual de una organización en lugar de un reemplazo. Los Analistas de Datos pueden hacer uso de vistas más estructuradas de los datos para obtener sus respuestas y, a la vez, la Ciencia de Datos puede «ir al lago» y trabajar con toda la información en bruto que sea necesaria.

Arquitectura de un Data Lake

La arquitectura física de un Data Lake puede variar, ya que se trata de una estrategia aplicable por múltiples tecnologías y proveedores (Hadoop, Amazon, Microsoft Azure, Google Cloud). Sin embargo, hay 3 principios que lo distinguen de otros métodos de almacenamiento Big Data y constituyen la arquitectura básica de un Data Lake:

  • No se rechaza ningún dato. Se cargan desde varios sistemas de origen y se conservan.
  • Los datos se almacenan en un estado sin transformar o casi sin transformar, tal como se recibieron de la fuente.
  • Los datos se transforman y se ajustan al esquema durante el análisis.

Si bien la información, en gran medida, no está estructurada ni orientada a responder una pregunta específica, debe ser organizada de alguna manera, para garantizar que el Data Lake sea funcional y saludable. Algunas de estas características incluyen:

  • Etiquetas y/o metadata para la clasificación, que puede incluir tipo, contenido, escenarios de uso y grupos de posibles usuarios.
  • Una jerarquía de archivos con convenciones de nomenclatura.
  • Un Catálogo de datos indexado y con capacidad de búsqueda.

Conclusiones

Los Data Lakes son cada vez más importantes para las estrategias de datos empresariales. Responden mucho mejor a la realidad actual: volúmenes y tipos de datos mucho mayores, mayores expectativas de los usuarios y mayor variedad de analíticas, tanto de negocio como predictivas. Tanto los Data Warehouses como los Data Lakes están destinados a convivir en las empresas que deseen basar sus decisiones en datos. Ambos son complementarios, no sustitutivos, pudiendo ayudar a cualquier negocio a conocer mejor el mercado y al consumidor, e impulsar iniciativas de transformación digital.

En el próximo artículo, analizaremos cómo podemos utilizar Amazon Web Services y su infraestructura abierta, segura, escalable y rentable, para construir Data Lakes y analíticas sobre ellos.

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.