Arquitecturas de Software Descontroladas

Rate this content
Bookmark

¡Prepárate para un recorrido por el mundo de las Arquitecturas de Software! Todos los que trabajan en software han oído hablar de términos como 'pwa', 'monolitos', 'headless' , 'microservicios' e incluso 'arquitecturas orientadas a servicios'. Todos sabemos lo que son, pero ¿cuánto sabemos realmente sobre ellos? En esta charla, te mostraremos las diferencias, las similitudes, cuándo usarlos, cuándo no usarlos, las historias de éxito y, por supuesto, los fracasos masivos. Prepárate para media hora de comedia tecnológica: ¡la arquitectura va a ser rápida y divertida!

FAQ

Deity es una empresa cofundada por Jamie-Maria Schauven, quien se dedica a hablar sobre arquitecturas de software.

En mayo de 2020, el comercio electrónico experimentó un crecimiento del 77 por ciento año tras año, alcanzando un total de 82.5 mil millones en ventas en línea.

El 27 por ciento de todas las ventas minoristas se realizaban en línea en los Estados Unidos hasta abril de 2020.

Ir 'headless' significa que el front-end está desacoplado del back-end y se conecta a través de APIs, permitiendo que el front-end opere como una aplicación independiente.

La arquitectura orientada a servicios ofrece servicios manejables, alta escalabilidad, confiabilidad, y es altamente flexible e integrable, facilitando la adopción rápida de nuevas características y tecnologías.

Según Google, una aplicación web progresiva es progresiva, receptiva, independiente de la conectividad, similar a una aplicación, fresca, segura, descubrible, recompensable, instalable, y enlazable.

Las PWA pueden mejorar significativamente la velocidad de los sitios web, como demostró Tinder al hacer su sitio web 7.22 segundos más rápido que su aplicación y Uber al cargar su servicio en solo tres segundos en redes 2G.

Jamie Maria Schouren
Jamie Maria Schouren
31 min
01 Jul, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla analiza diferentes arquitecturas de software y sus desafíos. Destaca la tendencia de desacoplar el front-end del back-end y adoptar la arquitectura headless y las Progressive Web Apps (PWA). Se enfatizan los beneficios de una arquitectura orientada a servicios (SOA), incluyendo flexibilidad, confiabilidad y escalabilidad. La charla también explora la descomposición de arquitecturas monolíticas en microservicios y la importancia de abordar primero los puntos problemáticos. Además, se mencionan los desafíos de las pruebas en un entorno de QA y la elección entre microservicios y monolitos según los objetivos del proyecto.

Available in English: Software Architectures Gone Wild

1. Introducción a las Arquitecturas de Software

Short description:

Hola a todos. Hoy voy a hablar sobre las arquitecturas de software y va a ser increíble, así que ponte unas gafas de sol. Es 2021 y el tráfico de Internet está creciendo como loco. Todos gastamos un total de 82.5 mil millones en línea en mayo de 2020, lo que representa un crecimiento del 77 por ciento año tras año. Para sobrevivir y básicamente para sobrevivir en nuestro sitio web, vamos a necesitar un sistema de software que sea flexible, integrable, confiable y escalable.

Hola a todos. Mi nombre es Jamie-Maria Schauven y soy cofundadora de Deity. Hoy voy a hablar sobre las arquitecturas de software y va a ser increíble, así que ponte unas gafas de sol.

Antes de comenzar, quiero dar crédito a la obra de arte. Es de James Booker y se llama Random Galaxy Art, es realmente increíble. Si quieres saber más, habla conmigo o síguenos. Mi Twitter se encuentra en la esquina izquierda. Por favor, tuitea y hazme cualquier pregunta que desees.

Ok, empecemos. Primero que nada, es 2021. Y mientras salvábamos al mundo en 1944 yendo a la batalla, hoy lo hacemos quedándonos en casa y usando nuestro teléfono. Y la mayoría de nosotros realmente lo hacemos. Y eso se refleja en el tráfico de Internet. El tráfico de Internet está creciendo como loco. Aquí está el uso de Internet que ocurrió en la primera parte de 2020 hasta abril. Como puedes ver, se está duplicando y es una locura. Y no solo el uso de Internet. Tenemos lo mismo en el mundo del e-commerce. Todos gastamos un total de 82.5 mil millones en línea en mayo de 2020, lo que representa un crecimiento del 77 por ciento año tras año. Si observas el gráfico en la esquina derecha, eso es solo hasta abril. El 27 por ciento de todas las ventas minoristas se realizaban en línea en los Estados Unidos. Y como también puedes ver, el crecimiento ha sido masivo. Hemos estado haciendo esto y dicen que el crecimiento ha sido de casi seis años. Lo que se proyectaba está sucediendo ahora mismo.

