This is the last in a three part series on delivering a Real-Time experience to your web app. In previous posts, I have covered council for software architects and developers. In this post, I present four tips for your technical operations team.
- Know your X 509 certificate Kung Fu. If the web page was served via SSL, then the communications with the chat server must be SSL too. Since your chat servers won’t be in the same cluster as your web servers, they get their own domain and may possibly require a different certificate. The choice of chat server technology that we made a Zoosk handles the certificates differently than our choice of web server technology so some changes had to be made because of that. Assuming that your user’s communications should be kept private, your certificate management policy and corresponding digital assets may need to grow beyond the requirements of your web servers.
- Expect more database connections. As each chat cluster needs to connect to every database shard, you will experience a proliferation in the number of connections to each server.
- Load won’t balance quickly. The cloud dream of being able to add more servers quickly as load peaks becomes murky in RTC as it will take longer to route traffic to the new servers than it does in a traditional web farm. At Zoosk, we encountered this problem when we scaled out to XEP-0114 compliant external components. We mitigated the problem by improving our external components to take full advantage of multi-threading.
- Plan for packet leaking with High Availability style fail over. The real-time requirement of chat servers during a burst of traffic may make them temporarily unavailable to respond to the load balancer’s heart beat ping. This could cause poorly tuned traffic managers to flap nodes in a cluster. If your stand by server is taking traffic, then it is time to raise the threshold number of failed pings in your load balancer before it triggers a switch over.
These 4 tips should help system administrators prepare for the initial deployment and ongoing maintenance of your RTC enabled site.
Senior Software Engineer for Real-Time Communications