1. A method comprising: identifying, by a processing device, a support environment feature depended upon by a program to execute on a virtual machine, the execution of the program being facilitated by a Platform-as-a-Service (PaaS) environment; the PaaS environment including an Infrastructure-as-a-Service (IaaS) with a platform running on said IaaS; the platform being delivered as an auto-clustering virtual machine image, resulting in one or more virtual machines; selecting a support software component indicated to provide the feature in view of the identified support environment feature, wherein the selecting is executed by applying a business logic to the support component; the support component comprising a list of hooks in the support component; loading the selected support component on the one or more virtual machines; configuring the selected support component in view of the program; and causing the program, the selected support component, and a hook to be executed on the one or more virtual machine; receiving an indication that a status for the selected support component has changed from available to unavailable; pausing the execution of the program; unloading the selected support component from the one or more virtual machines; determining an alternative support component; loading the alternative support component on the one or more virtual machines; and unpausing the execution of the program.