This work introduces a scheduling problem which is motivated from a real situation faced by one of the largest brewing companies in Mexico. Several products must follow a brewing process which is composed by three main stages: coction, fermentation, and conditioning. In the coction stage, there are multiple unrelated parallel machines, and in the fermentation and conditioning stages, there are several heterogeneous tanks. Additionally, during the production process, some maintenance operations must be scheduled. The problem can be seen as a parallel machine batch scheduling problem with sequence-dependent setup times. Due to the complex structure of the problem, we propose a Greedy Randomized Adaptive Search Procedure to generate good quality solutions in a short computation time. Computational experiments are conducted with real and artificial instances. The solutions obtained for the real instances show that the proposed algorithm reaches better solutions than the current solutions generated by the decision maker at the brewery, and the computation time required by our algorithm is dramatically shorter than the one required by the company.