• Sep 26, 2018
  • Technology

Modern App Development Made Easy—Finally

Riley Siebel, Software Architect

Building a modern, big-data, AI application is a challenge for any organization. The number of languages, technologies, and data sources that need to be stitched together is massive. Developers spend significant amounts (if not most) of their time just stitching together infrastructure and keeping it running day-to-day. The C3 IoT Platform includes everything you need to build complex applications and frees you from worrying about infrastructure. Solve business problems, not technology problems.

So, you want to build some serious software. Data? Petabytes, at least. Sources include existing production databases, billing systems, and ERP systems, as well as live feeds from embedded devices (oh yeah, don’t forget you want to scrape Twitter, too).

You need a self-learning system that analyzes all the data, producing real-time insights. Users want to see something pretty; no CSV files for you, we’re talking HTML and CSS that renders ART. At least one of your users doesn’t trust the machines (too many Matrix re-runs), so a high-performance interactive data-analysis tool is a must; it too, must be art.

This app runs… well… it runs everywhere, of course. You can’t have ‘vendor lock-in’; otherwise what happens when you write this thing to run on AWS and then Google builds an AI that builds AIs (that builds AIs…)? Or, God forbid, they make you run all this on an Oracle DB. You’re planning to migrate all this infrastructure specific code in the future!? Just imagine how much Oracle SQL you’ll have written by then… It’d be easier to start over every couple of years...

Solving this problem requires a stack both wide and deep. AI means Python and somewhere for it to run. Petabytes of data in all kinds of formats means relational and non-relational databases, a data transformation engine (Informatica?), and probably a separate tool to provide a semantic layer.

Timeseries analysis presents its own problems: Do you have a signal processing expert? What language and tools do they prefer? Don’t forget about the front end: JavaScript, HTML, and CSS aren’t going anywhere anytime soon so you’ll need some experts in that technology stack as well as webservers, load balancers, etc.

Of course, this list of requirements is not exhaustive, but it never really stops growing. At some point, someone will want in-memory analytics, and you’re going to have to figure out how to integrate Spark or something similar into your stack.

All of a sudden, you’re in way over your head; managing a globe-spanning infrastructure, multiple system-level dependencies, and developers in several languages. Before you can even start thinking about solving actual business problems, you’ve got months (or even years) of work just setting the groundwork.

The C3 IoT Platform provides a solution. No matter how much infrastructure you need, the platform will keep it abstracted and flexible. Developers can use whatever language and libraries they like, while still collaborating. Deployments to production environments are made simple as the platform instantiates whatever infrastructure is needed automatically. All this is accomplished with the C3 Type System, the heart of the C3 IoT Platform.

The C3 Type System is a layer between all infrastructure components, as well as components built by the developer. When you login to the platform on day one, all the infrastructure will be up and running, abstracted through the C3 Type System. Infrastructure will be continuously replaced as better alternatives appear: the C3 IoT Platform can replace your Oracle DB with Postgres without requiring you to make any code changes—because you never wrote any infrastructure-specific code.

Multi-language applications (maybe Python + JavaScript + Java?) are simple to build. Any function in written in any language can be called from any other language. Let your AI people use Python with NumPy and your UI people use JavaScript with React, while still utilizing each others’ code.

By standardizing on the C3 IoT Platform for application development, you will be months or years ahead of the curve. Start solving business problems immediately, without tying yourself to any particular technology.

Riley Siebel  is an Architect in the Applications team at C3 IoT. He studied Computer Science at Princeton University. Riley has worked on every application C3 has delivered since he showed up as an intern in 2009. When he’s not obsessing about data models, Riley is an avid climber, kite boarder, and general adrenaline addict.