¿Cómo desarrollamos una aplicación tipo Flipkart?

No sé exactamente cuál es la pila tecnológica de Flipkart, pero es lo que llamarías una aplicación web moderna típica. Si tengo que construir uno, así es como se vería:

Necesita componentes de front-end que usen el trío sagrado estándar de HTML, CSS y Javascript (o cualquier otro lenguaje que se compile en JS). Una pila de front-end moderna se basaría en la arquitectura SPA (aplicación de una sola página) para maximizar la capacidad de respuesta, la interactividad y la experiencia del usuario, y normalmente usaría un marco como React, Angular, Vue o Ember, o incluso variantes funcionales ultra modernas como como Elm. La gestión del estado se realizaría con una biblioteca como Redux para marcos basados ​​en JavaScript.

En el backend, habría un servidor API que sirva la carga útil REST o GraphQL. El servidor API se puede construir en una variedad de plataformas / lenguajes de tecnología backend, incluidos PHP, Python, Go, Node.js o variantes funcionales como Elixir / Erlang, y abstraería varios micro servicios y conectores a bases de datos que pueden ser NoSQL -baseds como MongoDB o bases de datos SQL regulares como Oracle, MySQL, Postgres.

Se necesitaría un CMS para administrar el contenido y los catálogos.

Se necesita una potente funcionalidad / motor de búsqueda para escanear rápidamente a través de los millones de elementos del catálogo para permitir la búsqueda de usuarios. Puede usar la pila ELK o equivalente para esto.

Para pagos, se necesita conexión a una o más pasarelas de pago.

Por seguridad: SSL para encriptación, autenticación (con hash de contraseña usando algo como Bcrypt), autorización de API usando JWT y bibliotecas de terceros (según la elección del lenguaje de programación en el back-end) para funciones basadas en roles y acceso a datos.

Se necesita una solución de big data (como la basada en hadoop) para analizar los flujos de clics de los usuarios y ejecutar un motor de recomendaciones utilizando algoritmos ML / AI.

Se necesita una aplicación de administración complementaria para configurar el sistema.

Estos componentes se pueden alojar en un centro de datos o en la nube (AWS, Azure). El despliegue de producción se puede hacer en contenedores acoplables.

Para clientes móviles, uno tiene la opción de usar marcos nativos en Android o iOS como java & Objective-C / Swift, o usar soluciones híbridas como Cordova / Ionic, o usar una herramienta de desarrollo multiplataforma como React Native. Estas aplicaciones de front-end móvil se alojarían en Apple Store o Google Play Store y se conectarían a los mismos servidores API de back-end.

El registro de dominio y el alojamiento se pueden hacer con cualquiera de los registradores de dominio, como GoDaddy. Para el alojamiento / servicio web estático, se puede utilizar un servicio como Surge. Use Webpack para compilaciones y aumentos del sistema.

Para mejorar el rendimiento, se puede usar el almacenamiento de datos en memoria / caché, como Redis, y para servir activos estáticos, CDN es imprescindible.

La recuperación ante desastres debe planificarse con el centro de datos de DR en otra zona geográfica en comparación con el centro de datos primario.

Se necesita una solución de monitoreo para la infraestructura y la disponibilidad de la aplicación y el monitoreo del rendimiento, que puede mostrar el estado y las métricas en varios componentes del sistema y enviar alertas si se rompen los umbrales.

En resumen, claramente está sucediendo mucho más en una aplicación web compleja como flipkart que sirve a millones de usuarios y aloja productos de miles de proveedores y simplemente no es posible para mí (ya que aún no he creado uno) explique todas las piezas de funcionalidad y componentes del sistema y la fusión de las diferentes tecnologías y skillets que se necesitan, pero espero que esto dé una idea razonable de cuán complejas pueden ser las cosas con bastante rapidez cuando se trata de construir una aplicación de comercio electrónico orientada al consumidor.