por Huenei IT Services | Feb 4, 2023 | Desarrollo de Software
¿Estás interesado en mejorar el desarrollo de software de tu empresa? Bueno, puedes aprovechar algunas metodologías interesantes para aumentar la eficiencia, la productividad y la calidad de tus entregas, ¡y una de ellas podría ser el desarrollo rápido de aplicaciones! Te contamos todos los detalles al respecto.
Qué es el Desarrollo Rápido de Aplicaciones (DRA)?
Según Microsoft, el Desarrollo Rápido de Aplicaciones (DRA), también conocido por su nombre en inglés, Rapid Application Development (RAD), surgió en 1991, desarrollado por James Martin. En este momento, se ha convertido en una de las metodologías de desarrollo más populares dentro de las metodologías ágiles, ya que cada vez más empresas la adoptan.
Sin embargo, esta metodología se basó en el trabajo realizado por Scott Schultz en la década de 1980. La idea es trabajar de forma interactiva, construir prototipos y utilizar herramientas CASE, para mejorar la usabilidad, utilidad y velocidad de ejecución de todos los desarrollos.
Por lo tanto, DRA es un enfoque que busca enfatizar la estructura organizada del trabajo. La creencia básica es simple: cuanto mayor sea la organización, mejores serán los resultados. Aunque es una metodología algo flexible, el secreto es la constancia. Esta es una de las variables que permiten aumentar la calidad de las entregas.
¿Cuáles son los pasos del modelo DRA?
Habiendo revisado los puntos anteriores, seguramente que ahora quieres conocer las etapas del modelo DRA. Según CodeBots, 4 etapas definen esta metodología. Veámoslas a continuación:
Definición y especificación de los requerimientos del proyecto.
En esta etapa, es necesario definir y especificar los requisitos del proyecto. Por ejemplo, ¿cuáles son las expectativas y los objetivos del desarrollo de software? ¿Existen presupuestos o plazos específicos? Cuando se han establecido correctamente, es el momento de aprobarlos o reformularlos, si fuera necesario.
Inicio del diseño de los prototipos
Luego, es necesario desarrollar los prototipos. La idea es tener una conversación cercana con el cliente, para explicarle cuál es el estado del desarrollo. Se debe establecer en qué momento (aproximadamente) habrá una primera versión funcional del software. ¡Pero ten cuidado! Esto no significa que será la versión final.
Recopilación de opiniones de los usuarios
Una vez que se desarrolla el prototipo, debes comprender qué es lo que los usuarios opinan de él. ¿Funciona bien? ¿Tiene muchos errores? La idea es crear un producto final de la más alta calidad posible. Por esta razón, es clave prestar atención a los comentarios que recibes del cliente y de los sujetos de prueba.
Testeo y presentación final de la app
Finalmente, tendrás que hacer todo tipo de pruebas de usabilidad y funcionamiento para asegurarte de que el lanzamiento será exitoso. La clave está en satisfacer las necesidades del cliente, por lo que hay que probar el código una y otra vez hasta que funcione a la perfección. Además, ten en cuenta que siempre habrá posibles mejoras o errores que aparecerán más adelante y tendrás que corregirlos.
¿Cuáles son las ventajas de esta metodología?
Ahora bien, ¿cuáles son las ventajas de esta metodología? Aquí están los más importantes:
Entrega más rápida
Este es uno de los beneficios más destacados. La metodología DRA promete una entrega de software mucho más rápida. Al ser iterativo, es posible alcanzar el objetivo final más rápido. Y esto finalmente se traduce en una mayor satisfacción del cliente, pero también en una etapa de producción más veloz.
Ajustes rápidos y reducción de errores
Todo esto deriva en una mayor rapidez de corrección de posibles errores. Esta metodología busca encontrar (y solucionar) problemas a medida que avanza el desarrollo. Gracias a la metodología DRA, todos estos ajustes intermedios suelen ser mucho más eficientes, ¡y los errores también son menos frecuentes!
Disminución de los costes de desarrollo
La metodología DRA puede acortar el tiempo de desarrollo de un proyecto. La ventaja es que, al trabajar por etapas, no es necesario hacer demasiadas correcciones una vez lanzado el producto final. Esta decisión se traduce en menores costos de desarrollo, ya que el trabajo tiende a ser mucho más eficiente.
Mayor participación empresarial
Al usar DRA, el trabajo se basará en involucrar al negocio y al usuario final. El desarrollo se actualizará con frecuencia, lo que significa que el producto se puede pulir hasta el más mínimo detalle. ¿El resultado? El producto final estará muy cerca de lo que el cliente quiere. En otras palabras, también tendrá una mejor satisfacción del cliente final.
Software más utilizable
La metodología DRA también toma como punto de partida qué quiere y necesita el usuario. En consecuencia, todos los esfuerzos se concentran en las funcionalidades principales. Entonces, el producto final se vuelve mucho más funcional, ya que las características secundarias no son 100% relevantes.
Mejor control de riesgos
Finalmente, se debe considerar que con DRA es posible identificar factores de riesgo en instancias tempranas del proceso. Entonces pueden ser abordados de inmediato. Esta decisión es muy relevante para evitar posibles crisis, ya que cualquier característica “conflictiva” será eliminada o corregida a tiempo.
En conclusión, has aprendido todos los detalles del Desarrollo Rápido de Aplicaciones y ahora sabes por qué es tan importante integrarlo en tus desarrollos. ¡Esperamos que te haya gustado este artículo!
por Huenei IT Services | Apr 27, 2021 | Infra, Process & Management
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.
por Huenei IT Services | Mar 26, 2021 | Infra, Process & Management
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
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.
por Huenei IT Services | Jan 30, 2021 | Desarrollo de Software, Infra
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.
por Huenei IT Services | Jan 15, 2021 | Desarrollo de Software
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.