Google App Engine is very easy to use. All you need to do is install the SDK (which in itself is easy as well, and the documentation is very heplful) and run the command needed depending on the type of project to deploy it. For example, to deploy a golang application, you run golang deploy inside...
You can't get all the stack components and self host the same infrastructure yourself. Depending on the API used, the code itself would be tied to Google App Engine. See here for some libre/open source re implementations of the APIs.
OpenShift seems to rely more on written documentation and on the community to solve any problem users may have. The forums and IRC channel are active and very helpful, but the official customer support could be better.
Getting started with Heroku is very easy. It's a very straightforward procedure and a beginner can set up their first app in two minutes. Often it's just a matter of a couple of git commands and it's all set up and running. The official Heroku docmentation also helps a lot.