Chartio Users Get 50% Off bipp's Premium Plan for 12 months

How bipp Used Modern Software Architecture to Build a Better BI Platform

How bipp Used Modern Software Architecture to Build a Better BI Platform

Picasso taught me everything I know about software. Well, almost.
You see, he once said, ‘Everything you can imagine is real.’ The prolific painter, sculptor, printmaker, and ceramicist dedicated himself to modernism, symbolism, surrealism, and co-founded Cubism. His “Women of Algiers (Version O)” sold at auction for more than $179 million in 2015. Not a bad role model.

Tellingly, Picasso believed that imagination drives inspiration. His modernist perspective represented a break from the past and a search for new forms of expression based on experimentation. Similarly, modern architecture represents a lack of ornament. It eliminates decorative moldings and elaborate trim, with a clean aesthetic where materials meet in simple, well-executed joints (or joins?).

Like modern art and architecture, modern software architecture represents a break from the traditions of the past. Modern software development takes advantage of all that current technology has to offer and is focused on the continuous delivery of new functionality.

To paraphrase Picasso, software development is not about applying a canon of beauty but what the instinct and the brain can conceive beyond any canon. Perhaps taking liberties here, but you get my point - modern software engineering liberates developers from hierarchical structures and allows for creativity that directly impacts the end-user. It uses the different architectures, services, and capabilities available to maximize these benefits.

Building a Modern Mousetrap

When Angshuman Guha and I first sat down to talk about what ultimately became bipp, we weren’t trying to simply copy other BI platforms. We imagined helping all businesses seamlessly derive insights from data to help make informed decisions. Unlike our competitors, we benefited from hindsight and tackled the mature BI industry from a perspective born of new thinking. We were AI, ML, and algorithm guys who wanted to solve BI problems.

The architecture was the first challenge, so we set out an approach that created product development efficiencies. We wanted to build and upgrade our platform with fewer people, as there was no need to support legacy code. bipp was lightweight and agile from day one.

To achieve this, we balanced the benefits of a simple monolithic architecture on one hand with a modern microservice-based approach. The former keeps things simple and discourages over-engineering. The latter is helpful for deployment and evolution over time. We strove for a development process that allowed for fast iteration and optimization, as well as onboarding new developers.

We are inspired by the modern software movement’s “less is more” motto. But we also take advantage of new technologies whenever appropriate. We designed bipp to use the least hardware and software resources possible. By keeping our dependency surface minimal, we could build a lightweight platform for Windows, Linux, and Mac in one point, making bipp as simple as possible.

We built the business logic in the front end using javascript versus the back end. This reduced complexity and helped us scale to a variety of scenarios faster. For our customers, this would mean faster results. We built to provide scale, allowing thousands of requests per second versus hundreds to limit our heavier competitors. bipp doesn’t store anything - it’s just a conduit.

Our thinking was to not merely build a low-priced version of Looker or an easier way to write SQL. We built a single, end-to-end platform that allows deep customization by exposing code to analysts. The code exposure goes deeper than allowing custom visualization; it touches the entire platform, including how bipp interacts with databases and accelerates live feeds.

SQL Native, First and Forever

As we were building bipp, there was one non-negotiable. We were SQL first from day one. This standardized language is an extremely mature technology, and all databases are optimized to execute SQL. It also allows for faster query processing and is able to retrieve a large amount of data quickly and efficiently. SQL

We also created bippLang, an SQL-based complex modeling and querying language. It’s not only easy for technical teams to get the hang of, but also automatically generates SQL that’s then placed in-database. So, rather than importing the whole dataset, and having the SQL sit within our BI tool, we pipe it to the database instead.

With operations done on the database, rather than in the BI tool, we removed that resource-heavy pull step, plus have portable code within the database that you can take to another tool if you so wish. In terms of security, it’s only the modeling, query, and answer that are sent between the database and your BI tool, rather than a whole dataset.

All Systems GoLang

Given our geeky background, we wanted a stable, robust backend that allowed us to produce better code, so we chose to develop the entire back end in Google’s GoLang. This system-level language came out of Google in 2012 and is used for programming across large-scale network servers and extensive distributed systems. GoLang offers the best of all worlds, providing ease of coding, efficient code compilation, and execution. And it is simply beautiful!

GoLang means that bipp is fast, easy to deploy, maintain, and isn’t dependent on outside services. We wanted a platform that wasn’t limited by the volume of data as a modern BI stack shouldn’t punish you if you need to scale or rely on extracts that don’t scale. GoLang can support concurrency better, which scales up performance with the increase of added cores. Go was the most viable option to support both a multi-threading environment and concurrency.

Git Back to Where We Once Belonged

Another modern addition was incorporating the Git distributed version control system. As developers, we’d used Git to manage changes offline and get complete control over the codebase in our previous lives. We saw this as a solution for technical teams that needed to collaborate, share queries and reuse code, review history, and make edits to files for SQL queries. By including Git, we wanted to help them record changes and manage file versions, with each bipp project connecting to a Git repository. Each developer branch correlates to a Git branch (which encapsulates changes).

This turns a customer’s data models and SQL queries into living entities to always access the latest version. You can also record changes to a file or set of files over time so that you can recall specific versions later.

We imagined a better BI platform and made it real. bipp was built from the ground up using modern software development techniques to help technical and business teams. But we’re not resting on our laurels, taking further inspiration from Picasso, who is thought to have made about 50,000 artworks during his lifetime, we’ve only just begun. After all, action is the foundational key to all success. Thanks, Pablo.

Want to learn more about bipp’s modern software approach? Sign up for a demo here and take a look under the hood…

Share

Get notified of new posts

Invalid email address.
Thank You! submission has been received.