Fresh on the heels of refactoring our infrastructure for better scaling, we are increasing our server presence in South America and Europe. So if you are making Gruveo calls to/from one of those regions, you may notice lower delays and overall smoother call experience, starting today. Enjoy!
Quick fact: This April, Gruveo monthly call minutes grew 644% year over year. Actually, we have been experiencing this 7X to 8X YoY growth every month since October last year when the iOS app was launched. (December 2014 was an exception where call minutes jumped a staggering 13X vs. December 2013.)
Gruveo monthly call minutes since Aug. 2013
With this kind of growth rate, the question we began to ask ourselves was whether our infrastructure was up to the task of keeping up. An internal audit conducted in February showed that scaling Gruveo in its then-current state was problematic, so we rolled up our sleeves and got to work fixing that.
There are three main components to Gruveo (notwithstanding the iOS app), each of which would have experienced severe strain if another TechCrunch article about Gruveo came out:
The first thing we set out to address was the website. Instead of hosting it on a self-setup VPS, we refactored it into an Elastic Beanstalk app that is now hosted on AWS. With goodies such as Elastic Load Balancers and auto-scaling in place, we no longer worry about a sudden spike in traffic.
With our STUN/TURN servers, the problem that prevented us from scaling efficiently was the TURN credentials mechanism we had been using. Under the old scheme, referred to as the “Typical TURN Auth” in this presentation, the signaling server would generate TURN credentials for each connecting client and store those in a database accessible by the TURN servers. That worked, but increasing the number of TURN servers also meant having to scale the database while maintaining the signaling server – database – TURN server link.
To solve this issue, we ditched the old approach in favor of the TURN REST server API (described as “Stateless TURN Auth” at the link above). Frankly, that was like a breath of fresh air to us. No longer did we need to haul around a MySQL credentials database and worry about scaling it along; bumping up our TURN server capacity became as easy as spinning off new instances from a virtual machine image.
Having put the TURN scalability behind us, we were left with addressing one last component: the signaling server. The custom Node.js server we had in place could scale up pretty decently, but scaling out was an issue. How do we efficiently pass messages between distinct server instances?
Enter Redis and its Pub/Sub functionality where clients can subscribe to and publish messages in “channels”. By having all our Node.js server instances communicate through a Redis cluster, we solved the problem of scaling out the signaling, and also made it automated by making our signaling into just another Elastic Beanstalk app.
The result: Scalable, powerful Gruveo able to withstand whatever growth the future may bring. (And if past experience is any guide, there will be a lot.)
The Relationships and Social Cognition Lab (RASCL) at University of California, Berkeley studies the dynamics of intergroup relationships and how people can improve these relationships. Some of the lab’s research focuses on the ways in which people can decrease the anxiety they might experience when interacting with people from other groups. The lab’s researchers also focus on how trust and closeness contribute to positive intergroup outcomes.
RASCL have recruited online participants for survey studies before but with their current research, they wanted to take things one step further. “The research we are conducting focuses on interpersonal dynamics,” explains Dr. Jordan Leitner, a postdoctoral researcher at RASCL. “As such it was necessary to harness technology that would allow us to bring people together, even if through the Internet. Chatting with participants opens an array of possibilities that are impossible with survey methods.”
We will be performing scheduled maintenance of the Gruveo infrastructure this Sunday, March 8. There will be two maintenance batches that are scheduled as follows:
The expected maintenance window is 2 hours for each batch; however, the actual time taken can be much less. Gruveo calls may not be available in some regions while the maintenance is performed.
We apologize in advance for any inconvenience.
Last summer, Gruveo had to drop support of desktop Internet Explorer and Safari due to switching to the new WebRTC technology. We’ve been longing to bring Gruveo back to our IE and Safari users ever since, and we are happy to announce that we are doing it today.
Gruveo now works in IE 10+ and Safari 7+ on desktop with the help of the excellent Temasys WebRTC plugin. The plugin is a free, quick install for Windows and Mac OS X that enables the WebRTC functionality in IE and Safari. Gruveo will prompt you to install the plugin if you try to make a call in one of those browsers, and we also provide a detailed installation guide.
The WebRTC plugin comes from a trusted source: Temasys is a Singapore-based company that is part of the World Wide Web Consortium (W3C) standards committee and the Internet Engineering Task Force (IETF) working group that are actually defining the WebRTC technology itself.
Once the plugin is installed, Gruveo “just works”, enabling effortless video conversations with other Gruveo users no matter what platform they are on.
There are a few known issues to Gruveo operation in IE and Safari, the status of which you can find here.
Safari and Internet Explorer, we are happy to have you back!