Are there any tools and/or best-practices, that make the process of migration from GAE (Python or PHP) with it's ecosystem of services (s.a. authentication, datastore, search, caching etc.) to an alternative cloud hosting service, or even self-hosting -- fairly easy ?
This is one significant concern before making a choice to go with any PaaS provider, i.e. how to avoid lock-in, and have the freedom of choice to move-out if there are enough incentives to do so -- financial / otherwise, including the ease of migration. Perhaps, one reason to restrict oneself to IaaS providers, though the initial effort investment (and also over time), is significantly higher than with PaaS.
You have a couple of options, but mainly Appscale.
AppScale is a platform that allows users to deploy and host their own Google App Engine applications. It executes automatically over Amazon EC2, Rackspace, Google Compute Engine, Eucalyptus, Openstack, CloudStack, as well as KVM and VirtualBox. It has been developed and is maintained by AppScale Systems, Inc., in Santa Barbara. It supports the Python, Java, Go, and PHP Google App Engine platforms.
AppScale is an open-source cloud computing platform that automatically deploys and scales unmodified Google App Engine applications over popular public and private cloud systems and on-premises clusters. AppScale is modeled on the App Engine API and has support for Python, Go, PHP and Java applications.
The goal of AppScale is to provide developers with a rapid, API-driven development platform that can run applications on any cloud infrastructure. AppScale decouples app logic from its service ecosystem to give developers and cloud administrators unprecedented control over app deployment, data storage, resource use, backup and migration.
There is also Typhoonae
The TyphoonAE project aims at providing a full-featured and productive serving environment to run Google App Engine (Python) applications. It delivers the parts for building your own scalable App Engine while staying compatible with Google's API.