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!

This talk has been presented at DevOps.js Conf 2021, check out the latest edition of this JavaScript Conference.

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
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
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
NPM workspaces help manage multiple nested packages within a single top-level package, improving since the release of NPM CLI 7.0. You can easily add dependencies to workspaces and handle duplications. Running scripts and orchestration in a monorepo is made easier with NPM workspaces. The npm pkg command is useful for setting and retrieving keys and values from package.json files. NPM workspaces offer benefits compared to Lerna and future plans include better workspace linking and adding missing features.
Entendiendo la Arquitectura Fiber de React
React Advanced 2022React Advanced 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
Automatizando Todo el Código y las Pruebas con GitHub Actions
React Advanced 2021React Advanced 2021
19 min
Automatizando Todo el Código y las Pruebas con GitHub Actions
Top Content
We will learn how to automate code and testing with GitHub Actions, including linting, formatting, testing, and deployments. Automating deployments with scripts and Git hooks can help avoid mistakes. Popular CI-CD frameworks like Jenkins offer powerful orchestration but can be challenging to work with. GitHub Actions are flexible and approachable, allowing for environment setup, testing, deployment, and custom actions. A custom AppleTools Eyes GitHub action simplifies visual testing. Other examples include automating content reminders for sharing old content and tutorials.
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
DevOps is a journey that varies for each company, and remote work makes transformation challenging. Pull requests can be frustrating and slow, but success stories like Mateo Colia's company show the benefits of deploying every day. Challenges with tools and vulnerabilities require careful consideration and prioritization. Investing in documentation and people is important for efficient workflows and team growth. Trust is more important than excessive control when deploying to production.

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.