1. A computer-implemented method, comprising: obtaining a stack requirement for a custom stack, wherein the stack requirement specifies at least component attributes for one or more components to instantiate in the custom stack; selecting a stack component that satisfies the stack requirement for the custom stack; and instantiating the stack component in the custom stack.