Cork Start-up weekend April 5th – 7th
Last weekend Cork held its first ever Start-up weekend and it turned out to be a huge success. Being a local technology company InverCloud sponsored the winning team InverCloud licences worth €10,000. InverCloud also sent a couple of us (InverCloud developers) to the weekend to help out with any cloud based ideas and questions that arose.
While there we worked on one idea which we felt like had potential and once it was up and running it would be an ideal candidate for the cloud. We felt like this was a great opportunity for us to help out with the definition of the initial architecture so once it was developed further it would be cloud-ready.
Idea:
Without giving too much away about the idea, the application had to be able to receive data from a user front end, store the information in a database and then use a second administrative front end to report on the data. The user front end could be any number of different applications but the one common feature is that there had to be some result to the application. For example if the front end application was a game it must report how many correct and incorrect actions were performed. This data was then saved in a database and was retrievable by the reporting application. This reporting application would be able to break down the data by application or by user. Using the reporting tools to view all users’ performance on a single application, or view a users’ performance over all the applications.
Our Team:
We ended up with quite a developer heavy team compared to other teams that were at the event. This had both its positives and negatives, it was great that we had a lot of combined experience that allowed us to develop a prototype rapidly (one of only two teams to complete a prototype) but we all worked on different technologies which added to the complexity. It also left a lot of work on the one member who wasn’t a developer to research the market and competitors. Below is a breakdown of our members:
· 2 Azure / .Net Developers
o Both .net developers experienced in developing backend services. Used to using MVC and n-tier architecture to handle communications between an application and an MsSql database.
· 2 Frontend Developers
o A combination of front end developers with a vast amount of experience with a range of front end technologies. These technologies include HTML 5, JavaScript, CSS and android development.
· 1 Java developer and 1 PHP developer
o The combined experience of both these developers allowed them to develop a strong reporting environment. Handling both the front end and integration with the backend.
· 1 Marketing Guy
o An experienced professional in the field of online marketing and web presence. Team Lead, who focused on the vision, the goal and detailed the market research for the idea.
Why Azure?
Due to the breakdown of our team it was decided (we won the battle!) that the backend would be developed in .Net. This allowed the developers on our team to perform to their fullest capabilities, with technologies they were already familiar with. With the motto of “Prepare for Success” in mind we decided to use Azure to host the backend. It provided a host of key features that would be required by the application if it succeeded;
· Easily scale the cloud service up and out.
· Easily scale the database using SQL azure federations.
Besides from the “Prepare for Success” mind set there was a range of other benefits which suited our need to produce a minimal viable product (MVP) quickly over two days for the demo on Sunday.
· The ability to publish app quickly/instantly to the cloud.
· The live Azure site comes prepared with a very “demoable” cloudapp.net URL. Meaning there was no need to settle on a domain name and find hosting.
· Being able to get a prototype “published” so quickly allowed us to gather live data from the attendees for reporting before the presentations.
Issues
The first issue was designing how all the different layers, which used different technologies, would communicate with one another. It was decided that the .Net backend would provide a REST API that would allow the other layers communicate with the database. To make this method most efficient we first detailed the interface for the backend, this outlined the method and format with which each layer could expect to receive input from another layer. Having a predefined interface meant that each pair of developers could develop in isolation developing their own framework without worrying about how it was going to integrate with the other technologies used on the different layers.
Technology Breakdown
When our application was finished there was a range of different technologies used. Both the front end and backend were published to Azure and the Reporting application was hosted on a local server.
· Front End – HTML 5, JavaScript
· Backend – Azure, MVC
· Reporting – JavaScript, Google Reports
Potential with InverCloud
The great benefit of our experience of Cloudifying solutions was that we designed an architecture that with an additional couple of days work InverCloud can be used to implement a full multi-tenant application allowing support for multiple customers to use the same applications. This functionality can transform this minimal viable product into a full SaaS application complete with user registration, data isolation and billing.
Summary
Startup Weekend is a great concept. There’s a great buzz about getting together with a bunch of complete strangers and coming out with the other side with a viable application deployed in Azure. Now, to catch up on some sleep and see where the team wants to go next with the fledgling startup.
Jago, Jamie and Colum