Para sobrevivir y básicamente para sobrevivir en nuestro sitio web, ya que muchos sitios web están luchando con esta cantidad de tráfico y esta cantidad de pedidos que llegan, vamos a necesitar algunos fuegos en nuestro sitio web. ¿Qué quiero decir con el principio de los fuegos? Bueno, en realidad, si quieres sobrevivir en estos tiempos y si quieres asegurarte de que tu sitio web esté listo para el crecimiento futuro, vas a necesitar un sistema de software que sea flexible para que puedas construir lo que tu negocio necesita ahora y en el futuro. También vas a necesitar tener un sistema que sea integrable para que puedas integrarte con cualquier fuente de datos, sin importar de dónde provenga. Y también, vas a necesitar ser confiable. Tu sitio web necesita asegurarse de que pueda manejar todo el tráfico a medida que creces y avanzas. Obviamente, también necesitas ser escalable.

2. Introducción a las Arquitecturas

Short description:

Los mercados están cambiando muy rápido y necesitas poder adaptar nuevas características, nuevas tecnologías, nuevos mercados de manera muy rápida. Desafortunadamente, la flexibilidad de la mayoría de los sitios web es realmente, realmente mala. Tenemos tres arquitecturas principales: la arquitectura monolítica, la arquitectura desacoplada y la arquitectura orientada a servicios. La arquitectura monolítica es la antigua y dorada en el monolito. Todo está fuertemente acoplado. La capa de interfaz de usuario, la capa de datos, los procesos y todo está muy entrelazado.

Los mercados están cambiando muy rápido y necesitas poder adaptar nuevas características, nuevas tecnologías, nuevos mercados de manera muy rápida. Y necesitas poder extender tu software sin agregar ninguna complejidad. Y por último, pero no menos importante, necesitas ser escalable para que puedas escalar tu negocio de manera ilimitada tan pronto como tu tráfico aumente o tan pronto como estés creciendo.

Desafortunadamente, la flexibilidad de la mayoría de los sitios web es realmente, realmente mala. Es más como vodka que como yoga. Y todo esto tiene que ver con las arquitecturas. Entonces, ¿cómo se construyen los sitios? Las arquitecturas de software son básicamente el comienzo de cómo construyes tu sistema, y estás haciendo un plano de cada elemento que debe estar en tu sitio y en el sistema en su conjunto. No solo necesito envío, precios y una imagen, sino también cómo se correlacionan entre sí, qué sistema tiene que comunicarse con qué en el backend y en el frontend.

