Evolución del Desarrollo Web: De Monolitos a Microservicios y DevOps

Clase 2 de 15Curso de Fundamentos de Observabilidad con New Relic

Resumen

La arquitectura de software define una distribución de recursos informáticos que establecen la organización, jerarquía e interdependencia que, en conjunto, definen una aplicación o plataforma web.

Antecedentes de los sistemas de software

Las plataformas web son soluciones digitales que posibilitan la ejecución de diversas tareas definidas, en conjunto, como una respuesta a una necesidad.

En los inicios, para desarrollar soluciones de software se empleaban, en su mayoría, servidores LAMP o Linux-Apache-MySQL-PHP. De esta popularidad, sumaba la preferencia del lenguaje de programación PHP circundante al longebo "Wordpress".

Recordemos que, PHP fue en su tiempo lo que ahora JavaScript, Python y, más reciente, Rust. Teniendo como alternativa al poderosísmo Java con su ecosistema JSE y JEE.

Un stack teconológio es conocido por su impacto social y popularidad en el marcado, lo que ayer se le conocía LAMP ahora le llamamos MERN o Mongo-Express-React-Node.

Tipos de arquitecturas de software

Las arquitecturas de software son diseñadas dependiendo del proyecto en sí, tomando como partida las siguientes características:

  • Recursos informáticos, transversales mediante SaaS o PaaS.
  • Procesamiento, síncrono o asícrono según los requerimientos.
  • Escalabilidad, amplitud estática vertical u horizontal o bajo demanda dinámica.
  • Detección de errores, resiliencia y tolerancia a errores.

¿Existe alguna diferencia palpable entre un sistema centralizado (monolítoco) con respecto al sistema distribuido, o solo una perspectiva "fanci" actual?

Por último, según la tendencia tecnológica y bajo la demanda, encontraremos un tipo de sistema distribuído que se ha ido normalizando en las últimas generaciones, microservicios. Donde, de este último, encontraremos muchos colores y sabores según sea el enfoque que desee resolver.

Contribución creada por: Emmanuel Rodríguez