Tecnologías detrás de Dropbox

imagen / Dropbox
  
4 de Abril de 2016   0  

Conocer las tecnologías que grandes empresas utilizan nos ayuda muchísimo a nosotros que estamos aún con una idea en nuestra mente y no estamos muy seguros de lo que deberíamos utilizar para desarrollarla.

Hemos hablado en publicaciones anteriores sobre tecnologías que son utilizadas en Pinterest, Instagram y hasta en este blog de Pythonízame.

El día de hoy revisaremos las tecnologías y lenguajes que utiliza DropBox para poder soportar los 15 millones de archivos que almacena cada 15 minutos.

 

Lenguaje de Programación Python.

 

El 99.9 % del código está escrito en Python: Se utiliza en el Backend del servidor, en el cliente desktop, en la lógica de los controladores de la web, Backend del API y sus analíticas. DropBox corre en Windows, Mac y Linux usando herramientas como PyObjs, WxPython, Types, py2exe, py2app, PyWin32. No importa que tipo de sistema de archivos estes utilizando, o que sistema operativo estás corriendo, El producto siempre funcionará bien.

MySQL como motor de base de datos.

 

Dropbox ha elegido uno de los mejores servicios de base de datos que existen actualmente, MySQL. Este motor trabaja muy bien con grandes cantidades de datos y una de sus cualidades más grandes es que alcanza velocidades muy sobresalientes en lectura y escritura de datos.

Pylons y Cheetah

 
La plataforma web de Dropbox se encuentra desarrollada utilizando el framework Pylons y el motor de templates Cheetah, lo cual permiten alcanzar velocidades muy altas en cada una de las peticiones que los usuarios realizan en la web. A comparación del framework web Django, Pylons (Pyramid) es mucho más veloz ya que es un framework minimalista que carga solamente lo indispensable para trabajar con Python en la web, Django por el contrario, es un framework muy completo y con tantas funcionalidades de validaciones en procesadores de contextos, middlewares y demás, que ralentizan los procesamientos y renderizados de los usuarios, aunque claro, esto no significa que Django sea muy mala opción, si no que con un poco de trabajo extra, podemos tener nuestros sitio web con Django muy ligero sin sentir la carga de trabajo en nuestros servidores.
 

Memcaché

 

Memcached es un almacén KEY - VALUES en memoria que permite persistir pequeños trozos de datos arbitrarios (cadenas , objetos) a partir de resultados de las llamadas de base de datos o renderización de páginas, ofreciendo una buena solución de caché para el sitio web y consultas de datos en DropBox.

 

AMAZON EC2 / S3

 
Este es un punto que últimamente se le ha estado criticado a Dropbox: no tener infraestructura propia para almacenar los archivos de sus clientes en discos duros propios, y tal vez sea esta la causa del porqué en ocasiones la carga, descarga y lectura de archivos se sienta algo lenta, sin embargo, Dropbox ha sabido utiilzar muy bien estas soluciones de AMAZON para hacer un gran negocio en internet que es respaldado por su gran cartera de clientes (millones) que tiene en todo el mundo.

Servidor Web NGINX

 

Durante mucho tiempo Apache se consideró como el mejor servidor web que podría existir para liberar proyectos sin importar el sistema operativo que estemos utilizando ( Linux, Windows, Mac Server).
 
Actualmente, NGINX ha ido abarcando terreno para considerarse un webserver con mucho potencial, permitiendo servir muchas más peticiones por segundo sin consumir tanta memoria, ya que trabaja en un esquema event-based lo cual significa que no requiere abrir nuevos hilos por cada solicitud (web request) recibida.
 
Dropbox, conociendo las ventajas de utilizar NGINX decide adoptarlo para atender a una mayor cantidad de peticiones sin sacrificar performance o requerir de grandes cantidades de memoria RAM en sus servers.
 
 
Fuentes:
 

 



Alex Dzul

FullStack Python / Django Developer. #jslove

Etiquetas

Temas relacionados