EuroSciPy logo

EuroScipy

Cambridge, UK - 27-30 August 2014

The road to Modelr: building a commercial web application on an open source foundation

Matt Hall

Abstract

Software for applied geoscientists in the petroleum industry is usually expensive, hard to use, Windows or Linux only, and slow to evolve. Furthermore, it is almost always stridently proprietary and therefore black-box. Open source software is rare. There are few developers working outside of seismic processing and enterprise database development, and consequently there is very little in the web and mobile domain. Reconciling a commitment to open source with a desire to earn a good living is one of the great conundrums of software engineering. We have chosen a hybrid approach of open core (like OpendTect, which has proprietary add-ons) and software-as-a-service (like WordPress.org vs WordPress.com).

Our open core is a Python web app for producing synthetic seismic models, in much the same way that the now-deprecated Google Image Charts API used to work: the user provides a URL, which contains all the relevant data, and a JPEG image generated by matplotlib is returned. The code is licensed under the Apache 2 license and can be found on GitHub. We are running an instance of our app on a ‘T1.micro’ Amazon EC2 instance running Ubuntu.

The commercial, proprietary front end is a Python web app that lives in the Google App Engine walled garden. This app is serving at modelr.io and provides a private environment in which a geoscientist can save geological and geophysical parameters. This front end has a very lightweight ‘demo’ mode, and otherwise requires a $9/month subscription to use. This necessitated serving both the front and back ends over HTTPS — something we wanted to do anyway, because of industry mistrust of the cloud.

Some of the things we picked up along the way: - We started with a strong need of our own, so had clear milestones from day 1. - We left the project alone for months, but good documentation and GitHub meant this was not a problem. - Sprinting with a professional developer at the start meant less thrashing later. - The cloud landscape is exciting, but it's easy to be distracted by all the APIs. Keeping it simple is a constant struggle. - Pushing through Xeno's paradox to get to a live, public-facing app took stamina and focus. - There's nothing like having other users to get you to up your coding game.

We hope that by telling this story of the early days of a commercial scientific web application, built by a bunch of consulting scientists in Nova Scotia, not a tech startup in San Francisco, we can speed others along the path to creating a rich ecosystem of new geoscience tools and web APIs.

Supporting URLs

The poster on Figshare

Sponsors