How M1 Finance Launched a Production-Ready Tableau Server Solution in 12 Days
Let's start at the beginning. Here's how we built our Tableau Deployment Library over time to help businesses like M1 Finance create stunning visual reports.
Before 33N, we’d heard of Tableau but had never worked with it. We started from zero, square one. But just you wait: by the end, we built something pretty incredible.
What makes this solution different? Partly, it’s Tableau themselves, so we’ll start there. Relax and get ready to hear the crazy tale of how we built our own Tableau deployment method.
data failure resilience with Tableau Server backups stored in AWS S3
days launch time for M1 Finance’s production-ready Tableau Server solutions
faster reports for senior management now ready within hours versus weeks
24 September 20216 mins read
Thanks to OSO, we have been able to quickly execute our analytics initiatives without compromising our DevOps practices.
About the Technology
As a business, Tableau provides incredibly powerful data visualisation tools.
They offer that to companies in one of three ways: first, Tableau Desktop. That was the first version, way back in the old days. You downloaded it on Windows—kind of like Excel—fired it up, put data in it, and voila, visuals.
Then Tableau got clever and said…this is cool. Let’s make a better version!
So their team made Tableau Server, which was essentially Tableau Desktop in a server environment. But then the cloud became a thing, and that changed everything.
In the last five years or so, Tableau decided to put their data visualisation tools on the cloud and offer it as a SaaS service. Users didn’t have to work with server environments. All they had to do was type in their credit card details and put in data!
As soon as Tableau launched Tableau Cloud, lots and lots of companies started using it. And as the Cloud version became more popular, Tableau Server fell into obscurity
But the story doesn’t end there—or else OSO wouldn’t have a super cool Tableau Deployment Library. What happened next was that Tableau Server started taking off in highly regulated industries, like healthcare and finance. These types of companies couldn’t rely on third-party cloud providers.
For finance and healthcare companies, Tableau Server was amazing because they could control where their data was stored.
The Challenge ❌
We met Tableau Server for the first time with 33N. Tableau Server was built in the way that we used to build applications 15 years ago. It’s an absolute monolith, with countless services hidden inside Java Virtual Machine. This complexity makes it extremely complicated to work with. But companies still love it. Why?
Companies in highly regulated industries—finance, healthcare and even AWS themselves—like Tableau Server because they can control where the data is and access powerful visualisations and analytics. But running Tableau Server is still a huge pain if you don’t have much Tableau expertise.
Tableau had documentation, but it was hard for companies to sort. And Tableau hadn’t spent any time automating Tableau Server.
We realised that we were going to have to automate Tableau Server to help 33N. Realistically, it took us about a year to learn everything we could about Tableau.
We read up on it, built our solution, deployed it, searched all over GitHub for anything we could learn from or use.
Iteration 1 😊
Out of that yearlong process came V1 of our Tableau Deployment Library.
Effectively, the biggest issue was that Tableau was built in such an archaic way that it didn’t like being automated. We had to trick the system into playing along.
Now, 33N just needed a single Tableau server that it could automatically spin up and back up. In essence, the team wanted a server that could come back online if something bad happened to it. We ended up fully automating and storing 33N’s backups on AWS S3—something that, from our research, had never been attempted.
When Rich unexpectedly ended up helping another company with Tableau, we realised that Tableau Server was so much more than we’d previously thought. With Tableau Server, we could actually create highly resilient architecture. So we took what we had built for 33N and started iterating.
By this point, we’d found more companies who needed Tableau Server. This was bigger than 33N.
We realised that our initial solution could be better. We redid components. We got to version 1.5. Then we started creating all the content around the library.
Iteration 3 🚀
By this time, OSO had gotten bigger than just Sion and I, so we’d hired new people into the business. Meet Andy! When we brought Andy on board, we asked him if he’d be interested in reworking some of the Tableau Deployment Library for M1 Finance, a Chicago-based Fintech start-up empowering investors to take control of their finances with their Finance Super App.
Because Andy is awesome, he said yes.
Now, M1 Finance was growing quickly and storing a lot of various datasets inside of AWS. The team wanted a tool that would allow them to query their datasets to create better reports. But very few Tableau Server automation tools exist on the market.
Guess who had one? Yep. OSO.
Our newly iterated Tableau Deployment Library was a ready-to-go solution that aligned nicely with M1 Finance’s DevOps principles. (We’d written it mostly in Python and Terraform and used Ansible for configuration management).
What Services Did OSO Deliver?
A fully automated Tableau Server deployment. A major piece of our solution is what’s called a “Blue/Green” environment. Essentially, only one of the environments is ever live at any given time. For example, you might use the blue environment as your primary operating environment. While that’s happening, your green environment is idle—but ready for action.This applies to both single-server environments and clusters consisting of several servers. Think 3/5/8 and so on.
If anything happens to the blue environment, it’s very easy to switch over to the green. No downtime, no worries.
OSO’s Tableau Deployment Library had two EC2 instances in AWS, and only one EC2 instance server was ‘alive’ at any one time. That means that if you have a domain, it only points to the primary, ‘live’ server.
For M1 Finance, we integrated Tableau Server with AWS Redshift to provide real-time insights for large datasets.
Since M1 Finance works in personal finance, OSO also ensured that their team’s AWS environment was fully protected by a VPN. Plus, we introduced the AWS System Manager Session solution, which made the environment more secure and reduced the risk of cyberattacks.
The Result 🎉
After multiple iterations and lots of learning, OSO created a Tableau Deployment Library that helped M1 Finance launch a production-ready Tableau Server solution in just 12 days –as opposed to the traditional 3 months!
Thinking back to where we’d been with 33N, we’d learned so much. We taught ourselves tons of lessons, invested in a reusable tool, and ended up with a solution that could help multiple companies consume Tableau at scale.
The Tableau Deployment Library that we built now has loads of scripts and code infrastructure. It follows a sequence of events—and the output is that you have a production-ready Tableau Server.
And yeah, it’s unique. We built something and can now offer it as a reusable product!
That’s way further than we ever predicted we’d be at this point in the game.
Now, M1 can make better decisions. Its analytics team can empower teams across M1 with Tableau dashboards within hours instead of weeks. And that team can focus on building timely and insightful dashboards without having to worry about server availability or perform repetitive maintenance tasks.
For more details about our Tableau Deployment Library, head here.
Learn more about M1 Finance and their Finance Super App here.
All investing involves risk, including the risk of loss. Brokerage products and services offered by M1 Finance LLC, Member FINRA / SIPC.
Strictly Necessary Cookies
Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.
If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.