QNA > Q > Qual È Lo Stack Tecnologico Dietro Slack?

Qual è lo stack tecnologico dietro Slack?

Il sistema Slack è composto da molti servizi e applicazioni diverse. Abbiamo 3 client principali:

* Il nostro client web è scritto in un mix di JavaScript ed ES6, con React. Usiamo Electron per spedirlo come app desktop

* Il nostro client Android è scritto in un mix di Java e Kotlin

* Il nostro client iOS è scritto in un mix di Objective C e Swift

Sul backend, abbiamo la nostra applicazione principale che alimenta slack.com e la nostra API, che è scritta in PHP/Hacklang su HHVM. Memorizziamo i dati in MySQL usando Vitess. Per il caching, usiamo Memcached e MCRouter. Il nostro servizio di ricerca è basato su SolrCloud, con vari servizi Java per il ranking. Il nostro sistema di messaggistica in tempo reale usa WebSockets ed è composto da molti servizi scritti in Java e Go. Usiamo HAproxy per il bilanciamento del carico e Consul per la configurazione e la scoperta di alcuni servizi. La maggior parte dei nostri servizi parlano tra loro tramite gRPC, anche se abbiamo anche alcuni Thrift e JSON-over-HTTP. Il nostro servizio di chiamate vocali e video è costruito in Elixir. Alcuni servizi diversi sono anche scritti in Node. Il nostro sistema di code asincrone è costruito su Kafka e Redis.

Il nostro data warehouse è costruito su strumenti open source, inclusi Presto, Spark, Airflow, Hadoop e Kafka. Per la configurazione e la gestione dei server usiamo Terraform, Chef e Kubernetes. Usiamo Prometheus per le metriche delle serie temporali e ELK per i log. Slack è in gran parte ospitato su AWS, in molte regioni a livello globale.

Di Swetlana

Perché iOS è meglio di Android per gli sviluppatori? :: Qual è un buon metodo matematico per determinare rapidamente l'età di qualcuno da una data di nascita nota?
Link utili