1. A computer-implemented method comprising: in response to input from a user, selecting at least one predetermined template comprised of a hardware and software instance of a data processing system that is implementable as an application solution on a cloud platform; comparing the at least one selected template against a set of constraints; establishing with at least one data processor an instance of a cloud based solution that is customized for the user based on the at least one selected template; and prior to presenting to the user the established instance of the customized cloud based solution, validating with the least one data processor the established instance of the cloud based solution by testing the established instance of the cloud based solution against user-uploaded software and workloads to ensure that the established instance of the cloud based solution that is customized for the user satisfies requirements of the user.