Skip to content

Latest commit

 

History

History
194 lines (128 loc) · 10.1 KB

File metadata and controls

194 lines (128 loc) · 10.1 KB

shieldsIO shieldsIO shieldsIO

WideImg

Máster en Programación FullStack con JavaScript y Node.js

JS, Node.js, Frontend, Backend, Firebase, Express, Patrones, HTML5_APIs, Asincronía, Websockets, Testing

Clase 76

Las nuevas arquitecturas

img

img

img

En estos tiempos, el software se está distribuyendo como un servicio: se le denomina web apps, o software as a service (SaaS). “The twelve-factor app” es una metodología para construir aplicaciones SaaS que:

  • Usan formatos declarativos para la automatización de la configuración, para minimizar el tiempo y el coste que supone que nuevos desarrolladores se unan al proyecto;
  • Tienen un contrato claro con el sistema operativo sobre el que trabajan, ofreciendo la máxima portabilidad entre los diferentes entornos de ejecución;
  • Son apropiadas para desplegarse en modernas plataformas en la nube, obviando la necesidad de servidores y administración de sistemas;
  • Minimizan las diferencias entre los entornos de desarrollo y producción, posibilitando un despliegue continuo para conseguir la máxima agilidad;
  • Y pueden escalar sin cambios significativos para las herramientas, la arquitectura o las prácticas de desarrollo.

The Twelve-Factor App

Monolito

img

Problemas

  • Mucho código que gestionar
  • Si el proyecto crece todo acaba desbordandose
  • Si se cae algo... se cae todo completamente
  • Escalar la aplicacion se hace en bloque aunque solo una parte especifica necesite más recursos
  • Los precios de las maquinas dedicadas crecen junto al producto
  • Las migraciones solo pueden hacerse en su totalidad
  • Seguridad, infraestrcutura y todo lo demás es tambié nuestra responsabildiad
  • No se puede escalar sin operaciones manuales, el sistema no es flexible

Ventajas

  • Es facil desarrollar
  • Todo puede quedarse en casa
  • Menos dependencia de terceros

Recursos

Microservicios

img

Problemas

  • El testing es complejo
  • El exceso de segmentación complica la consistencia de datos
  • El desarrollador asume problemas propios de SysAdmins
  • La orquestación de servicios es un reto enorme
  • Desmontar monolitos es un cuello de botella caro y complejo
  • La planificación de nuevas funcionalides puede demorarse sin una arquitectura clara
  • Versionar es dificil

Ventajas

  • Depliegue y desarrollo independiente
  • Los equipos pequeños pueden sacar servicios solos
  • Multiparadigma y multilenguaje, al final todo es independiente
  • Integración y despliegue muy automatizable con contenedores
  • Migraciones por funcionalidad
  • Funcionamiento modular, las caidas de servicio son parciales
  • Facil de escalar
  • Facil de integrarse con otros sistemas

Recursos

Serverless (FaaS)

joke

Problemas

  • Posible vendorlocking si no controlas la abstracción
  • Muy nuevo, faltan expertos y herramientas
  • La monitorización es un reto significativo
  • El entorno local puede ser complicado de crear
  • El ecosistema está muy tierno
  • Se requiere de una gran planificación y arquitectura para evitar que se te vaya de las manos.

Ventajas

  • No te encargas de nada en plataformas (seguridad, puertos, maquinas, actualziaciones, parches...)
  • Escala horizontalmente (adios clusters, balanceo, etc...)
  • Pagas por lo que utilizas
  • Tu provedor te ofrece una capa muuuy extensa de servicios que se acoplan de lujo

Recursos

Resumen

joke

Decisiones

joke

Hablando de escalabilidad

joke

Recursos