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; where the input from the user is comprised of a budgetary amount allocated by the user to establish the instance of the cloud based solution, and where the set of constraints comprises the budgetary amount and further comprises technical requirements of the user for the instance of the cloud based solution, where the technical requirements comprise any resiliency requirements of the user; where the predetermined template is established by an expert and comprises rules concerning certain topologies, costs related to hardware and software products supported in the certain topologies, and constraints associated with the certain topologies; where establishing comprises: based on specific requirements of the user selecting at least one of the certain topologies as a working template; technically validating the working template against the requirements; and generating the customized cloud-based solution by varying combinations of hardware and software of the working template, where varying takes into consideration any resiliency requirements of the user and any licensing constraints of the user; where technically validating the working template comprises; testing the working template against the user-uploaded software and workloads; and where validating the established instance of the cloud based solution comprises testing horizontal and vertical scaling capabilities and any resiliency requirements while considering pricing and any license constraints.