1. A computer-implemented method for optimizing scheduling and resource allocation for a workflow, the method comprising: receiving, at a computing device, i) resource constraints representing a plurality of resources available for allocation to the workflow and ii) workflow constraints comprising at least a deadline for completing the workflow and a confidence threshold; determining, by the computing device, one or more probable sequences for executing the workflow, each probable sequence comprising a plurality of tasks usable to execute at least a portion of the workflow, wherein each task has a probability of task execution, a probable duration, and a probable resource demand; calculating, by the computing device, for each of the one or more probable sequences: i) a probability of sequence execution by the deadline based on the probabilities of task execution of the tasks forming the probable sequence, ii) an estimated resource demand based on the probable resource demands of the tasks forming the probable sequence, and iii) an estimated duration based on the probable durations of the tasks forming the probable sequence; and applying, by the computing device, an optimization formulation to determine an optimized scenario for scheduling the workflow by choosing one probable sequence from the one or more probable sequences, wherein applying the optimization formulation comprises: optimizing an objective function while satisfying the workflow constraints and the resource constraints, and choosing the optimized scenario having i) an estimated resource demand not exceeding the resources available for allocation; ii) an estimated duration meeting the deadline for completing the workflow and iii) a probability of sequence execution greater than or equal to the confidence threshold.