¿Cuál es la pila tecnológica detrás de Slack?

Como dice la respuesta de Quincy Larson, el Slack de hoy desciende de una aplicación de pila LAMP convencional. Pero esto da una impresión engañosa; Podría decir lo mismo de Facebook, por ejemplo. Si bien la herencia de la pila LAMP de FB influye en cosas no triviales sobre su back-end, pensar que es una aplicación CRUD sencilla es, en el mejor de los casos, engañosa. Todo es de baja tecnología cuando solo necesita soportar cientos de usuarios; cada orden de magnitud más allá del cual se ha probado su aplicación requiere más creatividad de back-end, y Slack ya ha recorrido algunas millas por ese camino. Espero que tengamos más por recorrer.

Una omisión sustancial de la respuesta de Quincy es nuestro servidor de mensajería en tiempo real. Esta parte de nuestro back-end, responsable de la mayoría de las interacciones en tiempo real que ocurren en varios clientes, se implementa en Java y se accede a través de una API de WebSocket descrita aquí: API de mensajería en tiempo real. Gran parte de la experiencia del usuario que hace que Slack sienta que Slack es el resultado de un trabajo cuidadoso en el servidor de mensajes. Muchos de los desafíos de sistemas distribuidos que enfrentamos en el back-end están en coordinar este servicio con el resto del back-end (LAMP-ier).

Keith Adams ya ofreció una excelente descripción general de la tecnología de Slack , por lo que haré todo lo posible para agregar a su respuesta.

Los productos que componen la pila tecnológica de Slack incluyen: Amazon (CloudFront, CloudSearch, EMR, Route 53, Web Services), Android Studio, Apache (Servidor HTTP, Kafka, Solr, Spark, Web Server), Babel, Brandfolder, Bugsnag, Burp Suite , Casper Suite, Chef, DigiCert, Electron, Fastly, Git, HackerOne, JavaScript, Jenkins, MySQL, Node.js, Objective-C, OneLogin, PagerDuty, PHP, Redis, Smarty, Socket, Xcode y Zeplin.

Además, aquí hay una lista de otros productos de software que Slack está usando internamente:

  • Marketing : AdRoll, Convertro, MailChimp, SendGrid
  • Ventas y soporte : Cnflx, Front, Typeform, Zendesk
  • Analytics : Google Analytics, Mixpanel, Optimizely, Presto
  • HR : AngelList Jobs, Culture Amp, Greenhouse, Namely
  • Productividad : ProductBoard, Quadro, Zoom, Slack (¡vaya figura!)

Para obtener una lista completa del software utilizado por Slack, consulte: Slack’s Stack on Siftery

Algunos datos curiosos sobre Slack:

  • La holgura es utilizada por el 55% de los unicornios (y el 59% de los unicornios B2B)
  • Slack tiene una participación de mercado del 85% en la categoría de mensajería instantánea de Siftery en Siftery
  • Slack es utilizado por el 42% de las compañías Y Combinator y 500 Startups
  • El 35% de las empresas de la economía colaborativa usan Slack

(Descargo de responsabilidad: los datos anteriores se obtuvieron de Siftery y han sido verificados por personas que trabajan en Slack)

Slack usa la pila LAMP

Es una opción convencional y sensata para un producto relativamente de baja tecnología como el suyo. Parece escalar lo suficientemente bien:

Algunas otras tecnologías que usan:

  • SOLR para búsqueda de texto completo
  • Redis como una tienda de valores clave
  • jQuery para manipular el DOM

Actualización: Aparentemente, la tecnología de Slack tiene límites (indocumentados): así que sí, intentamos Slack … y lo lamentamos profundamente – Free Code Camp

Actualización de abril de 2016: el arquitecto jefe de Slack, Keith Adams, respondió recientemente a esta pregunta. Por razones obvias, su respuesta es más autoritaria que la mía.

Hay un estudio de caso sobre Slack que detalla la arquitectura con la pila de tecnología que están utilizando en AWS. Estudio de caso de Slack – Amazon Web Services (AWS).

“Slack tiene una arquitectura de TI relativamente simple que se basa en una amplia gama de servicios de AWS, incluidas las instancias i2.xlarge Amazon Elastic Compute Cloud (Amazon EC2) para tareas de computación básicas; Amazon Simple Storage Service (Amazon S3) para cargas de archivos de usuarios y activos estáticos; y Elastic Load Balancing para equilibrar las cargas de trabajo en las instancias de Amazon EC2.

Por seguridad, Slack usa Amazon Virtual Private Cloud (Amazon VPC) para controlar grupos de seguridad y reglas de firewall y AWS Identity and Access Management (IAM) para controlar las credenciales y funciones de los usuarios. La compañía usa Amazon CloudTrail para monitorear registros relacionados con instancias de Amazon EC2 y Amazon Route 53 para la administración de DNS ”.

¿Nadie aquí respondió sobre el lado frontal?

Sé que usan Electron para sus aplicaciones de escritorio. Al menos para el OSX.

Vine aquí deseando encontrar información sobre qué más usan para la aplicación. Reaccionar, puede ser?

Creo que este es un blog que te ayuda a comprender mejor la holgura: TechStacks. Slack reemplazará las comunicaciones por correo electrónico del equipo. Es eficiente y poderoso también. También hay tantos bots disponibles para holgura. Uno de los bot de productividad eficiente es Acebot, el único bot enfocado en la productividad en Slack. Puede usarlo con holgura y hacer sus tareas diarias más fácilmente.

Puede ver detalles sobre las tecnologías que utiliza Skack aquí http://builtwith.com/Slack.com

“Nuestras herramientas principales que utilizamos para construir Slack son PHP, MySQL y Linux …”

https://jobs.lever.co/slack/058d