How Abra Controls Transforms Energy Companies with YugabyteDB Managed
Abra Controls provides wireless pressure monitoring and data aggregation solutions. It serves energy companies in the U.S. and Canada. Its customers optimize hydraulic fracturing operations and ensure regulatory compliance.
The company’s marquee offering is its mobile sensors and in-the-field service. Part of its service is a cloud IoT application. As a result, it collects and aggregates massive amounts of sensor data from hydraulic fracturing sites. It also provides a responsive web application that lets users visualize that data.
Abra Control’s solution is simple, reliable, and wireless. More specifically, it gives users visibility into their pressure data in real-time.
In this blog post, we’ll explore why Abra Controls needed a new database. We’ll detail why it chose YugabyteDB. We’ll then discuss how the company used YugabyteDB Managed to implement its IoT application.
Abra Controls’ legacy cloud application excels at timeboxed jobs. It’s also heavily used by customers, and runs on a highly available implementation of PostgreSQL.
The company created a permanent, non-timeboxed solution due to customer demand. It also needed a more robust database. It could have used its existing database. However, it’s highly available through custom-made methodologies. That means it isn’t easy to maintain. Moreover, the company didn’t know if it could scale its current database to support growing data volumes.
This forced Abra Controls to find a new database that could:
1. Scale with ease across different regions and zones
2. Never fail and never go down
3. Lower operational overhead by being PostgreSQL compatible.
Abra Controls Application Architect Philippe Larochelle researched a ton of databases. As a result, he experimented with many options including YugabyteDB, FoundationDB, and ScyllaDB.
“It really came down to YugabyteDB vs. FoundationDB for me,” Larochelle said. “Both have really good stories for high availability. But what clinched it was that YugabyteDB provided a familiar PostgreSQL syntax that our shop already used.”
Abra Controls has wireless pressure sensors installed in the field. For this reason, these sensors are portable. They can also be installed, used, uninstalled, and moved to a different job. More specifically, its sensors ingest and process data as shown in the below diagram.
The company’s new SaaS solution has two applications: a backend application named Alaka, and a frontend application named Taps. Here’s what its application architecture looks like.
Alaka – Abra Controls’ backend application – streams, processes, and stores sensor data. As a result, all data streams to and processes in RabbitMQ running on Google Kubernetes Engine (GKE). For this reason, the development team built an application in Go running on GKE that constantly monitors and pulls data from RabbitMQ and stores it in YugabyteDB.
This Go application stores the processed sensor data in YugabyteDB Managed using YCQL. Abra Controls had initially been storing it in PostgreSQL. But after adopting YugabyteDB, the company made a design change to YCQL because it better suited its use case.
Abra Controls also uses YSQL to store a relational mapping between sensors and jobs across time ranges. This ensures when a sensor moves to a different job, the data maps appropriately.
Taps – Abra Controls’ frontend application – is in Node.js running on GKE. It reads sensor data from YCQL and YSQL databases in YugabyteDB Managed. It also provides real-time monitoring, visualization, and alerting based on that data. However, data for their Node.js application remains in a self-hosted, YugabyteDB cluster running on GKE. After adopting YugabyteDB Managed, they decided YugabyteDB would be the default database they built on. Below is an illustration of the company’s Taps application in action.
The company’s new SaaS solution is currently handling more than 100M operations per day—and that number continues to grow rapidly. It has only onboarded one customer so far, but it has many more planned. Below are some performance details of this new solution:
- 1,700+ transactions per second
- 630GB dataset size
- Read latency: < 3ms
- Write latency: < 10ms
YugabyteDB Managed gives the company added confidence. It can now deliver high performance and high availability as it scales out its database to handle increasing data volumes. Here’s how Abra Controls is using YugabyteDB Managed:
- A fully-managed YugabyteDB cluster comprised of 3 nodes with 4 cores/node
- Multiple availability zones (AZs)
- Deployed on GCP
“I’m happy with the performance of our YugabyteDB Managed cluster, especially since it’s only 12 cores,” Larochelle said. “It’s handling the entire workload of our offset well monitoring, which we’re just throwing at it constantly. We’re running that cluster at 80%, and it’s stable.”
Whether you’re building an MVP or operating at massive scale, YugabyteDB Managed can make sure your application databases are always available and never go down. It also scales with your product, and you can add and remove nodes at will. So you’re never over-provisioned. Best of all, YugabyteDB Managed is easy to build with as it’s a drop-in replacement for PostgreSQL.