From MySQL to ScyllaDB Cloud: Mistaway’s Migration to DBaaS
Mistaway manufactures Internet of Things (IoT)-enabled mosquito abatement systems. Their system requires polling time-series data from thousands of users. Learn how and why Mistaway decided to make the switch from MySQL to ScyllaDB Cloud, and how moving to a managed cloud service has impacted their business.
In the above video, Kevin Johnson of Mistaway described how they initially deployed the backend database for their solution and then migrated to ScyllaDB Cloud (NoSQL DBaaS). The company initially used MySQL.
‘The real benefit in our mind is that the dealers are able to use this to provide better and more efficient service to the homeowner,” according to Kevin. It prevents having to do needless but regularly scheduled “truck-rolls” every thirty or sixty days and heads off calls from angry customers being assaulted by mosquitos. With iMistAway you only roll a truck out to a house when you need to, and you have foreknowledge of the precise issue.
Each system provides seventy channels of data points. One of those is the status for the tank. For instance, if a tank runs empty prematurely and the status is EMPTY, it can send an alert to be refilled.
MistAway’s internet of Things (IoT) architecture requires receivers on the individual components, a gateway at the customer location to the cloud and a back-end platform that ingests data, performs analytics, and processes messages to dealers and end users.
Originally the analytics system was stored in a third-party SQL database, but the vendor was moving away from their existing business model. This left MistAway in the lurch. While the vendor offered to move the database in-house, the MistAway staff would have to manage it themselves with little support. Their vendor gave a deadline of three months to make the transition to migrate their entire history of five years of data streaming from over 3,000 systems — a number that has only grown since. Kevin admitted this made him feel pretty overwhelmed.
The migration plan required shifting existing historical data as well as stream the current time-series data from live systems into the new database. This was when Kevin considered ScyllaDB Cloud, a managed database service. “We needed the high performance of tools like ScyllaDB but we really don’t want to have to manage everything.” Kevin described what it felt like faced with a hard deadline, “We’ve got a time crunch. We’ve got to get this thing solved. Let’s check out these ScyllaDB guys and see if they’re legit.”
Once the engagement began Kevin was impressed and described the process as a “zero stress migration.” ScyllaDB conducted sizing reviews, and optimized for MistAway’s business, taking into account time-of-day and seasonal effects. ScyllaDB Cloud had an easy-to-digest price (“makes it a really easy convince-your-boss exercise”), and was easy to signup and get started. Describing the user experience, “Couple clicks. Couple minutes. You can spin up a cluster where you want it, how you want it.”
ScyllaDB also provided step-by-step documentation of the migration process, “which was very helpful.” He even noted that the day of the migration he was unexpectedly unavailable. But ScyllaDB took the initiative, along with the former vendor, and made a seamless migration.
“We had zero downtime. And for that, I think ScyllaDB’s number one.”
Making the move from SQL to NoSQL required the team to completely remodel the schema. Tables to support their queries were created for different kinds of information: alarms (both current and historical), datapoints (both current and historical), reactions and current states:
alarms_current alarms_history change_history atapoints_current datapoints_history reaction_receipt states_current
The remodeling of data into current alarms and datapoints meant that Kevin could get the real-time state of all the deployed systems. “In my legacy platform these are two things you couldn’t do without getting up to take a break or get a cup of coffee. Now, with ScyllaDB, we can do these full table scans. My boss loves to login as a superadmin, pull up the entire fleet and run analysis and see how the fleet is doing health-wise.”
Kevin’s own favorite table is datapoints_history. The partitioning key consists of a node’s ID, the channel that’s being updated, and the date the readings occur. This produces fairly even partitions throughout the cluster. “Then we use the clustering key of timestamp, which allows them to compare the levels from now to nine months ago to get seasonal reports.”
ScyllaDB, Take the Wheel!
In production now for more than a year, Kevin has dealt with zero maintenance. “I don’t want to deal with repairs. I don’t want to deal with compactions. ScyllaDB handles that for me.”
Support is provided over a dedicated Slack channel, which Kevin describes as “Probably my favorite aspect of ScyllaDB Cloud.” He also appreciates the “really clean web app,” which he uses every morning. He logs in to DataDog, Kibana, and the ScyllaDB Cloud dashboard to see how the cluster responds to the effects of the iMistAway platform. “This actually has really been really educational for me as well.” Kevin also appreciated having a dedicated account manager to be the “one-stop shop for any issues.”
“Overall, it’s been kind of boring. It’s low drama, it’s low stress. And that’s the way we need it to run our business. Over the past year, we have had zero hours downtime on our cluster — so we’ve always been up. And we’ve submitted zero support tickets.” (Technically, he pointed out, not true: he opened one ticket to get help to produce slides for his presentation at ScyllaDB Summit!) “Everything’s been good so far.”
Coming back to the Slack-based support, he rued the way other companies typically handle customers: opening a ticket and getting put into a backlog. Sitting in a phone queue and leaving a message. “With ScyllaDB, there’s none of that. I can jump right into the Slack channel. I’ve got direct access to the pros. Whether I have a question, just a curiosity, or even just a really good joke I can jump in there and drop it in. So that gives us a lot of confidence in our cluster.”
Even when their traffic fluctuates, “our cluster doesn’t budge.” They have high availability baked in by placing their nodes in different availability zones (AZs). “My data is always available when I need it.” And the exercise in data remodeling helped response times tremendously. “Our queries are really fast… What it equals is when our users need to access the app and get their data, it’s there. Instantaneously.”
An example of how MistAway was able to detect the exact moment when a unit went offline from their datapoints_history table.
Kevin painted the image of what this means to their success. “You got to think about it. Our dealers are technicians… They’re outside with an iPad… It’s hot. If the system’s down they’re getting assaulted by mosquitos. The dog’s barking. The customer’s over their shoulder. So even if I can draw a chart really fast, they don’t want to have to sit there and interpret it. So what I can do now with ScyllaDB is that each time a datapoint comes in I can run a little function in the background over 90 days or a year of data. Tens of thousands of data points.” And from that analysis he can send an alarm — “Your unit is offline and we think it’s because you probably just lost power.”
The dealer can then contact the customer and have them unplug the system and plug it back in. “Saves you a truck roll. Saves the customer an invoice. And it gets the misting system back up and running as quickly as possible. Something we could not do in our legacy platform.”
Kevin also showed how easy it was to now produce end-of-season reports. “This is just showing off the speed of how we were able to draw charts… This is something that you would have to do for four hundred units. If you have a big fleet, it could take you hours. Now? It’s instantaneous.”
Kevin’s Takeaways
Running on ScyllaDB Cloud, “you can focus on value creation. Focus on your application,” Kevin emphasized. “Focus on creating value for your customers and things that bring you revenue. And leave the devops to the pros.”
“One big thing that was important for us as a small company was that we didn’t have to staff up. So we didn’t actually have to go hire and bring in the talent to help run this cluster. And I’m not the Ph.D. at this. I’m really not the Ph.D. at anything, but because I had the ScyllaDB team behind me I was successful and we are running our platform now.”
“The last thing that’s really affected me personally is that there’s just a lot less stress. A lot less anxiety running this platform,” Kevin confessed. “You know, migrations are scary. Right? You’re trying to get your data across. You’re trying to get your platform going. You’ve got live paying customers that you don’t want to upset. So it can be a little bit scary. But with ScyllaDB Cloud handling your data it takes a lot of the stress and anxiety away.”