Moving to Azure and .NET

This project has always had 2 halves: the Raspberry Pi in your car gathering up data, and the cloud service that the data gets uploaded to that then provides you with analytics. That second half, the cloud service, has been in a MySQL database with a REST API in JSON through PHP. This is going to change, at least as a test. Given that my day job involves working with a full Microsoft stack, I’d like to try out moving the cloud part of the project to Azure. Azure will host the database in SQL Server, and the REST API in JSON through ASP.NET Web API.

Microsoft-CEO-Mr.-Satya-Nadella

Another factor for me is cost. Right now I have sunk costs in Linux servers with Linode and Rackspace. So with using LAMP like I am now, it’s no additional cost. Moving the cloud half of this project to Azure means I’ll be spending about $15 – $20 per month on hosting that, as of now, I have no other uses for. But what this shift does is allow me to take my Microsoft development skills over from work into my personal hobbies. It doesn’t mean I’m giving up Ubuntu any time soon, nor open source in general. It means I’m adding Satya Nadella’s new Microsoft into my personal life.

Seeing as how I’m really taking to drawing on my new Surface Pro 4, here’s a rough sketch of the proposed new architecture. Yes, I have the drawing skills of a 4 year old.

moving to azure diagram

None of this will change anything about the Raspberry Pi source code. It is as of now, and will continue to be, free and open sourced and Linux based. 90% of this project is the code running on the Pi itself managing sensor data in the car. That will continue to be on GitHub as the OBD2 Python SDK for logging vehicular OBD2 and GPS data.

This post by Pangea says it better than I can:

Although we built Pangea’s platform using .NET, we are not a Microsoft shop. We’re a technology shop and that means our tech stack is quite diverse.