20000 Leagues Under the Sea: Diving Into the Slack Infrastructure
-
Upload
raissa-largman -
Category
Technology
-
view
29 -
download
3
Transcript of 20000 Leagues Under the Sea: Diving Into the Slack Infrastructure
20,000 Leagues Under the Sea:
Diving into the Slack Infrastructure
Raissa Largman, Infrastructure Engineer
Infrastructure Hunger Games Champion 2017
Java backend developer
Been at Slack since January 2016
Who is Raissa?
Agenda:
1.Past - Where did we embark from for this voyage?
2.The problem - The kraken3.Present - How are we fighting off the kraken?
4.Future - Building armor against future krakens
5.Q&A
Part 1:In the Beginning
Message Server
Basic Architecture
Your client#team-backend-
servicesWebapp / Database
Sending a Message (MS1.0)
Message Server
Going Over the Socket (MS1.0)
Your client#team-backend-services
Message Server
Other People See the Message (MS1.0)
Your client#team-backend-services
Julia#team-backend-services
Serguei#team-backend-services
Message Server
Saving in the Database (MS1.0)
Webapp / Database
Message Server 1
Message Server Expansion
Clients Webapp / Database
Message Server 2
Message Server 3
...
Enterprise Grid
Enterprise Shared Channels
Message Server (Team 1)
Going Over the Socket (MS1.0)
Your client#announcements-global
(shared)
Message Server (Team 1)
Other People See the Message (MS1.0)
Your client#announcements-global
Juan Local#announcements-global
Susan B. Enterprise#annoucements-global
Message Server (Team 2)
Message Server (Team 1)
Other People See the Message (MS1.0)
Your client#announcements-global
Juan Local#announcements-global
Susan B. Enterprise#annoucements-global
Message Server (Team 2)
Message Server (Team 1)
Other People See the Message (MS1.0)
Your client#announcements-global
Juan Local#announcements-global
Susan B. Enterprise#annoucements-global
Message Server (Team 2)
Message Server (Team 1)
Saving in the Database (MS1.0)
Webapp / Database
Message Server (Team 2)
{
"team_id":"T6789",
"ms_host":"ms101",
"shared_channels":[
"C111":["T1234","T4567","T6789"],
"C234":["T4567","T6789"],
"C346":["T1234","T6789"],
...
]
}
Team Meta
Part 2:Current State of Affairs
Deploy Confidence
Scaling - Enterprise Shared Channels
“Second System Syndrome”
Why Create the Hybrid MS1.5?
Sending a Message (MS1.5)
Message Server (Nautilus)
Going Over the Socket (MS1.5)
Your client#announcements-global
(shared)
Message Server (Nautilus)
Passing to the Channel Server (MS1.5)
Channel Server (#announcements-
global)
Message Server (Nautilus)
Passing back to Message Servers (MS1.5)
Channel Server (#announcements-
global)
Message Server (Yellow Submarine)
Channel Server (#announcements-
global)
Saving in the Database (MS1.5)
Webapp / Database
Message Server (Nautilus)
Other People See the Message (MS1.5)
Your client#announcements-global
Jules Verne#announcements-global
John Lennon#annoucements-global
Message Server (Yellow Submarine)
Bonus Benefit (MS1.5)
Consul
Admin ServerChannel Servers
Part 3:The Future™
1 server becomes 4
MS2.0
Admin Server
Admin Server
Webapp / Database
Gateway Server
Gateway Server
Clients
Presence Server
Presence Server
Gateway ServerAdmin Server
Functionality is the same
MS1.0
Message Server (MS)
Channel Server (CS) Admin Server (AS) Presence Server
(PS)Gateway Server
(GS)
MS2.0
Q&A
Thanks!
Got questions? [email protected]