Analisis y Arquitectura


Algoritmos de balanceo de carga

Un balanceador de carga fundamentalmente es un dispositivo de hardware o software que se pone al frente de un conjunto de servidores que atienden una aplicación, y este asigna las solicitudes que llegan de los clientes a los servidores usando algún algoritmo. Los métodos de balanceo pueden ser: de petición, basado en sesión o de métodos. Los algoritmos más comunes son:


Cloud Computing: IaaS, PaaS, SaaS

Parece que el mercado tiende hacia la extenalización de sus servicios y una de las formas es haciéndolo mediante el Cloud Computing. Dentro de este, y del nivel de externalización que siguen las empresas, se pueden distinguir 3 categorías: Infrastructure as a Service (Iaas): En español Infraestructura como Servicio. Modelo de distribución de infraestructura de computación como un servicio, normalmente mediante una plataforma de virtualización. En lugar de adquirir servidores, espacio en un centro de datos o equipamiento de redes, los clientes externalizan todos estos recursos y lo delegan a un proveedor de servicios externo. Una diferencia fundamental con el […]


Microservicios

¿Qué pasa cuándo tu aplicación corporativa no para de engordar? Vamos añadiendo encima más y más servicios hasta llegar a un punto en que parece que lo único que podemos hacer es escalar en hardware (más maquinas) hasta llegar al colapso. Para evitar tener una enorme aplicación monolítica, basada en lo que para los Javeros es el cocktel SOAP, WSDL, JEE y ESB; ahora se tiende a APIs REST que exponen pequeños comportamientos y se comunican de forma distribuida entre servicios, sin importan que no estén en la misma aplicación. Martin Fowler dice en este artículo de obligada lectura: Microservicios […]


Buenas prácticas para el desarrollo de software

Unos buenos principios para el desarrollo de cualquier software son: No construyas nada hasta que lo necesites. Construyelo de forma que aporte valor al negocio. Alinea IT y el negocio. El principio —don’t build it until you need it o YAGNI, you ain’t gonna need it— es lo contrario que del IT field of dreams. En lugar de construir porque se espera que alguien lo utilice, no lo hagas hasta que sepas que alguien lo quiere. Es entonces cuando se está seguro de lo que se quiere construir, no lo que se imagina que podría quererse. Así además, no incurrimos […]


Calidades sistémicas

Las calidades sistémicas pueden ser: Funcionales: Referidas a lo que el sistema hace, es decir, aquellas funciones que los usuarios del sistema pueden observar. No funcionales: Definen cómo de bien funciona el sistema, como son la Disponibilidad, Usabilidad, etc. Están definidas por Sun Microsystems de la siguiente manera: Son propiedades que establecen la calidad de servicio (QoS) que un sistema expone. Son globales a toda la arquitectura e influencian el diseño. Son no-funcionales pero observables. No se pueden satisfacer completamente por un componente.