¿qué es la arquitectura web vertical?
escalado horizontal vs escalado vertical en la base de datos
Estratificar una aplicación es útil para tener una mejor visión general de la aplicación, ya que está claro qué esperar en la capa específica. Tiene dependencias menos complicadas y no transparentes. Todo esto se aplica a las capas verticales y horizontales, pero afectan de manera diferente. Por lo menos, terminas con una aplicación mucho más modular que puede ser probada/unit tested más fácilmente y está abierta a la extensión y a diferentes despliegues.
En resumen, la estratificación vertical se trata de capas de aplicación dentro de un microservicio, monolito, etc. – al menos dentro de una única aplicación ejecutable. La estratificación horizontal consiste en dividir una aplicación en diferentes dominios/servicios/componentes (por ejemplo, arquitectura de microservicios). Véase el siguiente diagrama.
La estratificación ayuda mucho a tener una mejor visión general de la aplicación. Es mucho más fácil encontrar cosas, porque sabes qué esperar en la capa específica. Y siempre está claro lo que puedo hacer en la capa específica (debido a los contratos en la capa específica). Evita el uso no deseado de código en la capa equivocada. Por ejemplo (en .net webapi) exponer entidades de negocio al mundo exterior de una web api. O acceder a la capa de datos directamente desde el controlador – y así sucesivamente… (Cuando se puede manipular entidades en cualquier lugar del programa es peligroso y se perderá el control sobre ellas y se podría llegar a manipulaciones no válidas, etc.)
escalamiento horizontal vs escalamiento vertical en aws
Christina es la fundadora y directora de Vertical Architecture Enterprises LLC. Es una arquitecta con más de 20 años de experiencia trabajando en proyectos académicos, de investigación y de transporte a gran escala, en diversas funciones que van desde diseñadora hasta directora de proyectos. A este trabajo de proyecto se suma su investigación, publicada y presentada en múltiples conferencias, sobre el impacto de la tecnología en los espacios para el aprendizaje y la creación de conocimiento. Christina aporta a todos los proyectos un profundo compromiso con el diseño, una exitosa experiencia de gestión, un alto dominio de las herramientas digitales de diseño y coordinación, y un conocimiento del funcionamiento de las empresas de servicios profesionales. Sus clientes se benefician de su capacidad para profundizar en los detalles y alejarse para ver el panorama general.Christina está licenciada en el Estado de Maryland y tiene un Máster en Arquitectura por la Graduate School of Design de la Universidad de Harvard. Es miembro del American Institute of Architects y del Urban Land Institute.
arquitectura vertical
Recientemente he estado escribiendo sobre los diferentes enfoques de la planificación de proyectos y la arquitectura de software, y cómo pueden afectar a los proyectos de desarrollo de software, para bien o para mal. Con la evolución de los procesos y metodologías en la última década, es importante mantenerse al día con lo último y lo mejor, ya sea para mejorar su propio conocimiento personal o para evaluar formas de mejorar la eficiencia y las capacidades de su equipo o producto.
Dividir las iniciativas en rodajas horizontales o verticales a primera vista puede parecer una metodología para distribuir la carga de trabajo, pero si se profundiza un poco más, la elección puede abarcar muchas facetas del desarrollo de software, como la arquitectura, la gestión de proyectos, las comunicaciones del equipo y las tecnologías implementadas.
La capa de presentación contiene la interfaz de usuario y las comunicaciones con la capa de negocio, también conocida comúnmente como el “front end” de las aplicaciones. Gracias a los modernos lenguajes de desarrollo de front-end, parte de la lógica de negocio puede descargarse en la capa de presentación, reduciendo la cantidad de recursos utilizados por las otras capas.
desarrollo de software vertical u horizontal
Hace muchos años, comenzamos un nuevo proyecto a largo plazo y, para empezar, construimos la arquitectura en torno a una arquitectura de cebolla. En un par de meses, las grietas comenzaron a aparecer alrededor de este estilo y nos alejamos de esa arquitectura y nos acercamos a CQRS (antes de que tuviera ese nombre). Junto con el cambio a CQRS, empezamos a construir nuestras arquitecturas en torno a rodajas verticales en lugar de capas (ya sean planas o concéntricas, siguen siendo capas). Desde entonces, durante los últimos 7 u 8 años más o menos, la construcción de arquitecturas en torno a rebanadas verticales para todo tipo de aplicaciones y sistemas ha sido nuestro enfoque exclusivo y no puedo imaginar volver a las limitaciones de los enfoques de arquitectura por capas.
El problema es que este enfoque/arquitectura sólo es realmente apropiado en una minoría de las solicitudes típicas de un sistema. Además, tiendo a ver estas arquitecturas con un alto grado de simulación, con reglas rígidas en torno a la gestión de las dependencias. En la práctica, he encontrado estas reglas raramente útiles, y empiezas a tener muchas abstracciones alrededor de conceptos que realmente no deberían ser abstraídos (el Controlador DEBE hablar con un Servicio que DEBE usar un Repositorio).