Al desarrollar una potente arquitectura de pila completa, ¿después de qué etapas decide introducir Sharding?

Gracias Daniel Burberry por el A2A

Al desarrollar una potente arquitectura de pila completa, ¿después de qué etapas decide introducir Sharding?

Recuerdo haber hecho preguntas similares cuando era un desarrollador junior de software, pero para otras cosas, como … ¿Cuándo debería usar una vista en lugar de simplemente escribirla en un procedimiento almacenado?

Le preguntaría a todos los desarrolladores senior y se encogerían de hombros y dirían … “Solo sabes cuándo usarlo”

Odiaba esa respuesta, pero desafortunadamente sigue siendo cierta. Lo que no me dijeron es que la primera vez que usas una nueva técnica, la usas demasiado temprano (probando una nueva tecnología) o la usas demasiado tarde (el daño ya está hecho y estás tratando de repararlo frenéticamente) ) y solo al golpear el segundo escenario suficientes veces que comienzas a tener el ‘bulto de problemas’ que te dice que tal vez deberías hacer XY y Z ahora.

El problema con este tipo de preguntas en Quora es que nunca se brinda suficiente información sobre el entorno empresarial. Pero, de nuevo, si fuera fácil responder a su empresa no necesitaría contratar especialistas, podrían obtener sus respuestas de un foro.

Entonces, a su pregunta inicial, depende. la cantidad de datos que tiene, cómo se cargan los datos a través de la base de datos. qué tan difícil será que los usuarios de la aplicación y los usuarios de informes ataquen los datos, cualquier función de mantenimiento que se realice fuera de horario. La cantidad de evaluadores se quejan de que las aplicaciones son lentas, cuánto tiempo le sobra y qué prioridades le otorgan los directorios de la compañía.

Personalmente, siempre hago que las cosas funcionen primero, luego puedo resolver las respuestas a algunas de las preguntas anteriores y, si es necesario, a partir de ahí, otras veces trabajo con el director de si no está roto, no lo arregles. Si tiene la experiencia y sabe que la va a necesitar, hágalo inmediatamente después de hacer un ERD (diagrama de relación de entidad) antes de que se creen las bases de datos.

Si está construyendo para una compañía Fortune 50 o construyendo “a escala”, lo que significa que está listo para un millón de usuarios y potencialmente miles de millones de registros, entonces lo hace de inmediato. A escala todo se agrupa. Tienes copias de seguridad para tus copias de seguridad.

Pero si creciera un producto desde cero, no lo necesitaríamos hasta que tuviéramos una financiación de 6 cifras o más de 100k usuarios. Porque, como menciona Steven, podemos hacer mucho incluso con un servidor modesto. Y si solo tiene un servidor, literalmente no tiene sentido.

Evite hacer algo fundamental en su arquitectura que haga imposible fragmentar sus datos, pero aparte de eso, preocúpese lo más tarde posible, sería mi consejo. Para el 99% de los sistemas existentes, es mucho más rentable para toda la vida útil de la aplicación escalar verticalmente (ejecute sus cosas en cajas más grandes) que horizontalmente, y evitará tener que construir mucho tiempo muy difícil. -consumidor de software.

Pasar el tiempo de desarrollo inicial centrado en su producto es casi seguro que tendrá un impacto mucho mayor en sus posibilidades de éxito que pasar el tiempo asegurándose de que su sistema pueda manejar millones de usuarios simultáneos.

More Interesting

¿Por qué el uso de variables globales es una mala práctica de codificación si Google lo usa en su sitio web?

¿Cómo se sienten los desarrolladores con una educación formal sobre los desarrolladores que son autodidactas o graduados de boot camp?

¿Es posible migrar SuiteCRM sin perder cambios y exportar la base de datos existente?

Cómo crear un complemento para una aplicación python

¿Necesito instalar WAMP para aprender PHP o necesito un servidor web con soporte PHP?

¿Qué herramienta permite escribir en un archivo cada vez que alguien inicia sesión en el sitio?

Cómo cargar y descargar varios tipos de archivos en PHP desde la base de datos MySQL

¿Tengo que dominar y aprender JavaScript avanzado para convertirme en un exitoso desarrollador web full-stack?

Cómo convertir la plantilla HTML CSS de bootstrap existente al formato de WordPress

¿Está mal usar reactjs pero la aplicación no es isomorfa?

¿Cuáles son los diferentes tipos de plataformas de desarrollo de sitios web de CMS?

¿Qué necesitaría saber para construir mi propio sitio de redes sociales?

¿Cómo puedo acceder a un valor variable de una función desde otra función en JavaScript, en el mismo ámbito? ¿Puedes consultar el enlace del bolígrafo de código?

¿Cuáles son las diferencias y similitudes entre el diseño adaptativo y el receptivo?

¿Cuánto tiempo tardaré en saber si tengo un don para el desarrollo o la programación de sitios web? Tengo cero experiencia y deseo como mínimo aprender HTML, CSS y Javascript.