La arquitectura backend de Spotify está fuertemente orientada al servicio. El backend está compuesto por aproximadamente cien servicios, la mayoría de ellos bastante pequeños y simples. Los servicios están escritos en Python o Java con algunas excepciones. Servicios
comunicarse principalmente utilizando nuestro propio protocolo llamado Hermes, que es un mensaje basado y construido en ZeroMQ y Protobuf. Los servicios más antiguos todavía usan cargas útiles HTTP y XML / JSON. El almacenamiento es principalmente PostgreSQL, Cassandra o varios índices estáticos. Este último lo utilizan principalmente los diversos servicios de contenido, por ejemplo, para búsqueda o metadatos. Los archivos de audio se almacenan en Amazon S3 y se almacenan en caché en nuestro backend o usando CDN para baja latencia.
Los diversos clientes mantienen una conexión persistente a un servicio de fondo denominado “punto de acceso”. Básicamente funciona como un enrutador de mensajes con esteroides, manejando la comunicación con los servicios necesarios. El protocolo entre clientes y el
El punto de acceso es propietario.
Los clientes de escritorio, móviles y nuestra biblioteca incorporable, libspotify, comparten una base de código común. Luego, cada cliente se basa en este núcleo para proporcionar interfaces de usuario y otras adopciones específicas de la plataforma. La base del código compartido está escrita en C ++ y las adopciones de la plataforma en los lenguajes nativos de la plataforma, por ejemplo, ObjC en iOS. Además, muchas vistas y aplicaciones en el cliente de escritorio ahora se implementan como aplicaciones web, utilizando una instancia incrustada de Chromium.
- Cómo ser notado por las empresas de CS de primer nivel y dada mi situación, cuál sería el movimiento correcto
- ¿Es la alta seguridad y el alto rendimiento una característica en los softwares?
- ¿Es el desarrollo ágil algo real, o incluso vale la pena aprenderlo? ¿Es una broma?
- ¿Es una buena idea externalizar la reescritura de nuestro software?
- ¿Por qué Apple es primero una empresa de hardware y luego una empresa de software?
El audio se recupera de la memoria caché local, de igual a igual o de nuestro almacenamiento. Nuestra solución P2P ha sido descrita en detalle en varios documentos por Gunnar Kreitz (documentos).
La infraestructura se basa en gran medida en Debian y en el software de código abierto en general.