Como ya señaló Anshul Ranjan, Python es la menor de sus preocupaciones. Primero debe preocuparse por otras cosas: no solo su arquitectura de datos, sino también su arquitectura de base de datos, procesamiento y sistema.
Dado el tamaño de la base de datos y la cantidad de usuarios (aunque no especifique cuántos usuarios CONCURRENTES), esto suena como un sistema que tiene que funcionar sin parar, 24 × 7 y ser relativamente a prueba de balas. Inmediatamente, eso significa una red de área de almacenamiento y un clúster de procesamiento, con mucha replicación y conmutación por error, y probablemente con replicación en un segundo centro de datos. Probablemente necesitará una gran cantidad de fragmentos de base de datos y procesamiento concurrente para manejar cualquier carga de usuario razonable.
A primera vista, esto suena terriblemente como un gran clúster de Oracle o un gran clúster de Hadoop, dependiendo de la naturaleza de sus datos y de los tipos de consultas y análisis que desea ejecutar. Dada una base de datos grande y fragmentada, es probable que desee llevar el primer nivel de análisis al límite, lo que argumenta a favor de Hadoop y una estrategia de reducción de mapas. Para la capa por encima de eso, donde estás haciendo análisis sofisticados, se convierte en una cuestión de qué lenguaje es más expresivo para los tipos de análisis que tienes en mente. Para la capa de interacción del usuario, manejará muchas transacciones, lo que argumenta a favor de algo que maneja bien la concurrencia, que dice Erlang.
- ¿Cuál es la próxima gran novedad en términos de SaaS, dedicada a los consumidores?
- ¿Cuál es la métrica clave de SaaS con la que toda empresa SaaS debería obsesionarse?
- Comparación improbable: QuickBase vs NetSuite?
- ¿Qué es un buen raspador web en línea (SaaS) que tiene una GUI y un modelo de negocio freemium?
- ¿Cómo se paga la nueva comisión de ventas comerciales en las ofertas de SaaS empresariales?
En cualquier nivel de uso razonable, los servicios en la nube comienzan a ser muy caros e impredecibles, lo que sugiere que querrá construir su propio clúster (probablemente dos, en centros de datos separados). Y “a prueba de balas” sugiere VMware y una red de área de almacenamiento; o puedes ir con Openstack. Es posible que esté buscando un modelo de nube híbrida: comience en un clúster alojado, pero planee expandir / migrar a su propio hardware.
Y solo una nota de precaución: si está pensando primero en el lenguaje de programación, realmente necesita agregar algunas personas a su equipo que tengan experiencia en la construcción de sistemas realmente grandes.