EDIT: It seems that what I describe in this post is a new policy which OpenShift started implementing few days ago.
Today I got really mad at OpenShift. I used their free tier to host http://topsqlblogs.com, but because it consumed their resources, it got throttled (which basically means that such application is completely unusable). I don't want to bitch about their policy, after all I used a free service so I should be glad that I'm able to host something for free on OpenShift. What got me really mad was the way it all happened and the consequences.
When I woke up today I was suprised that my monitoring tool spammed my inbox with hundreds of emails which said one thing: that my website returns to all clients error "503 Service Unavailable". After I deleted them I found email with subject "OpenShift Terms of Service Action ..." and inside was basically that OpenShift operations team flagged my application for excessive network resource use and that my application was throttled (full email is at the end of this post). In that moment I realised that my monitoring tool wasn't lying and users were really seeing "503 Service Unavailable" for several hours.
That was bad, but worse things happen. The obvious solution is to restart the application. I did that, but the application started for several minutes and even though in the logs it seemed that it should work, it didn't. The reason was the throttling, which basically reduced network throughput significantly (I didn't measure it, but think of LTE vs GPRS).
In that moment it was clear to me there are two solutions for this problem: Either upgrade the plan and pay up, or move the application elsewhere. I chose to abandon OpenShift. Why?
1) I always thought that OpenShift Free Tier is great for new projects which doesn't earn any money (yet). And when it gets popular, you
will just upgrade to paid plan. Unfortunately my project doesn't earn much yet (it doesn't pay even for the domain name), so it didn't
get to the phase 2.
2) I was really mad at OpenShift because they sent me an email about throttling and immediately applied it, thus cornered me (pay up or move along). I really don't like to be in such situation.
3) Also they just wrote general sentences like "flagged your application for excessive network resource use" and "your gear is transferring an excessive amount of data", so I have no idea what was the issue and how to avoid it. The application itself is basically an RSS reader and every hour it downloads the RSS files. Maybe that's the issue? Or Google tried to index it a little bit aggressively (from my other public project - javalibs I know that it can download 500MB per day just browsing that website)?
4) But what was most horrifying was this sentence: "The system will automatically turn throttling on and off as your usage levels change. You will not be notified about future throttling actions related to this gear.". So basically this email was just one-time information and in the future if the throttling starts again (and I had no idea why it started in the first place), I won't be notified (just my monitoring software or users themselves will tell me that instead of service they are used to, they are getting 503 error).
5) And the last straw was that on openshift.com I wasn't able to find anything about throttling and if it also applies to paid plans (or if they will force me to pay even more at their whim).
On Jan 05, 2016 at 11:26:42 PM the OpenShift operations team flagged your application for excessive network resource use.
We noticed that your gear is transferring an excessive amount of data.
We want to thank you for your adoption of our platform. Unfortunately, our free tier is not intended for the kind of heavy usage that your application demonstrates. Our Acceptable Use Policy at https://www.openshift.com/legal/acceptable_use states the following:
> While we strive to make our service as useful as possible, we don't
> support all workload profiles on the OpenShift Online free service.
> Distributed processing or other activities that continuously exhaust
> a specific resource (e.g. CPU, Network, Memory) are not allowed.
> Applications are allowed to consume available resources for a short
> period of time, but not continuously.
Because of this, your application has been throttled. The system will automatically turn throttling on and off as your usage levels change. You will not be notified about future throttling actions related to this gear. We encourage you to consider upgrading to one of our paid tiers where you will receive an increased allocation of system resources. Please see https://www.openshift.com/pricing for more information about our paid tiers and the benefits they provide.
You can contact us at https://developers.openshift.com/en/contact.html
The Red Hat OpenShift Team
Made better & faster using https://www.yourkit.com/ Java Profiler