Básicamente, tenemos tres arquitecturas principales. Tenemos la arquitectura monolítica. Tenemos la arquitectura desacoplada y tenemos la arquitectura orientada a servicios. Voy a comenzar con la arquitectura monolítica. Bueno, la arquitectura monolítica es la antigua y dorada en el monolito. Todo está fuertemente acoplado. La capa de interfaz de usuario, la capa de datos, los procesos y todo está muy entrelazado. Y se ve así. ¿En mis diapositivas? Sí. En la arquitectura monolítica, como puedes ver, la capa de presentación está muy unida a la lógica empresarial y a la interfaz de datos en el diseño de capas. Encuentras estas diferentes capas, pero aún están muy cerca entre sí. Si algo sucede en el lado de la presentación, tu lógica empresarial va a tener problemas. Y si algo sucede en la lógica empresarial, tu capa de presentación va a tener problemas. Además, cuando quieres cambiar algo en tu sitio web, tendrás que cambiarlo realmente dentro de la capa. Así que dentro de la lógica, todo está ahí. Búsqueda, imágenes, precios, stock. Todo está dentro de esa lógica. Si quieres cambiar tus precios, si quieres cambiar el servicio de stock, tendrás que abrirlo y reconstruirlo desde dentro. Como puedes imaginar, si creces, será una masa muy grande. Será muy, muy complejo tan pronto como agregues más características a eso. Así que hay algunos beneficios de los monolitos. Básicamente, un monolito es muy, muy bueno ya que la aplicación se empaqueta e implementa como una sola entidad.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
¿Tienes un producto grande construido por muchos equipos? ¿Estás luchando para lanzar a menudo? ¿Se convirtió tu frontend en un monolito inmantenible masivo? Si, como yo, has respondido sí a cualquiera de esas preguntas, ¡esta charla es para ti! Te mostraré exactamente cómo puedes construir una arquitectura de micro frontend con Remix para resolver esos desafíos.
Elevando Monorepos con los Espacios de Trabajo de npm
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Elevando Monorepos con los Espacios de Trabajo de npm
Top Content
Aprenda más sobre cómo aprovechar las características predeterminadas de los espacios de trabajo de npm para ayudarlo a administrar su proyecto monorepo, mientras también explora algunas de las nuevas características de npm cli.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
Remix es un marco de trabajo web que te ofrece el modelo mental simple de una aplicación de múltiples páginas (MPA) pero el poder y las capacidades de una aplicación de una sola página (SPA). Uno de los grandes desafíos de las SPA es la gestión de la red que resulta en una gran cantidad de indirecciones y código defectuoso. Esto es especialmente notable en el estado de la aplicación que Remix elimina por completo, pero también es un problema en los componentes individuales que se comunican con un punto final de backend de un solo propósito (como una búsqueda de combobox, por ejemplo).
En esta charla, Kent demostrará cómo Remix te permite construir componentes de interfaz de usuario complejos que están conectados a un backend de la manera más simple y poderosa que hayas visto. Dejándote tiempo para relajarte con tu familia o lo que sea que hagas para divertirte.
Entendiendo la Arquitectura Fiber de React
React Advanced Conference 2022React Advanced Conference 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
Hemos escuchado mucho sobre la Arquitectura Fiber de React, pero parece que pocos de nosotros la entendemos en profundidad (o tenemos el tiempo para hacerlo). En esta charla, Tejas repasará su mejor intento de entender Fiber (revisado por otros expertos), y lo presentará de una manera 'explicar-como-si-tuviera-cinco años'.
Automatizando Todo el Código y las Pruebas con GitHub Actions
React Advanced Conference 2021React Advanced Conference 2021
19 min
Automatizando Todo el Código y las Pruebas con GitHub Actions
Top Content
Las tareas de código como linting y pruebas son partes críticas del flujo de trabajo de un desarrollador que nos ayudan a mantenernos cuerdos, como prevenir problemas de sintaxis o estilo y fortalecer nuestra lógica de negocio central. Hablaremos de cómo podemos usar GitHub Actions para automatizar estas tareas y ayudar a mantener nuestros proyectos funcionando sin problemas.
Ajustando DevOps para las Personas sobre la Perfección
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Ajustando DevOps para las Personas sobre la Perfección
Top Content
La demanda de DevOps ha aumentado en los últimos años a medida que más organizaciones adoptan tecnologías nativas de la nube. La complejidad también ha aumentado y una mentalidad de "cero a héroe" deja a muchas personas persiguiendo la perfección y FOMO. Esta sesión se centra en cambio en por qué tal vez no deberíamos adoptar una práctica tecnológica y cómo a veces los equipos pueden lograr los mismos resultados priorizando a las personas sobre la automatización y controles de operaciones. Veamos las cantidades y el ajuste fino de todo como código, solicitudes de extracción, DevSecOps, Monitoreo y más para priorizar el bienestar del desarrollador sobre la perfección de la optimización. Puede ser una decisión válida desplegar menos y dormir mejor. Y finalmente examinaremos cómo la práctica manual y la disciplina pueden ser la clave para productos y experiencias superiores.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Despliegue de aplicaciones React Native en la nube
React Summit 2023React Summit 2023
88 min
Despliegue de aplicaciones React Native en la nube
WorkshopFree
Cecelia Martinez
Cecelia Martinez
Desplegar aplicaciones React Native manualmente en una máquina local puede ser complejo. Las diferencias entre Android e iOS requieren que los desarrolladores utilicen herramientas y procesos específicos para cada plataforma, incluidos los requisitos de hardware para iOS. Los despliegues manuales también dificultan la gestión de las credenciales de firma, las configuraciones de entorno, el seguimiento de las versiones y la colaboración en equipo.
Appflow es la plataforma de DevOps móvil en la nube creada por Ionic. Utilizar un servicio como Appflow para construir aplicaciones React Native no solo proporciona acceso a potentes recursos informáticos, sino que también simplifica el proceso de despliegue al proporcionar un entorno centralizado para gestionar y distribuir tu aplicación en múltiples plataformas. Esto puede ahorrar tiempo y recursos, permitir la colaboración, así como mejorar la confiabilidad y escalabilidad general de una aplicación.
En este masterclass, desplegarás una aplicación React Native para su entrega en dispositivos de prueba Android e iOS utilizando Appflow. También aprenderás los pasos para publicar en Google Play y Apple App Stores. No se requiere experiencia previa en el despliegue de aplicaciones nativas, y obtendrás una comprensión más profunda del proceso de despliegue móvil y las mejores prácticas para utilizar una plataforma de DevOps móvil en la nube para enviar rápidamente a gran escala.
Despliegue de Aplicación MERN Stack en Kubernetes
DevOps.js Conf 2022DevOps.js Conf 2022
152 min
Despliegue de Aplicación MERN Stack en Kubernetes
Workshop
Joel Lord
Joel Lord
Desplegar y gestionar aplicaciones JavaScript en Kubernetes puede volverse complicado. Especialmente cuando una base de datos también debe formar parte del despliegue. MongoDB Atlas ha facilitado mucho la vida de los desarrolladores, sin embargo, ¿cómo se integra un producto SaaS con su clúster de Kubernetes existente? Aquí es donde entra en juego el Operador de MongoDB Atlas. En este masterclass, los asistentes aprenderán cómo crear una aplicación MERN (MongoDB, Express, React, Node.js) localmente y cómo desplegar todo en un clúster de Kubernetes con el Operador de Atlas.
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.
Azure Static Web Apps (SWA) con Azure DevOps
DevOps.js Conf 2022DevOps.js Conf 2022
13 min
Azure Static Web Apps (SWA) con Azure DevOps
WorkshopFree
Juarez Barbosa Junior
Juarez Barbosa Junior
Las Azure Static Web Apps se lanzaron a principios de 2021 y, de forma predeterminada, pueden integrar su repositorio existente y implementar su aplicación web estática desde Azure DevOps. Este masterclass demuestra cómo publicar una Azure Static Web App con Azure DevOps.