Why on-premises still matter. A lot.
5 years ago I wanted to find the right pieces of the puzzle to deliver a Cloud Business Intelligence tool that will dramatically reduce the complexity of legacy on-premises offerings and significantly reduce TCO (Total Cost of Ownership) with a SaaS model.
Back in 2013 there were very few serverless services available (AWS Lambda was released on 2015) and Microsoft Power BI, Google Data Studio and AWS QuickSight were not yet on the map. Two years later, I was very fortunate and put up a team with two brilliant engineers and the first tests started to flow. I thought it was easy to use some chart libraries (like Chart.js, CanvasJS and Google Charts) with a template (like AgileUI or FinalBoard) and build a mobile app. Let me tell you … not easy: some have tried it before: React-Native-iOS-Charts, Cross-platform MPAndroidChart, Chartist.JS, Dashboards-dot-community. As this is not a story for fuckupnights.com we’re moving.
One major challenge was moving data from any given Windows machine to a cloud database; even worse, we were trying to move data from Firebird SQL on a Windows XP machine to AWS. We wanted to bring closer together the vintage world with state-of-the-art cloud technology … and not because it sounds cool but because it makes a lot of sense for extending the capabilities of popular 1990’s and 2000’s Windows-based software (like Aspel, CONTPAQi, Microsip and Freedom ERP) and create cloud-plugin modules on a subscription based model.
There is an enormous amount of software that runs on Windows and uses a database to store information, and of course, it creates a lot of value for companies; just to give a few examples: Point-Of-Sales, Accounting, ERP’s, CRM’s, and so on. So software companies and communities behind them must be moving really quickly to the cloud right? … not quite: the cloud is just starting and unless it brings significantly more value to companies and simplify things to end-users it will not change the picture very much.
Moving to the cloud is not a technology thing, it must make sense to end-users but also to distributions channels (software partners and vendors) followed by new features and innovations not available on the on-premise world. Subscriptions and low prices are very popular on the cloud, so let’s just say that more than one software company (along with their resellers) can’t find the right formula without compromising their current comfort-zone revenues. This is why AWS, Tesla and so many next-generation companies don’t rely on distribution channels.
The cloud also comes with a new annoying and challenging ingredient to legacy software companies that have always developed for on-premises: the operating cost of one on-premise user is zero as hardware, OS, networking, storage and so on is provided by the company running that software. Optimizing this operating cost for the cloud is by far one of the most important things to tackle for any software company planning to have some serious number of users in the cloud. This is where serverless starts to get very interesting.
So lets go back and take a look at our case for moving data from a Windows database to AWS. Our very first release used Linux-EC2 with Node.js to catch and process uploads, over a HTTP POST request. Everything worked fine until the API started to crash: from simple errors to running out of memory we needed to manage a full set of things: monitor APIs, create queues for requests and add/remove servers according to demand. This sounded crazy for me, so we tried a non-traditional way and gave serverless a chance.
S3 and Lambda were part of our second iteration. It was much harder to develop on Lambda but the results were astonishing: not only one request is completely isolated from another, giving the opportunity for growing exponentially and not manage a single server, but it also dramatically reduced the operating cost.
With the above architecture we were able to make unlimited synchronizations and process simultaneous API calls from different companies and didn’t have to fine-tune for different dataset structures and sizes. Best of all it’s super reliable and scalable. We closed the circle and picked Google Data Studio and AWS QuickSight as our preferred Cloud Business Intelligence tools, both proving on our cases to be super reliable, easy to use, 100% browser-based and really easy on development. The hole solution truly serverless.
Months later we were already making tests to develop a 100% serverless web application using AWS serverless guidelines. I was very surprised and pleased with the results (maybe another story for this).
So what about on-premises? Let me just say that regardless of not enjoying the hipe of cloud platforms, on-premises are more and more connected to the internet, and more ways for ease this interaction are going to appear. In Mexico, to give an example, 100% of the invoicing is electronic (6 billion unique invoices issued last year), so every single invoicing and point-of-sales software has direct connection with government certified e-invoicing vendors.
On-premises will always have it’s advantages and disadvantages, being economic, functional or plain & simple UX. It’s not a battle of On-Premises vs Cloud but rather a synergy where the sum of parts is greater than the hole.
Jaime works together with Factor BI to simplify the connection of on-premises ERP’s to AWS cloud.