Dadas estas expectativas, ¿qué idioma o sistema elegiría para implementar la solución? [cerrado]

StackOverflow https://stackoverflow.com/questions/455618

  •  19-08-2019
  •  | 
  •  

Pregunta

Estas son las estimaciones que el sistema debe manejar:

  • 3000+ usuarios finales
  • 150+ oficinas en todo el mundo
  • 1500+ usuarios concurrentes en horas pico
  • 10.000+ actualizaciones diarias
  • 4-5 confirmaciones por segundo
  • 50-70 transacciones por segundo (lecturas / búsquedas / actualizaciones)

Esta será una aplicación comercial interna únicamente, dedicada a ayudar a la empresa de transporte con la gestión de envíos en todo el mundo.

¿Cuál sería su elección de tecnología, por qué esa elección y aproximadamente cuánto tiempo tomaría implementarla? Gracias.

Nota: no estoy reclutando. :-)

¿Fue útil?

Solución

Entonces, me preguntaste cómo abordaría un proyecto así. En el mundo de Smalltalk, la gente parece estar de acuerdo en que Gemstone hace que las cosas escalen de manera mágica.

Entonces, lo que realmente haría es esto: comenzaría a desarrollar en una imagen Squeak simple, usando SandstoneDB . Entonces, este momento llegaría donde una sola imagen comienza a ser demasiado lenta.

GemStone se encarga de copiar sus objetos públicos (aquellos visibles desde una determinada raíz ) de ida y vuelta entre todas las instancias. Obtiene sesiones y funcionalidades de consulta mejoradas, además de una VM bastante rápida.

Comparte datos con C, Java y Ruby.

De hecho, tienen su propia VM para ruby ??, que también vale la pena ver.

Otros consejos

wikipedia gestiona requisitos mucho más exigentes con MySQL

Sus volúmenes son significativos, pero no es probable que fuercen ningún RDBMS creíble si se programa de manera eficiente. Si su equipo es descuidado (es decir, colocando consultas SQL directamente en componentes que luego se componen en componentes más grandes), se enfrenta a la probabilidad de un " multiplicador " efecto donde un requisito lógico (obtener los datos necesarios para esta página) se convierte en una gran cantidad de consultas físicas de la base de datos.

Entonces, en lugar de enfocarse en la capacidad de su RDBMS, debe enfocarse en la capacidad de sus programadores y el grado en que su lenguaje y entorno de implementación facilitan la creación de perfiles y la refactorización.

El escenario que propone es claramente 24x7x365, por lo que también debe considerar la necesidad de monitorear / requisitos del tablero.

No hay forma de estimar el esfuerzo de desarrollo en función de las necesidades que ha presentado; Es genial que haya analizado sus transacciones a este nivel de granularidad, pero el principal determinante del esfuerzo de desarrollo serán los requisitos de dominio y UI.

Elija la tecnología que sus desarrolladores conocen y con la que están familiarizados. Todas las principales tecnologías disponibles manejarán dichos requisitos con facilidad.

Sus números de actualización diaria vs confirmaciones no suman. Cuatro confirmaciones por segundo = 14,400 por hora.

No mencionó nada sobre el tamaño esperado de la base de datos.

En cualquier caso, concentraría mis esfuerzos en elegir un back-end robusto como Oracle, Sybase, MS, etc. Esta elección hará la mayor diferencia en el rendimiento. El front-end podría ser una aplicación de escritorio o una aplicación WEB, según las necesidades. Dado que esto se usará en muchas oficinas en todo el mundo, una aplicación WEB podría tener más sentido.

Me gustaría ir con MySQL o PostgreSQL. No es probable que tenga problemas con ninguno de sus requisitos.

Me encantan las bases de datos de objetos. En términos de commits-per-second y database-roundtrip, ninguna base de datos relacional puede resistir. Consulte db4o . Es muy fácil de aprender, ¡mira los ejemplos!

En cuanto al lenguaje de programación y el marco de la interfaz de usuario: Bueno, tome en lo que su equipo es bueno. Los lenguajes dinámicos con menos pérdida de tiempo meta probablemente ahorrarán tiempo.

No se proporciona suficiente información aquí para dar una recomendación adecuada. Se requiere un poco más de diligencia debida.

  • ¿Cómo es la cultura de TI? ¿Prefieren muchos servidores pequeños o menos servidores más grandes o hierro grande? ¿Cuál es su posición sobre la virtualización?
  • ¿Cómo es la cultura corporativa? ¿Cómo es el clima político? Las ofertas de código abierto pueden manejar muy bien la carga, pero es posible que deba ir con un proveedor propietario solo porque ya están acostumbrados a navegar los vientos políticos de una gran empresa. La percepción es importante.
  • ¿Cuál es el nivel de madurez de la organización? ¿Ya tienen un equipo de Arquitectura empresarial ¿en su lugar? ¿Saben siquiera qué es EA?
  • Has descrito el lado operativo, pero ¿qué pasa con el lado analítico? ¿Qué tecnología OLAP esperan usar o ya tienen implementada?
  • Hablando de integración, ¿con qué otros sistemas necesitarás integrarte?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top