PingBox and Openshift
On start of new project one needs to take care about bits and pieces in order to have even slight chance to be successful.
Every piece is important, from finding proper partners, finding good domain name that is not being hostage by domain squatters, picking proper technology stack, finding proper design, having good marketing strategy, picking up proper hosting provider ... and lots more.All strategies need to be in place before launch.
Today I'll focus on choice I've made for hosting solution. I'm big supporter of PaaS. Compared to traditional hosting you can more easily scale up and out. For previous project project (Instaright), I've used Google App Engine and got burned when they changed their pricing and TOS. Instaright was wired up with Google App Engine APIs and switch to another solution required to stop innovating and focus on rebuilding project from ground up. To make things even worse, I've faced roadblocks created by main partners that led that instaright needed to be euthanised. Lead by painful past I've decided that I need more flexible solution.
So, for PaaS provider I needed flexible solution that will not lock me in, with great community and proven technology behind. I've considered several solutions like CloudControl (Berlin Startup), Heroku, Aws and Openshift. Most of startups start their projects with out validating market for idea, I needed solution that will enable me seamless shift from prototype phase (small amount of instances) and autoscale traffic spikes that can be caused by unexpected press in Venture Village. Even though, price point have not been set at moment of platform choice (there was possibility to get burned again) I've decided that Openshift was reasonable solution for my needs.
With Openshift you can choose which technology stack you want to go with and gear size. For each gear you can either use predefined setup or create your your own ( aka do-it-yourself ). I've decided to go with DIY and start with small gear. On top of that I've created app with following stack: backbone.js, tornado, tornado and mongo. After of couple of weeks of extensive testing I've decided to move to medium gears. During that time, for all issues and question I had I asked product manager (thanks Nam) and developers on official IRC channel. Their response time is amazing and for each issue I had they took snapshot of existing gear state and carefully documented all issues.
Still, Openshift has long way to go and could make a lots of improvement (ie. missing essential memcache cartridge). I'd suggest more developer tools that will help monitoring app. But, what I feel missing the most is way to maintain multiple versions of same app and seamlessly switch between different version of same app. IMO, one of possible solutions would be to take automatic snapshots on each git push and deploy those in background. As result, user could easily switch between different versions of app from admin panel without downtime.
As conclusion to this post, I'd like to make final remark that expertise of people that are behind Openshift assure me that they are on right path and would suggest Openshift to everyone who thinks turning their ideas into reality.










