¿Cómo pasamos de páginas web a aplicaciones web?

2/15
Recursos
Transcripción

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

Aportes 18

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Les comparto una tabla periodica de algunas herramientas que se usan en cada categoria por ejemplo, cloud, testing, Continuous Integration, Continuous Delivery, etc.
periodic-table-of-devops-tools

Notas:

Anteriormente, todo el contenido de las páginas web se guardaba en un solo lugar, pero ya no es así.

Funcionamiento de una página web:

  1. El usuario ingresa la URL del sitio web.
  2. El navegador envía la solicitud al servidor.
  3. El servidor le responde con los materiales del sitio
  4. El navegador construye la página para el usuario.

Aplicaciones monolíticas (Monolithic): Todo el sitio reside en una sola locación centralizada que almacena todo en un solo bloque de datos.

Desarrollo en cascada (Waterfall): Planificación, construcción y pruebas suceden de forma lineal, al completarse todo el proceso se publica el proyecto.

Transformación de los stacks tecnológicos

  • 2000’s → Un solo servidor en java, desarrollo en cascada.
  • 2010’s → uso de algunas tecnologías e inicio de la computación en la nube.
  • Actualmente → Decenas de despliegues al día con combinaciones de varias tecnologías y uso de micro-servicios.

Arquitectura de micro servicios:

La aplicación se compone de partes modulares y cada una maneja una tarea muy definida

ejemplo de micro-servicio:

  • Login de la página
  • Agregar al carro de compras.

Comentas en el vídeos sobre monolitos y programación por microservicios y no estoy de acuerdo en ciertos aspectos. Yo puedo tener un proyecto en un monolito y tenerla programada por microservicios haciendo que los cambios como comentas sean igual de rápidos y fáciles, pero todo en un solo monolito de código en un mismo servidor. Lo único que pierdes con este tipo de monolitos sería que si el servidor deja de funcionar todo deja de funcionar, pero al tener mi monolito en microservicios si integro un bug en el carrito de compra como comentas solo deja de funcionar en mi monolito el carrito de compra. Esto por ejemplo lo podemos conseguir con una arquitectura hexagonal.

This slide doesn’t show up Kubernetes
You left it out 😮.

No problem, I am just kidding Dude …😜

En 2010 ya existia NodeJS y WordPress …

Como bien mencionaste con los lenguajes de programacion igual hay arquitecturas buenas para ciertos problemas y hoy en dia el monolito es bastante recomendado para empresas probando ideas de negocio ya que se necesita una alta mantenibilidad para iterar rapido con poco esfuerzo y ya cuando se consolidan los productos empiezan a sacrificar mantenibilidad por escalabilidad y rendimiento al pasar a microservicios y a tener varios equipos de desarrollo.
Me gusto mucho esta clase.

Aqui una tabla de Recursos DEVOPS

Realmente da gusto tener espacios como este en compañía de Ricardo Celis, claro y dinámico!

Buenas tardes con todos, trabajo en una empresa de adquiriencia de transacciones con tarjetas Debityo/credito/prepago/giftcard, si bienindicas el ejemplo de usar NR de paginas y aplicaciones web, el APK de un POS android utilizamos newrelic y nos ha servido M-U-C-H-O para observar el customer journey de nuestros clientes en los POS de Peru.

grandioso curso como siempre . gracias Platzi, gracias profesor Ricardo 😃

Usuario navegaba al sitio
Browsere envia una solicitud
Servidor recibe la solicitud, envia respuesta
Browser dibuja el sitio web

Monolithic(monolitico)
cuando todo esta en un solo citio

Waterfall(cascada)
Planeacion, codigo, testing
todo era de forma lineal, todo se subia solo cuando estaba listo

Paginas web ahora son Aplicaciones web

Hoy en dia hay una mayor exigencia, un despliegue constante,
equipos pequeños que manejen tareas especificas,

hay un cambio en el uso de las aplicaciones,
Arquitecturas de microservicios

  • Muchos partes

  • Tarea especifica

  • Modular, tranbajam en conjunto
    Ejemplos a tener en cuenta

  • Login

  • Carrito de compra

  • Pagar

si un microservicio falla, solo debe de fallar esa parte
CD, CI
Continous Integration
Tener que entregar de forma constante diferentes partes de una aplicacion
Continous Delivery
tener que publicar constante mente al publico esa aplicacion

¡Estimado Ricardo, es un gusto asistir a tus cursos!

Un abrazo.

Leer esto desde Argentina es como ir al futuro. En otros países es el ahora esto.

Cambio tanto que se dividio en backend y frontend, y hoy en dia estos se siguen subdividiendo según los frameworks

El desarrollo web a evolucionado a pasos a agigantados, y se prevé que continúe evolucionando

Es correcto, la demanda tecnológica exige un mayor conocimiento de herramientas 🤟
.
Considero que el área de ingeniería en toda empresa es respetada pero no absoluta y trabajar en procesos gerenciales y de manager, definen lo siguiente que habrá en un negocio.
.
Lo que más aprecio en mi carrera, es el aprender nuevas vertientes o paradigmas de programación / DevOps pero sobre todo, afrontar retos con compañeros que armonicen con cada Sprint / Release que se plantean ❣️

Genial